Manchmal lese ich hier im Forum abwertende Kommentare über Arduino
Board/Plattform.
- Es sei eine Spielerei für Leute die nicht viel Ahnung haben.
- Oder man könne damit nicht wirklich lernen Mikrocontroller zu
benutzen, sondern nur vorgegebene Sachen und Libs.
- Arduino Code mit seinen Libs sei größer und langsamer.
Ich bin relativ neu in der Mikrocontroller Welt. Nein ich brauche keine
Empfehlungen! ;D
Liege ich aber mit der Einschätzung richtig das unter Profis oder sagen
wir erfahrenen µC Nutzern Arduino unbeliebt oder als unnötig erachtet
wird?
Oder sind die Arduino Kritiker von der Sorte von Entwickler, die auch
Hochsprachen angreifen und darauf schwören das Assembler der einzig
wahre Weg sei und alles andere nur unnötige Vereinfachung oder was für
Dummies? :)
KlausImHaus schrieb:> Liege ich aber mit der Einschätzung richtig das unter Profis oder sagen> wir erfahrenen µC Nutzern Arduino unbeliebt oder als unnötig erachtet> wird?
Das würde ich so nicht sagen.
Das Problem liegt in erster Linie bei den 'Programmiereren' der Arduino
Plattform. Zumindest bei denen, die hier im Forum aufschlagen.
Denn die stellen sich immer wieder von der Sorte 'Ich brauch das alles
nicht richtig lernen, weil Arduino ohnehin so einfach ist' heraus. Weder
muss ich meine Programmiersprache lernen, noch interessiert mich die
Doku, die es zum Arduino System gibt.
Die Hardware an sich finde ich nicht so schlecht. Ok, gegenüber einem
Selbstbau ist sie ein wenig teuer, wenn man allerdings einrechnet, was
es jemanden bei 0 beginnend kosten würde, eine Platine selbst zu
fertigen, einen Programmer anzuschaffen, dann ist die Kostensituation
gar nicht mehr so schlecht.
Die Arduino Basissoftware und Libraries sind so ausgelegt, dass man
wenig über die Hardware an sich wissen muss. Daraus folgt allerdings
auch, dass sie recht universell sein muss, was dann wieder eine gewisse
Trägheit nach sich zieht. Das kann in Einzelfällen zu einem Problem
werden, dem man allerdings durch Verzicht auf den Komfort der
Arduino-Libraries begegnen kann. Im schlimmsten Fall kann man da
natürlich auf den ganzen Komfort auch verzichten und den µC ganz
klassisch direkt programmieren.
In meinen Augen liegt das Problem eindeutig weder bei der Hardware, noch
bei der Entwicklungsumgebung sondern eindeutig in der 'Ich bin so gut,
ich brauch das nicht lernen' Attitüde der Programmierer.
KlausImHaus schrieb:> Oder sind die Arduino Kritiker von der Sorte von Entwickler, die auch> Hochsprachen angreifen und darauf schwören das Assembler der einzig> wahre Weg sei und alles andere nur unnötige Vereinfachung oder was für> Dummies? :)
Ich glaube so ist es. Alles was das Leben einfacher bzw. Spaß macht,
passt diesen Leuten einfach nicht in den Kram (Arduino, IDEs, Sprachen >
Assembler, Mausbedienung, GUIs in Farbe etc.).
Von der Sorte springen hier einige Spezies rum...
Hallo,
ich arbeite nicht mit dem Ardunio. Die Prozzesorauswahl mit dem Ardunio
ist nicht besonders groß. Wenn Du einen Prozzesor mit vielen I/O-Pins
suchst, suchst Du vergeblich.
Wenn Du richtig programmieren willst kommst Du um die richtigen
Entwicklungsumgebung, Datenblätter und viel Arbeit nicht herum.
Arduino bietet eine nette Einstiegslösung für Anfänger. Allerdings sind
bzw. werden die Ardunio-Prozzsoren mit zunehmender Steiegerung immer
komplexer zu programmieren. Das ist mein Fazit nach 12 Jahren Erfahrung
im Mikrocontroller-Bereich (PIC und 8051).
Viele Grüße
Ingo
Karl Heinz schrieb:> In meinen Augen liegt das Problem eindeutig weder bei der Hardware, noch> bei der Entwicklungsumgebung sondern eindeutig in der 'Ich bin so gut,> ich brauch das nicht lernen' Attitüde der Programmierer.
Das erinnert mich an PHP. Darüber sagt man auch, es hätte die
Webentwicklung damals stark vereinfacht und dadurch Leute angezogen die
schnell was damit machen wollen, ohne es vernünftig zu lernen, dadurch
gäbe es überall schlechten und unsicheren PHP Code, was allgemein dem
Ruf von etwas PHP geschadet hätte.
Boris B. schrieb:> Ich glaube so ist es. Alles was das Leben einfacher bzw. Spaß macht,> passt diesen Leuten einfach nicht in den Kram (Arduino, IDEs Sprachen >> Assembler, Mausbedienung, GUIs in Farbe etc.).> Von der Sorte springen hier einige Spezies rum..
Es steht jedem frei dies oder jenes nicht zu mögen. Ich frage mich dann
nur ob an der Kritik von solchen Leuten wohl was dran ist.
Ingo Schick schrieb:> Wenn Du richtig programmieren willst kommst Du um die richtigen> Entwicklungsumgebung, Datenblätter und viel Arbeit nicht herum.
Was bedeutet für dich richtig zu programmieren?
Sind beispielsweise Java oder Python keine richtigen
Programmiersprachen, weil diese Sprachen einen hohen Abstraktionsgrad
haben?
Bedeutet schwierige Programmierung für dich richtig zu programmieren?
Karl Heinz schrieb:> Die Arduino Basissoftware und Libraries sind so ausgelegt, dass man> wenig über die Hardware an sich wissen muss. Daraus folgt allerdings> auch, dass sie recht universell sein muss, was dann wieder eine gewisse> Trägheit nach sich zieht. Das kann in Einzelfällen zu einem Problem> werden, dem man allerdings durch Verzicht auf den Komfort der> Arduino-Libraries begegnen kann. Im schlimmsten Fall kann man da> natürlich auf den ganzen Komfort auch verzichten und den µC ganz> klassisch direkt programmieren.
Hm klingt logisch, aber gilt das nicht auch bei C Bibliotheken für µC?
KlausImHaus schrieb:> Hm klingt logisch, aber gilt das nicht auch bei C Bibliotheken für µC?
Das kommt immer auf die Bibliothek an.
Beim Arduino sind die Bibs immer gleich. Die Funktionieren und sind
nicht performant.
Bei allgemeinen c Bibs kann man gute und schlechte erwischen.
Also ich schliesse mich Karl Heinz an. Tut mir leid für Deinen
Kommentar. Aber mit diesem bin ich ganz und gar nicht einverstanden.
In diesem Beitrag geht es lediglich darum die Ardunio Plattform aus
eigener Erfahrung zu bewerten. Nicht mehr und nicht weniger.
Du selbst hast offensichtlich kein sachliches oder fachliche Meldung
hinterlassen, WARUM?
ein Formum kann nur bei der Beantwortng von Fragen helfen, und einem
nicht die Arbeit abnehmen.
KlausImHaus schrieb:>> natürlich auf den ganzen Komfort auch verzichten und den µC ganz>> klassisch direkt programmieren.>> Hm klingt logisch, aber gilt das nicht auch bei C Bibliotheken für µC?
Ein Beispiel.
Um einen Portpin zu schalten, genügt in der 'klassischen' Programmierung
ein
1
PORTB|=(1<<PB0);
der verbraucht 1 (oder waren es 2?) Taktzyklen.
Die Arduino Variante
1
digitalWrite(Ausgangsnummer,HIGH);
verbraucht ein Vielfaches davon. Aus dem Gedächtnis heraus waren es so
um die 150 Taktzyklen. Bei einfachen Lauflichtern spielt das keine
Rolle. Will man aber etwas Zeitkritischeres machen, dann wird das aber
möglicherweise relevant. Dafür ist man allerdings vom Portdenken und dem
zugehörigen Denken in Bits an diesem Port befreit. An der Arduino
Platine gibt es eine Stiftleiste mit genau dieser Nummer und die wird
geschaltet.
Insofern ist das nicht so sehr eine Frage der Qualität der
Implementierung, wie es bei unterschiedlichen C-Laufzeitbibliotheken der
Fall ist, sondern eine Frage der grundsätzlichen Herangehensweise.
Dave Chappelle schrieb:> Und dann noch der erste Beitrag dazu von einem Moderator, ziemlich> traurig.
Aha.
Und deswegen darf ich keine Meinung zu einem Thema haben, das einen
Fragesteller interessiert?
KlausImHaus schrieb:> Manchmal lese ich hier im Forum abwertende Kommentare über Arduino> Board/Plattform.>> - Es sei eine Spielerei für Leute die nicht viel Ahnung haben.>> - Oder man könne damit nicht wirklich lernen Mikrocontroller zu> benutzen, sondern nur vorgegebene Sachen und Libs.>> - Arduino Code mit seinen Libs sei größer und langsamer.>>> Ich bin relativ neu in der Mikrocontroller Welt. Nein ich brauche keine> Empfehlungen! ;D
Im Artikel
STM32 für Einsteiger
ist als Vergleich ein Arduino ebenfalls gelistet.
Der Arduino hat durchaus Vorteile gegenüber anderen Lösungen.
Karl Heinz schrieb:> Ein Beispiel.> Um einen Portpin zu schalten, genügt in der 'klassischen' Programmierung> ein PORTB |= ( 1 << PB0 );>> der verbraucht 1 (oder waren es 2?) Taktzyklen.>> Die Arduino Variante digitalWrite( Ausgangsnummer, HIGH );> verbraucht ein Vielfaches davon. Aus dem Gedächtnis heraus waren es so> um die 150 Taktzyklen.
Das hatte ich selber vor Monaten mal nachgemessen und war entsetzt.
Ich suche immer noch einen "Ausweg" aus der ASM Programmierung der
8-Bitter.
Wollte dann mit Arduino Due (ARM) den Einstieg in die C/C++ Welt
angehen.
Nun habe ich meine Zweifel. Gehen alle C++ Libs so leichtfertig mit der
Performance um? Dann macht die Mehrleistung der ARM oder XMega ja keinen
Sinn mehr, ein 8-Bitter ist in ASM wahrscheinlich schneller.
Ich möchte mich schon gern darauf verlassen, dass der C++ Compiler auch
den schnellsten Code erzeugt. Aber das ist wahrscheinlich der
Kompromiss, bzw der Preis für den Komfort, nicht mehr mit Registern und
Speicherzellen hantieren zu müssen.
Ich schrieb:> Karl Heinz schrieb:>> Ein Beispiel.>> Um einen Portpin zu schalten, genügt in der 'klassischen' Programmierung>> ein PORTB |= ( 1 << PB0 );>>>> der verbraucht 1 (oder waren es 2?) Taktzyklen.>>>> Die Arduino Variante digitalWrite( Ausgangsnummer, HIGH );>> verbraucht ein Vielfaches davon. Aus dem Gedächtnis heraus waren es so>> um die 150 Taktzyklen.>> Das hatte ich selber vor Monaten mal nachgemessen und war entsetzt.
Na ja.
Man muss natürlich auch berücksichtigen, dass hier in einem gewissen
Sinne Äpfel mit Birnen verglichen werden. digitalWrite macht ja auch
noch einiges zusätzlich mit, kümmert sich zb darum was passieren soll,
wenn der Pin vorher auf PWM geschaltet war und einiges mehr.
> Nun habe ich meine Zweifel.
Brauchst du nicht.
Denn wie gesagt, niemand hindert dich daran, letzten Endes aus der
Arduino-Software-Welt nur die Teile zu benutzen, die du benutzen willst.
> Gehen alle C++ Libs so leichtfertig mit der> Performance um?
Du wirfst hier Dinge durcheinander, die nicht zusammengehören. Das ganze
hat nichts mit C++ zu tun. Das ganze hat damit zu tun, was die Designer
der Funktionen als notwendig erachtet haben. Das Arduino-System ist ein
Framework, welches dir Funktionalität zur Verfügung stellt. Und das in
einer möglichst allgemein verwendbaren Form, in der das Framework darauf
achtet, dass du als Programmierer möglichst wenig technische Fehler
machen kannst. Du hast 2 Möglichkeit: dich in diesem Sicherheitsnetz
austoben oder darauf pfeifen und selbst die Verantwortung übernehmen.
In einem gewissen Sinne der Unterschied zwischen einer Familienkutsche
mit ASP, ESP, elektrischen Fensterhebern und Automatik und einem Auto um
damit Ralley zu fahren. Gaspedal, Lenkrad und 4 Räder haben beide.
> Dann macht die Mehrleistung der ARM oder XMega ja keinen> Sinn mehr, ein 8-Bitter ist in ASM wahrscheinlich schneller.
Tja. Man ist immer wieder erstaunt, wie schnell eigentlich Windows 98
auf einem Ur-Pentium ist, auf dem nicht x Programme ihre Zusatz-DLL
installiert haben und das System ausbremsen.
> Ich möchte mich schon gern darauf verlassen, dass der C++ Compiler auch> den schnellsten Code erzeugt.
Es hat nichts mit der Sprache zu tun! (Oder nur sehr wenig)
Das ist eine Frage des Systemaufbaus. Die Sprache ist nur das Werkzeug
dafür.
> Gehen alle C++ Libs so leichtfertig mit der Performance um?
Nein, keineswegs. Viele Libraries für die Mikrocontrolelr Welt sind
wesentlich näher an der Hardware (z.B. die
http://www.mikrocontroller.net/articles/AVR_FAT32).
> Ich möchte mich schon gern darauf verlassen, dass der C++> Compiler auch den schnellsten Code erzeugt.
Das ist unmöglich. Den schnellsten Code erhälst Du nur mit Assembler,
wenn Du die Eigenarten des jeweiligen Computers richtig gut beherrschst.
Also mit viel Einsatz von Gehirnschmalz.
C und C++ bieten Dir jedoch die Möglichkeit, einen schnellen Code mit
viel weniger Personalaufwand zu erzeugen, als in Assembler.
Zum Spass schaue ich mir manchmal den vom Compiler erzeugten
Assembler-Code an und überlege, wie ich ihn optimieren könnte. Meistens
kommt dabei heraus, dass ich es selbst auch nicht besser gemacht hätte.
Der GNU C Compiler ist schon ziemlich gut.
Karl Heinz schrieb:>> Das hatte ich selber vor Monaten mal nachgemessen und war entsetzt.>> Na ja.> Man muss natürlich auch berücksichtigen, dass hier in einem gewissen> Sinne Äpfel mit Birnen verglichen werden. digitalWrite macht ja auch> noch einiges zusätzlich mit, kümmert sich zb darum was passieren soll,> wenn der Pin vorher auf PWM geschaltet war und einiges mehr.
Ja klar, irgendwie müssen ja die Takte verbraten werden, hab mir die
Libs dann mal angeschaut und da wurde mir so einiges klarer.
Stefanus schrieb:>> Ich möchte mich schon gern darauf verlassen, dass der C++>> Compiler auch den schnellsten Code erzeugt.>> Das ist unmöglich. Den schnellsten Code erhälst Du nur mit Assembler,> wenn Du die Eigenarten des jeweiligen Computers richtig gut beherrschst.> Also mit viel Einsatz von Gehirnschmalz.
Das ist mir auch klar. Möchte nur sicher sein, dass eine C++Lib nicht
auch son ne Vollkaskomentalität hat wie der italienische König.
Karl Heinz schrieb:> Das Arduino-System ist ein> Framework, welches dir Funktionalität zur Verfügung stellt.
Und die ganzen C/C++ IDE sind das nicht?
Karl Heinz schrieb:> Aha.> Und deswegen darf ich keine Meinung zu einem Thema haben, das einen> Fragesteller interessiert?
Natürlich darfst du, aber in deiner Funktion als Moderator könntest du
auch einfach auf einen der letzten ~10 Threads verweisen, in denen
dieses Thema von A-Z durchgekaut wurde und dort dein Statement (erneut)
abgeben.
Ich schrieb:> Karl Heinz schrieb:>> Das Arduino-System ist ein>> Framework, welches dir Funktionalität zur Verfügung stellt.>> Und die ganzen C/C++ IDE sind das nicht?
Was hat die IDE damit zu tun?
Du wirfst ein weiteres mal Äpfel mit Birnen in einen Topf.
Eine IDE ist, wie der Name schon sagt, die Entwicklungsumgebung. Was
dein Editor, die Projektverwaltung, das Syntax Coloring etc. etc. alles
kann, ist für dich als Programmierer zwar interessant, wenn es darum
geht, wie gut du mit der IDE arbeiten kannst, ist aber völlig
uninteressant, wenn die Fragestellung lautet: welcher Code kommt dann
auf dem AVR tatsächlich zur Ausführung.
Du vermischt hier die Qualität des Bleistifts bzw. Kugelschreibers mit
der Qualität des Romans der damit geschrieben wird. Das eine hat mit dem
anderen nichts zu tun.
> Das ist mir auch klar. Möchte nur sicher sein, dass eine C++Lib nicht> auch son ne Vollkaskomentalität hat wie der italienische König.
Das alles hat nichts mit C++ zu tun.
Es nicht der Schraubenzieher, der dafür verantwortlich ist, dass in dein
Auto ein ASR-Modul eingebaut wird, sondern der Designer, der das Ding
vorgesehen hat.
Im Falle von Arduino hindert dich nichts und niemand daran, dir die
Dinge in Source Code Form anzusehen, die du da verbaust. Und wenn dir
das, was du da siehst nicht gefällt, dann schreibst du es eben selber.
>Natürlich darfst du, aber in deiner Funktion als Moderator könntest du>auch einfach auf einen der letzten ~10 Threads verweisen, in denen>dieses Thema von A-Z durchgekaut wurde und dort dein Statement (erneut)>abgeben.
Ich erwarte von einem Moderator, dass er sich wie ein normaler / oder
erfahrener User an einer Diskussion beteiligt (wenn er das denn möchte)
und ansonsten bei groben Regelverstößen eingreift.
Das was Du meinst ist ein Erziehungsberechtiger.
Ich bin da voll bei Karl Heinz. Dave vermischt in diesem Fall zu vieles.
Der Ardunio bietet einem Einsteiger eine gute Plattform. Nicht mehr und
nicht weniger. Diese Plattform stößt irgendwann an seine Grenzen. Sprich
in der Größe bzw. Schlankheit des Programmcodes. Die Vielfalt der
Prozzesoren stößt bei mir auf Ablehneung. Für diese Plattform gibt es
eine Vielzahl an Biblitheken. Diese sind zum Teil sehr gut, allerdings
auch teilweise sehr schlecht. Programmieren besteht eben nicht nur aus
copy und paste.
Jeder Programmierer sollte sich und muss sich irgendwan der IDE des
jeweiligen Herstelers in Assembler oder in C stellen. Es gibt viele
Programmiersprachen für Controller. Dennoch ist und bleibt der reine
Assembler und teilweise auch C die Urform des Programmierens. Daran
führt in der Praxis kein Weg vorbei. dies mag ein Arduino Fan nicht
gerne hören, ist aber so.
Na gut, dann sag' mir einen gescheiten Grund warum nicht hier
weiterdiskutiert wird:
Beitrag "Arduino - bringt's das ?"Achim_42 schrieb:> Das was Du meinst ist ein Erziehungsberechtiger.
Ein Moderator moderiert das Forum, das heisst im Idealfall:
- Löscht er anstössige/beleidigende Kommentare
- Löscht Doppelpostings
- Verweist auf bereits bestehende Threads
- etc.
Dave Chappelle schrieb:> Ein Moderator moderiert das Forum, das heisst im Idealfall:>> - Löscht er anstössige/beleidigende Kommentare
OK
> - Löscht Doppelpostings
Gibt der Seitenbetreiber vor, nicht irgend ein Hergelaufener
> - Verweist auf bereits bestehende Threads
Gibt der Seitenbetreiber vor, nicht irgend ein Hergelaufener
> - etc.
OK
Was glaubst Du, wer Du bist, dass Du Dir anmasst, die Moderationsregeln
vorzugeben?
wendelsberg
wendelsberg schrieb:> Was glaubst Du, wer Du bist, dass Du Dir anmasst, die Moderationsregeln> vorzugeben?
Öhm, die habe ich höchstens widergegeben, von vorgeben kann hier kaum
die Rede sein.
Abgesehen davon ist es meines Wissens nach in einem Duzend Foren der
Fall, dass Doppelpostings gelöscht werden (hier wohl eher nicht, da das
editieren nicht zeitunabhängig funktioniert) und Doppelthreads ebenfalls
(hier übrigens auch gängige Praxis, schau mal bei "gesperrte" rein..).
Ingo Schick schrieb:> Jeder Programmierer sollte sich und muss sich irgendwan der IDE des> jeweiligen Herstelers in Assembler oder in C stellen.
Och, warum soll ich mir bei jedem Hersteller dessen IDE antun? Nö.
Emacs rulez. :)
Außerdem gibt es natürlich genügend Programmierer, die mit einem
fertigen
System à la Arduino oder BASCOM einfach gut genug bedient sind und gar
nicht mehr brauchen als das. Warum „müssen“ diese sich deshalb auch
C oder gar Assembler antun?
Was auf einem kleinen Controller als Zielplattform natürlich immer sehr
hilfreich ist ist, wenn man den generierten Code zumindest rudimentär
lesen kann und so einschätzen kann, ob die benutzte Programmierumgebung
an einer bestimmten Stelle (die sich vielleicht als zeitkritisch
herausgestellt hat) sehr suboptimalen Code generiert hat, den man dann
nochmal irgendwie aufpolieren müsste. Aber das heißt noch lange nicht,
dass man deshalb auch gleich in Assembler selbst programmieren können
muss.
wendelsberg schrieb:> Was glaubst Du, wer Du bist, dass Du Dir anmasst, die Moderationsregeln> vorzugeben?
Lass mal wieder gut sein. Wir haben hier so fast alle eine andere
Meinung als Dave, das wurde ihm nun oft genug mitgeteilt. Wenn er das
in Frage stellen möchte, möge er bitte einen Thread im Forum „Webseite“
eröffnen. Bitte lasst diesen Thread beim Thema bleiben.
Jörg Wunsch schrieb:> Wenn er das> in Frage stellen möchte, möge er bitte einen Thread im Forum „Webseite“> eröffnen.
Nene, so wichtig is mir das jetzt auch nicht..
Es gibt doch auch die neuen "dicken" arduino boards, wenn junkt da der
overhead den arduino mitbringt, ob nun 2 oder 150 cpucycles für ein
Portwrite gebraucht werden?
Niemand. Eben. Deswegen ist das System an sich auch Klasse, jemand der
bare-metal irgendwelche state of the art super code baut denn
interresiert arduino nicht.
Man ist das langweilig geworden dieses Forum, das man schon auf so eine
Scheisse antwortet.
gGruß Jonas
wendelsberg schrieb:>> Ein Moderator moderiert das Forum, das heisst im Idealfall:>>.......>> Was glaubst Du, wer Du bist, dass Du Dir anmasst, die Moderationsregeln> vorzugeben?
Genau, schleudert den Purschen zu Poden.
zum Thema:
Nach meiner Meinung ist die entscheidende Frage, WAS man programmieren
will.
Für (Hobby) Elektronik-Bastler ist Arduino absolut ausreichend.
Für professionelle (Echtzeit) Anwendungen mag das nicht mehr gelten.
Aber ich habe diese Grenze noch nicht erreicht.
Jonas Biensack schrieb:> wenn junkt da der overhead den arduino mitbringt, ob nun 2 oder 150> cpucycles für ein Portwrite gebraucht werden?
Es juckt schon, wenn man auf diese Weise vielleicht „zu Fuß“ (also
ohne Hardware-SPI-Modul) ein 74HC595-Schieberegister ansteuern will
oder sowas. Ist normalerweise auf der Hardware ja kein Problem (wenn
auch nicht ganz so flink wie Hardware-SPI), aber mit dem Overhead der
generischen Methoden unpraktikabel.
Aber wie Karl Heinz schon schrieb, solange man damit nur eine LED
schalten will, ist das wurscht (oder Käse, für die Vegetarier :).
KlausImHaus schrieb
> Manchmal lese ich hier im Forum abwertende Kommentare über Arduino> Board/Plattform.>> - Es sei eine Spielerei für Leute die nicht viel Ahnung haben.
Der Arduino wurde ursprünglich entwickelt für Leute wie Künstler.
D.h. für Leute die für ihren Beruf nicht unbedingt eine µC Ausbildung
mitbringen.
>> - Oder man könne damit nicht wirklich lernen Mikrocontroller zu> benutzen, sondern nur vorgegebene Sachen und Libs.
Genau, dass wurde damit nicht beabsichtigt !!!!!
>> - Arduino Code mit seinen Libs sei größer und langsamer.
Spielt für den ursprünglichen Plan keine Rolle.
>>> Ich bin relativ neu in der Mikrocontroller Welt. Nein ich brauche keine> Empfehlungen! ;D>> Liege ich aber mit der Einschätzung richtig das unter Profis oder sagen> wir erfahrenen µC Nutzern Arduino unbeliebt oder als unnötig erachtet> wird?
Ich würde sagen, unnötig und hinderlich. Mit der Arduino IDE wird man
sicher kein µC Experte. Will man µC programmieren lernen sollte man sich
diesen Umweg ersparen.Ich weiss wovon ich spreche, habs auch probiert!!!
Dass die µC Experten in diesem Forum genervt sind, wenn Arduino Anfänger
naive Fragen stellen kann ich gut verstehen ;-)
>> Oder sind die Arduino Kritiker von der Sorte von Entwickler, die auch> Hochsprachen angreifen und darauf schwören das Assembler der einzig> wahre Weg sei und alles andere nur unnötige Vereinfachung oder was für> Dummies? :)
Hoffe ich habe durch meine Sicht etwas beigetragen.
Gruß Franz
Ich nutze Arduinos gerne als schnelle Plattform um mal eben was zu
versuchen oder für kleine Projekte als Testumgebung. Klaar ist man nicht
auf die Arduino software angewisen. Man kann ohne Probleme alle
möglichen hex dateien über den Arduino Bootloader flaschen.
Und genau das mag ich an diesen teilen. Eingebauter programmer
Eingebaute versorgungsspannung und richtig günstig. Zudem gibt es sehr
viel "Ansteck" hardware.
Früher habe ich den Avr aufs Steckbrett gesteckt und alle komponenten
drumrum oder erstmal eine Platine geätzt. Jetzt kann ich einfach mal
drauflos stecken.
Ralf schrieb:> zum Thema:> Nach meiner Meinung ist die entscheidende Frage, WAS man programmieren> will.> Für (Hobby) Elektronik-Bastler ist Arduino absolut ausreichend.> Für professionelle (Echtzeit) Anwendungen mag das nicht mehr gelten.> Aber ich habe diese Grenze noch nicht erreicht.
du hast zwar recht, dennoch sehe ich Präzisierungsbedarf!
Der Arduino ist zum einen eine fertige Platine mit einem normalen Atmel
AVR drauf, zum anderen die Programmierumgebung und der Bootloader.
• Der AVR ist ein normaler AVR und natürlich massenhaft im industriellen
und kommerziellen Einsatz (Zum Beispiel auch im Apple MacBoook Pro :-)
ein Tiny13 )
• Natürlich kann man mit einem Arduino-Board entwickeln und später auf
ein eigenes Design umstellen
• Der Bootloader ist STK500v1 kompatibel, man kann den Arduino also zb
auch über avrdude mit einer ganz normalen avrgcc Toolchain einsetzen
• Der Compiler ist ein ganz normaler avrgcc, es stehen also alle
Sprachmittel von C++ (damit auch fast alle von C) zur Verfügung,
selbstverständlich kann man auch inline-Assembler programmieren, auch
alle Code-Snippets die sich im Datenblatt oder sonstwo finden, lassen
sich direkt übernehmen
• Selbstverständlich ließe sich auch ein Arduino-Compilat auf den AVR
auf einem ganz anderen Board „brennen“, der µC ist ja nicht irgendwie
speziell. Ob das so unklug wäre, müsste mann erstmal durchdenken!
Immerhin laufen viele Arduino-Programme ohne Änderung auch auf dem
ARM-Arduino! Das ist schon recht portabel!
• ISP ist per Header herausgeführt, du kannst also den Arduino auch ganz
normal mit Studio oder sonst einer IDE über ISP programmieren, ohne das
Wort je wieder in den Mund zu nehmen.
• Das EAGLE-File steht zur Verfügung, man könnte also auch sehr bequem
einen Arduino komplett in das eigene Design übernehmen.
vlg
Timm
Arduino ist meiner Meinung nach ziemlich nett, da man einerseits ein
stabiles, umfangreiches und sehr einfach zu nutzendes Framework zur
Verfügung hat, auf der anderen Seite aber im Prinzip ganz normales C
programmiert. Wenn das Arduino-Framework nicht reicht (zu langsam,
Features fehlen, usw.) kann man alles was man braucht leicht und
performant selbst implementieren oder existierende C-Libraries
adaptieren. Wenn man am Ende über Arduino hinauswächst, kann man die
Sourcen durchaus weiterverwenden. Es ist keine Sackgasse wie irgendein
proprietärer BASIC-Dialekt.
Franz Pürstinger schrieb:> Ich würde sagen, unnötig und hinderlich. Mit der Arduino IDE wird man> sicher kein µC Experte. Will man µC programmieren lernen sollte man sich> diesen Umweg ersparen
bitte erläutere das detaillierter!
Nur, weil man kein Makefile anpassen muss? Das muss man in Studio auch
nicht.
Die Arduino-IDE lässt sich einwandfrei als plattformunabhängiges GUI für
avrgcc verwenden, was soll da ein Umweg oder hinderlich sein?
Hallo,
ich denke die hier (gesamtes µC.net Forum nicht speziell dieser Thread)
öfters geäußerte Kritik liegt an den Personenkreis der hier
natürlicherweise im Forum unterwegs sind :
Bastler und Profis aus dem ->Computer und Elektronikbereich<-
wir wollen halt verstehen wie ein µC funktioniert, arbeiten z.B. bewusst
mit verschiedensten Busprotokollen, möchten oder können auch
tiefergreifende vielsichtige Stuerungen, Regelungen etc. mit einen µC
aufbauen und haben oft mehr Spaß an der entwicklung, den probieren und
den umgang mit elektronik als an der Nutzung des ferigen Produkts.
Doch was war ursprünglich die Zielgruppe des Arduino Projekts :
"Künstler" im weitesten Sinn.
Diese interessiert meist ehr das Ergebnis und möchten selten Elektronik,
Controllertechnik, Busprotokolle, Bauteilfunktion im Detail usw.
kennenlernen - die fertige Funktion ist das Ziel, weniger das verstehen
was intern abläuft, wie etwas technisch optimiert werden kann und der
ganze andere Kram der uns als typische µC.net Nutzer so interessiert.
Erst mit der popularität des Arduino ist er auch in den Bastlerbereich
vorgestoßen - und für die ganz anders denkenden "Alt-" und
Profiprogrammierer/elektroniker ist die (zu ?) einfache
Programmiersprache und der ehr oberflächliche Abhandlung der Elektronik
zu simpel und nicht zielführend.
Bastler AVR
Timm Reinisch schrieb:> Die Arduino-IDE lässt sich einwandfrei als plattformunabhängiges GUI für> avrgcc verwenden
Naja. Die Arduino-GUI ist nun nicht gerade das beste an all dem.
Deren Projektgenerator ist (so hat mir zumindest jemand gesagt, der
sich das Ding näher angeguckt hat, weil er was ändern wollte) komplett
hart in den Java-Code gegossen und praktisch nicht konfigurierbar.
Zum spielen und "schnell" mal was austesten mag ein Arduino ja gut sein,
aber ich bin eher für Maßanfertigung, weil ich hierdurch die Möglichkeit
habe meine Applikation und meine Hardware speziell auf die Anforderung
zu schmieden.
Jörg Wunsch schrieb:> Timm Reinisch schrieb:>> Die Arduino-IDE lässt sich einwandfrei als plattformunabhängiges GUI für>> avrgcc verwenden>> Naja. Die Arduino-GUI ist nun nicht gerade das beste an all dem.> Deren Projektgenerator ist (so hat mir zumindest jemand gesagt, der> sich das Ding näher angeguckt hat, weil er was ändern wollte) komplett> hart in den Java-Code gegossen und praktisch nicht konfigurierbar.
Das stimmt! Man kann zum Beispiel nicht einfach den gcc wechseln!
Andererseits ist auch ein serielles Terminal direkt in das IDE mit
eingebaut!
vlg
Timm
Wer von uCs keine Ahnung hat und keine Ahnung haben will, ist mit
Arduino gut beraten. Der sollte dann aber auch nicht meckern, wenn die
Lib nicht so tut, wie erwartet oder wenn mehrere Libs nicht miteinander
können.
Hier findest du so viele Meinungsäußerungen zu dem Thema wie ein Jahr
Tage hat:
Beitrag "Arduino - bringt's das ?"
Welche von den Beitragsschreibern Profis oder erfahrene µC-Nutzer sind,
musst du allerdings selber herausfinden ;-)
Generell gibt unter den µC-Einsteigern welche, bei denen der µC selbst
im Zentrum des Interesses steht, und welche, die den µC als Hilfsmittel
sehen, um mit möglichst wenig Aufwand eine bestimmte Anwendung zu
realisieren.
Derjenige, der den µC wirklich verstehen will, wird den µC von Anfang an
ohne Zuhilfenahme fertiger Bibliotheken in C oder gar Assembler
programmieren wollen. Genauso derjenige, der von Anfang an das letzte
aus dem Controller herausholen will.
Derjenige aber, der für seine Modelleisenbahn eine Steuerung für Signale
und Weichen realisieren möchte, es kaum erwarten kann, bis das Zeug
endlich anfängt zu klackern und zu blinken, und mit µCs sonst eigentlich
nichts am Hut hat, wird eher den High-Level-Einstieg über den Arduino
suchen, weil er damit voraussichtlich schneller zum Ziel kommt.
Wer allerdings einmal den Low-Level-Einstieg erfolgreich durchgemacht
hat (egal ob aus Neigung oder weil es zu dem Zeitpunkt des Einstiegs die
Arduinos noch nicht gab), wird im Nachhinein kaum auf Arduino umsteigen,
weil dafür der Einarbeitungsaufwand höher wäre als die Zeitersparnis in
zukünftigen Projekten. Er hat ja bereits das Wissen und Code-Fragmente
zur Nutzung aller wesentlichen µC-Features, so dass ihm die Nutzung
fertiger Bibliotheken kaum Nutzen bringt, er aber mit neuen Problemen
(wie bspw. längere Ausführungszeiten) kämpfen müsste.
Auch ein Arduino-Nutzer wird es irgendwann als notwendig empfinden, aus
Laufzeitgründen eine Bibliotheksfunktion durch ein eigenes Stück Code zu
ersetzen, was ja auch in Arduino kein Problem ist, da der direkte Zugang
zur µC-Hardware in keiner Weise versperrt ist. Irgendwann findet er sich
in einer Situation wieder, wo er nur noch so wenige Teile der
Arduino-Bibliothek benutzt, dass er sich fragt, warum er diese nicht
einfach komplett weglässt. Die Arduino-Hardware kann er ja vorerst
weiter nutzen, bis er vielleicht auf den Gedanken kommt, auch diese
durch etwas selbstgelötetes, auf eine konkrete Anwendung zugeschnittenes
zu ersetzen.
Insofern ist es schon richtig, dass erfahrene µC-Nutzer eher Abstand
von Arduino nehmen. Das heißt aber nicht unbedingt, dass sie Arduino
deswegen verpönen.
Hallo Klaus,
KlausImHaus schrieb:> Das erinnert mich an PHP. Darüber sagt man auch, es hätte die> Webentwicklung damals stark vereinfacht und dadurch Leute angezogen die> schnell was damit machen wollen, ohne es vernünftig zu lernen, dadurch> gäbe es überall schlechten und unsicheren PHP Code, was allgemein dem> Ruf von etwas PHP geschadet hätte.
Leider ist das ja auch der Fall. Schau Dir die bekannte PHP-Software
doch mal genauer an. Der Code ist oft wirklich gruselig. Das Problem
betrifft aber auch PHP selbst: der Grund, warum PHP so lange keine
Namensräume beherrscht hat, ist, daß die PHP-Entwickler ihren eigenen
flex-basierten Codeparser nicht mehr verstehen. PHP ist ja im Prinzip
eine aufgeblähte Templateengine auf Steroiden und sehr gut für das
Einsatzgebiet geeignet, für das es entwickelt wurde: nämlich, um eine
weitestgehend statische Webseite mit einigen wenigen dynamischen
Elementen aufzupeppen. Für genau diesen einen Anwendungsfall ist PHP gut
geeignet und kann seine Stärken ausspielen, und darin ist es tatsächlich
besser als SSI, Embperl und Co. Für größere Projekte ist PHP allerdings
bei Weitem nicht so gut geeignet und dann mindestens ebenso aufwändig
wie seine Wettbewerber.
Nicht ganz unähnlich ist die Sache mit Arduino: das ist prima für dessen
Zielgruppe, nämlich Kreative und andere Nichttechniker. Die können mit
einem vergleichsweise überschaubaren Aufwand kleine Programme schreiben,
mit denen sie die Leistungsfähigkeit der Hardware aber selten
vollständig ausnutzen. Das muß ja auch nicht immer sein. Echte Könner
bedenken das dann zwar gerne mit einem süffisanten Lächeln, aber die
haben einen ganz anderen Fokus als die Arduino-Anwender: während
Elektronik für die Könner gleichzeitig Weg und Ziel ist, ist sie für die
Arduino-Zielgruppe nur ein Mittel zu einem ganz anderen Zweck -- und da
gibt es eigentlich nichts zu Belächeln.
Beste Grüße,
Karl
chris_ schrieb:> Wer Arduino professioneller programmieren will, darf gerne zu Eclipse> greifen:>> http://playground.arduino.cc/Code/Eclipse
Weil das ja von der IDE abhängt. Ich finde Eclipse super, aber das
Problem ist nicht die grottige Arduino IDE. Die ist auf Platz 896 der
schlimmsten Probleme von Arduino.
Außerdem, der typische Arduino-Nutzer kann nichtmal ne Doku oder ein
Datenblatt lesen, was meinst du wie der auf so eine mächtige IDE
reagiert.
>die grottige Arduino IDE. Die ist auf Platz 896 der>schlimmsten Probleme von Arduino.
16 jähriger Schüler, der fasziniert ist, wie einfach man mit dem Arduino
einen kleinen Robeoterarm aus Servos bauen kann.
Zeig dem mal Eclipse.
Zeig dem Arduino IDE.
Ob die dann immer noch auf 896 liegt ?
Wie schon oft in diesem Thread und anderen angesprochen: Arduino ist
nicht gut oder schlecht, sondern Arduino ist für DEN EINEN bessern, und
für JEMAND ANDERS ist ein STM32Discovery besser.
Ich schrieb:> Karl Heinz schrieb:>> Ein Beispiel.>> Um einen Portpin zu schalten, genügt in der 'klassischen' Programmierung>> ein PORTB |= ( 1 << PB0 );>>>> der verbraucht 1 (oder waren es 2?) Taktzyklen.>>>> Die Arduino Variante digitalWrite( Ausgangsnummer, HIGH );>> verbraucht ein Vielfaches davon. Aus dem Gedächtnis heraus waren es so>> um die 150 Taktzyklen.>> Das hatte ich selber vor Monaten mal nachgemessen und war entsetzt.
Ich bin selber ein klein wenig Perfektionist und mir tut so etwas
ebenfalls sehr weh. Allerdings muß die relevante Frage sein, ob die
Lösung zum Problem paßt. In der Elektronik- und Microcontroller-Welt ist
es ja relativ normal, teilweise nur einen Bruchteil der Funktionen der
Hardware zu nutzen (z. T., z. B. bei Mehrfachbelegung von I/O-Pins, ist
es nicht einmal möglich, alle Features gleichzeitig zu nutzen). Warum
sollte man das bei der Rechenleistung anders machen?
> Ich suche immer noch einen "Ausweg" aus der ASM Programmierung der> 8-Bitter.> Wollte dann mit Arduino Due (ARM) den Einstieg in die C/C++ Welt> angehen.
Versuch es wirtschaftlich zu betrachten. Es kommt darauf an, was Du
machen willst. Hast Du ein Produkt in recht kleiner Stückzahl, so sind
die Mehrkosten für einen "großen" Mikrocontroller gegenüber der
eingesparten Entwicklungszeit vernachlässigbar, es sei denn, weitere
Anforderungen wie z. B. minimaler Stromverbrauch oder Platzbedarf würden
dem entgegenstehen.
Bei einem Produkt, das in kleiner Stückzahl hergestellt wird, kann man
sich evtl. mit einem Arduino auch die Platinenherstellung sparen und
dann ist es ein Vorteil, wenn es mehrere verschiedene Varianten gibt,
sodaß man etwas mehr Auswahl hat und notfalls einen "größeren" nehmen
kann. Und man kann ja "notfalls" auch mit der Arduino-IDE ein
nicht-Arduino-Board oder mit einer Standard-Entwicklungsumgebung ein
Arduino-Board programmieren, sodaß man sich da nichts verbaut.
Soll ein Produkt dagegen in Massenfabrikation hergestellt werden, so
lohnt eine Optimierung auf einen minimalen Mikrocontroller, weil sich
jeder eingesparte Cent sofort auswirkt.
In der Softwareentwicklung auf PCs usw., wo ich mehr Erfahrung habe als
mit Mikrocontrollern, hat es sich eingebürgert, das Produkt erst einmal
zum Laufen zu bringen und nur performancekritische Teile zu optimieren.
Ich sehe diese Herangehensweise etwas kritisch, weil nachträgliche
Optimierung ihre Grenzen hat und versuche immer, nicht unter einen
gewissen Mindeststandard zu gehen, aber im Prinzip ist es durchaus
richtig.
> Ich möchte mich schon gern darauf verlassen, dass der C++ Compiler auch> den schnellsten Code erzeugt. Aber das ist wahrscheinlich der> Kompromiss, bzw der Preis für den Komfort, nicht mehr mit Registern und> Speicherzellen hantieren zu müssen.
Die Compiler sind in den letzten Jahren besser geworden und nicht mehr
mit Stand von vor z. B. 20 Jahren zu vergleichen. Es macht heute (auch
wegen der Vielzahl möglicher Plattformen) nur noch in Spezialfällen oder
zeitkritischen Bereichen Sinn, hochoptimierten Assemblercode zu
schreiben. Bei RISC-Prozessoren ist es sogar gar nicht so
wahrscheinlich, daß man besseren Code als der Compiler hinbekommt, wenn
man sich nicht sehr gut auskennt. Einer der Vorteile einer
High-Level-Plattform wie Arduino ist, daß man auch Portabilität zwischen
verschiedenen Prozessoren und Architekturen hat.
Karl Heinz schrieb:> Das Problem liegt in erster Linie bei den 'Programmiereren' der Arduino> Plattform. Zumindest bei denen, die hier im Forum aufschlagen.>> Denn die stellen sich immer wieder von der Sorte 'Ich brauch das alles> nicht richtig lernen, weil Arduino ohnehin so einfach ist' heraus. Weder> muss ich meine Programmiersprache lernen, noch interessiert mich die> Doku, die es zum Arduino System gibt.
Ich wundere mich, dass nun auch von dir solche Vorurteile gestreut
werden. Es gab hier in den letzten Wochen gerade einen grossen Thread
eines Arduino-Users, der sich voellig merkbefreit verhalten hat. Von
Nicht-Arduino-Usern gibt es mindestens einen pro Woche. Und nicht selten
sind das "Studenten der Elektrotechnik" die "bereits C/C++/Assembler
beherrschen".
Die Arduino-Plattform hat viele Probleme. Aber eine Diskussion darueber
ist hier ziemlich sinnlos, weil die wenigsten hier, schon gar nicht die,
die besonders laut ueber Arduino schimpfen, praktische Erfahrung damit
haben. Und deswegen interessiert sich auch keiner in der Arduino-Welt
dafuer, was in diesem Forum ueber Arduino geschrieben wird.
kuebellord schrieb:> Aber eine Diskussion darueber> ist hier ziemlich sinnlos, weil die wenigsten hier, schon gar nicht die,> die besonders laut ueber Arduino schimpfen, praktische Erfahrung damit> haben.
Die meisten hier, die ueber Arduino schimpfen, brauchen damit auch keine
Erfahrung haben, weil sie es naemlich "richtig" gelernt haben. Die
wissen das der mC-Takt vom Quarz abhaengt und nicht von irgend einer
Code-Zeile ala:
1
#define F_CPU 16000000UL
Die wissen was ein Programmer ist und wie man debuggt, die wissen was
ein Register ist und wie man Pins setzt ohne 100-Taktzyklen zu
verschwenden, und die auch in der Lage sind alleine heraus zu finden,
warum ihr SPI oder UART gerade nicht funktioniert, ohne erstmal in mind.
einem Forum einen Thread zu starten.
spess53 schrieb:> Aktuelles Beispiel:>> Beitrag "Arduino Ethernet Shield w5100 nimmt nichts an"
Da kann ich leider nur zu stimmen. Das sagt schon wieder alles:
Ich habe keine Ahnung davon, will mich nicht damit beschaeftigen, und
die Fehlermeldung bei Google eingeben kann und will ich auch nicht. Aber
hier einen Thread aufmachen, das geht...
Das ist leider nun mal der typische Arduino-User, und trifft auf 98%
zu.
Gruesse
kuebellord schrieb:>> Denn die stellen sich immer wieder von der Sorte 'Ich brauch das alles>> nicht richtig lernen, weil Arduino ohnehin so einfach ist' heraus. Weder>> muss ich meine Programmiersprache lernen, noch interessiert mich die>> Doku, die es zum Arduino System gibt.>> Ich wundere mich, dass nun auch von dir solche Vorurteile gestreut> werden.
Echt? Findest du?
Ich kann dazu nur sagen, dass ich seit einiger Zeit, jede Woche
mindestens 3 Arduino Programmierern einen Link auf 'ihre' Doku
raussuche. Da steht im Posting die Frage, ich geb in Goggle "Arduino"
und das zugehörige Stichwort ein (meistens der Name einer Funktion oder
einer recht naheliegenden Arduino Klasse) und 10 Sekunden später hab ich
einen Link, den ich als Antwort posten kenn, weil dort drinnen alles
steht. Die meisten Links führen direkt in die Arduino Web-Seiten.
> eines Arduino-Users, der sich voellig merkbefreit verhalten hat. Von> Nicht-Arduino-Usern gibt es mindestens einen pro Woche. Und nicht selten> sind das "Studenten der Elektrotechnik" die "bereits C/C++/Assembler> beherrschen".
Zweifellos.
Ist alles eine Frage dessen, wie groß der Anteil der Arduino
Programmierer am Gesamtaufkommen hier im Forum ist. Genauso wie der
Anteil der Studenten/Absolventen schwankt der im Laufe eines Jahres.
Selbst wenn man in einem völlig abgedunkelten Raum sitzen würde, könnte
man aus der Veteilung recht gut das aktuelle Monat ableiten.
Kaj schrieb:> Ich habe keine Ahnung davon, will mich nicht damit beschaeftigen, und> die Fehlermeldung bei Google eingeben kann und will ich auch nicht. Aber> hier einen Thread aufmachen, das geht...> Das ist leider nun mal der typische Arduino-User, und trifft auf 98%> zu.
Einspruch.
Ich behaupte viele Arduino-Nutzer sind stille Mitleser, die mit der
"Suche" arbeiten und gar nicht erst als Fragesteller auffallen.
- - -
Aber hier mal eine Kritik an euch "Profis".
Der Arduino-Anfänger stellt eine (zugegeben manchmal idiotisch) einfache
Frage.
Darauf bekommt er nicht die gewünschte Antwort, sondern Kommentare, dass
Arduino nichts taugt oder er sich zuerst einmal selbst mit dem Problem
auseinandersetzen soll. Nach einer Weile erbarmt sich dann jemand und
gibt die Antwort.
Das ärgerliche ist dabei:
Wenn jemand, wie ich, dann die Suche bemüht findet er nicht dieses
Szenario:
- Frage
- Antwort
- Erledigt
sondern:
- Frage
- Gemeckere was das soll
- Antwort
- Erledigt
Und das empfinde ich als ärgerlich und glaube "KlausImHaus" ging es bei
der Threaderöffung solche Situationen.
Ralf schrieb:> Der Arduino-Anfänger stellt eine (zugegeben manchmal idiotisch) einfache> Frage.> Darauf bekommt er nicht die gewünschte Antwort, sondern Kommentare, dass> Arduino nichts taugt
Seh ich ein. Das ist tatsächlich nicht vernünftig.
> oder er sich zuerst einmal selbst mit dem Problem> auseinandersetzen soll. Nach einer Weile erbarmt sich dann jemand und> gibt die Antwort.
Ich kann dich beruhigen.
Auch die Nicht-Arduino Programmierer kriegen ihr Fett ab, wenn sie
Einsteigerfragen stellen, deren Antwort sich in jedem noch so grindigen
C-Lehrbuch finden und man aus der Fragestellung entnehmen kann, dass er
keine derartige Literatur besitzt, sondern wieder mal nach der
"Pogrammierern lernen nach der Hörensagen-Methode" unterwegs ist. Das
gilt dann ganz besonders bei Leuten, die dafür dann auch noch einen
Abschluss (sei es Mittelschule oder akademischer Grad) bekommen. Da
überlegen sich die Helfer 2-mal, wie das wohl wäre mit ihm zusammen zu
arbeiten. Jemand der zwar einen akademischen Grad hat, auf Grund dessen
er dann auch eingestellt und in die Entwicklertruppe kommt, aber
eigentlich müsste man mit dem erst mal einen Grundkurs 'Programmierung'
machen und in der Zwischenzeit seine Arbeit auch noch mit machen.
Von mir kann ich sagen: Ich hab nichts gegen Arduino an sich. Aber ich
hab was gegen die Denkweise, das in Foren angeeignetes anlassbezogenes
Achtelwissen ausreichen würde. Oft noch garniert mit dem Zusatz "Ist ja
nur ein Hobby, ich will ja kein Profi werden". Und da sind zumindest die
Arduino Benutzer die sich hier im Forum rumtreiben, immer wieder an
vorderster Front zu finden.
@ Karl Heinz (kbuchegg) (Moderator)
>Ich kann dazu nur sagen, dass ich seit einiger Zeit, jede Woche>mindestens 3 Arduino Programmierern einen Link auf 'ihre' Doku>raussuche.
Arduino ist das neue BASCOM ;-)
Karl Heinz schrieb:> Von mir kann ich sagen: Ich hab nichts gegen Arduino an sich. Aber ich> hab was gegen die Denkweise, das in Foren angeeignetes anlassbezogenes> Achtelwissen ausreichen würde. Oft noch garniert mit dem Zusatz "Ist ja> nur ein Hobby, ich will ja kein Profi werden".
Von denen gibt es bei den "richtigen" Programmierern aber auch genug. Da
heisst es dann: "Ich will das Rad nicht nochmal erfinden".
mfg.
Kaj schrieb:> Die meisten hier, die ueber Arduino schimpfen, brauchen damit auch keine> Erfahrung haben, weil sie es naemlich "richtig" gelernt haben. Die> wissen das der mC-Takt vom Quarz abhaengt und nicht von irgend einer> Code-Zeile ala:
Danke fuer dieses schoene Beispiel. Ein Beispiel dafuer, wie an der
Realitaet vorbei Argumente erfunden werden, um die eigenen Vorurteile zu
bestaetigen. Arduino-User haben sicher viele banale Probleme, aber genau
dieses ist typisch fuer Anfaenger, die eben keinen Arduino benutzen - in
der Arduino-Welt existiert dieses Problem schlicht nicht.
Jeder auf seinem Niveau. Der Einsteiger mit Arduino hat halt Rückstände
gegenüber dem FPGA Einsteiger, der normalerweise eine µC Vorgeschichte
hat.
Leider vergessen das die Pseudofortgeschrittenen mal abgesehen davon, wo
sich dieses Forum positionieren möchte. In offenen Forum wie hier
tauchen eben Fragen aller Art auf.
Die Frage "Ist Arduino verpönt" ist so an sich gar nicht richtig und
zulässig.
Arduino ist so gut oder so schlecht wie derjenige der damit arbeitet.
Wenn sich jemand damit intensiv beschäftigt und weiß was er der Hard-
und Software zutrauen kann, wird die besten Ergebnisse erzielen. Diese
Anwender treten hier praktisch nie in Erscheinung.
Von denen die keine Datenblätter und Anleitungen lesen, liest man dafür
hier zur Genüge.
Durch diese, und die zum Teil überflüssigen Kommentare, wird der Arduino
in ungerechter Weise schlecht gemacht.
Hubert G. schrieb:> Wenn sich jemand damit intensiv beschäftigt und weiß was er der Hard-> und Software zutrauen kann, wird die besten Ergebnisse erzielen.
Warum sollte jemand, der weiß was er tut, >100 Takte für das setzen
eines Portpins verschwenden? Antwort: Tut er nicht. Er wird das Arduino
Geraffel nicht nutzen.
> Diese> Anwender treten hier praktisch nie in Erscheinung.
Ja, niemand hat sie je gesehen, aber es gibt sie ganz sicher?
> Von denen die keine Datenblätter und Anleitungen lesen, liest man dafür> hier zur Genüge.
Leider zieht Arduino diese Nutzer an, wie Sch... die Fliegen. Hier liegt
ja des Pudels Kern, der Casus Cnackus, der springende Punkt, wenn man so
will.
cyblord ---- schrieb:> Warum sollte jemand, der weiß was er tut, >100 Takte für das setzen> eines Portpins verschwenden?
Wenn das Ergebnis den Anforderungen entspricht, wird das niemanden
jucken. Oder bekommst du etwas dafür wenn dein Programm um den Faktor
100 schneller ist aber das Ergebnis sich von dem langsamen nicht
unterscheidet?
Hubert G. schrieb:> cyblord ---- schrieb:>> Warum sollte jemand, der weiß was er tut, >100 Takte für das setzen>> eines Portpins verschwenden?>> Wenn das Ergebnis den Anforderungen entspricht, wird das niemanden> jucken.
Quatsch. Es zählt nicht das Ziel alleine. Es zählt vor allem wartbarer
und verständlicher Code. Den man unter Kontrolle hat. Und gerade solche
Konstruktue wie digitalWrite, die Hintergrund alles und nichts machen
könnten, bergen die Gefahr von unbekannten Nebeneffekten und machen das
ganze zu einem Zufallsspiel. Sicherlich gibt es 1000 Beispiele wo das
super funktioniert, aber ein erfahrener Programmierer wird zur
einfachsten und durchschaubarsten Lösung greifen, die in jedem Fall
funktioniert und wo die Nebeneffekte völlig bekannt und beherrschbar
sind.
Es gibt einfach keinen Grund solch eine Funktion einzusetzen. Weil sie
für den erfahrenen Programmierer keinen Vorteile, aber viele Nachteile
hat. Die Vorteile gibt es nur scheinbar und nur für den Noob.
> Oder bekommst du etwas dafür wenn dein Programm um den Faktor> 100 schneller ist aber das Ergebnis sich von dem langsamen nicht> unterscheidet?
Klar, guten Code. Aber was verstehst du schon davon?
Hubert G. schrieb:> cyblord ---- schrieb:>> Warum sollte jemand, der weiß was er tut, >100 Takte für das setzen>> eines Portpins verschwenden?>> Wenn das Ergebnis den Anforderungen entspricht, wird das niemanden> jucken. Oder bekommst du etwas dafür wenn dein Programm um den Faktor> 100 schneller ist aber das Ergebnis sich von dem langsamen nicht> unterscheidet?
Schon mal was von LowPower Anforderungen gehört? Ein programm das
100fach zyklen braucht, hat auch 100 mal schneller die Batterie
leergelutscht.
MfG
Karle Karlsberg (Gast)schrieb:
"Ein programm das 100fach zyklen braucht, hat auch 100 mal schneller die
Batterie leergelutscht".
Langsam wird es hier peinlich. Und das sage ich als Nicht-Arduino User.
Leute wie cyblord und Karle Karlsberg sind natürlich Zeit ihres Lebens
schon immer Profi-Programmierer gewesen und hatten nie eine Lernphase...
Arduino ist nun mal auch und gerade für Leute gedacht, die keine
professionelle Ausbildung in Elektrotechnik, Informatik oder dergleichen
haben. Solche Leute soll es doch tatsächlich auf der Welt geben!
Unfassbar. ;-)
cyblord ---- schrieb:> Die Vorteile gibt es nur scheinbar und nur für den Noob.
Warum soll man den Noob der gut mit dem Arduino und der IDE gut zurecht
kommt, sich aber sonst nie mit C oder Assembler beschäftigt hätte,
schlecht machen.
Wenn es auf Wartbarkeit des Code und Massenfertigung ankommt, wird der
Arduino ohnehin keine Berücksichtigung finden.
Bein Einzelstücken bei denen die Lebensdauer abzusehen ist, hat der
Arduino aber absolut seine Berechtigung.
Rettet dieses Forum schrieb:> Karle Karlsberg (Gast)schrieb:> "Ein programm das 100fach zyklen braucht, hat auch 100 mal schneller die> Batterie leergelutscht".>> Langsam wird es hier peinlich. Und das sage ich als Nicht-Arduino User.
Er hat nicht unrecht, in Low Power Anwendungen, schläft der Controller
oft die meiste Zeit. Wacht kurz auf, tut was, schläft wieder. Wenn nun
diese Arbeitszeit, auf eine Art, Faktor X mehr Zyklen braucht als auf
die andere Art, dann wird deutlich mehr Energie verbraucht und die
Batterie wird schneller leer.
@Hubert:
Du schriebst was von:
> Wenn sich jemand damit intensiv beschäftigt und weiß was er der Hard-> und Software zutrauen kann, wird die besten Ergebnisse erzielen.
Es ging also nicht um den Noob. Und darauf bin ich eingegangen. Also
fang jetzt nicht wieder mit deinen Anfängern an.
gruß cyblord
cyblord ---- schrieb:> Hubert G. schrieb:>> cyblord ---- schrieb:>>> Warum sollte jemand, der weiß was er tut, >100 Takte für das setzen>>> eines Portpins verschwenden?>>>> Wenn das Ergebnis den Anforderungen entspricht, wird das niemanden>> jucken.>> Quatsch. Es zählt nicht das Ziel alleine. Es zählt vor allem wartbarer> und verständlicher Code. Den man unter Kontrolle hat. Und gerade solche> Konstruktue wie digitalWrite, die Hintergrund alles und nichts machen> könnten, bergen die Gefahr von unbekannten Nebeneffekten und machen das> ganze zu einem Zufallsspiel.
Was digitalWrite() macht, ist weitgehend dokumentiert und der Quellcode
liegt bei, sodaß sich niemand darauf berufen kann, er habe nicht wissen
können, was genau der Code tut (im Gegensatz zu manchen proprietären
Bibliotheken, die nur als Binary geliefert werden!). Und wer damit nicht
einverstanden ist, kann es immer noch an den Arduino-Bibliotheken vorbei
anders machen!
Der Schuß ging also nach hinten los!
> Sicherlich gibt es 1000 Beispiele wo das> super funktioniert, aber ein erfahrener Programmierer wird zur> einfachsten und durchschaubarsten Lösung greifen, die in jedem Fall> funktioniert und wo die Nebeneffekte völlig bekannt und beherrschbar> sind.
Genau das ist ja bei der entsprechenden Arduino-Bibliothek
offensichtlich der Fall, da sie anscheinend Sonderfälle berücksichtigt,
die man vermutlich nicht immer im Kopf hat und nicht bei jedem zweiten
Mal ausprogrammieren möchte!
> Es gibt einfach keinen Grund solch eine Funktion einzusetzen. Weil sie> für den erfahrenen Programmierer keinen Vorteile, aber viele Nachteile> hat. Die Vorteile gibt es nur scheinbar und nur für den Noob.
If it can't be done in Fortran, do it in Assember. If it can't be done
in Assember, it isn't worth doing ;-)) .
>> Oder bekommst du etwas dafür wenn dein Programm um den Faktor>> 100 schneller ist aber das Ergebnis sich von dem langsamen nicht>> unterscheidet?> Klar, guten Code. Aber was verstehst du schon davon?
Die Benutzung der Arduino-Funktionen vermeidet Codeduplikation und
Flüchtigkeitsfehler und erzeugt wartbareren, portableren Code. Ohne
konkreten Grund besteht keine Veranlassung, es manuell zu machen. Daher
kann ich Dir versichern, daß Deine Vorstellungen von "gutem Code" in
dieser Verallgemeinerung zurecht eine Minderheitenmeinung sind.
Oder legst Du es darauf an, hier einen Flame War zu starten?-)
Meiner Erfahrung nach verhält es ich so:
"Anfänger ==> Arduino
Möchtegern Fortgeschrittener ==> ausschließlich MC
Profi ==> Nimmt das passende Werkzeug zur passenden Aufgabe. Für
Aufgaben, die sich mit einem Arduino schnell Lösen lassen, auch einen
Arduino"
aus
Beitrag "Re: Arduino - bringt's das ?"
Matthias H. schrieb:> cyblord ---- schrieb:>> Hubert G. schrieb:>>> cyblord ---- schrieb:>>>> Warum sollte jemand, der weiß was er tut, >100 Takte für das setzen>>>> eines Portpins verschwenden?>>>>>> Wenn das Ergebnis den Anforderungen entspricht, wird das niemanden>>> jucken.>>>> Quatsch. Es zählt nicht das Ziel alleine. Es zählt vor allem wartbarer>> und verständlicher Code. Den man unter Kontrolle hat. Und gerade solche>> Konstruktue wie digitalWrite, die Hintergrund alles und nichts machen>> könnten, bergen die Gefahr von unbekannten Nebeneffekten und machen das>> ganze zu einem Zufallsspiel.>> Was digitalWrite() macht, ist weitgehend dokumentiert und der Quellcode> liegt bei, sodaß sich niemand darauf berufen kann, er habe nicht wissen> können, was genau der Code tut (im Gegensatz zu manchen proprietären> Bibliotheken, die nur als Binary geliefert werden!). Und wer damit nicht> einverstanden ist, kann es immer noch an den Arduino-Bibliotheken vorbei> anders machen!>> Der Schuß ging also nach hinten los!
Wie man Portbits setzt ist in der uC Doku primär beschrieben, die doku
eines wrappers mag da noch so gut sein, sie wiegt deb ballast des
Wrappers nicht auf. Die fehlerärmste Programmierung ist immer noch die
nach dem KISS - Prinzip: Keep it simple, stupid.
MfG
Matthias H. schrieb:> Der Schuß ging also nach hinten los!
Sicher nicht. Ich kenne den Code für digitalWrite, und genau das ist der
Grund warum ich das nie einsetzen würde.
> Genau das ist ja bei der entsprechenden Arduino-Bibliothek> offensichtlich der Fall, da sie anscheinend Sonderfälle berücksichtigt,> die man vermutlich nicht immer im Kopf hat und nicht bei jedem zweiten> Mal ausprogrammieren möchte!
Offensichtlich...
Diese Sonderfälle gibt es so aber nur, wenn man keine Ahnung hat was man
da grade tut. Denn ich weiß ja, ob einen Pin als PWM betreibe oder
nicht. Ich weiß ja, ob ich den als Ausgang oder Eingang haben will. Ich
brauch doch keine Funktion die bei jedem setzen und löschen diese ganzen
Dinge durchprüft. Das braucht man dann, wenn man irgendwas tut, ohne
Plan. Dann schaut diese Funktion dass es trotzdem geht. Das ist nicht
sauber programmieren.
> Die Benutzung der Arduino-Funktionen vermeidet Codeduplikation> und> Flüchtigkeitsfehler und erzeugt wartbareren, portableren Code.
Wie jede lib. Es gibt auch einfache libs ohne Arduino. Das ist kein
Argument.
> Ohne> konkreten Grund besteht keine Veranlassung, es manuell zu machen. Daher> kann ich Dir versichern, daß Deine Vorstellungen von "gutem Code" in> dieser Verallgemeinerung zurecht eine Minderheitenmeinung sind.
Manuell ist immer relativ. Was ist daran "manuell", wenn ich einen Pin
auf Ausgang setze und ihn direkt schalte? Ich kann das ganze noch
Kapseln, je nach Funktionalität. Und genau solche Invarianten erzwingen,
ich benötige, für das konkrete Programm. Dabei hilft Arduino ja nicht,
es prüft ja meist nur unsinnige Dinge, welche sowieso von vorn herein
kein Problem darstellen sollten.
> Oder legst Du es darauf an, hier einen Flame War zu starten?-)
Gerne doch. Ich hab schon gegen Arduino geflamed, da war die Welt noch
jung.
Diese ganze Arduino-Diskussion ist schon tausendmal geführt worden,
immer mit überschaubarem Ergebnis.
Fakt ist: Viele "Arduino-Jünger" haben keinen Plan und keine Lust etwas
zu lernen.
Fakt ist aber auch: Arduino kann der perfekte Einstieg in die mC-Welt
sein, da vieles stark Abstrahiert ist.
Ich hab selbst vor Jahren mit dem Arduino angefangen, aus einem
einfachem Grund: Ich komme zwar aus der Informatik, bin
Softwarentwickler und Elektronik fand ich schon immer faszinierend -
aber es war ein Buch mit sieben Siegeln. Ich hab mir verschiedene
Fachbücher gekauft, hab gelesen und gelernt, mich aber nie an die mC
herangetraut.
Dann kam der Arduino und ich dachte mir: "Hey! 25€ - da kannst du nix
falsch machen und es ausprobieren..." Gesagt, getan - und schon war ich
drinnen in der mC-Welt. Afang als typischer Arduino-Frickler, Stütz-
oder Abblock-Kondensatoren gab es nicht, alle Bauteile, die nicht auf
ein Steckbrett passen, verwendet man nicht etc. Nach und nach wird einem
allerdings der goldene Arduino-Käfig ein wenig zu eng und man bricht
nach und nach aus. Ich hab zuerst boards gebastelt, wo ich einen kleinen
Arduino Pro Mini sozusagen als CPU aufsteckte, irgendwann dann bin ich
zu den Tinys gewechselt, auf SMD umgestiegen etc etc etc... die
Programmierung wurde gleichermaßen unabhängiger von der Arduino-IDE und
den Bibliotheken. Inzwischen nehm ich auch mal nen STM32 oder einen
anderen ARM und die Bibliotheken benutz ich fast nur noch zum abkucken,
wie bestimmte Dinge angesteuert werden, wenn ich nicht selber draufkomm
oder im Netz nix zu finden ist.
Auch die Arduino-Hersteller wollen nicht, dass man ausschließlich die
Arduino-Tools benutzt, wie zahlreiche Artikel zeigen. Gerade die oben
diskutierte Portmanipulation wird unter Anderem in der Referenz erklärt.
http://arduino.cc/en/Reference/PortManipulation
Auch werden dinge wie Bit Shifting etc behandelt
http://arduino.cc/de/Reference/Bitshift
- man muss es nur lernen wollen.
Niemand verbietet dir, auf den ganzen Setup() und loop() zu verzichten
und direkt plain-C zu schreiben. Niemand verbietet es dir mitten im
"Loop" plötzlich ein "PORTB |= ( 1 << PB0 );" anstatt eines
"DigitalWrite(PortPin, State)" zu benutzen.
Ich bin der Meinung, dass der Arduino eine schöne Möglichkeit bietet in
die Microcontrollerwelt einzusteigen - ob man sich dann zwangsweise auf
immer und ewig ausschließlich mit dem Arduino auseinanderstzen will oder
weiterzieht bleibt jedem selbst überlassen. Gezwungen wird man
allerdings nicht.
Hallo,
ich habe jetzt hier nicht alles gelesen, trotzdem mein Senf:
Die ganzen Dinge wie Arduino, BASCOM usw. erscheinen ja alle schön
einfach, da doch gleich "alles" mitgeliefert wird und alles aufeinander
abgestimmt zu sein scheint, aber was ist, wenn doch mal irgend etwas
nicht zusammenpasst oder nicht so geht wie gedacht?
Genau das ist nämlich der Punkt. Man kann immer weniger wiederverwenden
- auch beim erlernten Wissen. Da kommt ein <irgendwas> nach dem nächsten
auf dem Markt. Erst C-Control, dann BASCOM, dann Arduino und nun auch
noch PSHDL. Über VBScript, Javascript usw. braucht man gar nicht erst
reden. Man kommt einfach nicht hinterher. Da will man nur mal die
Firmware eines 3D-Druckers aktualisieren und muss daher gleich die ganze
Arduino-Grütze installieren, irgendwelche Zusatzpaket zusammenkopieren
(Sanguino), herumkonfigurieren und schon wieder ist viel Zeit verloren.
Das Gleiche ist dann irgendwie immer ein wenig anders und nach einem
Update funktioniert wieder was nicht.
Ich wäre dafür mal einen Standard richtig gut zu machen, anstatt immer
was neues auszuprobieren.
Marcus W. schrieb:> Ich bin der Meinung, dass der Arduino eine schöne Möglichkeit bietet in> die Microcontrollerwelt einzusteigen - ob man sich dann zwangsweise auf> immer und ewig ausschließlich mit dem Arduino auseinanderstzen will oder> weiterzieht bleibt jedem selbst überlassen. Gezwungen wird man> allerdings nicht.
Natürlich nicht. Du kannst dich auch zeitlebens auf dem Kompost wälzen.
Niemand zwingt dich aufzustehen und dich mal zu duschen. Bleibt jedem
selbst überlassen. Manno mann das sind Weisheiten...
Aber ehrlich gesag, NEIN, ich bin doch gegen einen Flamewar. Vor allem
heute. Für mich ist Montag und ich hab nur sehr wenig Blut im Kaffee,
Schlafrythmus von den 2 Wochen Urlaub total zerstört. Neee, ein andermal
vielleicht. Grmpf
cyblord ---- schrieb:> Marcus W. schrieb:>>> Ich bin der Meinung, dass der Arduino eine schöne Möglichkeit bietet in>> die Microcontrollerwelt einzusteigen - ob man sich dann zwangsweise auf>> immer und ewig ausschließlich mit dem Arduino auseinanderstzen will oder>> weiterzieht bleibt jedem selbst überlassen. Gezwungen wird man>> allerdings nicht.>> Natürlich nicht.
Vor allen Dingen, weil es zu nichts führt.
Derartige Diskussionen gibt es und gab es schon immer, wenn auch mit
unterschiedlichen Themen.
Ich erinnere mich zb gerne daran, dass Datenbank-Design vor 30 Jahren
etwas war, was man lernen musste. Ganze Uni-Vorlesungen drehten sich
darum, wie man Datenbanken aufbaut, was Normalformen sind etc. Dann kam
Access auf den Markt und die Datenbankanwendungen schossen wie Pilze
nach einem warmen Regen aus dem Boden. Jeder der wollte, fühlte sich
berufen eine Datenbank zu 'bauen', egal ob er was davon verstand oder
nicht. Es ging ja auch so schön einfach - ein bischen zusammenklicken
und fertig war die Sache. Und genau so sahen die DBs dann auch aus. Das
Geheul, warum bestimmte Dinge fehlerhaft funktionierten, war zwar gross,
dafür war das Einsehen, dass das fehlerhafte Design eine
Weiterentwicklung behindert und man das alles im Grunde neu, diesmal
aber richtig, machen müsse, das war klein.
So, jetzt halt ich mich aber wirklich im weiteren hier raus, denn wie
gesagt: es führt zu nichts.
Karl Heinz schrieb:> Ich erinnere mich zb gerne daran, dass Datenbank-Design vor 30 Jahren> etwas war, was man lernen musste. Ganze Uni-Vorlesungen drehten sich> darum, wie man Datenbanken aufbaut, was Normalformen sind etc.
Ist heute zum Glück nicht anders. Datenbanken I und II würde ich nicht
mehr missen wollen. Waren mit die besten Vorlesungen im Studium.
> So, jetzt halt ich mich aber wirklich im weiteren hier raus, denn wie> gesagt: es führt zu nichts.
Mach ich auch so.
Mark Brandis schrieb:> Woher kommt dann dein Gelästere in diesem Thread, wo du dich doch so> erfolgreich heraushältst ;-)
Jugendlicher Eifer. cyblord tut zwar immer so, als sei er ein alter
Hase, ist er aber nicht. Ist leicht zu googeln...
>Fakt ist: Viele "Arduino-Jünger" haben keinen Plan und keine Lust etwas>zu lernen.
Arduino ist nicht für Leute gemacht, die etwas lernen wollen, sondern
für die, die etwas kreiren wollen.
Achim_42 schrieb:> Arduino ist nicht für Leute gemacht, die etwas lernen wollen, sondern> für die, die etwas kreiren wollen.
"Constant repetition does not make a valid argument."
Von der Arduino-Seite:
"Arduino is an open-source electronics prototyping platform based on
flexible, easy-to-use hardware and software. It's intended for artists,
designers, hobbyists and anyone interested in creating interactive
objects or environments."
Was stimmt ist: Arduino ist nicht gedacht fuer elitaere Dorks.
Vielleicht wollen nicht alle etwas tiefgehenderes über Elektronik
lernen, die mit Arduinos etwas basteln, aber die Plattform ermöglicht
es, denn sie basiert vollständig auf Standardkomponenten und skaliert
sehr gut. Das kommt bei anderen ähnlichen Plattformen (PICAXE u.ä.)
nicht so unbedingt hin.
>Jugendlicher Eifer. cyblord tut zwar immer so, als sei er ein alter>Hase, ist er aber nicht. Ist leicht zu googeln...
Das brauche ich nicht zu googeln. Aus seinen Postings sieht man leicht,
dass er noch in die Kategorie 2 fällt:
> Meiner Erfahrung nach verhält es ich so:>"Anfänger ==> Arduino> Möchtegern Fortgeschrittener ==> ausschließlich MC> Profi ==> Nimmt das passende Werkzeug zur passenden Aufgabe. Für> Aufgaben, die sich mit einem Arduino schnell Lösen lassen, auch einen> Arduino"
Achim_42 schrieb:>>Fakt ist: Viele "Arduino-Jünger" haben keinen Plan und keine Lust etwas>>zu lernen.> Arduino ist nicht für Leute gemacht, die etwas lernen wollen, sondern> für die, die etwas kreiren wollen.
Danke, damit triffst du exakt meine Ansicht.
Ich bin nur ein harmloser Hobby-Bastler.
Ich will kein versierter C-Programmierer werden.
Ich will kein Experte für µController werden.
Ich freue mich wenn meine kleinen Projekte (autom. Blumengießmaschine,
blinkende LEDs am Weihnachtsbaum usw.) funktionieren.
Wenn es mal nicht funktioniert, dann will ich hier nachfragen dürfen.
Ohne das man mir unterstellt lernunwillig zu sein.
Karl Heinz schrieb:> In meinen Augen liegt das Problem eindeutig weder bei der Hardware, noch> bei der Entwicklungsumgebung sondern eindeutig in der 'Ich bin so gut,> ich brauch das nicht lernen' Attitüde der Programmierer.
chapeau!
du hast es auf den punkt gebracht.
ich möchte möchte es nur um die position
"ich weiss alles."
"ich kann alles."
"nur was/wie ich tue ist richtig."
"ich mache keine fehler."
ergänzen.
ich nutze für kleinere aufgaben die arduino hardware mit geringen
modifikationen im industriellen umfeld.
das rad wurde schon erfunden. es neu zu erfinden macht es eckiger... :-)
Michael schrieb:> Danke, damit triffst du exakt meine Ansicht.>> Ich bin nur ein harmloser Hobby-Bastler.> Ich will kein versierter C-Programmierer werden.> Ich will kein Experte für µController werden.>> Ich freue mich wenn meine kleinen Projekte (autom. Blumengießmaschine,> blinkende LEDs am Weihnachtsbaum usw.) funktionieren.>> Wenn es mal nicht funktioniert, dann will ich hier nachfragen dürfen.> Ohne das man mir unterstellt lernunwillig zu sein.
Meine auch.☺
Michael schrieb:> Ich freue mich wenn meine kleinen Projekte ... funktionieren.
Genau DAS ist der Punkt.
Verstehe das mal richtig: Es gibt ziemlich große Unterschiede zwischen
Bastlern, Programmierern und Entwicklern.
Bastler freuen sich eben darüber, daß ihr Bastel-Aufbau bzw. ihre
Brettschaltung oder eben ihr Arduino funktioniert und sie haben
keinerlei Ambition, daraus ein echtes Gerät zu bauen.
Programmierer leben mit möglichst großem Abstand zu Hardware jeglicher
Art, worunter bei manchen sogar die konkrete Architektur des verwendeten
Systems gehört. Programmierer haben einen Angstsatz: "Hardware lebt -
und sie ist böse."
Entwickler sind Leute, die Geräte, Maschinen und Anlagen entwickeln und
das ganze Programmieren ist nur ein Teilaspekt vom Ganzen, entsprechend
distanziert ist deren Standpunkt zu Programmiersprachen aller Art - was
einerseits mit einem größeren geistigen Horizont und andererseits mit
weniger Detailwissen verbunden ist.
Ein Programmierer kann z.B. die Vorrangregeln von C aus dem Stegreif
herbeten, einem Entwickler ist das schnurz und er verwendet stattdessen
Klammern und ein Bastler - speziell Arduino-Bastler - weiß nichts von
dem und will es wohl auch nicht, stattdessen fordert es funktionierende
Hardware- und Software-Blöcke, die es gefälligst regeln sollen.
Tja - und Leute aus all diesen unterschiedlichen Guppen treffen hier
aufeinander und jeder schimpft den anderen einen Blödian, weil er anders
ist als man selber. Klaro?
W.S.
>ich nutze für kleinere aufgaben die arduino hardware mit geringen>modifikationen im industriellen umfeld.>das rad wurde schon erfunden. es neu zu erfinden macht es eckiger... :-)
Ich habe mir sagen lassen, dass selbst in Firmen wie Bosch mittlerweile
Arduinos für das schnelle Prototyping bestimmter Anwendungen verwendet
wird.
Da fällt mir ein schöner Vergleich ein:
Nur weil jedes Kind Fussball spielen kann, ist nich jeder der Fussball
spielt ein Kind.
Der ein oder andere "Leistungssportler" ist schon auch dabei. Der
Unterschied ist "wie man etwas tut".
Franz schrieb:> Da fällt mir ein schöner Vergleich ein:>> Nur weil jedes Kind Fussball spielen kann, ist nich jeder der Fussball> spielt ein Kind.> Der ein oder andere "Leistungssportler" ist schon auch dabei. Der> Unterschied ist "wie man etwas tut".
richtig.
Aber wenn man eine Radtour durch die Provonce machen will, dann muss man
Mindestfertigkeiten im Radfahren mitbringen. Wer sich nur mit
Stützrädern in der Halbwegs-Senkrechten halten kann, ist da fehl am
Platze. Das hat nichts damit zu tun, dass es auch Profis gibt, die im
Jahr 15000km am Rad sitzen. Ohne gewisse Mindest-Kentnisse und
Fertigkeiten geht es eben nicht. Und die sollte man haben, BEVOR man ein
Projekt angeht. Das nennt man dann: Grundlagen lernen. Das, genau das,
ist das, was immer wieder bekrittelt wird. Da geht es noch lange nicht
darum, Profi werden zu müssen. Das jemand auf Anhieb einen dynamisch
allokierten balanzierten Binärbaum nicht hinkriegt, schenke ich jedem
hier. Aber was ein Cast ist, und wann und warum man ihn manchmal
einsetzt, das sind Grundlagen. Oder wie man Funktionen schreibt, wie
Argument Passing funktioniert, Arrays, Strukturen, etc.
Franz schrieb:>>ich nutze für kleinere aufgaben die arduino hardware mit geringen>>modifikationen im industriellen umfeld.>>das rad wurde schon erfunden. es neu zu erfinden macht es eckiger... :-)>> Ich habe mir sagen lassen, dass selbst in Firmen wie Bosch mittlerweile> Arduinos für das schnelle Prototyping bestimmter Anwendungen verwendet> wird.>
Bosch stöhnt ja auch über Fachkräftemangel, die haben keinen der eine
kostenoptimierte und ressourcenschonende Platform entwickelt so dass man
gezwungen ist auf automotivungeeigneten Kinderkram zurück zu greifen.
MfG,
Franz schrieb:>>ich nutze für kleinere aufgaben die arduino hardware mit geringen>>modifikationen im industriellen umfeld.>>das rad wurde schon erfunden. es neu zu erfinden macht es eckiger... :-)>> Ich habe mir sagen lassen, dass selbst in Firmen wie Bosch mittlerweile> Arduinos für das schnelle Prototyping bestimmter Anwendungen verwendet> wird.
Wenn die Komponente dann beim Siemens ICE verwendet wird, dann
verwundern einen die 1sek Bremsverzögerung nimmer lol
>> .. für das schnelle Prototyping bestimmter Anwendungen verwendet> auf automotivungeeigneten Kinderkram zurück zu greifen.
So ein Quatsch.
Ein komplexes automotives Steuergerät hat oft sehr viele Sensoren mit
PWM oder Impulsschnittstellen. Ob's jetzt in der Vorentwicklung, bei
einer Umwelterprobung, EMV oder während Softwaretest ist: Oft muss man
Signale wie 10% PWM und 90% PWM abwechselnd im 10 sek. Takt erzeugen.
Da kann ich mir schon vorstellen, dass man so nen Testgenerator mit nem
Arduino in 10 Minuten und 10 Zeilen Code schreibt. Problem gelöst. Hier
redet niemand davon dass man nen Arduino in's Design einplant.
Ein Arduino-Klon kostet beim Chinamann 9€ inkl.Versand. Zum ersten
Runspielen ist das doch völlig in Ordnung. Wenn man keinen Bock hat,
sich in die Materie einzuarbeiten, holt man sich hier ein paar Klatschen
für seine blöden Fragen ab und nach einem halben Jahr liegt das Ding in
der Ecke. Vielleicht kriegt man im "Markt" auch noch ein paar Euro
dafür. Hat man jedoch Blut geleckt, wird man zum Arduino-Spezi oder man
schmeisst irgendwann das Arduino-Geraffel runter, kauft sich einen ISP
und programmiert "richtig". Das Board ist OK. 328P in Grundschaltung,
USB- Anschluss, alle Anschlüsse auf Buchsenleise rausgeführt - was will
man mehr? Einfach positiv sehen.
mfg.
quod erat demonstrandum! (was zu beweisen war)
Fpga Kuechle schrieb:> Bosch stöhnt ja auch über Fachkräftemangel, die haben keinen der eine> kostenoptimierte und ressourcenschonende Platform entwickelt so dass man> gezwungen ist auf automotivungeeigneten Kinderkram zurück zu greifen.
"keiner hat die absicht eine mauer zu bauen" (walter ulbricht ca. 1962)
werkzeuge sind hilfsmittel. um einen nagel ein zu schlagen benutze ich
einen hebel mit einer ausgeformeten masse (hammer) und kein momenten-
und beschleunigungs-gesteuerten servo-geregelt highspeed servoantrieb
;-)
das würde ich mir für den spezifischen einsatzfall vorbehalten!
eine übertriebene technologie fixiertheit ist genauso so schlimm wie
ignoranz.
Martin Wende schrieb:> Wenn die Komponente dann beim Siemens ICE verwendet wird, dann> verwundern einen die 1sek Bremsverzögerung nimmer lol
trifft das gleiche wie oben zu.
ich finde in der szene immer wieder pfiffige denkansätze im gengensatz
zu eingefahrenen denkschematas.
ist schon traurig, das sich profesionelle kräfte durch das reizwort
arduino in konkurenz versetzt fühlen.
erinnert mich sehr stark an die mitte der '70 als ich einen der ersten
4-bit prozessoren als alternative zu einem mechanischen hengstler-zähler
eingesetzt habe.
ihr erfüllt meine "phrasen-drescher" punkte. danke!
>>Ein Beispiel.>>Um einen Portpin zu schalten, genügt in der 'klassischen' Programmierung >>ein>>>> PORTB |= ( 1 << PB0 );>>>> der verbraucht 1 (oder waren es 2?) Taktzyklen.>>>>Die Arduino Variante>>>> digitalWrite( Ausgangsnummer, HIGH );>>>>verbraucht ein Vielfaches davon. Aus dem Gedächtnis heraus waren es so>>um die 150 Taktzyklen.
Stimmt! Aber nichts (ausser Unkenntnis) hindert der
Arduino-Programmierer daran, direkt in den Arduino Code ein lockeres
#define PB0 0
...
PORTB |= ( 1 << PB0 );
...
einzustreuen.
Das erzeugt dann genau einen AVR-Befehl und der braucht zwei Takte:
sbi 0x05, 0
Kann dein Compiler das besser ?
MfG Willi
Ach Leuts, das ist mal wieder Äpfel mit Birnen vergleichen.
Nehmen wir mal statt Arduino z.B. LEGO-Mindstorm, das kann man entweder
mit der grafischen Oberfläche zusammenklicken oder sich ein C-Derivat
besorgen und damit programmieren.
Die grafische Programmierung ist für die "Kinder" gedacht die dieses
"Spielzeug" schnell und ohne sich mit Informatik/Programmierung
auseinander setzen zu müssen benutzen wollen.
Ergo klickt sich "Kind" seinen Ablauf in einem Plan zusammen und schon
fährt sein "Roboter" gegen die Wand.
Im C-Derivat schreibt man dafür seine eigenen Routinen und der "Roboter"
macht dasselbe, nur muß man nun wissen wie der Eingang für den Taster
abgefragt wird und wie man den Motor regelt.
Das ist genau das gleiche mit Arduino&Konsorten man hat
Basisbibliotheken die einem viel Arbeit abnehmen und auch für
Betriebssicherheit sorgen, z.B. wie schon erwähnt das PINs die mehrfache
Verwendung haben berücksichtigt werden.
Jeder der schonmal selber eine Bibliothek erstellt hat und sicher sein
wollte das es niemals knallt weiß wieviel Hirnschmalz und notwendige
Codezeilen darin stecken.
Wer schnell zu einem funktionierendem Ergebnis kommen will nimmt das was
er am schnellsten erlenen kann, ob ich da nun 15000 Takte "verschenke"
bleibt isch gleich, wenn ich meine LED passend zum POTI/Musik/Grinsen
gedimmt haben will.
Und das geht mit Arduino nunmal recht einfach und der Code läßt sich
auch auf andere Boards schnell anpassen.
Wenn man nun allerdings eine Abtastrate von XYZ-MHz braucht und die dann
via DDS auf'm Oszi ausgeben muß, tja dann kann man zwar das eine oder
andere Arduino Board in Erwägung ziehen, sollte aber lieber direkt ohne
Bibliotheken arbeiten :-P
Und preislich gibt sich das auch kaum was, ob 20,- für ein Arduino oder
5,- für USB-Progger und 15,- für Breadboard, µC und Hühnerfutter ist
schnuppe.
Es kommt halt darauf an was man will, entweder schnell LED blinken und
dimmen, oder erstmal in die Elektronik einsteigen bevor man dann merkt
das programmieren nicht so trivial ist wie's im Fernsehen dargestellt
wird :-P
So und nu Schicht im Schacht :-P
kopfkratzer schrieb:> das programmieren nicht so trivial ist wie's im Fernsehen dargestellt> wird
Klar ist es das:
http://hackertyper.com/
Protip, im Cafe mit Wlan auf Fullscreen laufen lassen und wie bekloppt
tippen, dann plötzlich das Notebook zuschlagen, irgendwas fluchen und
flüchten.
Martin Wende schrieb:> Wenn die Komponente dann beim Siemens ICE verwendet wird, dann> verwundern einen die 1sek Bremsverzögerung nimmer *lol*
Das Arduino-ICE-Shield? ;)
Martin Wende schrieb:
> Wenn die Komponente dann beim Siemens ICE verwendet wird, dann> verwundern einen die 1sek Bremsverzögerung nimmer *lol*
Wenn Siemens den Arduino eingesetzt hätte, wäre es nicht zu den
jahrelangen Verzögerungen beim ICE3 gekommen lol
Hallo Karl Heinz,
Karl Heinz schrieb:> Aber wenn man eine Radtour durch die Provonce machen will, dann muss man> Mindestfertigkeiten im Radfahren mitbringen. Wer sich nur mit> Stützrädern in der Halbwegs-Senkrechten halten kann, ist da fehl am> Platze.
Nein, warum? Mit Stützrädern dauert es halt länger. Und was der Profi
gerne vergißt: auch er hat mal mit Stützrädern angefangen.
Manchmal glaube ich, die "Profis" sind nur deshalb so bissig, um ihr
mühsam angeeignetes Herrschaftswissen zu verteidigen. Wenn man sich
jahrelang mit den Feinheiten von Assembler oder C herumgeschlagen hat,
für den erscheint es wie ein Frevel, daß da jemand etwas Ähnliches
anstellen kann ohne diesen ganzen Aufwand betreiben zu müssen. Das
entwertet gewissermaßen die eigene Wissensinvestition und die eigenen
Anstrengungen, und da reagieren manche Leute eben ziemlich zickig.
Beste Grüße,
Karl
Karl Käfer schrieb:> Karl Heinz schrieb:>> Aber wenn man eine Radtour durch die Provonce machen will, dann muss man>> Mindestfertigkeiten im Radfahren mitbringen. Wer sich nur mit>> Stützrädern in der Halbwegs-Senkrechten halten kann, ist da fehl am>> Platze.>> Nein, warum? Mit Stützrädern dauert es halt länger.
Ja, klar. Weil das Sinn macht.
> Und was der Profi> gerne vergißt: auch er hat mal mit Stützrädern angefangen.
Keiner vergisst das. Der UNterschied ist nur, das wir nicht bei
Stützräder stehen geblieben sind, bzw. uns damit zufrieden gegeben haben
so ach und krach damit einmal rund ums Haus rollen zu können, wenn die
Mami anschiebt.
> Manchmal glaube ich, die "Profis" sind nur deshalb so bissig, um ihr> mühsam angeeignetes Herrschaftswissen zu verteidigen.
Weisst du was.
Du hast keine Ahnung, was man als Profi zusätzlich noch alles lernen
muss und beherrschen muss.
Das ganze ist sowas von lächerlich. Du denkst wirklich, das bischen
Achtelwissen, das hier regelmässig vorgewiesen wird, ist der Punkt an
dem Amateuer aufhört und Profi anfängt? Dann will ich dir mal was sagen.
Das bischen Achtelwissen ist noch nicht einmal das, was in Relation
einen Schulanfänger von einem Gymnasiums-Abiturenten wissensmässig
unterscheidet. Das was du als "das reicht mir, ich will ja kein Profi
werden" bezeichnest, das ist gerade mal Krabbelstube und Puzzle mit 5
Teilen lösen können.
Wenn dir das reicht, dann gut. Aber dann jammere nicht herum, wenn dir
der Klempnermeister sagt, dass dein Reperaturversuch Murks war, weil man
als Klempner schon ein bischen mehr können muss, als nur mit einem
Hammer auf Rohre eindreschen und das das einzige ist, was du beherrscht.
Denn "Ich will ja kein Profi-Klempner werden"
Nur um da mal die Verhältnisse ins rechte Licht zu rücken.
Man ist nun mal kein Schach-Amateur oder Hobby-Spieler, wenn man von 3/4
der Figuren nicht weiß, wie sie ziehen können. Von diesem Level bis zum
internationalen Meister, der vom Schachspielen leben kann, ist es aber
noch ein weiter Weg.
Karl Käfer schrieb:> Manchmal glaube ich, die "Profis" sind nur deshalb so bissig, um ihr> mühsam angeeignetes Herrschaftswissen zu verteidigen.
Dann gäbe es dieses Forum nicht.
>Nein, warum? Mit Stützrädern dauert es halt länger. Und was der Profi>gerne vergißt: auch er hat mal mit Stützrädern angefangen.
Meines Wissens nach lernen Kinder, die keine Stützräder haben sehr viel
schneller richtig Radfahren und sind motorisch geschickter.
Die Kinder entwickeln mit Stützrädern garkein richtiges Gefühl für
Gleichgewicht auf dem Fahrrad und müssen dann nochmal richtig Radfahren
lernen, während die anderen Kinder ohne Stützräder vielleicht ein paar
mal umgekippt sind aber im gleichen Alter schon ohne Probleme radeln.
Die Analogie überlasse ich dem Leser ..
Jörg Wunsch schrieb:> Karl Käfer schrieb:>> Manchmal glaube ich, die "Profis" sind nur deshalb so bissig, um ihr>> mühsam angeeignetes Herrschaftswissen zu verteidigen.>> Dann gäbe es dieses Forum nicht.
Bei manchen Beiträgen, speziell relativ defätistischen, oder
persönlichen Angriffen auf Leute, die hier Hilfe suchen, drängt sich
einem dieser Eindruck aber durchaus gelegentlich auf.
Ich verdiene seit über 20 Jahren meine Brötchen mit Softwareentwicklung,
Trotzdem passiert es auch mir auch hin und wieder noch mal, daß ich bei
der Einarbeitung in Technologien, die mir neu sind, "dumme" Fragen
stelle, weil ich einfach noch nicht genug darüber weiß, um die richtigen
Suchbegriffe zu kennen.
Matthias H. schrieb:> der Einarbeitung in Technologien, die mir neu sind, "dumme" Fragen> stelle, weil ich einfach noch nicht genug darüber weiß, um die richtigen> Suchbegriffe zu kennen.
Das merkt man aber sehr schnell, ob jemanden einfach nur ein Patzer
passiert ist, der uns allen mal passiert oder ob da mehr (eigentlich
weniger) dahinter steckt.
Ich schreib gelegentlich auch einen Haufen Unsinn und verrenn mich schon
mal in die falsche Richtung. Ja, passiert.
k. affe schrieb:> Arduino ist halt ein bisschen wie das "Apple" der Mikrocontroller. Unter> Künstlern der Einfachheit sehr beliebt und bei den Technikern eher> unbeliebt.
Das stimmt eigentlich überhaupt nicht, es sei denn, sie sind aus für
mich nicht nachvollziehbaren Gründen Windows-Fans oder bevorzugen Linux
o. ä., das zum Teil, je nachdem, was für Hardware man hat und
Anwendungssoftware man braucht, eher rustikal anmutet. Siehe z. B.
Apple-Quote beim Chaos Communication Congress und ähnlichen eher
"technischen" Events (allerdings z. T. mit Linux).
Ich würde eher sagen, Windows ist für Leute, die Spaß am Computerspielen
haben und Apple ist für Leute, die den Computer zum Arbeiten brauchen.
Übrigens gibt es für Apple die meiste Software aus der UNIX/Linux-Welt
portiert.
Für viele normale Benutzer, die keine "Power-User" oder Entwickler sind,
ist es aber sowieso egal, weil sie E-Mail, einen Webbrowser und ein
Büroprogramm brauchen, vielleicht noch eine Branchenlösung, und es oft
keinen großen Unterschied macht, was man ihnen hinstellt ;-)) . Da
spielt es dann schon eher eine Rolle, ob sie Software brauchen, die nur
für bestimmte Plattformen (meist Windows) verfügbar ist.
Karl Heinz schrieb:> Du hast keine Ahnung, was man als Profi zusätzlich noch alles lernen> muss und beherrschen muss.> Das ganze ist sowas von lächerlich. Du denkst wirklich, das bischen> Achtelwissen, das hier regelmässig vorgewiesen wird, ist der Punkt an> dem Amateuer aufhört und Profi anfängt? Dann will ich dir mal was sagen.> Das bischen Achtelwissen ist noch nicht einmal das, was in Relation> einen Schulanfänger von einem Gymnasiums-Abiturenten wissensmässig> unterscheidet.
Das kenne ich irgendwoher :-)
Beliebter Satz, den ich bei meinen Produkten auch immer wieder höre bzw.
gehört habe: "Och, das hätte(n) ich/wir auch gekonnt!"
Und dieser Satz kommt leider nicht nur von Laien (denen sieht man es
nach, dass sie die Anzahl/Schwierigkeitsgrade der Probleme nicht
übersehen) sondern auch von MINTlern .-/
Mittlerweile lächle ich da nur noch freundlich und sage: "Nur zu!"
Der Satz, der sich mir im Studium am tiefsten eingebrannt hat, war der
eines alten Profs kurz vor dem Ruhestand, den er in einem Praktikum
sagte:
"Meine Herren, ein gelöstes Problem ist immer einfach."
Dieser Satz fasst sehr schön zusammen, dass man kein Problem
unterschätzen sollte und dass man diejenigen und deren Arbeit
respektieren sollte, die es lösen.
Beides ist selbst bei einigen Leuten, die in der Materie stecken,
oftmals nicht gegeben.
Jörg Wunsch schrieb:> Dann gäbe es dieses Forum nicht.
95% von dem, was hier im Forum an "Wissen" geteilt wird, geht kaum ueber
Arduino-Niveau hinaus. Egal ob mit und auf Arduino-Basis, Breadboard
oder selbst gemachten Platinen. Wenn es wirklich mal um Komplexeres
geht, zerstreiten sich die Profis binnen kuerzester Zeit hoffnungslos
ueber Details, so dass am Ende keinerlei Ergebnis heraus kommt. Es gibt
ein paar wenige Ausnahmen, wo dieses Forum wirklich produktiv war, wie
die Wortuhr oder die Tutorials (auch wenn die etwas gammelig sind). Aber
das ist die Leistung weniger. Von dem auch von Karl-Heinz gerade so hoch
gehobenen Expertenwissen zeigt sich hier sonst wenig. Tut mir Leid, aber
vergleicht man die Bilanz von Arduino-Welt und Mikrocontroller.net-Welt,
steht es klar 10:1 fuer Arduino. Vielleicht ist es das, was hier viele
so nervt. Statt zu staenkern, sollten Protagonisten wie cyblord mal
etwas von ihrer Brillianz in bessere Bibliotheken und Tools fliessen
lassen. Von hoher Codequalitaet nicht nur reden, sondern sie auch
zeigen. Du musst dich dabei nicht angesprochen fuehlen, deine Taten sind
bekannt und was du erreicht hast, kann sich mehr als sehen lassen.
k. affe schrieb:> Arduino ist halt ein bisschen wie das "Apple" der Mikrocontroller.> Unter> Künstlern der Einfachheit sehr beliebt und bei den Technikern eher> unbeliebt.
das trifft des Pudels Kern
kuebellord schrieb:> Von dem auch von Karl-Heinz gerade so hoch> gehobenen Expertenwissen zeigt sich hier sonst wenig. Tut mir Leid, aber> vergleicht man die Bilanz von Arduino-Welt und Mikrocontroller.net-Welt,> steht es klar 10:1 fuer Arduino. Vielleicht ist es das, was hier viele> so nervt. Statt zu staenkern, sollten Protagonisten wie cyblord mal> etwas von ihrer Brillianz in bessere Bibliotheken und Tools fliessen> lassen. Von hoher Codequalitaet nicht nur reden, sondern sie auch> zeigen.
???
Schau mal nach oben. da hat karl heinz sein Expertenwissen bezüglich
der schlechten Arduino-Performance klar dargestellt. Mit messwerten;
Arduino: 150 takte, C-Code: 2 takte
Es ist an Dir die Konsequenzen zu ziehen.
MfG
> Wenn ich den Arduino ausgereizt habe, kommt uno32. Dies ist mir bis> jetzt zweimal passiert.
Wenn ich meinen 2 fach Toaster mal ausgereizt habe, dann kaufe ich mir
einen 4 Fach. Natürlich muss ich mich da erst reinfinden, aber ich denke
durch den bisherigen 2 fach Toaster komme ich damit recht schnell klar.
>bezüglich>der schlechten Arduino-Performance klar dargestellt. Mit messwerten;>Arduino: 150 takte, C-Code: 2 takte
Aurduino ist auch der GNU C-Compiler. Nur dass man zusätzlich eine Lib
hat, die einem viel abnimmt. Beim Arduino kann man es so schreiben:
1
digitalWrite(LED_ROT,HIGH);// Das braucht recht viele Takte.
... oder auch so:
1
PORTB|=(1<<LED_ROT);// Das ist schneller, sieht für einen Anfänger aber komischer aus. Einfach zu viele Smilies in einer Zeile.
Vielleicht fehlt einfach nur ein digitalFastWrite(LED_ROT, HIGH); in der
Lib ,und der Weltfrieden wäre wieder hergestellt.
Matthias H. schrieb:> k. affe schrieb:>> Arduino ist halt ein bisschen wie das "Apple" der Mikrocontroller. Unter>> Künstlern der Einfachheit sehr beliebt und bei den Technikern eher>> unbeliebt.>> Das stimmt eigentlich überhaupt nicht, es sei denn, sie sind aus für> mich nicht nachvollziehbaren Gründen Windows-Fans oder bevorzugen Linux> o. ä., das zum Teil, je nachdem, was für Hardware man hat und> Anwendungssoftware man braucht, eher rustikal anmutet. Siehe z. B.> Apple-Quote beim Chaos Communication Congress und ähnlichen eher> "technischen" Events (allerdings z. T. mit Linux).> Ich würde eher sagen, Windows ist für Leute, die Spaß am Computerspielen> haben und Apple ist für Leute, die den Computer zum Arbeiten brauchen.> Übrigens gibt es für Apple die meiste Software aus der UNIX/Linux-Welt> portiert.>> Für viele normale Benutzer, die keine "Power-User" oder Entwickler sind,> ist es aber sowieso egal, weil sie E-Mail, einen Webbrowser und ein> Büroprogramm brauchen, vielleicht noch eine Branchenlösung, und es oft> keinen großen Unterschied macht, was man ihnen hinstellt ;-)) . Da> spielt es dann schon eher eine Rolle, ob sie Software brauchen, die nur> für bestimmte Plattformen (meist Windows) verfügbar ist.
Das ist ja auch nur eine Beobachtung von mir, ich find das Apple Zeug ja
auch nicht schlecht, vielleicht etwas zu teuer, aber auf jeden Fall gut
und nur weil es einfach zu handhaben ist heißt das ja nicht, dass man
damit keine komplexen Aufgaben bewerkstelligen kann ;-)
Genau das gilt auch für Arduino.
Pönt schrieb:> hat, die einem viel abnimmt. Beim Arduino kann man es so schreiben:
Ja kann man.
Wie zitierte Chris D. weiter oben seinen Professor:
Gelöste Probleme sind immer einfach.
Beim nächsten Arduino-Frager knallst du ihm mal
>
1
>PORTB|=(1<<LED_ROT);// Das ist schneller, sieht für einen Anfänger
um die Ohren und dann schauen wir mal, ob du ihm das verklickert
kriegst.
> Vielleicht fehlt einfach nur ein digitalFastWrite(LED_ROT, HIGH); in der> Lib ,und der Weltfrieden wäre wieder hergestellt.
Vielleicht.
Vielleicht fehlt auch eine Servo-Ansteuerung, die nicht bei 8 Servos den
Arduino mehr oder weniger lahm legt. Vielleicht.
Vielleicht fehlt auch eine ordentliche EEPROM Klasse. Vielleicht.
Das alles ist aber nicht der springende Punkt.
Ein "Experte" kann sich in allen diesen Fällen nämlich problemlos selber
helfen. Der Durchschnitts-Arduino Programmierer, den wir hier im Forum
zu Gesicht bekommen, kann das aber nicht. Und deswegen reagier ich
pampig, wenn wieder mal dieses dämliche "Ich will ja kein Profi werden"
Argument kommt. Das alles hat mit Profi-Tum noch nicht mal ansatzweise
das geringste zu tun. Wer beim Schach von 3/4 der Figuren nicht weiß,
wie sie ziehen können, ist kein Hobby-Spieler und sowohl davon als auch
von einem Profi-Schachspieler, der von seinem Spiel leben kann, noch
meilenweit entfernt.
Das, was hier im Forum den Fragern immer wieder mal gerne nahegelegt
wird, das ist das MINIMUM dessen, was ein Hobby-Programmierer mindestens
können muss um einigermassen sinnvoll arbeiten zu können. Das ist von
dem, was ein Profi als Einstiegslevel mitbringen muss, noch meilenweit
entfernt. Da ist nix mit "Ich will ja kein Profi werden".
KeinerLachtOhneHoden schrieb:>> Wenn ich den Arduino ausgereizt habe, kommt uno32. Dies ist mir> bis>> jetzt zweimal passiert.>> Wenn ich meinen 2 fach Toaster mal ausgereizt habe, dann kaufe ich mir> einen 4 Fach. Natürlich muss ich mich da erst reinfinden, aber ich denke> durch den bisherigen 2 fach Toaster komme ich damit recht schnell klar.
Du kennst anscheined kein uno32.
Krass. Ich habe wohl in ein Wespennest gestoßen :D
Ich habe alle bisherigen Beiträge hier gelesen und mit jedem weiteren
Beitrag verfestigt sich mein Fazit: Manche mögen Arduino gar nicht,
manche sagen kommt darauf an für wen oder was. Und manche andere finden
es toll.
Die verschiedenen Standpunkte müssen nicht auf Teufel komm raus
irgendwie vereint werden.
Also ja, Arduino ist verpönt, zugleich aber auch beliebt.
Hallo Karl Heinz,
Karl Heinz schrieb:> Karl Käfer schrieb:> Keiner vergisst das. Der UNterschied ist nur, das wir nicht bei> Stützräder stehen geblieben sind, bzw. uns damit zufrieden gegeben haben> so ach und krach damit einmal rund ums Haus rollen zu können, wenn die> Mami anschiebt.>>> Manchmal glaube ich, die "Profis" sind nur deshalb so bissig, um ihr>> mühsam angeeignetes Herrschaftswissen zu verteidigen.>> Weisst du was.
Ja, tatsächlich weiß ich was. Nicht so viel, wie ich gern wüßte, obwohl
ich mir andererseits dann auch wieder nicht sicher bin, ob Allwissenheit
wirklich erstrebenswert ist. Aber das ist wohl eine eher philosophische
Frage und vermutlich wenig zielführend. Fakt ist und bleibt: ich weiß
was, und, um genau zu sein, weiß ich sogar eine ganze Menge. Ich weiß
zum Beispiel, daß Du mich vollkommen mißverstanden hast und mich
obendrein gerade mit irgendwem zu verwechseln scheinst. Und ich weiß,
daß Dein kleiner Wutanfall hier völlig unangebracht ist.
> Du hast keine Ahnung, was man als Profi zusätzlich noch alles lernen> muss und beherrschen muss.
Oh, das ist lustig. Zufälligerweise verdiene ich meinen Kaviar seit
vielen Jahren als Entwickler und Architekt im UNIX-Umfeld und habe im
Auftrag meines damaligen Arbeitgebers, einer lächerlichen kleinen
Klitsche namens Sun Microsystems, unter anderem für so unwichtige und
unfähige Läden wie die Deutsche Bank, die hessische Landeszentralbank
und, die US Air Force und die US Navy gearbeitet.
Dabei habe ich die Authentifizierungs- und Autorisierungsarchitektur PAM
mitentwickelt, die heute bei fast allen UNIX-Betriebssystemen Standard
ist, habe an SunOS, Trusted Solaris, zwei OSS-Betriebssystemen sowie
etlichen Serverprogrammen mitgearbeitet, Code zum Kolab-Groupwareserver,
zum Doctrine-ORM und zu PostgreSQL beigetragen und entwickle heute mit
an einer Echtzeitsoftware zur Betrugsprävention, die bei Versicherungen,
Banken und anderen Unternehmen im Kreditkartenbereich im Einsatz ist.
Ob mich das zum Profi macht, das weißt Du natürlich besser als ich. Aber
daß ich Anfängern lieber helfe, statt ihre Unwissenheit böswillig mit
Faulheit zu verwechseln und ihnen diese dann vorzuwerfen: das schmälert
die Ahnung, die ich habe, jedenfalls kein bisschen.
> Das ganze ist sowas von lächerlich. Du denkst wirklich, das bischen> Achtelwissen, das hier regelmässig vorgewiesen wird, ist der Punkt an> dem Amateuer aufhört und Profi anfängt? Dann will ich dir mal was sagen.> Das bischen Achtelwissen ist noch nicht einmal das, was in Relation> einen Schulanfänger von einem Gymnasiums-Abiturenten wissensmässig> unterscheidet. Das was du als "das reicht mir, ich will ja kein Profi> werden" bezeichnest, das ist gerade mal Krabbelstube und Puzzle mit 5> Teilen lösen können.
Verwechselst Du mich gerade mit irgendwem? Was Du mir da unterstellst,
habe ich gar nicht geschrieben.
Beste Grüße,
Karl
k. affe schrieb:> Ich seh hier keinen der Arduino hasst, nur Leute die sich über die> (Mehrheit der) Nutzer davon beschweren.
Dann schaue genauer hin :D
Karl Käfer schrieb:> Aber> daß ich Anfängern lieber helfe, statt ihre Unwissenheit böswillig mit> Faulheit zu verwechseln und ihnen diese dann vorzuwerfen: das schmälert> die Ahnung, die ich habe, jedenfalls kein bisschen.
Eigentlich kennt man Karl Heinz hier dafuer, dass er Anfaengern bis zum
Excess hilft. Weit ueber das Sinnvolle hinaus, oft so sehr, dass zu
bezweifeln ist, dass der Geholfene dabei noch etwas lernt. Dass er sich
nun hier so gegenteilig praesentiert, ist zumindest irritierend, wenn
nicht gar betrueblich. Wohl ein Imagewechsel zum neuen Jahr. :-(
kuebellord schrieb:> 95% von dem, was hier im Forum an "Wissen" geteilt wird, geht kaum ueber> Arduino-Niveau hinaus.
Das sehe ich nicht so (schon deshalb, weil ich weiß, wie oft Karl Heinz
hier schon geduldigst den Leuten Grundlagen erklärt hat, und wie oft
wir schon im HF-Forum geduldigst auseinander genommen haben, warum
der Kemo-"Prüfsender" nicht die Bohne taugt und wie man es ordentlich
machen kann). Aber wenn du das Forum unbedingt so sehen willst, dann
lass deine Brille, durch die du das siehst, ruhig aufgesetzt. Nein,
ich will auch gar nicht wissen, wer dir so ein komisches Nasenfahrrad
verkauft hat, ich brauch das Ding nicht. ;-)
Ich habe jedenfalls auch für mich aus vielen Diskussionen hier
ausreichend
viel Information mitgenommen, und verbuche die Zeit für mich einfach als
Weiterbildung.
Hallo Jörg,
Jörg Wunsch schrieb:> Karl Käfer schrieb:>> Manchmal glaube ich, die "Profis" sind nur deshalb so bissig, um ihr>> mühsam angeeignetes Herrschaftswissen zu verteidigen.>> Dann gäbe es dieses Forum nicht.
Als Ort, wo Könner sich austauschen, vielleicht doch. Das ist ja gerade
das Dilemma: einerseits tauschen sich hier Leute aus, die wirklich was
können, andererseits stellen aber auch Anfänger ihre Fragen.
Für erfahrene E-Techniker, von denen es hier ja etliche gibt, sieht das
alles ganz einfach aus, was die Anfänger da fragen. Aber für die ist es
das nicht, weil da ganz urplötzlich viele Dinge gleichzeitig sind: auf
der einen Seite die Hardware, Stütz- und Abblockkondensatoren, Ohmsches
Gesetz, Maschenregel, Dioden, Transistoren aller Art, ..., und dann die
Software, also eine unbekannte, schwierige Programmiersprache, auf einer
ungewöhnlichen Architektur, und und und. Das sind viele neue Sachen auf
einmal, und keine davon ist einfach.
Dann kommt jemand wie die Arduino-Jungs und vereinfacht ein paar
Aspekte, indem er schonmal eine brauchbare Hardware zusammenbrät, die
Software ein wenig vereinfacht und dem Anfänger so wenigstens schonmal
einen kleinen Erfolg gönnt. Für die Motivation, dranzubleiben, ist das
wichtig, und daran gibt es überhaupt gar nichts zu lästern oder zu
verpönen, das wäre nichts anderes als Standesdünkel.
Liebe Grüße,
Karl
Hallo zong,
zong schrieb:>>Nein, warum? Mit Stützrädern dauert es halt länger. Und was der Profi>>gerne vergißt: auch er hat mal mit Stützrädern angefangen.>> Meines Wissens nach lernen Kinder, die keine Stützräder haben sehr viel> schneller richtig Radfahren und sind motorisch geschickter.> Die Kinder entwickeln mit Stützrädern garkein richtiges Gefühl für> Gleichgewicht auf dem Fahrrad und müssen dann nochmal richtig Radfahren> lernen, während die anderen Kinder ohne Stützräder vielleicht ein paar> mal umgekippt sind aber im gleichen Alter schon ohne Probleme radeln.
Andere stürzen ohne Stützräder so schwer, daß sie danach nie mehr Rad
fahren wollen... oder können.
Beste Grüße,
Karl
Jörg Wunsch schrieb:> Nein,> ich will auch gar nicht wissen, wer dir so ein komisches Nasenfahrrad> verkauft hat, ich brauch das Ding nicht. ;-)
Taste mal ganz vorsichtig, ob auf deiner Nase nicht schon eine Brille
sitzt.
Jörg Wunsch schrieb:> Ich habe jedenfalls auch für mich aus vielen Diskussionen hier> ausreichend> viel Information mitgenommen, und verbuche die Zeit für mich einfach als> Weiterbildung.
So sehe ich das auch. Ich habe hier schon durch einfaches Mitlesen so
viele neue Ideen und gute Lösungen gefunden, dass das Forum für mich und
meine Produkte eine echte Bereicherung/Hilfe darstellt (neulich bspw.
erst wieder die Sache mit dem Dampfphasenlötgerät).
Viele Sachen (die genannten 95%) lese ich auch einfach nicht. Es wird
niemand gezwungen, Dinge zu lesen, die ihn nicht interessieren.
Es gibt in einem Forum mit zunehmender Betriebsdauer naturgemäß immer
mehr Fragen, die schon öfter gestellt wurden (bekannt: "Welches
Oszilloskop soll ich nehmen?". Da liest man dann einfach drüber.
Die restlichen 5% haben es aber in sich und ich habe schon viel Wissen
von Profis erhalten und versuche natürlich auch etwas zurückzugeben.
Dass jemand aus seinem Expertenwissen ein Staatsgeheimnis macht, habe
ich hier nicht erlebt - im Gegenteil. Jeder ist auf irgendeinem Gebiet
Experte, in vielen anderen bestenfalls Fortgeschrittener. Deswegen
tauscht man sich aus.
Außerdem habe ich auf meine Fragen hier immer vernünftige und
hilfreiche Antworten erhalten.
Warum habe ich nie eine pampige Antwort erhalten?
Das könnte daran liegen, dass ich versuche, beim Threadstart schon
möglichst viel Information mitzugeben und auch ganz klar wird: der hat
sich damit schon aus eigenem Antrieb intensiver beschäftigt und kommt
jetzt an dieser Stelle nicht weiter.
Es könnte auch daran liegen, dass ich mir den Text vor dem Absenden ein-
bis zweimal durchlese und mir für die Frage durchaus mal 15 Minuten Zeit
nehme.
Ich habe hier noch nie erlebt, dass bei einer sauber ausgearbeiteten
Fragestellung jemandem der Kopf gewaschen wird.
Das sind immer nur Beiträge gewesen, die entweder hingerotzt (so muss
man es wohl formulieren) wurden oder bei denen es praktisch keine
Information gibt und die Trolle ihre Glaskugeln auspacken oder bei denen
sofort klar wird: der Schreiber hat sich nicht mal ansatzweise selbst
mit der Problemstellung beschäftigt und ist einfach nur faul.
chris_ schrieb:> Dieser Beitrag trifft eigentlich ganz gut den Punkt. Ich vermute,> dass> der Poster sich sehr gut mit Mikrocontrollern auskennt:> Beitrag "Re: Umstieg von Arduino auf "klassische" IC Programmierung"
Welchen Punkt? Dass Arduino was für Leute ist, die mit richtigem C nicht
klar kommen? Kann sein :D
>Welchen Punkt? Dass Arduino was für Leute ist, die mit richtigem C nicht>klar kommen? Kann sein :D
Aus Deiner Antwort entnehme ich, dass Du noch etwas unerfahren auf
diesem Gebiet bist. Hier in diesem Thread wurde ja schon mehrfach
beschrieben, dass die Arduinos in C++ programmiert werden.
Der verlinkte Beitrag des erfahrenen Programmierers zeigt ja gerade,
dass es sich lohnen kann, fertige Libraries zu benützen, statt das Rad
neu zu erfinden.
( Beitrag "Re: Umstieg von Arduino auf "klassische" IC Programmierung"
Für diejenigen, die mit der Verlinkung im Forum noch nicht so zu Rande
kommen: Man kann die Links auf Beiträge innerhalb der Threads setzen )
Hi
>Der verlinkte Beitrag des erfahrenen Programmierers zeigt ja gerade,>dass es sich lohnen kann, fertige Libraries zu benützen, statt das Rad>neu zu erfinden.
Hast du eigentlich deinen verlinkten Beitrag mal richtig gelesen?
Dessen TO schrieb:
>Ich habe davor noch nie mit IC's gearbeitet und meine praktische>Codeerfahrung beschränkte sich auf HTML und VB in der Schule.>Meine>Codekenntnisse beschränkten sich auf HTML Fetzen die von früheren Zeiten>noch hängen geblieben sind und einer Grundidee von VB und vielleicht C.>Aber wirklich nur absolutes Basiswissen in C wie "Was ist eine>Schleife?" etc.>Nein, ich kann kein C. Auch kein C++. Ich hab ab und an mal>reingeschnüffelt aber ich würde nicht sagen, dass ich es beherrsche.
Nichts mit erfahrener Programmierer.
MfG Spess
Hallo Spess,
ist Dein Browser kaputt? Ich komme zu folgendem Post, wenn ich auf den
Link klicke:
Christian E. schrieb:
> Vorweg möchte ich sagen, dass ich wohl etwas tief gestapelt habe.
Mal was zu deinem Psychophänomen 'Gefühl wegen Platzverschwendung auf
MC'.
Ich habe über Weihnachten ein Arduinoprojekt auf einen ATtiny13
angepasst, weil ich davon noch viele rumliegen habe. Da hat mich auch
die Sparmacke getroffen: "Die könnte man noch sinnvoll verwenden, 10
Stck habe ich noch, 10 brauche ich, Pinanz. passt, Programm passt darauf
optmiert evt. gerade noch so rein (SPI in Software abgespeckt nur auf
das was ich brauche) -> ~800 byte insgesamt - puh Glück gehabt!"
Ich wusste vorher schon dass mich das Zeit kosten würde aber dass es
mich nach kurzer Zeit schon dermassen anpissen würde hätte ich auch
nicht erwartet, es wäre billiger gewesen die Dinger einfach wegzuwerfen,
der Aufwand war grösser als das Mock-Up aufm Arduino. Der Port war
eigentlich trivial, reine Codeersetzungen aber trotzdem macht man
Fehler, muss testen, sucht sich nen Wolf im Code (Makrohölle).... Und
wartbar sieht das jetzt alles nicht mehr sonderlich aus, in 1 Monat
verstehe ich den Code garantiert nicht mehr aber die Arduinoprosa sicher
noch nach einem Jahr. Eigentlich totale Zeitverschwendung, das war das
letzte Projekt dieser Art um alten Schrott noch irgendwie sinnvoll
einzusetzen, vorher wandert der Kram in die Tonne, Zeit ist Geld auch
privat.
Spar dir den Aufwand mit 'optimalem' Prozessor der gerade noch passt,
billiger sind die meist eh nicht (mehr), weil sie oft am auslaufen sind
und nur noch für Grossabnehmer produziert werden die darauf angewiesen
sind, die zahlen aber wieder andere Preise,...
Mach das Ding mit einem Arduino (ist ja eh schon fertig), flashe den
Kram später auf einen nackten Proz, fertig ist der Lack. Zeit ist Geld,
s.o.
Bis du mal richtig fit mit nacktem C auf einem MC bist das dauert ne
Weile, du kannst ja nicht mal richtig C geschweige denn C++, da sehe ich
eher die Gefahr dass du gar nicht zum Ziel kommst. Oder such dir
jemanden der den Kram portiert, das wird billiger sein als die Zeit die
du darauf verschwendest, ausser deine Zeit ist absolut nix wert.
Karl Käfer schrieb:> Manchmal glaube ich, die "Profis" sind nur deshalb so bissig, um ihr> mühsam angeeignetes Herrschaftswissen zu verteidigen. Wenn man sich> jahrelang mit den Feinheiten von Assembler oder C herumgeschlagen hat,> für den erscheint es wie ein Frevel, daß da jemand etwas Ähnliches> anstellen kann ohne diesen ganzen Aufwand betreiben zu müssen. Das> entwertet gewissermaßen die eigene Wissensinvestition und die eigenen> Anstrengungen, und da reagieren manche Leute eben ziemlich zickig.
den Eindruck habe ich auch häufig... leider :(
@ Karl Käfer (Gast)
>> Meines Wissens nach lernen Kinder, die keine Stützräder haben sehr viel>> schneller richtig Radfahren und sind motorisch geschickter.>> Die Kinder entwickeln mit Stützrädern garkein richtiges Gefühl für>> Gleichgewicht auf dem Fahrrad und müssen dann nochmal richtig Radfahren>> lernen, während die anderen Kinder ohne Stützräder vielleicht ein paar>> mal umgekippt sind aber im gleichen Alter schon ohne Probleme radeln.>Andere stürzen ohne Stützräder so schwer, daß sie danach nie mehr Rad>fahren wollen... oder können.
Jaja, das Leben ist schon grausam, da lobt man sich die
Vollkaskogesellschaft! Alles in Watte packen und den 3jährigen auf dem
Holzroller immer nur mit Helm und Vollprotektoren spielen lassen.
OMG!
Zum Lernen gehören nun mal auch Negativerfahrungen. Und Gott sei Dank
sind die SEHR selten so dramatisch. Dramatisch ist eher, dass einige
Leute meinen, JEGLICHE Negativerfahrung mit aller Macht vermeiden bzw.
von Kindern/Lernenden fernhalten zu müssen.
Passende Anekdote zum Thema. Ich war mal in Ägypten auf Quad-Tour in der
Wüste. Der Guide ist mit dem Motorad (leichte 250er Crossmaschine)
vorausgefahren. Wie? Mit T-Shirt, kurze Hose und FlipFlops! Ich fragt
ihn, ob das nicht etwas gefährlich sei. Er meinte, dass er dadurch
SICHERER fährt, eben WEIL er weiß, dass er eher vorsichtig fahren MUSS
und dass ein Crash nicht harmlos verläuft. Wenn gleich das sicher KEINE
massentaugliche Weise ist, muss man sagen, dass zuviel Schutzfunktionen
leichtsinnig machen und zuviel Sicherheit vorgaukeln.
Franz schrieb:>>Welchen Punkt? Dass Arduino was für Leute ist, die mit richtigem> C nicht>>klar kommen? Kann sein :D>> Aus Deiner Antwort entnehme ich, dass Du noch etwas unerfahren auf> diesem Gebiet bist. Hier in diesem Thread wurde ja schon mehrfach> beschrieben, dass die Arduinos in C++ programmiert werden.> Der verlinkte Beitrag des erfahrenen Programmierers zeigt ja gerade,> dass es sich lohnen kann, fertige Libraries zu benützen, statt das Rad> neu zu erfinden.> ( Beitrag "Re: Umstieg von Arduino auf "klassische" IC Programmierung"> Für diejenigen, die mit der Verlinkung im Forum noch nicht so zu Rande> kommen: Man kann die Links auf Beiträge innerhalb der Threads setzen )
Nicht eher in C?
Franz schrieb:> Was meinst Du zu dem Syntax?
Wär eine schöne Frage für eine neuen thread zum Wochenende.
Hier vorerst ein Zitat von der Arduino Homepage:
"The microcontroller on the board is programmed using the Arduinoprogramming language (based on Wiring) and the Arduino development
environment (based on Processing)."
Hallo,
ja, jetzt wird's aber mal spannend:
Kennt jemand einen Unterschied zwischen der Arduino Programming Language
und C++?
Mir ist noch nie ein Unterschied aufgefallen!
vlg
Timm
Ok, ist es halt cpp..
Kropf schrieb:> Franz schrieb:>> Was meinst Du zu dem Syntax?>> Wär eine schöne Frage für eine neuen thread zum Wochenende.>> Hier vorerst ein Zitat von der Arduino Homepage:> "The microcontroller on the board is programmed using the Arduino> programming language (based on Wiring) and the Arduino development> environment (based on Processing)."
Da fängt es schon an, das ist es was ich an Arduino hasse, es wird gar
nicht versucht dem Benutzer den technischen Hintergrund zu erklären
Ich dachte immer, es sei C und C++. Wikipedia beschreibt Processing und
Wiring ganz lustig
"Processing ist eine auf die Einsatzbereiche Grafik, Simulation und
Animation spezialisierte objektorientierte, stark typisierte
Programmiersprache mit zugehöriger integrierter Entwicklungsumgebung"
"Aus Processing hat sich das Projekt Wiring entwickelt. Es benutzt die
Processing-IDE gemeinsam mit einer vereinfachten Version von C++, um
Künstlern die Programmierung von Mikrokontrollern nahezubringen."
Komisch, dass am Ende der gcc Compiler dahinter steckt. Ich habe sehr
das Gefühl, dass man sich hier mit femden Federn schmückt.
kif schrieb:>> Hier vorerst ein Zitat von der Arduino Homepage:>> "The microcontroller on the board is programmed using the Arduino>> programming language (based on Wiring) and the Arduino development>> environment (based on Processing).">> Da fängt es schon an, das ist es was ich an Arduino hasse, es wird gar> nicht versucht dem Benutzer den technischen Hintergrund zu erklären
Wie detailliert soll es denn bitte sein? Es steht jedem frei, beim
Wunsch nach genauerem Wissen in den Quellcode zu gucken und vertiefende
Dokumentation zurate zu ziehen.
Das dahinterstehende Prinzip, nicht bei den einzelnen Registern,
Maschinenbefehlen, Werkzeugen usw. anzufangen, sondern ein fertiges
Paket zu liefern, nennt sich Abstraktion und ist eines der wichtigsten
Prinzipien überhaupt in der Informatik, ohne das man kein größeres
Projekt fertig bekommen würde.
Matthias H. schrieb:> Wie detailliert soll es denn bitte sein? Es steht jedem frei, beim> Wunsch nach genauerem Wissen in den Quellcode zu gucken und vertiefende> Dokumentation zurate zu ziehen.> Das dahinterstehende Prinzip, nicht bei den einzelnen Registern,> Maschinenbefehlen, Werkzeugen usw. anzufangen, sondern ein fertiges> Paket zu liefern, nennt sich Abstraktion und ist eines der wichtigsten> Prinzipien überhaupt in der Informatik, ohne das man kein größeres> Projekt fertig bekommen würde.
Und dennoch weiß jeder der an so einem Projekt mitprogrammiert wie so
ein Controller funktioniert.
Stefanus schrieb:> Ich dachte immer, es sei C und C++. Wikipedia beschreibt Processing und> Wiring ganz lustig>> "Processing ist eine auf die Einsatzbereiche Grafik, Simulation und> Animation spezialisierte objektorientierte, stark typisierte> Programmiersprache mit zugehöriger integrierter Entwicklungsumgebung">> "Aus Processing hat sich das Projekt Wiring entwickelt. Es benutzt die> Processing-IDE gemeinsam mit einer vereinfachten Version von C++, um> Künstlern die Programmierung von Mikrokontrollern nahezubringen.">> Komisch, dass am Ende der gcc Compiler dahinter steckt. Ich habe sehr> das Gefühl, dass man sich hier mit femden Federn schmückt.
ja seltsam und irgendwie unsympathisch! In der Tat.
Ich mag Arduino und ich habe auch welche, aber an dieser Stelle ist es
irgendwie prutschig und komisch.
vlg
Timm
kif schrieb:> Und dennoch weiß jeder der an so einem Projekt mitprogrammiert wie so> ein Controller funktioniert.
In groben Zügen ja, aber muß man wirklich jeden Transistor und jedes
Spezialregister kennen? Ganz klar nein, das Produkt hat ein Datenblatt,
in dem stehen sollte, was es tut und wie das zu erreichen ist, da suche
ich mir heraus, was ich brauche und benutze es, und fertig!
Genauso kann es durchaus sein, daß ein Softwareentwickler nicht genau
weiß, was die Zielplattform ist bzw. es mehrere gibt oder sich sogar die
Zielplattform im Laufe der Entwicklung ändert, z. B. weil man
feststellt, daß man mehr RAM oder I/O-Ports braucht oder Plattform B
deutlich billiger zu beziehen ist als Plattform A. Wer auf unterster
Ebene programmiert hat, "darf" nun u. U. ganz von vorne anfangen. Wenn
man dagegen in einer Hochsprache und mit vernünftigen Abstraktionen
programmiert hat, ist das dagegen kein oder zumindest kein großes
Problem.
Daher ist Abstraktion unverzichtbar und die genaue Kenntnis der
Zielplattform bis ins Detail nicht immer notwendig, manchmal sogar bei
zu enger Orientierung daran kontraproduktiv!
Chris D. schrieb:> Dass jemand aus seinem Expertenwissen ein Staatsgeheimnis macht, habe> ich hier nicht erlebt> Das könnte daran liegen, dass ich versuche, beim Threadstart schon> möglichst viel Information mitzugeben und auch ganz klar wird:
Aber manche TOs machen aus den Details zu frage eine Staatsgeheimnis
kif schrieb:>> Beitrag "Re: Umstieg von Arduino auf "klassische" IC Programmierung"
Mich stört, dass er den Mikrocontroller immer IC nennt.
Falk Brunner schrieb:> Jaja, das Leben ist schon grausam, da lobt man sich die> Vollkaskogesellschaft! Alles in Watte packen und den 3jährigen auf dem> Holzroller immer nur mit Helm und Vollprotektoren spielen lassen.
An einer Grundschule in meiner Nähe ist auf dem Schulhof das Rennen
verboten, da sich ab und zu jemand verletzt oder Kleidung kaputt gemacht
hat.
Guest schrieb:> An einer Grundschule in meiner Nähe ist auf dem Schulhof das Rennen> verboten, da sich ab und zu jemand verletzt oder Kleidung kaputt gemacht> hat.
facepalm
KlausImHaus schrieb:> Ich habe alle bisherigen Beiträge hier gelesen und mit jedem weiteren> Beitrag verfestigt sich mein Fazit: Manche mögen Arduino gar nicht,> manche sagen kommt darauf an für wen oder was. Und manche andere finden> es toll.
Vielleicht war die Formulierung des Topics nur zu schwammig. Ich
versuch's nochmal zusammenzufassen:
1. Arduinos und Co kriegt man als Bastler für wenig Geld vom
Ebay-Chinesen - fertig zusammengelötet.
2. Den Eigenbau von etwas Vergleichbarem kriegt man als Bastler nicht so
ohne Weiters hin, weil man als privater Bastler eben schlechten oder gar
keinen Zugriff auf die Sortimente industrieller Distris hat. Ebenso
sieht es mit Dingen wie Leiterplatten aus, wo man für gute Tools keine
Lizenz hat und mit schlechten Tools sich herumärgern muß.
3. Programmierer haben aus wirklich gutem Grunde die Ansicht, daß durch
die Bauklötzchen-Mentalität bei Arduino deren Anwender eben nicht
gehalten sind, sich in die Materie wirklich einzuarbeiten. Deswegen
kommen sie zwar schnell zu einer vorgekauten Lösung für einfachere
Bastelprobleme aber sie kommen geistig nicht darüber hinaus.
4. Die Kritik richtet sich NICHT gegen die Arduino-Bauklötzchen, sondern
gegen die geistige Unbedarftheit von Arduino-Benutzern, die zwar eine
Technik benutzen, aber selbige nicht wirklich verstehen. Anstatt nun
sich das Verstehen anzueignen, wird gar zu häufig argumentiert, man habe
das ja bei Arduino nicht nötig. Genau dieses ist die Quelle böser
Bemerkungen, die den Arduinos zugerechnet werden, sich aber eigentlich
gegen unbedarfte benutzer richtet.
5. Profis und Geräteentwicklern ist Arduino egal. Der Grund ist, daß man
damit eben nicht wirklich Geräte bauen kann, was auch auf so ziemlich
alle Eval-Boards zutrifft (gilt auch für das grandiose Raspberry).
Solche Bastelboards sind nett in Einzahl für den ad hoc Einsatz auf dem
Labortisch (Mal eben nen Taktgenerator für 27.5 Sekunden Periode machen)
und da geht sicherlich auch ein Arduino, auch dann, wenn er 1500 Takte
für das Toggeln eines Portpins braucht. Zum mal eben Basteln reicht's.
Für Geräte hingegen - selbst für kleine Bastel-Geräte - will man ein
handliches Gehäuse haben und darin eine dem Problem angepaßte
Leiterplatte.
So. Arduinos haben offensichtlich ihren Sinn in der
Hardware-Beschaffung, wenn man sonst keine guten Quellen hat. Man kann
damit auch ein paar allererste Schritte krabbeln oder ne
Gelegenheits-Sache zusammenklicken. Man sollte aber nicht auf dieser
Krabbelstufe steckenbleiben.
Haben wir's nun?
W.S.
Matthias H. schrieb:> Daher ist Abstraktion unverzichtbar und die genaue Kenntnis der> Zielplattform bis ins Detail nicht immer notwendig,
Gröhl..
Du befaßt dich also nur ganz abstrakt mit Technik, ja?
W.S.
Warum ich einen Arduino benutze?
Deshalb: Beitrag "Tiny Programmierung nach fuse ändern schwierig"
Das System bleibt für mich immer benutzbar, keine Probleme mit wirrem
Zeug.
Und an die ganzen Fuse-Experten hier: Warum ist eigentlich jeden Tag so
ein Profi hier, der dann doch nicht mit den Fuses klar kommt?
Die meinen alles besser zu können, aber trotzdem sich auf dem Handy ein
Fuse Calculator runter laden müssen. Dazu noch einen Dude, ponyprog etc.
Ne, da nehme ich beim Arduino und kann mich ganz dem eigentlichen
Problem widmen.
W.S. schrieb
>Haben wir's nun?
Naja, eher nicht. Möglicherweise konntest Du diesem langen Thread nicht
folgen, deshalb möchte ich Dir bei eigen Argumenten helfen.
>1. Arduinos und Co kriegt man als Bastler für wenig Geld vom>Ebay-Chinesen - fertig zusammengelötet.
Der Profi bestellt auch gerne Arduinos bei Farnell oder RS, weil die
dann am nächsten Tag schon geliefert werden.
>2. Den Eigenbau von etwas Vergleichbarem kriegt man als Bastler nicht so>ohne Weiters hin, weil man als privater Bastler eben schlechten oder gar>keinen Zugriff auf die Sortimente industrieller Distris hat. Ebenso>sieht es mit Dingen wie Leiterplatten aus, wo man für gute Tools keine>Lizenz hat und mit schlechten Tools sich herumärgern muß.
Der versierte Bastler verwendet auch gerne die einen Arduino Schaltplan
und erweitert diesen um z.B. eine SPS ähnliche Schaltung herzustellen.
Er hat dann den Vorteil, dass seine Kunden ein kompletes, freies
Entwicklungssystem bekommen, mit dem sie die SPS programmieren können.
Nicht zu vergessen den Support, der überall im Netz zu finden ist.
>3. Programmierer haben aus wirklich gutem Grunde die Ansicht, daß durch>die Bauklötzchen-Mentalität bei Arduino deren Anwender eben nicht>gehalten sind, sich in die Materie wirklich einzuarbeiten. Deswegen>kommen sie zwar schnell zu einer vorgekauten Lösung für einfachere>Bastelprobleme aber sie kommen geistig nicht darüber hinaus.
Ein neugieriger Profi geht sehr sparsam mit der Zeit um. Wenn er z.B.
ein PC Interface für I2C, CAN, Ethernet, Wifi mit speziellen
Eigenschaften will, nimmt er einfach schnell einen Arduino plus
entsprechendes Shield und programmiert sich die passende Funktion in 20
Minuten.
>4. Die Kritik richtet sich NICHT gegen die Arduino-Bauklötzchen, sondern>gegen die geistige Unbedarftheit von Arduino-Benutzern, die zwar eine>Technik benutzen, aber selbige nicht wirklich verstehen. Anstatt nun>sich das Verstehen anzueignen, wird gar zu häufig argumentiert, man habe>das ja bei Arduino nicht nötig. Genau dieses ist die Quelle böser>Bemerkungen, die den Arduinos zugerechnet werden, sich aber eigentlich>gegen unbedarfte benutzer richtet.
Da die Einfachheit des Arduinos sehr vielen Anfängern den Einstieg in
die Mikrocontrollertechnik leicht macht, entstehen bei diesen viele
Fragen.
Der oberflächliche Beobachter setzt dann leicht "Arduino" mit "Anfänger"
gleich. Das ist ein Fehler, weil zwar Arduino von Anfängern gut zu
verwenden ist, aber nicht jeder Arduino Nutzer ein Anfänger ist.
( Es ist übrigens ein Fehler, der bei statistischen Beobachtungen häufig
gemacht wird, siehe http://de.wikipedia.org/wiki/Scheinkorrelation )
>5. Profis und Geräteentwicklern ist Arduino egal. Der Grund ist, daß man>damit eben nicht wirklich Geräte bauen kann, was auch auf so ziemlich>alle Eval-Boards zutrifft (gilt auch für das grandiose Raspberry).>Solche Bastelboards sind nett in Einzahl für den ad hoc Einsatz auf dem>Labortisch (Mal eben nen Taktgenerator für 27.5 Sekunden Periode machen)>und da geht sicherlich auch ein Arduino, auch dann, wenn er 1500 Takte>für das Toggeln eines Portpins braucht. Zum mal eben Basteln reicht's.
Der Profi weis aber auch, dass er die Arduino Hardware auch mit
professionellen Tools und eigenen Libs programmieren kann:
Beitrag "Re: Arduino mit Eclipse AVR-gcc Plugin programmieren"
Er weis vor allem, dass er für den Preis eines Arduino gerade mal 15
Minuten seines Stundensatzes für die Bestückung einer
Mikrocontrollerplatine aufwenden könnte. Da nimmt er bei passender
Eignung doch lieber gleich einen Arduino.
PittyJ schrieb:> Und an die ganzen Fuse-Experten hier: Warum ist eigentlich jeden Tag so> ein Profi hier, der dann doch nicht mit den Fuses klar kommt?
Gibt es für den AVR eigentlich keine brauch- und bezahlbaren
HV-Programmer, dass sich immer wieder jemand dem AVR verfused?
Franz schrieb:> Problematisch ist meistens Pony-Prog.
Wohl vor allem deshalb, weil sie die Negation der Negations versucht
haben: eine gesetzte Fuse wird halt überall mit ihrem physischen Wert
"0" angezeigt, bei PonyProg aber offenbar irgendwie anders.
Aber seitdem es keine Parallelports mehr gibt, ist es um PonyProg
ziemlich ruhig geworden.
Max H. schrieb:> Gibt es für den AVR eigentlich keine brauch- und bezahlbaren> HV-Programmer, dass sich immer wieder jemand dem AVR verfused?
Doch, STK500 oder AVR Dragon. Aber die, die sowas haben, verfusen
sich ihre Controller sowieso nur selten. :-)
Hi
>Ein neugieriger Profi geht sehr sparsam mit der Zeit um. Wenn er z.B.>ein PC Interface für I2C, CAN, Ethernet, Wifi mit speziellen>Eigenschaften will, nimmt er einfach schnell einen Arduino plus>entsprechendes Shield und programmiert sich die passende Funktion in 20>Minuten.
Wer garantiert eigentlich die Fehlerfreiheit von Arduino-Librarys? Wenn
die genau so zusammengeschustert sind wie manche Shields würde ich die
nicht mal mit der Kneifzange anfassen.
MfG Spess
>Wer garantiert eigentlich die Fehlerfreiheit von Arduino-Librarys?
Es sagt Dir ja auch niemand, dass Du die Arduinos in einem Atomkraftwerk
einsetzen sollst.
BTW: Wer garantiert überhaupt fehlerfreie Software ?
HI
>Es sagt Dir ja auch niemand, dass Du die Arduinos in einem Atomkraftwerk>einsetzen sollst.
Eine Rückrufaktion kann auch sehr teuer werden. Aber deine Antwort sagt
mir alles.
>TW: Wer garantiert überhaupt fehlerfreie Software ?
Erfahrene Programmierer. Die werden sich allerdings kaum mit Processing
oder Wiring abgeben. Solche Progammier-Säue werden ständig durchs Dorf
getrieben und landen ... regelmäßig im Schlachthof. Erinnert mich an an
die Zeiten um 1900. Jeder Grafiker, oder der, der sich dafür hielt
musste eine neue Schriftart (neudeutsch Font) erfinden. 99% davon sind
in der Versenkung verschwunden.
MfG Spess
PittyJ schrieb:> Ne, da nehme ich beim Arduino und kann mich ganz dem eigentlichen> Problem widmen
Sehr pragmatisch orientiert. Lobenswert, betrachtet man die BWL-Seite.
Aber bei schnellen Anwendungen wird schnell Einarbeitungszeit fällig.
Die mitunter dauern kann.
Mich nervt es, wenn man bei der Suche im Inet ständig über diese
obskuren Arduino-Libs stolpert, wenn man auf der Suche nach echten
Sourcen in C (oder asm) ist.
Also summa summarum: Ja, Arduino ist bei mir verpönt. Allerdings haben
die "Shields" auch den Vorteil, daß jede Menge Sensoren auf netten
DIP-Breakout-Boards aufgetaucht sind (Sparkfun, Lipoly, Exp-Tech), so
daß man billig und einfach an die Dinger rankommt ;)
spess53 schrieb:> Wer garantiert eigentlich die Fehlerfreiheit von Arduino-Librarys? Wenn> die genau so zusammengeschustert sind wie manche Shields würde ich die> nicht mal mit der Kneifzange anfassen.
Ob sie fehlerhaft sind, kann ich nicht sagen, aber an einigen Stellen
besteht großes Optimierungspotential, bspw. bei der bereits diskutierten
Funktion digitalWrite.
Good News: Die oben genannte Dauer von 150 Taktzyklen für einen Aufruf
der Funktion ist zu hoch gegriffen. Die Zahl stammt vermutlich von einer
älteren Arduino-Version, wo ein schlechter optimierender Compiler
verwendet wurde.
Bad News: Es sind immer noch stolze 61-77 Taktzyklen, wenn ich richtig
gezählt habe.
Die Funktion braucht deswegen so lange, weil
- immer davon ausgegangen wird, dass sowohl die Pinnummer als auch der
zu schreibende Bitwert variabel, also nicht zur Compile-Zeit bekannt
sind,
- zur Ermittlung der Portadresse, der Bitmaske usw. insgesamt 4 Lookups
auf Tabellen im Flash gemacht werden,
- beim Beschreiben eines Pins, das auch ein PWM-Ausgang sein kann, die
PWM für dieses Pin durch die Funktion deaktiviert wird und
- die Interrupts temporär gesperrt werden, um den Zugriff auf das
Portregister atomar zu machen.
Die Funktion ließe sich durch den geschickten Einsatz von Inlining ohne
jegliche Einschränkungen der Funktionalität so weit optimieren, dass sie
für konstante Pinnummern und Bitwerte (was der mit Abstand häufigste
Anwendungsfall sein dürfte) nur 7 (für PWM-Pins) oder sogar nur 2 Zyklen
(für alle anderen Pins) benötigt und in allen verbleibenden, selteneren
Fällen zumindest nicht schlechter als bisher performt.
Für digitalRead gilt ähnliches.
[Meine Meinung]
Von mir aus kann jeder mit Arduino arbeiten der es will, er sollte sich
aber vorher mit den Grundlagen der Elektronik beschäftigen, wie z.B.
Transistoren, Mosfets, Widerstände, eventuell Logik ICs...
Man sieht es hier im Forum manchmal, dass ein Arduino Nutzer schon
Überfordert ist, wenn es für sein Problem kein Shield oder "Schaltplan"
fürs Steckboard gibt.
Arduino ersetzt das Wissen über die CPU, aber nicht das Wissen über das
was außerhalb passiert…
[/Meine Meinung]
boaahh schrieb:> Arduino, kommt der aus Italien?
Ich habe (Wohne in Italien) noch nie einen in freier Wildbahn rumhüpfen
gesehen ;-)
Ich würde sagen ARRRRRRduino ist das lieblings µC Board der Piraten.
Mark Brandis schrieb:> boaahh schrieb:>> Arduino, kommt der aus Italien?>> In der Tat:> http://en.wikipedia.org/wiki/Arduino#History
Deshalb drucken die Chinesen auch den Stiefel aufs PCB ;-)
Ich nutze auch gerne die Arduino als Rapid-Prototyping-Plattform mit
kleinerem und schnellerem Bootloader.
Programmierung erfolgt in AVR Studio.
Für z.B. die evaluierung von der ansteuerung von Schrittmotoren und
steuerung über UART ist das perfekt. Arduino + Motorshield + Motoren =
Fertig.
Wenn alles fluppt kann ich die Sourcen auf eine Lochrasterplatine
portieren.
Problem ist nur das die generell auf 5V laufen und oft (oder immer?) mit
16Mhz.
Ein Projekt mit 3,3V Peripherie will ich nicht mittels Widerständen oder
Pegelwandler an das Arduino Board ranfuschen.
Low Power Projekte kann man auch knicken.
----------------------------------
Unterm Strich würde ich aber jedem Einsteiger, der mal schnuppern will
ein Arduino empfehlen. -> Schneller Lernerfolg, geringe Materialkosten,
...
Wenn jemand ernsthaft in die µC Welt einsteigen will und Großes vorhat
sollte dieser jemand den qualvollen Weg über Assembler (für die
Struktur) und AVR-GCC nehmen.
-SE
Man hat mir mal beigebracht das C++ nur eine Teilmenge von C ist.
Das würde bedeuten das C++ ohne C nicht geht.
Die meisten Bibliotheken sind C++ bei Arduino.
SE schrieb:> Problem ist nur das die generell auf 5V laufen und oft (oder immer?) mit> 16Mhz.
Stimmt beides nicht, einige arbeiten mit 3,3 V (z. B. Due) und es gibt
auch welche mit abweichender (allerdings vorgegebener) Taktfrequenz (z.
B. Fio, 3,3 V und 8 MHz).
> Wenn jemand ernsthaft in die µC Welt einsteigen will und Großes vorhat> sollte dieser jemand den qualvollen Weg über Assembler (für die> Struktur) und AVR-GCC nehmen.
Das ist ja gerade das Problem: Die Einstiegshürden auf dieser Ebene
werden nicht niedriger. Da würde ich schon eher mit einer
Arduino-Entwicklung anfangen und, sobald es läuft, zwecks Optimierung
auf Stromverbrauch, Codegröße o. ä. die Software noch mal mit was
anderem neu entwickeln. Eine Prototypenentwicklung, bei der man noch mal
das eine oder andere ausprobieren muß, in Low-Level-Sprachen führt fast
immer zu viel Mehrarbeit und Flüchtigkeitsfehlern.
morob65 schrieb:> Man hat mir mal beigebracht das C++ nur eine Teilmenge von C ist.> Das würde bedeuten das C++ ohne C nicht geht.>> Die meisten Bibliotheken sind C++ bei Arduino.
Wie Franz schon geschrieben hat, ist es eigentlich andersherum. C++ ist
eine viel, viel größere, mächtigere Sprache. Es gibt kleine
Inkompatibilitäten zwischen C und C++, wo also C++ nicht ganz
abwärtskompatibel ist, aber das sind vergleichsweise exotische Fälle.
Wieviel instabile Software und verschwendete Entwicklerarbeitszeit wäre
der Welt erspart worden, hätte Stroustrup seine Energie lieber in eine
Neuentwicklung gesteckt, die zwar C-Code gut integrieren kann, aber z.
B. eine übersichtlichere Syntax, Modulkonzept, optionale Überlauf- und
Bereichsüberprüfung, höherwertigere Datentypen wie Strings usw. gleich
in die Sprache eingebaut gehabt hätte!
Franz schrieb:>>Man hat mir mal beigebracht das C++ nur eine Teilmenge von C ist.>> umgekehrt wird ein Schuh draus ...
sicher?
C++ ist eine von der ISO genormte Programmiersprache. Sie wurde ab 1979
von Bjarne Stroustrup bei AT&T als Erweiterung der Programmiersprache C
entwickelt. C++ ermöglicht sowohl die effiziente und maschinennahe
Programmierung als auch eine Programmierung auf hohem
Abstraktionsniveau.
(Quelle Wikipedia)
Natürlich sicher.
morob65 schrieb:> als Erweiterung der Programmiersprache C
Also ist C eine Teilmenge von C++, da C++ im Grunde C mit Erweiterungen
ist. Somit also mindestens C, aber noch etwas mehr. Denk doch mal nach.
cyblord ---- schrieb:> Natürlich sicher.>> morob65 schrieb:>> als Erweiterung der Programmiersprache C>> Also ist C eine Teilmenge von C++, da C++ im Grunde C mit Erweiterungen> ist. Somit also mindestens C, aber noch etwas mehr. Denk doch mal nach.
:-D
kurzer Endkommentar von mir dazu: C++ läuft aber nicht ohne C Elemente
morob65 schrieb:> kurzer Endkommentar von mir dazu: C++ läuft aber nicht ohne C Elemente
Worauf willst du eigentlich hinaus? Was soll der quatsch? Was willst du
uns sagen? Was ist dir nicht klar?
Hallo Falk,
Falk Brunner schrieb:> Jaja, das Leben ist schon grausam, da lobt man sich die> Vollkaskogesellschaft! Alles in Watte packen und den 3jährigen auf dem> Holzroller immer nur mit Helm und Vollprotektoren spielen lassen.http://de.wikipedia.org/wiki/Strohmann-Argument> Zum Lernen gehören nun mal auch Negativerfahrungen. Und Gott sei Dank> sind die SEHR selten so dramatisch.
Ok, der Vergleich war vielleicht nicht ganz passend, aber es war ja
nicht mein Vergleich, sondern ich bin nur darauf eingegangen. Mir ging
es nicht um eine Vollkaskomentalität, sondern um Motivation.
Wenn Du jemanden, der das als Hobby machen will, gleich zu Beginn mit
etlichen Fehlschlägen (und dann auch noch mit "hilfreichen" Kommentaren
wie "selbst schuld" und "lern C") verprellst, dann schmeißt der das Zeug
irgendwann in die Ecke. Ist es das, was Du erreichen willst? Denn dann
wären wir ganz schnell wieder bei der Sache mit dem Herrschaftswissen.
> Dramatisch ist eher, dass einige> Leute meinen, JEGLICHE Negativerfahrung mit aller Macht vermeiden bzw.> von Kindern/Lernenden fernhalten zu müssen.
Auch mit Arduino machen die Leute genügend negative Erfahrungen, wie die
vielen Arduino-Postings hier im Forum doch ziemlich eindeutig belegen.
> Passende Anekdote zum Thema. Ich war mal in Ägypten auf Quad-Tour in der> Wüste. Der Guide ist mit dem Motorad (leichte 250er Crossmaschine)> vorausgefahren. Wie? Mit T-Shirt, kurze Hose und FlipFlops! Ich fragt> ihn, ob das nicht etwas gefährlich sei. Er meinte, dass er dadurch> SICHERER fährt, eben WEIL er weiß, dass er eher vorsichtig fahren MUSS> und dass ein Crash nicht harmlos verläuft. Wenn gleich das sicher KEINE> massentaugliche Weise ist, muss man sagen, dass zuviel Schutzfunktionen> leichtsinnig machen und zuviel Sicherheit vorgaukeln.
Ja, das Fachwort dazu lautet "Risikokompensation" und ist nicht nur in
der IT-Sicherheit ein ebenso ständiges wie leidiges Thema.
Beste Grüße,
Karl
cyblord ---- schrieb:> morob65 schrieb:>> kurzer Endkommentar von mir dazu: C++ läuft aber nicht ohne C Elemente>> Worauf willst du eigentlich hinaus? Was soll der quatsch? Was willst du> uns sagen? Was ist dir nicht klar?
wenn Du die C Elemente aus C++ raus nimmst, was hast Du dann?
Matthias H. schrieb:> SE schrieb:>> Problem ist nur das die generell auf 5V laufen und oft (oder immer?) mit>> 16Mhz.>> Stimmt beides nicht, einige arbeiten mit 3,3 V (z. B. Due) und es gibt> auch welche mit abweichender (allerdings vorgegebener) Taktfrequenz (z.> B. Fio, 3,3 V und 8 MHz).
Dann ziehe ich das generell zurück und füge oft ein. ;-)
Das Due ist natürlich für mich als Prototyping Plattform völlig
ungeeignet wenn ich ein Mikrocontroller Projekt mache.
Aber das Fio ist interessant. Das kannte ich noch nicht. :-)
Auch mit der integrierten Li-Ladeschaltung.
Matthias H. schrieb:> Eine Prototypenentwicklung, bei der man noch mal> das eine oder andere ausprobieren muß, in Low-Level-Sprachen führt fast> immer zu viel Mehrarbeit und Flüchtigkeitsfehlern.
Das Stimmt wohl. Aber es ist sehr lehrreich.
Ab einer bestimmte komplexität würde ich aber auch jedem C Empfehlen.
Ein Großes Assemblerprogramm ist sehr schwer zu lesen. (Besonders wenn
man es 3 Jahre nicht anpackt und man sich beim erstellen die Kommentare
gespart hat...*g* )
morob65 schrieb:> cyblord ---- schrieb:>> morob65 schrieb:>>> kurzer Endkommentar von mir dazu: C++ läuft aber nicht ohne C Elemente>>>> Worauf willst du eigentlich hinaus? Was soll der quatsch? Was willst du>> uns sagen? Was ist dir nicht klar?>> wenn Du die C Elemente aus C++ raus nimmst, was hast Du dann?
Eine halbe Programmiersprache die nicht funktioniert. Aber das ist jedem
klar, die Frage ist: Worauf willst du hinaus? Wie läuft das jetzt den
Aussagen hier zuwider? Deine Aussage oben war einfach falsch, weil es
genau andersrum ist. Daran ändert das jetzt leider auch nichts.
Kann es sein dass du unter "Teilmenge" was ganz anderes verstehst als
der Rest der Welt?
morob65 schrieb:> wenn Du die C Elemente aus C++ raus nimmst, was hast Du dann?
Was soll man dann schon haben? Das macht überhaupt keinen Sinn....
Willst du uns damit irgendwas sagen? Falls ja drück dich mal
verständlich aus.
Boris B. schrieb:> morob65 schrieb:>> wenn Du die C Elemente aus C++ raus nimmst, was hast Du dann?>> Was soll man dann schon haben? Das macht überhaupt keinen Sinn....> Willst du uns damit irgendwas sagen? Falls ja drück dich mal> verständlich aus.
C++ ist eine Teilmenge von C
cyblord ---- schrieb:> morob65 schrieb:>> cyblord ---- schrieb:>>> morob65 schrieb:>>>> kurzer Endkommentar von mir dazu: C++ läuft aber nicht ohne C Elemente>>>>>> Worauf willst du eigentlich hinaus? Was soll der quatsch? Was willst du>>> uns sagen? Was ist dir nicht klar?>>>> wenn Du die C Elemente aus C++ raus nimmst, was hast Du dann?>> Eine halbe Programmiersprache die nicht funktioniert. Aber das ist jedem> klar, die Frage ist: Worauf willst du hinaus? Wie läuft das jetzt den> Aussagen hier zuwider? Deine Aussage oben war einfach falsch, weil es> genau andersrum ist. Daran ändert das jetzt leider auch nichts.>> Kann es sein dass du unter "Teilmenge" was ganz anderes verstehst als> der Rest der Welt?
sicher?
für mich ist eine Teilmenge ein Bestandteil eines Ganzen, C++ ist eine
ein Bestandteil von C
morob65 schrieb:> Boris B. schrieb:>> morob65 schrieb:>>> wenn Du die C Elemente aus C++ raus nimmst, was hast Du dann?>>>> Was soll man dann schon haben? Das macht überhaupt keinen Sinn....>> Willst du uns damit irgendwas sagen? Falls ja drück dich mal>> verständlich aus.>> C++ ist eine Teilmenge von C
Ich glaube das können wir abhaken. Du bist ein troll oder doof. Nein
warte, so doof kann niemand sein.
Wir habens dir erklärt du willst es nicht verstehen. Schade für dich.
> für mich ist eine Teilmenge ein Bestandteil eines Ganzen, C++ ist eine> ein Bestandteil von C
Vorallem ist eine Teilmenge gleich oder kleiner als Das Ganze. Und C++
ist größer als C, da es C+Erweiterungen ist. Also kann C++ keine
Teilmenge von C sein. Du echt nicht die hellste Kerze im Leuchter oder?
Nochmal ab in die 9. Klasse und Mengenlehre büffeln.
> Dafür mache ich das schon zu lange.
Was? Quatsch reden?
gruß cyblord
cyblord ---- schrieb:>> für mich ist eine Teilmenge ein Bestandteil eines Ganzen, C++ ist eine>> ein Bestandteil von C>> Vorallem ist eine Teilmenge gleich oder kleiner als Das Ganze. Und C++> ist größer als C, da es C+Erweiterungen ist. Also kann C++ keine> Teilmenge von C sein. Du echt nicht die hellste Kerze im Leuchter oder?> Nochmal ab in die 9. Klasse und Mengenlehre büffeln.>>> Dafür mache ich das schon zu lange.> Was? Quatsch reden?
morob65 hat vollkommen recht. Das ist wie bei einem Fahrrad:
Ein Fahrrad ist eine Teilmenge der Speichen. Weil, wenn man die Speichen
wegnimmt, fährt das Fahrrad nicht mehr. Ist doch logisch, oder?
mfg.
Karl Heinz schrieb:> Hardware an sich wissen muss. Daraus folgt allerdings> auch, dass sie recht universell sein muss, was dann wieder eine gewisse> Trägheit nach sich zieht.
Ich bin auch ziemlich träge, ich habe zu Weihnachten große Mengen an
Schnuckereien und Keksen verzehrt und habe dadurch an Trägheit gewonnen.
Thomas Eckmann schrieb:> morob65 hat vollkommen recht. Das ist wie bei einem Fahrrad:> Ein Fahrrad ist eine Teilmenge der Speichen.
Was ist, wenn ich ein Rad ohne Speichen habe, nähmlich ein Vollgummirad?
Dann ist es ein speichenloses Rad, also wäre in dem Fall die implizierte
Teilmenge gleich Null, obwohl dennoch ein Fahrrad vorhanden ist und ohne
Speichen gemovt werden kann. I love chickenwings, you?
Thomas Eckmann schrieb:> morob65 hat vollkommen recht. Das ist wie bei einem Fahrrad:> Ein Fahrrad ist eine Teilmenge der Speichen. Weil, wenn man die Speichen> wegnimmt, fährt das Fahrrad nicht mehr. Ist doch logisch, oder?
Haben sich die Scherzkeske hier dann so langsam mal ausgetobt?
morob65 schrieb:> für mich ist eine Teilmenge ein Bestandteil eines Ganzen, C++ ist eine> ein Bestandteil von C
Deine Definition von Teilmenge ist korrekt, aber in bezug auf das
Verhältnis von C und C++ ist das Wort, was Du meinst, Obermenge!
Du kannst C ohne C++ benutzen, aber C++ ist ein erweitertes C, also mehr
als C, darum ist C++ eine Obermenge von C.
cyblord ---- schrieb:> Also ist C eine Teilmenge von C++, da C++ im Grunde C mit Erweiterungen> ist.
Das mag 1979 so gewesen sein, als Stroustrup damit angefangen hat.
Spätestens seit C99 haben sie sich aber endgültig auseinander
entwickelt.
Jörg Wunsch schrieb:> cyblord ---- schrieb:>> Also ist C eine Teilmenge von C++, da C++ im Grunde C mit Erweiterungen>> ist.>> Das mag 1979 so gewesen sein, als Stroustrup damit angefangen hat.>> Spätestens seit C99 haben sie sich aber endgültig auseinander> entwickelt.
Nicht hilfreich. Du hast zwar recht, hat mit der Diskussion aber wenig
zu tun.
Boris B. schrieb:> Thomas Eckmann schrieb:>> morob65 hat vollkommen recht. Das ist wie bei einem Fahrrad:>> Ein Fahrrad ist eine Teilmenge der Speichen. Weil, wenn man die Speichen>> wegnimmt, fährt das Fahrrad nicht mehr. Ist doch logisch, oder?>> Haben sich die Scherzkeske hier dann so langsam mal ausgetobt?
Das ist kein Scherz, sondern eine reductio ad absurdum.
mfg.
Hallo W.S.,
W.S. schrieb:> Du befaßt dich also nur ganz abstrakt mit Technik, ja?
Ja, natürlich. Du doch vermutlich auch, oder schreibst Du Deine Firmware
direkt in Maschinencode? Bereits Assembler und noch vielmehr C sind doch
herausragende Beispiele für die gelungene Anwendung von Abstraktion.
Beste Grüße,
Karl
Karl Käfer schrieb:> Ja, natürlich. Du doch vermutlich auch, oder schreibst Du Deine Firmware> direkt in Maschinencode?
Wie, Du wickelst Deine Widerstände und Spulen nicht selbst?
Wie soll ich es sagen, in meinem Arbeitsleben ist mir kaum eine
Berufsgruppe begegnet, die mehr von ihrer Omnipotenz ueberzeugt war, als
Elektroniker. (Die Ausnahme sind Physiker.)
Aber eine Frage konnte der Thread wenigstens beantworten: Ja, Arduino
ist hier verpoent.
jau schrieb:> quod erat demonstrandum! (was zu beweisen war)>> Fpga Kuechle schrieb:>> Bosch stöhnt ja auch über Fachkräftemangel, die haben keinen der eine>> kostenoptimierte und ressourcenschonende Platform entwickelt so dass man>> gezwungen ist auf automotivungeeigneten Kinderkram zurück zu greifen.>> "keiner hat die absicht eine mauer zu bauen" (walter ulbricht ca. 1962)>> werkzeuge sind hilfsmittel. um einen nagel ein zu schlagen benutze ich> einen hebel mit einer ausgeformeten masse (hammer) und kein momenten-> und beschleunigungs-gesteuerten servo-geregelt highspeed servoantrieb> ;-)
"Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen
Nagel", Paul Watzlawick
Dieses Spruch ist heute aktueller den je. Wie oft sehe ich, wie
einfachste Problemstellungen mit Gewalt mit einem MC gelöst werden.
Ansonsten finde ich Adruino ganz OK. Wer Erwachsen wird holt sich einen
ISP und kann dann das Spielzeug noch einmal verwenden.