Hallo,
seit ein paar Jahren programmiere ich mit GCC/AVR-Studio erfolgreich
Mikrocontroller.
Nun möchte mein Neffe (11) gerne in die Welt der Programmierung von
Mikrocontrollern einsteigen.
Jetzt bin ich nicht ganz sicher, was ich ihm empfehlen soll.
Kenne mich mit Arduino überhaupt nicht aus, fände es aber auch etwas
happig, ihm gleich das AVR-Studio "vorzusetzen".
Was meint ihr, ist der Vorteil von Arduino gegenüber AVR-Studio so groß,
dass man es einem Neueinsteiger ans Herz legen sollte?
Oder lieber doch AVR-Studio (da könnte ich ihm bei auftretenden Fragen
in jedem Fall problemlos weiterhelfen)?
Terry schrieb:> Was meint ihr, ist der Vorteil von Arduino gegenüber AVR-Studio so groß,
Nein.
Terry schrieb:> Oder lieber doch AVR-Studio (da könnte ich ihm bei auftretenden Fragen> in jedem Fall problemlos weiterhelfen)?
Nimm lieber diesen Weg, da ist euch beiden mehr mit geholfen.
Ein Arduino war es nicht, der die Entwickler vom Arduino befähigt hat,
den Arduino zu entwickeln. Der Arduino ist wohl etwas mehr für
Elektronik- und Programmierfremde gedacht. Wobei die Arduino HW sehr
praktisch und billig von jedem genutzt wird.
Terry schrieb:> Kenne mich mit Arduino überhaupt nicht aus, fände es aber auch etwas> happig, ihm gleich das AVR-Studio "vorzusetzen".
Arduino ist bequem für schnelle Erfolgserlebnisse. Die Einblicke in den
Controller und was in den Abstraktionsebenen der Arduino Softwäre
passiert, sind allerdings eher gering. IMHO ist der Lerneffekt mit AVR
Studio, insbesondere mit Assembler und Simulator erheblich größer, weil
man dichter am µC dran ist. Von dem, was man dabei lernt, kann man
später immer wieder zehren. Im Alter von 11a ist AVR-Studio aber
vielleicht noch etwas früh und schnell ein paar LEDs mit Arduino zum
Blinken zu bringen oder ein paar Servos zu steuern, auch nicht schlecht.
Auf jeden Fall ist ein Oszi oder ein kleiner Logikanalysator (ebay "8Ch
24MHz") für Fehlersuche in Programmen, die mit der Außenwelt
interagieren, sehr nützlich und spart viel Frust.
Ich denke sowas sollte man jeden im richtigen Alter selbst entscheiden
lassen und finde für den Faktor Kleinigkeiten wie
Schnuppern,Erfahren,Lernen+Erfolg ist der Arduino nicht verkehrt..
erinnert mich an meine Basiczeit vor 20 Jahren. Man muss ja quasie nur
einige Basics in der Syntax kapieren und Beispiele laden dann ist das im
Kasten.. vielleicht sowas mit nem Sensor/Basic Kit aus China für
30-50€.. da bekommt sogar nen 11jähriger ein digitales Thermometer
kompiliert und versteht das fürs erste noch.
gerade in dem Alter denke ich, dass schnelle Erfolge wichtig sind.
Arduino heißt ja nicht, dass man alle vorgefertigten Bibliotheken nutzen
muss. Letzen Endes ist es auch nur C Code, der mit GCC compiliert wird.
Und wenn digitalWrite() zum Setzen eines Ausgangs irgendwann zu langsam
wird, kann man sich ja immer noch ansehen, wie es in der Lib
implementiert ist und verbessern bzw. gleich mit C auf die Ports
zugreifen. Arduino verbietet ja nicht, direkt mit C zu arbeiten. Es
bietet halt einfach nur schon eine ganze Reihe fertiger Bibliotheken,
die man nutzen kann - aber nicht muss. Gerade für Einsteiger finde ich
das immer noch ideal.
Terry schrieb:> Dann könnte ich im Grunde auch meinen auf dem AVR-Studio erstellten> C-Code unter Arduino nutzen?
Wenn ich das richtig verstanden habe, musst Du dafür aber den
Arduino-Bootlader rausschmeissen. Und Dein Programm an die
Arduino-Hardware anpassen, da dort die Schnittstellen vielleicht
anders genutzt werden.
Die Arduino Hardware finde ich auch nicht verkehrt, dazu der
Direkteinstieg in AVR-Studio finde ich okay :)
Am besten du schreibst Beispielprogramme die kurz und übersichtlich sind
und schritt für schritt aufbauen, Beispielsweise Programme die folgendes
beinhalten
1. einfaches LED an (Lernziele: Grundstruktur eines Programms +
digitaler Ausgang)
2. LED aus, durch Button (Lernziele: digitaler Eingang, einfache
Strukturierungen a la if/else)
3. mittels Timer LED blinken lassen (Lernziele: timer, bitmasken
und/oder schiebeoperation)
4. LED lauflichter, Frequenz des Timers manipulieren durch Button
(Lernziele: timer, frequenzen + bitmasken evtl. dimmen/faden)
5. ...
natürlich immer debuggen, wenn möglich immer mit dem oszi draufschauen
ich schätze ab Punkt 3 wird es ein selbstläufer, wenn denn dann immer
noch interesse besteht und der lehrer gut ist ;)
beste grüße
public
Terry schrieb:> Dann könnte ich im Grunde auch meinen auf dem AVR-Studio erstellten> C-Code unter Arduino nutzen?
Ja du kannst auch in die Arduino-IDE klassisch deinen Code reinkloppen,
nur Arduino = u.a. die "kindgerechte" Lib + IDE.
Wenn der 11 jährige vielleicht schon an Arduino kein Interesse
entwickelt, wird er es mit AVR noch viel weniger.
Harald Wilhelms schrieb:> Wenn ich das richtig verstanden habe, musst Du dafür aber den> Arduino-Bootlader rausschmeissen.
Nein muss man nicht.
> Und Dein Programm an die> Arduino-Hardware anpassen, da dort die Schnittstellen vielleicht
Auch nicht wenn die Hardware die selbe war, wenn nicht beschränkt es
sich meist auf andere Port/Pinnummerns, ... das ist doch unter den AVRs
alles sehr ähnlich.
Terry schrieb:> Dann könnte ich im Grunde auch meinen auf dem AVR-Studio> erstellten> C-Code unter Arduino nutzen?
Ja. Den Bootloader würde ich persönlich drauf lassen. Der ist dafür da,
den compilierten Code per USB auf den Arduino zu übertragen. Im Prinzip
kannst Du das aber auch über ISP/JTAG machen. In dem Fall könntest Du
sogar auf den Bootloader verzichten. Da man in der Arduino IDE selbst
nicht wirklich debuggen kann (außer über den Seriellen-Monitor), macht
das aber keinen Sinn.
Sinnvoll wird das ganze erst in der anderen Richtung: wenn Du anfängst,
die Arduino Hardware mit dem AVR-Studio zu programmieren. Dann kann der
Bootloader in der Tat mehr stören als er hilft.
Fazit: wenn Du die Arduino IDE nutzt kannst Du beliebigen C Code auf die
Arduino Hardware per USB + Bootloader übertragen - oder halt C Code, der
die Arduino Bibliotheken verwendet. Wenn Du Die Arduino Hardware in AVR
Studio programmieren willst geht das auch problemlos, dann empfiehlt es
sich aber, den Bootloader runter zu schmeißen und direkt über JTAG zu
gehen.
Ich finde das immer schade das viele den unterschied Arduino<->AVR
grundlegend nie kapiert haben weil es keinen gibt.
1. Es ist kein "Arduino" Bootloader sondern ein Bootloader mit seriellem
Upload Protokoll, egal was man hochlädt man kann alles ausser dem
Bootloader selbst hochladen und wenn ISP vorhanden auch den Anschluß im
AVR Studio benutzen.
2. Ein Arduino ist im Prinzip ein Minimal Breakout Board mit der
optionalen möglichkeit dieses passend den aufgedruckten Pins in der
Arduino-IDE zu programmieren (Könnten auch PA0-PD0 an den Pins stehen)
3. Welche Softwäre man nun hochlädt ist egal solang es ein kompatibles
AVR-Hex ist.
4. In der Arduino-IDE kann man soweit ich weiß direkt Assemblern oder
AVR-Studio-C benutzen das ist der auch egal (letzendlich kompiliert ja
nur WinAVR)
Ein Arduino bleibt ein Stinknormaler AVR mit serieller Upload
möglichkeit.
Terry schrieb:> seit ein paar Jahren programmiere ich mit GCC/AVR-Studio erfolgreich> Mikrocontroller.>> Nun möchte mein Neffe (11) gerne in die Welt der Programmierung von> Mikrocontrollern einsteigen.>> Jetzt bin ich nicht ganz sicher, was ich ihm empfehlen soll.>> Kenne mich mit Arduino überhaupt nicht aus, fände es aber auch etwas> happig, ihm gleich das AVR-Studio "vorzusetzen".
ich "unterrichte" Studenten,
(unter den Blinden ist der Einäugige König)
erst mit Arduino (und deren LIBs) für erste Erfolge und
führe die nach und nach zu "normales" C wie im Studio
Ein Arduino hindert ja nicht normal zu proggen, er ist billig, Hardware
steht, LIBs sind schnell verfügbar.
Nokia 5110 LCD
DS1307new
FastLED
U8G
LCD
Ich würde das Problem rein pragmatisch angehen.
Zum Video streamen und zur Datenbearbeitung ist das Teil nicht zu
brauchen, aber unter dem Gesichtspunkt des: "kost' fast nix" zusammen
mit der Überlegung, das keiner weiß, was den Jungen morgen interessiert,
ist er eine erwähnenswerte Option.
a) Liegt das Teil morgen schon in der Ecke, so greift der
Kostenfaktor.
b) Fesselt das Teil aber seine Aufmerksamkeit, so ist z.B. der
Umstieg auf ein anderes Teil (mögl. ein PI), auch keine ruinöse
Angelegenheit.
Was ich aber mit einem klaren "Nein" beantworten muss ist die Verwendung
des Studios. Man sollte nämlich nicht vergessen, dass der Junge noch in
einem Alter ist, in dem was passieren muss.
Aus meiner Sicht ist das Studio etwas um dem Prozessor XY in der
Hardware Z Beine zu machen.
Aus Sicht der kontrollierbaren Arbeit, verbunden mit etwas spielerischem
Anspruch ist es, nach meiner Meinung, ungeeignet.
Ich selber benutze das Teil sehr häufig aber immer nur um dem Prozessor,
in seiner definierten Umgebung, sein Kunststückchen beizubringen.
Nach meiner Meinung bleibt hierbei - wir reden schließlich von einem 11
Jährigen - die pädagogische Seite auf der Strecke. Auch ohne ihn zu
kennen, würde ich sagen: Simulieren ist nicht sein Ding.
Ich verweise nochmal auf die Kits..
nur als Beispiel: http://www.ebay.de/itm/231426435984
Da musste nur noch je nach teilen die Libs besorgen und in einen
Library-Ordner schieben, Beispiele sind dann bei den Libs dabei.. nur
noch nen paar Strippen nach Plan connecten.
Es gibt auch ein Arduino IDE Plugin für das Atmel-Studio.
Damit wird man wenigstens den Steinzeit-Editor der Original Arduino IDE
los.
Damit könnte man dann auch Schritt für Schritt erst direkter
Programmieren und schliesslich das Plugin ganz loswerden.
Harald Wilhelms schrieb:>> Dann könnte ich im Grunde auch meinen auf dem AVR-Studio erstellten>> C-Code unter Arduino nutzen?>> Wenn ich das richtig verstanden habe, musst Du dafür aber den> Arduino-Bootlader rausschmeissen.
Nein. Der Bootloader emuliert nach außen hin einen STK500.
Amateur schrieb:> Nach meiner Meinung bleibt hierbei - wir reden schließlich von einem 11> Jährigen - die pädagogische Seite auf der Strecke. Auch ohne ihn zu> kennen, würde ich sagen: Simulieren ist nicht sein Ding.
Programmieren an sich ist komplex, auf welcher hardware erst mal
Nebensache. Aus lesbarem Text wird halt ein ausführbares Programm, kann
mir nicht vorstellen, dass das alter eine beschränkung ist. Mit 11 ist
man heutzutage in der 4./5. Klasse (?) und bei bestehendem interesse,
wieso denn nicht? manch einer/eine macht/bekommt mit 11 sein erstes Kind
O.o
Wäre cool zu wissen wie es am Ende umgesetzt wird :)
beste grüße
public
Die Antwort liegt eher darin, dass Du Deinen Neffen und damit die
Voraussetzungen kennst, die er mitbringt.
Mit einem Arduino hat er natürlich schneller mal ein Ergebnis. An den
USB anstecken, Draht in den Ausgang, Led dran und plink, Licht. Ohne ist
da natürlich weit mehr zu machen und man kann auch weit mehr falsch
machen bis die Lampe an geht. Entsprechend geht dier erste Frage gleich
mal an die Frustrationstoleranz Deines Neffen und seine Fähigkeit (und
Bereitschaft) sich mit Dingen auseinanderzusetzen, die eben nicht sofort
das tun was er will.
Das nächste Thema ist dann nämlich dass das Programmieren in der
Arduino-Welt ein wenig anders aussieht als bei normalem C (oder gar ASM)
im AVRStudio. Wie schätzt Du ihn ein wenn er feststellt dass das was er
tun will mit dem Arduino nicht mehr realisierbar ist (oder halt gelinde
gesagt zu viel kostet weil er das halt "fix" so lassen will und 'n neuer
AVR-µC ist schnell mal neu gekauft, anders als ein Arduino)?
Und die dritte Frage, wie schätzt Du seine Fähigkeit ein das Ding nicht
"umzubringen"? Kocht er den AVR ab ist 'n Euro im Klo. Kocht der
Arduino...
Der Junge ist ELF Jahre alt! Übertreibt es mal nicht mit Jugend forscht!
Ein Arduino ist da gerade richtig, ehe er den an seine Leistungsgrenzen
gebracht hat, ist er locker in der Pupertät (und hat dann vielleicht
eher andere Interessen).
Also, Arduino -> Daumen hoch!
Falk Brunner schrieb:> Der Junge ist ELF Jahre alt! Übertreibt es mal nicht mit Jugend forscht!
und?
ist doch logisch das die heutige Jugend frühreif ist, ich habe meinen
ersten Compi mit 12 zusammengebaut und die Programme handverdrahtet.
http://www.logikus.info/
@ Joachim B. (jar)
>> Der Junge ist ELF Jahre alt! Übertreibt es mal nicht mit Jugend forscht!>und?
Nix und. Man kann auch mal die Kirche im Dorf lassen.
>ist doch logisch das die heutige Jugend frühreif ist,
Oder der Kindheit beraubt wird . . .
> ich habe meinen>ersten Compi mit 12 zusammengebaut und die Programme handverdrahtet.>http://www.logikus.info/
Und kannst heute immer noch nicht programmieren . . . ;-)
Beitrag "Re: rechnet der preprocessor in C gcc (AVR) multiplikation aus?"
Hättest vielleicht ein paar Jahre später anfangen sollen und es von
einem guten Lehrer WIRKLICH beigebracht kriegen.
Autodidakten sind in diesem Alter eher selten, auch wenn es scheinbar
viele kleine Freaks auf dieser Welt gibt.
Falk Brunner schrieb:> Und kannst heute immer noch nicht programmieren . . . ;-)
man muss nicht alles perfekt können,
bist du Spezialist?
Ein Spezialist ist einer der viel von wenig kennt bis er alles von nix
kennt.
@ Joachim B. (jar)
>> Und kannst heute immer noch nicht programmieren . . . ;-)>man muss nicht alles perfekt können,
Aber man sollte wenigstens gut sein, vielleicht auch sehr gut.
Wenn er sich mit C nicht auskennt, wäre der beste Weg das Ganze mit
Arduino anzufangen. Man kann einem 11 Jährigen nicht gleich AVR Studio
und Atmega in die Hand drücken. Damit sind manche Studenten schon
überfordert.
Warum eigentlich nicht BASCOM, Arduino Nano und Steckbrett? Kenne mich
mit BASCOM nicht wirklich aus, es wirkt aber sehr übersichtlich.
Vielleicht ist noch ein usbasp Programmer o.ä. notwendig.
@ Klaus I. (klauspi)
>Warum eigentlich nicht BASCOM, Arduino Nano und Steckbrett? Kenne mich>mit BASCOM nicht wirklich aus, es wirkt aber sehr übersichtlich.>Vielleicht ist noch ein usbasp Programmer o.ä. notwendig.
Kann man machen, ich würde aber dennoch lieber Arduino empfehlen. Damit
lernt man gleich ein paar C-Grundlagen, mit denen man auch später was
anfangen kann. BASCOM hat einen total ausufernden Befehlssatz und ein
paar unschöne Einschränkungen (keine lokalen Variablen, nur einfachste
Operationen mit 2 Operanden pro Zeile etc.)
Heinz L. schrieb:> Das nächste Thema ist dann nämlich dass das Programmieren in der> Arduino-Welt ein wenig anders aussieht als bei normalem C (oder gar ASM)> im AVRStudio.
Nö, isses nicht. Außerdem ist das alles nur eine Frage der Motivation
und Neugier ...
> Wie schätzt Du ihn ein wenn er feststellt dass das was er> tun will mit dem Arduino nicht mehr realisierbar ist (oder halt gelinde> gesagt zu viel kostet weil er das halt "fix" so lassen will und 'n neuer> AVR-µC ist schnell mal neu gekauft, anders als ein Arduino)?
Kauf ich im 10-er Pack um die zwei Euro pro Stück ... (Arduino Pro Mini)
Wenn man erst mal angefangen hat, kann man gar nicht genug Arduinos
haben und wenn es nur einfach mal Neopixel-LED-Ringe sind, die dann
Arduino-gesteuert vor sich hin "flimmern".
> Und die dritte Frage, wie schätzt Du seine Fähigkeit ein das Ding nicht> "umzubringen"? Kocht er den AVR ab ist 'n Euro im Klo. Kocht der> Arduino...
kocht eine Platine für zwei Euro ... außerdem, wie oft kocht man einen
AVR/Arduino wirklich? Ist mir persönlich noch nicht passiert und ich bin
in praktischen Dingen äußerst ungeschickt, um das mal sehr
euphemistisch zu umschreiben.
Hi,
ich würde durchaus über Bascom nachdenken.
Das ist doch irgendwo in der Mitte. Man kann da recht einfach direkt auf
den Controller zugreifen, ohne die unschöne Syntax von C und bekommt am
Anfang doch schnell Ergebnisse.
Bascom ist bei weitem nicht so abgehoben von der Hardware wie Arduino
und man kann mit simplen Befehlen jedes Register ansprechen. Keine
merkwürdige Bitmanipulation, die einen 11-Jährigen ev. überfordert.
Die Logik des Programmierens ist ganz nah an C, nur die Syntax ist viel
einfacher.
Gruß,
Norbert
Terry schrieb:> Nun möchte mein Neffe (11) gerne in die Welt der Programmierung von> Mikrocontrollern einsteigen.
BASIC: Beginner's All-purpose Symbolic Instruction Code
Best choice: BASCOM
Vegiß' die Arduino Software, deren Philosophiie war es auch, die
Mikrocontroller der von Baum zu Baum springenden Bevölkerung unserer
Erde mit einem Minilaptop näherzubringen - so dachten jedenfalls unsere
italienischen Kollegen.
Und wer kauft letztendlich die in Y-Auflösung exterm kastrierten
Spielzeuge?
>Und wer kauft letztendlich die in Y-Auflösung exterm kastrierten Spielzeuge?
Keine Ahnung, was Du mit diesem Satz sagen willst.
Wenn der Satz die Frage sein soll, wer Arduinos kauft, dann wird die
Antwort wohl sein: Welt weit so an die 1 Mio Leute.
Peter Xuang schrieb:> BASIC: Beginner's All-purpose Symbolic Instruction Code> Best choice: BASCOM
Wenn es in Richtung BASIC gehen sollte, würde ich sogar einen
Interpreter empfehlen. Man kann Befehle direkt eingeben und sieht sofort
das Ergebnis.
Siehe hier: Beitrag "PIC 32 schneller Basic Interpreter"
Die Kosten sind etwas höher, aber dafür liefert ein 4,3" TFT gleich die
Ergebnisanzeige und zum Spielen bunte Bilder. Welcher µC dahinter
werkelt, kann doch zunächst egal sein.
Norbert S. schrieb:> ...> ich würde durchaus über Bascom nachdenken.
Ich bin absolut kein Basic-Fan. Aber bei dieser Anwendung (ein 11
Jähriger) halte auch ich sowas für das Beste.
Wenn ich mal die heutige Situation mit damals (Mitte bis Ende der 70er)
vergleiche, als ich anfing: damals waren Blinklichter und Tongeneratoren
aus Einzeltransistoren die üblichen Einstiegsdinge. Da war nichts
programmierbar...
Ist schon eine andere Welt heute.
mse2 schrieb:> Wenn ich mal die heutige Situation mit damals (Mitte bis Ende der 70er)> vergleiche, als ich anfing: damals waren Blinklichter und Tongeneratoren> aus Einzeltransistoren die üblichen Einstiegsdinge. Da war nichts> programmierbar...> Ist schon eine andere Welt heute.
so viel anders ist heute auch nicht,
1977 hatte der Vater einer Freundin den ersten PET2001 hier
1979 hatte ich den und dann meine Steuerberechnung darauf gemacht und
einen Telefonwählautomaten, Schleifenstromunterbrechung IWV aus der
Telefonliste.
1980 kam die 2te VIA6522 als Tongenerator mit NF Endstufe und
Lautsprecher in den PET für space invader.