Guten Tag,
Ich lese hier öfter mal mit und kann mir dadurch auch sehr gut Wissen
aneignen. Jetzt hätte ich auch mal eine Frage, ich hoffe ihr könnt mir
helfen.
Ich möchte in die Welt der Mikrocontroller einsteigen. Ich bin 14 Jahre
alt und beherrsche Python (halbwegs gut) , ein wenig C(viel leider
wieder verlernt) und Java (will ich unbedingt vertiefen).
Also meine programmier und Informatik Kenntnisse im allgemeinen sollten
ausreichen.
Ich kann schwer beurteilen ob ich mich mit Elektronik auskennen,
einerseits habe ich schon einige eigene Schaltungen umgesetzt (eher
kleinere Sachen -> leider wenig Zeit ) und auch viel darüber gelesen,
unter anderem auch ein Buch, andererseits fehlen mir glaube ich
teilweise Grundlagen der Analogtechnik. zB OPamps sind mir immer noch
ein kleines Rätsel...
Ich bin mir daher nicht sicher welches Ev Board ich mir kaufen soll.
Arduinos sind zwar vielseitig, aber ich habe die Angst, dass ich mir da
vielleicht was falsches angewöhne (ich habe gelesen, dass da angeblich
einige Unterschiede in der Anwendung zu anderen, gebräuchlichen
Mikrocontrollern bestehen).
Welches Board würdet ihr mir empfehlen, wenn der Preis eine
untergeordnete Rolle spielt? Ich hätte gerne was, das auch wirklich in
Geräten zur Anwendung kommt, ich will nicht ewig auf einem Arduino
gefangen sein und die LEDs blinken lassen ;)
Ich würde auch einen rohen Chip nehmen, dann bräuchte ich halt einen
"Programmieradapter", stimmt das soweit?
Danke schon mal!
Gruß aus Österreich
Mit Plasteschaufelchen und Plasteeimerchen im Sandkasten lernt man
nichts.
Das hast du schon gut erkannt.
> Ich hätte gerne was, das auch wirklich in Geräten zur Anwendung kommt
Da machst du mit einem "kleinen" ARM nichts verkehrt.
Aber auch die kleinen sind so komplex, dass du mehrere Wochen
mit dem Lesen der Datenblaetter und Architekturbeschreibungen
und dem Einarbeiten in die Benutzung von Compiler, Assembler
und Linker zu haben wirst.
Die Nucleoboards von ST haben "Programmieradapter" schon dabei.
Und fuer den "kleinen" STM32F103 gibt es auch ein Board.
> einen rohen Chip nehmen
Wenn du 0.5/0.8 mm von Hand loeten willst. Das kannst du spaeter
immer noch ueben...
Hallo, danke für deine Antwort.
An die Boards von ST hab ich schon gedacht, danke dass du sie erwähnt
hast.
Gut so ein kleiner ARM ist mal was für die Ferien :D
Das mit rohem Chip hab ich ein bisschen schlecht formuliert, ich meinte
zB den Esp32, den gibt es ja auch "roh" zu kaufen.
Zählt ein ARM Cortex m7 Board von ST auch zu den komplizierten (wie von
dir beschrieben)?
Danke
Gruß
Ps: mein kleinster SMD war bisher 0402 :)
> m7
Backe erstmal kleine Broetchen.
Fuer den Anfang waere ein m0/m0+ (F030/L053) da eher was.
Achte darauf, den Controller selbst kennen zu lernen.
Das geht, wenn sich auf Referenzhandbuch und Register beschraenkt.
Was nicht ausschliesst, dass man sich ansieht wie das in
Beispielen geloest wird.
Hmm der ESP32. Man zeige mir mal ein Produkt, in dem der
wirklich im Einsatz ist. Wenn Wifi oder BT gebraucht werden,
gibt es zahlreiche Chipsaetze die auf das "allernoetigste"
komprimiert, diese Funktionen weitaus einfacher bereitstellen.
Fuer die gibt es, wenn ueberhaupt, dann nur teure Evalkits
und mit der dann auch nur genau die spezielle Funktion
evaluiert werden kann. Und fuer den Markt wird eher mit
genau solchen Spezialisten (z.B. der BCM2042) entwickelt,
als dort einen eher "generischen" und damit teuren Chip
zu benutzen.
Danke, ich werde mich an deinen Tipp halten.
Genau das will ich, ich will den Controller genau kennenlernen. Am
besten was weit verbreitetes, auf dem man gut aufbauen kann.
Ich brauche kein Bluetooth oder WiFi.
Würdest du mir eher zum m0 oder m3 raten?
Ich will schon was lernen und lese auch gerne ein langes Handbuch
darüber.
In welcher Sprache programmiere ich dann so einen m0/m3 usw. eigentlich?
Ich will das absolut beste für meine Zwecke, aber nichts über
kompliziertes.
Der Preis spielt wie gesagt keine Rolle.
Wie meinst du eigentlich das mit:Referenzhandbuch und Register
beschränkt?
Danke nochmal, dass du mir hilfst.
Gruß
Schau doch mal nach den stm32 blue pill Boards. Da bekommst Du für
kleines Geld eine Arm mcu, kannst mit stm32duino und später auch bare
metal coden.
Kauf Dir ein Steckbrett in China und evtl ein Starterset mit LEDs usw.
Du lässt erstmal ne LED blinken, hast Dein Erfolgserlebnis und machst
danach komplexere Projekte.
Hallo, danke für deine Antwort.
Ein Steckbrett habe ich bereits (LEDs liegen immer wo herum :D) .
Ich möchte wie ich schon schrieb unbedingt was haben, auf dem ich
aufbauen kann, ein Arduino scheint mir da nicht das richtige zu sein.
Ich habe mich vielleicht ein bisschen zu unwissend dargestellt. Ich weiß
schon ein bisschen was über Elektronik, und Informatik ist sowieso mein
halbes Leben :)
Das Board gefällt mir, der Preis ist ja wirklich nichts.
Denkst du, dass ein m3 das richtige fürn Anfang ist?
Gruß
Hallo Irgendwer...,
der Einstieg in ARM ist schon der richtige Weg. Auch ich würde den Dir
empfehlen. Das Problem ist das der Einstieg sehr arbeitsintensiv ist.
Der Vorteil ist das du dann irgendwann richtig programmieren kannst.
Aber der Vorschlag mit der "BluePill" ist zum Anfang gut.
Vergesse ganz schnell mit VS-Code oder anderen IDEs Arduino-like C auf
dem STM32 o. Ä. zu programmieren. Damit lernst du weder C neu, noch C++
oder andere. Wenn du richtig auf der Hardware programmieren möchtest
dann eben mit etwas richtigem.
Bevor du hier weiter im ungewissen stocherst wie viel zu lesen ist:
- STM32F103 Datasheet
- STM32F103/F107 RM0008 Reference manual
- STM32F103/F107 PM0056 Programming manual
- ARM Cortex-M3 Devices Generic User Guide
- ARM Cortex-M3 r2p0 Technical Reference Manual
- STDLIB UM0427 User manual
dazu dann noch die Dokumentation des Compilers, Assemblers und Linkers.
Was in den meissten Faellen wohl auf GCC, GAS und LD
hinauslaufen wird.
Besorg dir das alles erstmal. Das sind >2000 Seiten.
Die muss man auch nicht nur lesen, sondern auch verstehen.
Und belasse es fuer den Anfang bei einem Nucleoboard.
Schon weil da der Programmier-/JTAG-Adapter schon dabei ist.
Wenn damit alles funktioniert kann man ueber Bluepillboards
nachdenken.
Und eine gewisse technische Ausstattung ist auch erforderlich
wenn man nicht nur mit LEDs blinken will.
- Oszi
- Logicanalyzer
Hallo, danke auch für deine Antwort.
Ja, ich will gerne viel dafür tun, das stört mich nicht.
Welche IDE würdest du mir für zb die blue pill empfehlen?
Ich programmiere momentan Python (das Buch von Michael Kofler hab ich
schon komplett gelesen und auch verstanden und alles ausprobiert) in
pycharm von jetbrains. Also kanns ruhig professionell aussehen, ich bins
gewohnt :)
An uCs interessiert mich vor allem die Verbindung zwischen Informatik
und Elektronik.
Gruß
@Melder
Danke für die Links, morgen schau ich mir das ganze mal an.
Also das nucleo m3 sollte ich nehmen meinst?
Oszi hab ich schon eines. Ein Tektronix 2235 mit 100 MHz.
Einen Logicanalyzer muss ich mir noch kaufen, hab aber schon Zugriff auf
einen (in einem Hackerspace).
Gruß
Irgendwer123 schrieb:> Arduino scheint mir da nicht das richtige zu sein.
Warum nicht? Gerade wenn eine µC-Architektur es auch mit Arduino Plugin
gibt, sollte man sie näher ansehen. Das bedeutet nämlich dann im
Allgemeinen, dass die Architektur weit verbreitet ist.
Ich finde Arduino abstrahiert mehr (als bare C oder Assembler). Das ist
leider eine Notwendigkeit, auf die wir Menschen mit zunehmender
Innovation angewiesen sind. Wir können uns nicht nicht bei jeder
Technologie bis auf die Grundlagen bilden und dann noch Zeit finden,
vernünftige Produkte zu entwickeln. An einer Stelle müssen wir
abstrahieren.
Arduino is ja auch keine Art von µC, sondern nur eine Plattform. Wenn
von Arduino Hardware gesprochen wird, sind im Allgemeinen darunter die
Atmel (oder mittlerweile Microchip) AVRs 8bit Mikrocontroller gemeint,
aber dies nun auch nicht mehr zwingend. Das liegt einfach nur daran, da
mit den AVRs 2005 alles mit Arduino angefangen hat.
Alle µC, die sich mit Arduino programmieren lassen, lassen sich mit
ihrere jeweiligen Toolchain vom Hersteller des µC auch direkt mit C /
Assembler programmieren.
Deswegen kannst du mit Arduino von AVR 8-bittern, über ARM-Architektur
basierten STM32 und Tensilica XTensa-basierten ESP32 32-bittern alles
etwas abstrahierter programmieren (was dann auch wieder andere Nachteile
hat).
Von "falsch angewöhnen" würde ich bei Arduino nicht sprechen.
Irgendwer123 schrieb:> Ich möchte in die Welt der Mikrocontroller einsteigen. Ich bin 14 Jahre> alt und beherrsche Python (halbwegs gut) , ein wenig C(viel leider> wieder verlernt) und Java (will ich unbedingt vertiefen).
Alle Achtung. Respekt.
Irgendwer123 schrieb:> In welcher Sprache programmiere ich dann so einen m0/m3 usw. eigentlich?
Je nach Bedarf, aber in >95% der Fälle wird C/C++ verwendet.
Melder schrieb:> Hmm der ESP32. Man zeige mir mal ein Produkt, in dem der> wirklich im Einsatz ist.
Ich glaub im Shelly wird zumindest der ESP8266 eingesetzt.
Also ich würde mal frech behaupten, dass ESP8266 / ESP32 in so Consumer
Geräte IoT Startups auch schon mal eingesetzt wird. Ob das dann so
sicher und zuverlässig ist, ist ne andere Frage. Die Toolchain ist
einfach noch nicht so ausgereift um das professionell einzusetzen.
ESP32 und ESP8266 sind bis jetzt zumindest eher noch im Bastlerbereich
zu finden.
Für mich stellt sich immer noch die Frage: Was willst du damit machen
oder was ist genau dein Ziel?
Dieses "ich will genau den richtigen µC" lernen gibt es nicht. Es gibt
immer nur den richtigen µC für die jeweilige Anwendung.
Wenn du 1 000 000 000 Geräte mit sehr eingeschränkter Funktionalität
herstellen willst, nimmst du einen Padauk für 2-3 cent/Stk.
Wenn es ein System ist, in der du viel Funktionalität hast, nimmst du
einen teuren ARM Cortex M7 basierten.
Also nochmal die Frage: Was willst du machen? Du brauchst am Anfang
dringend ein Projekt, dass dich am Ball hält und an dem du lernen
kannst.
> abstrahiert mehr
Wenn man den Umgang mit Controllern lernen will, sollte man
wenigstens eine Controllerfamilie in allen Aspekten kennen
lernen.
Und eben nicht nur irgendwelche abstrahierten Layer die zum
Verstaendnis eher genau gar nichts beitragen.
Damit bliebe man nur im Sandkasten bei Plasteschaufel und
Plasteeimerchen.
Mit Arduino liegst du für den Anfang gar nicht falsch. Denn dazu gibt es
fertige preisgünstige Module die direkt von der Entwicklungsumgebung
unterstützt werden. Die Entwicklungsumgebung ist dazu noch ziemlich
deppensicher aufgebaut, das fängt schon bei der Erstinstallation an.
Irgendwann wird dich der schlichte Editor nerven, spätestens dann wenn
Dir andere Entwickler die zahlreichen Hilfsfunktionen ihrer
Entwicklungsumgebung demonstrieren. Kein Problem: Arduino kann man mit
anderen Entwicklungsumgebung kombiniert nutzen.
Irgendwann werden dich die Einschränkungen nerven, die sich aus dem
Arduino Framework ergeben. Am Anfang ist das noch eine tolle Sache, weil
es den Einsteig sehr vereinfacht. Aber irgendwann will man halt doch mal
den Motor von innen sehen und daran herum schrauben. Das ist der Moment,
wo du dich wahrscheinlich von der Arduino IDE trennen wirst, um deine
vorhandenen Module "bare-metal" zu programmieren. Auch das geht ohne
Probleme.
Von da an ist der nächste Schritt zum nackten Mikrocontroller sehr
einfach.
Was die Modul-Auswahl angeht, kann ich Dir für den Anfang "Arduino Nano"
empfehlen, weil sie auf Streckbretter passen und den gleichen
Mikrocontroller haben, wie der größere Arduino Uno. Sie sind lediglich
kompakter gebaut.
Nach heutigem Kenntnisstand würde ich diesen Weg empfehlen.
Alternativ: Falls du direkt mit einer Profi-IDE und nackten Chips
bare-metal anfangen willst, könnte mein Buch für dich hilfreich sein:
http://stefanfrings.de/mikrocontroller_buch/index.html
Man kann auch direkt mit 32bit einsteigen. Die 32bit an sich sind nicht
komplizierter, als 8bit Programmierung. Aber alle 32bit Mikrocontroller
haben viel mehr Funktionen. Die Menge dieser Funktionen macht sie
erheblich komplexer in der Anwendung. Wenn du der Meinung bist, ein ganz
harter kerl zu sein, der sich nicht davor scheut, 200 Seiten lesen zu
müssen bevor die erste LED blinkt, dann (und nur dann) solltest du den
Einstieg mit ARM Controllern wagen. Auch dafür habe ich eine Anleitung
geschrieben: http://stefanfrings.de/mikrocontroller_buch2/index.html
Aber sei gewarnt: Die Sachlage wird dort stark vereinfacht dargestellt.
Wenn du mit dem Buch durch bist, hast du mal gerade an der Oberfläche
der Chips gekratzt. Bis du alle Funktionen erforscht hast, wirst du
mindestens 40x so viel lesen müssen.
Da sowohl die Arduino Module als auch die ARM Controller mit dem gcc
programmiert werden (können), ist ein schrittweiser Aufstiegt absolut
sinnvoll. Was du beim Umgang mit Arduino lernst, wirst du auch bei 32bit
ARM nutzen.
Das ist so ein bisschen wie 20€ Schul-Taschenrechner aus der 10, Klasse
versus 200€ Rechner für Mathe-Studenten. Nur dass die ARM Controller gar
nicht teurer sind. Aber komplexer.
Melder schrieb:> Mit Plasteschaufelchen und Plasteeimerchen im Sandkasten lernt man> nichts.
Doch, damit lernt man Motorik.
Was ich damit sagen will: Mit Spielsachen lernt man ganz gewiss Dinge,
die man im späteren Leben braucht. Das ist für die Lernkurve elementar
wichtig.
Versuche mal als Laie, eine Wand zu verputzen. Viel Spaß dabei! Danach
wirst du es verstehen.
Irgendwer123 schrieb:> ich meinte zB den Esp32, den gibt es ja auch "roh" zu kaufen.
Den würde ich keinesfalls einzeln kaufen, es sei denn du bist im
Layouten von HF Schaltungen erfahren. Selbst die Hersteller von
Bastelbaords verwenden überwiegend fertige Module (ESP32 Wroom) die sie
auf ihre Boards oben drauf löten.
> Zählt ein ARM Cortex m7 Board von ST auch zu den> komplizierten (wie von dir beschrieben)?
Ja. Fange besser mit einem STM32L0xx oder STM32F3xx an. Die gibt es
beide mit unterschiedlich vielen Pins. Siehe
http://stefanfrings.de/stm32/index.html
So wie Stefanus sehe ich es auch.
Und wenn du zu einem Arduino Nano greifst, kannst du den µC da drauf
(ein AVR
ATmega 8-bitter) ja trotzdem mit ISP und AVR Studio oder einer anderen
IDE programmieren um die Arduino IDE beiseite legen.
Irgendwer123 schrieb:> ch möchte in die Welt der Mikrocontroller einsteigen
Das macht man derzeit mit einem Arduino.
Warum ? Weil der direkt über USB programmiert werden kann.
Und weil es eine einfache, sagen wir lieber spartanische
Programmierumgebung IDE für ihn gibt.
Und weil das Netz voller Beispiele für alle mögliche Anwendungen für ihn
ist.
Andreas R. schrieb:> Schau doch mal nach den stm32 blue pill Boards
Besser nicht. Das Drama mit den gefälschten nicht funktionierenden
Boards aus China ruiniert die Pille.
Man weiss dann nicht mehr, ob der Fehler bei einem selbst oder der
Hardware liegt. Da kann man ewig rumprogrammieren und der einzige
Lernerfolg bleibt, dass man doch besser nicht in China gekauft hätte.
So lange man die Rechenleistung der STM nicht braucht, tut man sich die
Dinger nicht freiwillig an. Und weil sie im Arduino-Style mit
digitalWrite, analogRead programmiert auch nicht schneller sind als
ATmega328, gibt es keinen Grund sie zu kaufen bevor man nicht native C
programmieren kann.
http://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.7.3.1
MaWin schrieb:>> Schau doch mal nach den stm32 blue pill Boards>> Besser nicht. Das Drama mit den gefälschten nicht funktionierenden> Boards aus China ruiniert die Pille.>> Man weiss dann nicht mehr, ob der Fehler bei einem selbst oder der> Hardware liegt. Da kann man ewig rumprogrammieren und der einzige> Lernerfolg bleibt, dass man doch besser nicht in China gekauft hätte.
Leider sehe ich das genau so.
Zum Glück gibt es bei der Firma RobotDyn noch kompatible Boards in guter
Qualität sowohl mit dem alten STM32F103 als auch mit dessen Nachfolger
STM32F303 (der wird allerdings anders programmiert!).
Stefan ⛄ F. schrieb:> Das ist so ein bisschen wie 20€ Schul-Taschenrechner aus der 10, Klasse> versus 200€ Rechner für Mathe-Studenten
Kein Mathe-Student nutzt 200€ Taschenrechner, denn der nützt ihm gar
nichts. Der kann kein Maple/MathCad.
Und das einzige, was man im Mathestudium nie tun muss, ist numerische
Ergebnisse ausrechnen.
Mein 20€ Taschenrechner aus der Abizeit tut es gut bis zu meiner Rente.
200€ gibt nur BlingBling Kind aus.
Also dieselben die einen STM kaufen um eine LED blinken zu lassen.
MaWin schrieb:> Und das einzige, was man im Mathestudium nie tun muss, ist numerische> Ergebnisse ausrechnen.
Ok, dann habe ich mir das wohl falsch vorgstellt. Aber es wurde
hoffentlich trotzdem klar, welche Art von Taschenrechner ich meine,
oder?
> Man kann auch direkt mit 32bit einsteigen. Die 32bit an sich sind nicht> komplizierter, als 8bit Programmierung. Aber alle 32bit Mikrocontroller> haben viel mehr Funktionen. Die Menge dieser Funktionen macht sie> erheblich komplexer in der Anwendung.
Man hoert das immer wieder, der Meinung bin ich aber nicht.
Man programmiert beide in C, sieht da also keinen grossen Unterschied.
Sicher, moderne Controller haben gerne mal Datenblaetter von 2000Seiten
aber man muss ja immer nur das lesen was man gerade braucht.
Das Problem bei jemanden er erst 14 ist sehe ich eher darin das er
keinerlei Grundlagen haben kann und sein Englisch auch noch nicht
ausreicht um ein Datenblatt zu lesen.
Daher wuerde ich eher empfehlen sich nach einem guten Buch umzuschauen
welches bei null anfaengt und die Hardware passend zum Buch kaufen. Wenn
man das dann durch hat kann man sich dann kaufen wozu man auch immer
lust hat und sich in alles einarbeiten.
Olaf
Olaf schrieb:> Sicher, moderne Controller haben gerne mal Datenblaetter von 2000Seiten> aber man muss ja immer nur das lesen was man gerade braucht.
Das ist richtig. Doch du musst dich von Anfang an mit der ganzen RCC
Bautgruppe auseinander setzen, um überhaupt mal den ersten Pin überhaupt
an laufen zu bekommen. Alleine dessen Doku umfasst schon einige zig
Seiten.
Im Gegensatz dazu sind alle I/O Pins bei AVR sofort einsatzbereit.
Dazu kommt, dass selbst einfaches High/Low Setzen von Ausgängen
komplexer ist, weil es da viel mehr Einstellmöglichkeiten gibt. Zum
Beispiel kann man die Flankensteilheit einstellen.
Im Datenblatt des STM32F303 umfasst die Beschreibung der General Purpose
I/O Pins bereits zwar nur etwa 20 Seiten wie bei AVR, aber viel weniger
detailliert. Wenn das AVR Datenblatt den selben Schreibstil hätte, wie
ST, dann würde das gleiche Kapitel bei AVR nur 10 Seiten umfassen.
Timo N. schrieb:> Irgendwer123 schrieb:>> Arduino scheint mir da nicht das richtige zu sein.>> Warum nicht? Gerade wenn eine µC-Architektur es auch mit Arduino Plugin> gibt, sollte man sie näher ansehen. Das bedeutet nämlich dann im> Allgemeinen, dass die Architektur weit verbreitet ist.> Ich finde Arduino abstrahiert mehr (als bare C oder Assembler). Das ist> leider eine Notwendigkeit, auf die wir Menschen mit zunehmender> Innovation angewiesen sind. Wir können uns nicht nicht bei jeder> Technologie bis auf die Grundlagen bilden und dann noch Zeit finden,> vernünftige Produkte zu entwickeln. An einer Stelle müssen wir> abstrahieren.
sehe ich genauso, habe mit dem AVR Atmel vor 12 Jahren angefangen noch
ohne Arduino auf selbstgemachten Platinen, dann zu Arduino gewechselt,
konnte halt viele Tools mitnehmen und dann zum ESP32 auch da konnte ich
viele selbstgeschriebene Tools mitnehmen.
Wer will denn immer wieder Nebenkriegsschauplätze eröffnen, man bastelt
zwar aus Freude, hat aber auch Projekte die man erledigen möchte, da
stören manchmal die tiefen Niederungen der Architektur nur.
Melder schrieb:> Hmm der ESP32. Man zeige mir mal ein Produkt, in dem der> wirklich im Einsatz ist.
der soll meine Wordclock steuern, der AVR machts schon nur ist der DCF77
Empfang hier einfach zu schlecht, wlan Anbindung ist das schon besser.
Joachim B. schrieb:> Wer will denn immer wieder Nebenkriegsschauplätze eröffnen, man bastelt> zwar aus Freude, hat aber auch Projekte die man erledigen möchte, da> stören manchmal die tiefen Niederungen der Architektur nur.
Da hast du natürlich Recht. Wenn man "nur" ein bestimmtest Projekt
umsetzten möchte, ohne sich dabei tiefer mit der Technik beschäftigen zu
müssen.
Wenn der "maker" von heute seine innovative DIY Wetterstation bauen
will,
kauft er sich ein fertiges ESP32 Board,
ein paar Sensoren und ein schickes Display,
lädt sich bei Adafruit und Co. die fertigen libs runter,
schreibt ein paar Zeilen Code, die er nicht versteht,
steckt alles zusammen,
baut eine Holzbox außen rum und ist fertig.
Am Ende funktionierts und jeder ist glücklich.
Wenn ich den TO richtig verstehe, möchte er aber den Einstig zu
Mikrocontrollern schaffen und hat Lust was zu lernen. Ich glaube da ist
die fix-feritige Arduino Software(!!) Plattform das falsche.
Wie andere auch schon geschrieben haben, spricht gegen die Hardware aber
überhaupt nichts. Die ist günstig zu bekommen und hat alles was der
Controller braucht um zu funktionieren.
Den Controller kann er ja trotzdem mit der, dafür geeigneten Toolchain
(z.B. im Fall des Atmega328p mit Atmel Studio und einem ISP) Hardware
nah in C oder ASM programmieren.
Beispiele findet er nicht zuletzt auch hier im Forum mehr als genug.
D. W. schrieb:> Ich glaube da ist> die fix-feritige Arduino Software(!!) Plattform das falsche.
Arduino besteht im Grunde aus drei Komponenten:
Arduino IDE
Arduino Framework
Arduino Board
Gemeinsam spielen sie recht gut zusammen.
Stehen zumindest ersten Ergebnissen nicht im Wege rum.
Jede der drei Komponenten kann man austauschen, wenn sie einem nicht
schmeckt.
Wem die IDE nicht schmeckt, nimmt VisualStudio, Eclipse oder eine
beliebig andere, welche den Zweck erfüllt
Schmeckt das Framework nicht, lässt man es weg, bzw. nutzt es eben
nicht. Ein paar Priester hier, meinen das geht nicht. Unfug.
Die Boards/µC sind sowieso austauschbar. Für Unmengen verschiedener
Boards gibt es die Arduino Unterstützung.
Irgendwer123 schrieb:> Arduinos sind zwar vielseitig, aber ich habe die Angst, dass ich mir da> vielleicht was falsches angewöhne (ich habe gelesen, dass da angeblich> einige Unterschiede in der Anwendung zu anderen, gebräuchlichen> Mikrocontrollern bestehen).
Arduino bietet die Chance/Plattform um C++, C und Assembler zu lernen.
Und wie schon gesagt....
Du kannst das Framework nutzen, musst aber nicht.
Sogar dir dein eigenes bauen.
Du entscheidest selber, ob du "das falsche" lernst.
D. W. schrieb:> Ich glaube da ist> die fix-feritige Arduino Software(!!) Plattform das falsche.
nun ja er kann auch einen Arduino AVR locker ohne die Arduino IDE
programmieren, einfach mit ISP Prommer in Atmel Studio oder sonst was.
Der Vorteil, es muss keine Platine gebaut werden Vogelfutter ist schon
drauf, auf dem Steckbrett geht DIP 328p, 1284p, Platinen gibts auch.
https://oshpark.com/profiles/JChristensen/page/4
Niemand zwingt einen die Arduino IDE zu nutzen, aber man kann.
Hallo,
mal ein anderer Gesichtspunkt zu Arduino: wenn man schaut, ist es C/C++,
ein GCC. "Libbraries" sind (neist) Quelltext, keine Objektfiles +
Header. Man kann also oft bis zum letzten Bit schauen, was da gemacht
wird.
Man kann mit wenig Aufwand zwischen recht verscheidenen Architekturen
hin- und her wechseln, ohne viel Zeit mit der Einrichtung der jeweils
speziellen Umgebung zu verbringen. Wenn ma also will, kann man recht
schnell z.B. die Unterschiede bei verschiedenen Hardwarearchitekturen
ergründen, lernen, was wichtig und was weniger wichtig ist. Wenn man
will, lernt man recht einfach, welche Hardwarekomponenten man wofür gut
nutzen kann, welche ein µC für spezielle Aufgaben also haben sollte.
Das muß man eben wollen, da liegt die Entscheidung, weniger in Arduino
ja oder nein.
Ich weiß nicht, wie es anderen ging, aber meine Einstiege vor
Jahrzehnten war vor allem: erstmal schaune, wie andere es gelöst haben,
zu verstehen warum, zu versuchen, es anders/besser zu machen usw.
Gruß aus Bberlin
Michael
Mal einige Tips von mir:
- Suche Dir etwas aus, was verbreitet ist.
In diesem Fall kannst Du auch mit Hilfe aus Foren rechnen.
- Suche Dir etwas aus, was Du auch bekommen kannst.
Was bringt Dir ein Prozessor, auf den Du 2 Monate warten musst oder
gar nur mit Gewerbeschein in entsprechenden Stückzahlen bekommen kannst.
- Suche Dir eine vielseitige Prozessorfamilie aus.
Dann geht die Einarbeitung in einen anderen Prozessortyp schneller und
kannst je nach Einsatzgebiet den passenden Typen wählen.
- "Der Arduino" basiert auf AVR. Neben dem Prozessor ist auch das
Hühnerfutter bereits vorhanden.
Du bist nicht dazu gezwungen, die Arduino-Bibliotheken zu nutzen. Es
ist aber oft von Vorteil, mit einen Arduino-Board bereits ein fertiges
Eval-Board zu haben. Gerade für ganz schnelle Sachen ist ein Aduino auch
schnell im Einsatz.
- Schieße nicht mit Kanonen auf Spatzen.
Auch wenn ein 32-Bitter moderner scheint, reichen oft einfachere
8-Bitter aus.
Zum Lernen ist ein 8-Bitter sicher besser geeignet als ein
komplizierter 32-Bitter.
Ich habe mit 8-Bit angefangen (8085) und diesen in Assembler
programmiert.
Da ich das Programm nur ausprobiernen konnte, nachdem es in ein EPROM
gebrannt wurde, habe ich mit viele Gedanken vor dem Brennen gemacht.
Damals hatte ich mir den Code noch ausgedruckt und bin ihn selber
Schrittweise durchgegangen um damit Fehler zu finden.
Das ist zwar nichts für komplizierte Programme, aber Du lernst ungemein
viel dadurch.
Mein erstes Programm mit ca. 2kByte lief übrigens auf Anhieb.
Christian H. schrieb:> Mein erstes Programm mit ca. 2kByte lief übrigens auf Anhieb.
Wie hast du dass den fertig gebracht, 2 kB für einen LED Blinker voll zu
kriegen? Man fängt doch klein an!
Ob Arduino-IDE, Keil uVision, IAR Workbench, etc., pp. Sie alle haben
ein Problem. Sie abstrahieren den Erstellungsprozess der Binärdaten für
Bequemlichkeit und Komfort hinweg. Wobei das nichts schlechtes sein
muss, hat man praktisch wenig Antrieb das zugrundeliegende Werkzeug
für die Code-Erstellung kennen zu lernen. Muss man dann wirklich mal
Hand an die Toolchain anlegen ist man ratlos und steht im kalten Wasser.
Die Kausalkette sollte eigentlich so aussehen:
1. Compiler verstehen
2. Build-tool verstehen
3. Hardware verstehen
4. ISA + ABI verstehen
E. nehme Ich cat "main(...) > main.c" oder den superduper Kubernetes
container mit der Ultra-IDE ...?
5. Software schreiben
6. Fehlermeldungen genießen (die man auch versteht, wegen dito)
Natürlich fängt man heutzutage bei 5. an und beschafft sich ohne irgend
ein Vorwissen dann einen Editor/IDE, wahrscheinlich den aktuell am
Beliebtesten und mit dem Elan einer Stubenfliege zum Recherchieren über
das Thema(überdramatisiert).
Es entgeht aber das Erfassen der Gesamtsituation, fehlt der Überblick
und das Wissen, das auch in anderen Bereichen rund um das Programmieren
nützlich sein kann. Die Möglichkeit von Flexibilität und Kontrolle über
die Erstellung des Codes gibt man ab an generalisierte Pakete, die
entweder funktionieren oder nicht.
Wer sich da wiedererkennt: Ist völlig okay! Es ist legitim, einfach und
schnell(RAD) was auf die Reihe zu bekommen. Aber probiert es doch mal
aus. Es muss auch kein kalter Entzug sein: Eine Toolchain aufsetzen, die
alte IDE weiter benutzen, aber eben nicht auf BUILD drücken, sondern
nebenher "make" in die Konsole schreiben.
Es könnte sogar am Ende eine Belohnung für die Mühen warten, wie
Flexibilität, Durchblick und Geschwindigkeit.
Wie kann ich nur so etwas vom TE verlangen, wo doch viele sagen, das man
mit Arduino einsteigt?
-> "aber ich habe die Angst, dass ich mir da
vielleicht was falsches angewöhne"
:P
Schaut doch einfach mal bei
https://www.mikrocontroller.net/articles/AVR-GCChttps://www.mikrocontroller.net/articles/STM32#Tutorials_f.C3.BCr_diverse_Tool-Kombinationen
oder google vorbei. Das ist alles kein "muss", sondern ein "kann" und
ist nur nen klick weit weg:)
Stefan ⛄ F. schrieb:> Der ESP32 ist besser, weil blaues Licht :-)
aber das weisse Licht lässt sich besser ablesen!
Und ich konnte meine C-Tools vom PC prozessorunabhängig seit 1990 auf
dem AVR wie auf dem ESP weiter nutzen.
D. W. schrieb:> Ich glaube da ist> die fix-feritige Arduino Software(!!) Plattform das falsche.
Sehe ich nicht so. Du kannst für den Anfang recht schnell an
Erfolgserlebnise geraden - und das ist wichtig. Du musst aber auch den
Mut aufbringen, dahinter mehr zu entdecken. Wenn etwas nicht gleich
funktioniert oder gar zu langsam ist, nicht die Flinte ins Korn werfen,
sondern sich selber weiterentwickeln.
Das ist ja gerade das "Problem" der Arduino-Jünger. Es wird selten
weiter gedacht als virtuelle Bauklötzle zu verteilen. Passen die mal
nicht zusammen, wird das Internet nach bessere Bausteine durchsucht.
Oder es wird in Foren nachgefragt und gehofft, dass andere Leute für
einen Denken.
Stefan ⛄ F. schrieb:> Wie hast du dass den fertig gebracht, 2 kB für einen LED Blinker voll zu> kriegen? Man fängt doch klein an!
Tja, ich hatte bereits Assembler auf dem Amiga programmiert. Also für
den 68000er. Da hatte ich schon etwas Übung.
Aber ein LED-Blinker im erweiterten Sinn war es schon: Eine
Ampelsteuerung für den Turnierbetrieb beim Bogenschießen.
Christian H. schrieb:> Sehe ich nicht so. Du kannst für den Anfang recht schnell an> Erfolgserlebnise geraden - und das ist wichtig. Du musst aber auch den> Mut aufbringen, dahinter mehr zu entdecken. Wenn etwas nicht gleich> funktioniert oder gar zu langsam ist, nicht die Flinte ins Korn werfen,> sondern sich selber weiterentwickeln.
War vielleicht etwas zu scharf formuliert von mir. Ich habe in der
Vergangenheit zu oft die Erfahrung gemacht, dass sich Leute eben nicht
selber aufraffen und weiter graben. Da bin ich gebrandmarkt.
Am Ende ist das eine Sache des Wollens und da scheint der TO ja die
nötige Motivation mitzubringen. Dann ist es am Anfang vielleicht
wirklich nicht falsch schnell an Erfolgserlebnisse zu kommen und sich
dann langsam (aber sicher) weiter zu erwickeln wie es
Arduino Fanboy D. schrieb:> Jede der drei Komponenten kann man austauschen, wenn sie einem nicht> schmeckt.
hier beschrieben hat.
Christian H. schrieb:> Aber ein LED-Blinker im erweiterten Sinn war es schon: Eine> Ampelsteuerung für den Turnierbetrieb beim Bogenschießen.
Hut ab! Für ein Anfangsprojekt war das sicher ein großes Ding.
Heute haben wir integrierten Flash, das ist schon um Welten
komfortabler.
Ich seh das wie Stefan -
ruhig einen Arduino nehmen am Anfang. Ich würde am ehesten auf einen mit
einem AtMega zurückgeifen -> fertiges Board, mengenmäßig übersichtliche
Datenblätter zum µC, breites Communitywissen
Genau wie Stefan sagt, irgendwann will man etwas ausreichend spezielles
machen, damit sich die Ardu-Bibliotheken nicht mehr vertragen. Dann
kommt der Blick ins Datenblatt.
Insgesamt denke ich macht so was Sinn wie
>Arduino Uno/Nano Board mit Ardu-Framework>> do some Stuff>Arduino Uno/Nano Board mit µC Datenblatt, AVR Studio, mySmartUSB light>> do some Stuff>STM32 BluePill mit Arduino Framework>> do some Stuff>STM32 BluePill mit oben genannten Dokumenten, Ardu-Framework zum hochladen, oder
andere IDE mit z.B. ST-LINK V2 Emulator zum flashen
>>>um die Sache erstmal Low-Budget zu halten.
Ich denke zu mindest für die ersten beiden Schritte MUSS man kein Oszi
und/oder Digitalanalyzer haben.
Auch Assembler halte ich nicht für Pflicht. Für die Awareness ist es
vielleicht nicht verkehrt mal was einfaches in ASM zu machen.
Irgendwer123 schrieb:> Ich bin mir daher nicht sicher welches Ev Board ich mir kaufen soll.> Arduinos sind zwar vielseitig, aber ich habe die Angst, dass ich mir da> vielleicht was falsches angewöhne
Niemand zwingt dich, ein Arduino Board mit Arduino Softwareumgebung und
IDE zu benutzen. Viele Arduino Boards haben einen ganz normalen
ATmega328 oder einen ATmega32U4 drauf, der Arduino Due kommt mit einem
Cortex-M3 Prozessor daher.
Hallo,
Vielen Dank für die vielen Antworten!
Ich kann leider nicht auf jede einzelne eingehen, aber seid sicher, ich
habe sie gelesen.
Ich möchte viele verschiedene Sachen damit machen, die sich nicht auf
fertige Module beschränken. Das interessiert mich nicht, weil ich
erstens nicht 5 - 10€ für einen Sensor zahle der 20cent wert ist und
zweitens nicht, wie hier schon richtig geschrieben wurde, nur Lego für
Fortgeschrittene spielen will.
Mögliche Projekte, die mir vorschweben sind zB:
Schrittmotoren ansteuern; ein Keypad (richtig mit einer Tastenmatrix)
selbermachen, dass über USB direkt am PC hängt; Geigerzähler, vielleicht
auch mit Datenlogger; Solartracker (natürlich nur in klein als Modell);
LED Streifen über den PC steuern; einen Maussensor direkt anschließen;
usw...
Das sind ein paar der Sachen die ich gerne machen würde. Ich weiß, dass
einige davon nicht ohne weiteres umzusetzen sind (für den Motor brauch
ich zb ja einen Treiber)...
Aber ich möchte auch wirklich verstehen was dahinter steckt.
Irgendwer123 schrieb:> Schrittmotoren ansteuern; ein Keypad (richtig mit einer Tastenmatrix)> selbermachen, dass über USB direkt am PC hängt; Geigerzähler, vielleicht> auch mit Datenlogger; Solartracker (natürlich nur in klein als Modell);> LED Streifen über den PC steuern; einen Maussensor direkt anschließen;> usw...
Das kannst Du alles mit beliebigen Prozessoren machen, auch mit
8-Bittern.
Ups, die Antwort war noch nicht fertig :
Was würdet ihr mir empfehlen, damit direkt ohne Umweg direkt wirklich
was über Mikrocontroller lerne?
Eine aufwendige und komplizierte IDE stört ja nur am Anfang. Hingegen
eine einfache wie in meine Fall für Python: MU, nervt andauernd herum
(deswegen sind wir auch umgestiegen).
Es ist schwer mich zu entscheiden, einerseits will ich keine 2000 Seiten
Datenblätter lesen (Handbuch oder ein Buch zum Lernen aber schon),
andererseits will ich gleich was gescheites haben.
Ich würde mein Englisch nicht als schlecht einschätzen, aber obs für
sowas reicht...
Wenn ein Arduino "so" ohne die ganze Software verwendet wird, wie
unterscheidet es sich dann für den Programmierer zum Beispiel zu einem
m3?
Danke
Gruß
Irgendwer123 schrieb:> ein Keypad (richtig mit einer Tastenmatrix)> selbermachen, dass über USB direkt am PC hängtIrgendwer123 schrieb:> einerseits will ich keine 2000 Seiten> Datenblätter lesen
Für USB mußt Du das aber, die USB-Spezifikation hat es in sich.
Oder Du nimmst einen fertigen Tastaturcode und lernst nix dabei.
Viele Geräteentwickler machen daher einen großen Bogen um USB und
benutzen USB nur als COM-Port. Damit umgehen sie das Problem, ständig
neue Treiber für jedes OS entwickeln zu müssen. Sie nehmen einfach die
Treiber der USB-COM Umsetzer-ICs (Prolific, FTDI, Silabs usw.).
Irgendwer123 schrieb:> Wenn ein Arduino "so" ohne die ganze Software verwendet wird, wie> unterscheidet es sich dann für den Programmierer zum Beispiel zu einem> m3?
Der M3 ist komplexer als ein AVR bezüglich Registersatz, Interrupts,
Memory-Management, ...
Irgendwer123 schrieb:> Es ist schwer mich zu entscheiden, einerseits will ich keine 2000 Seiten> Datenblätter lesen
Also eher ein AVR
@stefanus
Ich habe gerade eines deiner Bücher durchgeblättert, das scheint genau
das richtige für mich zu sein.
Eine Frage : Warum gehst du nicht zu einem großen Verlag wie vielleicht
Rheinwerk, und verkaufst die Bücher? In Sachen Mikrocontroller haben die
eh noch nicht viel.
Gruß
Hallo,
Peter D. schrieb:> Für USB mußt Du das aber, die USB-Spezifikation hat es in sich.> Oder Du nimmst einen fertigen Tastaturcode und lernst nix dabei.
ich denke, wenn man prinzipiell begriffen hat, was z.B. ein
USB-Descriptor ist und was da rein muß, gebauso z.B. BT oder LAN/WLAN
Sachen, hat man viel gewonnen, auch wenn man nicht weiß, wer da welches
Bit in welchem Register der Hardware setzt. Ich denke, oft wird man das
soagr nie ergünden wollen oder müssen. Meist landet man ganz unten, wenn
der Treiber eines exotischen ICs Mist baut, weil der Entwickler die
Anmerkungen im Datenblatt nicht gelesen hat.
Ob man sich dieses Wissen und das Herangehen auf einem Mega32U4, einem
ESP8266 oder einem ESP32 oder auf einem anderen System aneignet, dürfte
relativ egal sein.
Gruß aus Berlin
Michael
Arduino Fanboy D. schrieb:> Tja, dann ist das Thema schon am Anfang recht durch.
Der TO hat sich als 14 jähriger vorgestellt, hast du da schon am
liebsten Datenblätter gelesen und auch verstanden?
Eine IDE wie AtmelStudio ist da schon sehr hilfreich. Die µC mögen
lieber C, C++ oder ASM als Python, also erstmal mit C anfangen.
MicroPython gibts zwar auch schon und ist wohl sehr beliebt, aber sicher
nicht sehr maschinennah.
AtmelStudio kann auch Arduino Projekte importieren, das hilft auch in
die Internas zu schauen.
Aber gerade um auch die Sprache zu lernen ist das einfache Debugging mit
den Cortex-M gut. PlatformIO und ein Nucleo Board sind auch einfach zum
Einsteigen. Oder noch besser MbedStudio und ein Nucleo.
Ok, dann ist ein Arduino fürn Anfang vielleicht doch nicht so
schlecht... Mir war vorher nicht klar, dass ich den auch ohne dem
Framework verwenden kann.
Wenn ich das Arduino Framework dann nicht mehr verwende (oder es erst
gar nicht nehme), wird der dann immer noch in C programmiert? Oder hängt
das von Framework ab?
Danke
Gruß
Hallo,
> Eine aufwendige und komplizierte IDE stört ja nur am Anfang. Hingegen> eine einfache wie in meine Fall für Python: MU, nervt andauernd herum> (deswegen sind wir auch umgestiegen).
Ich benutze Programmierung von AVR-MCUs die AVR-GNU-Toolchain, Geany als
Editor, ein universelles Make-file und einen avrisp2-kompatiblen
Programmieradapter (in Verbindung mit avrdude) als Programmierumgebung
unter Windows 10.
Die Installation ist, im Gegensatz zu AtmelStudio(AS), aufwändiger aber
das Ganze ist viel einfacher zu überschauen und zu bedienen als AS.
Langfristig plane ich von WIN10 auf Linux zu wechseln, da kommst es mir
zu gute das alle Teile der Umgebung genau so unter Linux laufen.
rhf
@jojos
C ist kein Problem für mich, meine Kenntnisse sind nur schon ein
bisschen eingerostet.
OK, dann vielleicht doch ein m3? :D
Ich muss mich da ganz auf euch verlassen mit meiner Wahl. Im Internet
steht zwar viel, aber auch viel Blödsinn... Deswegen vertraue ich da
lieber auf ein Forum wie dieses.
Gruß
Irgendwer123 schrieb:> Wenn ich das Arduino Framework dann nicht mehr verwende (oder es erst> gar nicht nehme), wird der dann immer noch in C programmiert? Oder hängt> das von Framework ab?
Arduino besteht im Grunde genommen aus C++-Klassenbibliotheken.
Du kannst den Prozessor mit jeder Sprache ansprechen, wie Du lustig
bist.
Du kannst sogar Teile in C, andere in C++ und wieder andere in Asembler
schreiben. Wenn Dein Python Objektcode ausgeben kann, dann ist auch das
noch mit drin.
Hallo Peter,
> Für USB mußt Du das aber, die USB-Spezifikation hat es in sich.> Oder Du nimmst einen fertigen Tastaturcode und lernst nix dabei.
Der Junge will anfangen, da muss er nichts über USB-Spezifikationen
wissen, lass mal die Kirche im Dorf.
rhf
Hallo,
Roland F. schrieb:> Der Junge will anfangen, da muss er nichts über USB-Spezifikation> wissen, lass mal die Kirche im Dorf.Irgendwer123 schrieb:> ein Keypad (richtig mit einer Tastenmatrix)> selbermachen, dass über USB direkt am PC hängt;
spätestens dann aber...
Außerdem: soll er doch anfangen, irgendeinen billigen Arduino Nano oder
Arduino Micro kaufen, die ArduinoIDE installieren und loslegen.
Mit dem Micro bekommt er soagr genug USB für die Tastatur.
Kosten unter 10€, Zeitaufwand für die Installation 30min.
Gruß aus Berlin
Michael
Hallo,
> OK, dann vielleicht doch ein m3? :D
Zu Verstehen der Grundlagen ist ein 8-Bitter, weil weniger komplex,
meiner Meinung nach besser geeignet.
Du kannst ja mal fragen wer von denen, die hier eine 32-Bit-MCU für den
Anfang empfehlen, selber so angefangen hat.
rhf
Irgendwer123 schrieb:> Deswegen vertraue ich da> lieber auf ein Forum wie dieses.
Ja, aber das Thema ist nicht neu, die Frage kommt eigentlich
wöchentlich. Und auch immer mit den gleichen Antworten...
M3 ist schon gut, die Framework Phobie (gibts da auch schon einen lat.
Namen für?) halte ich für übertrieben. Damit hat man zusätzliche
Funktionen die über nacktes C/C++ hinausgehen, es ist aber nicht
verboten trotzdem die Register der CPU oder sonstiger Peripherie low
level anzusprechen.
Das Bluepill Board ist gut, mittlerweile gibts da aber welche mit Clones
oder Fakes, da muss man mittlwerweile mit Überraschungen rechnen. Und es
ist ein Stück zusätzliche Hardware zum Programmieren/Debuggen nötig.
Deshalb ist ein org. Nucleo mit einem M3/M4 einfacher zum Starten weil
die Programmierhardware da gleich mit dranhängt.
Hallo Michael,
> Irgendwer123 schrieb:>> ein Keypad (richtig mit einer Tastenmatrix)>> selbermachen, dass über USB direkt am PC hängt;>> spätestens dann aber...
Nö, Peter hat doch oben beschrieben wie man sich das Leben einfacher
macht:
Peter D. schrieb:> Viele Geräteentwickler machen daher einen großen Bogen um USB und> benutzen USB nur als COM-Port. Damit umgehen sie das Problem, ständig> neue Treiber für jedes OS entwickeln zu müssen. Sie nehmen einfach die> Treiber der USB-COM Umsetzer-ICs (Prolific, FTDI, Silabs usw.).> Außerdem: soll er doch anfangen, irgendeinen billigen Arduino Nano oder> Arduino Micro kaufen, die ArduinoIDE installieren und loslegen.> Mit dem Micro bekommt er soagr genug USB für die Tastatur.> Kosten unter 10€, Zeitaufwand für die Installation 30min.
Da stimme ich dir absolut zu.
rhf
Irgendwer123 schrieb:> Das interessiert mich nicht, weil ich> erstens nicht 5 - 10€ für einen Sensor zahle der 20cent wert ist und> zweitens nicht, wie hier schon richtig geschrieben wurde, nur Lego für> Fortgeschrittene spielen will.
Tja, das ist ein Tradeoff. Als Ingenieur spielt man eigentlich die ganze
Zeit "Lego für Erwachsene". Denn du musst dir überlegen: Lohnt es sich
an der und der Stelle etwas neues zu entwickeln, oder investiere ich
meine Zeit lieber sinnvoll. Auch diese Entscheidungsfindung muss man
lernen.
Irgendwer123 schrieb:> Wenn ich das Arduino Framework dann nicht mehr verwende (oder es erst> gar nicht nehme), wird der dann immer noch in C programmiert? Oder hängt> das von Framework ab?
Mit "der" meinst du das Arduino Entwicklungsboard (also Uno, Nano, Mirco
etc).
Ja. Wenn diese z.b. auf ATmega AVR µC basieren, dann kannst du die easy
mit dem Atmel Studio 7 programmieren (über ISP). Entweder in C oder
Assembler.
(mit den anderen Arduino Entwicklungsboards geht das auch, aber die
basieren nicht dann auf ARM Cortex M0 oder M3 oder so)
Meine persönliche Meinung: Ich würde mit Arduino und einem
Entwicklungsboard basierend auf ATmega AVR (z.b. einem Nano) anfangen,
da ich damit gute Erfahrung gemacht habe, da der Support hier im Forum
ausgezeichnet ist und du viel lernst, was z.b. beim späteren Umstieg auf
anderen µC (z.b. ARM Cortex M0,1,2,3 basierte) hilft. Das ist auf jeden
Fall keine verschwendete Zeit.
Ich hatte z.b. den Eindruck, dass gerade Datenblätter von µControllern,
die auf ARM Cortex M0, M1 oder M3 basieren, so geschrieben sind, als
würde sich der Leser schon oft mit µC beschäftigt haben. Bei den
Datenblättern von irgendwelchen AVRs steigt man viel schneller durch und
es hilft einem dann beim Umstieg auf ARM Coretex M enorm. Aber das hat
Stefanus ja oben schon geschrieben.
Irgendwer123 schrieb:> Wenn ein Arduino "so" ohne die ganze Software verwendet wird, wie> unterscheidet es sich dann für den Programmierer zum Beispiel zu einem> m3?
Es gibt einen Arduino mit M3 und somit gar keinen Unterschied, wenn du
den entsprechenden Arduino wählst.
Johannes S. schrieb:> Der TO hat sich als 14 jähriger vorgestellt, hast du da schon am> liebsten Datenblätter gelesen und auch verstanden?
Tja...
Die 2000 Seiten Datenblatt sind ganz schnell aufgebraucht, wenn man sich
z.B. mit verschiedenen ARM beschäftigt.
Alleine aus dem Grund finde ich die Einstellung/Ansage nicht so super
zielführend.
Aber was solls, revidieren kann man die Aussage ja immer noch...
Irgendwer123 schrieb:> Wenn ich das Arduino Framework dann nicht mehr verwende (oder es erst> gar nicht nehme), wird der dann immer noch in C programmiert?
Wie ich schon sagte:
C++ , C und ASM bieten sich an.
Eigentlich auch in genau der Reihenfolge
Ich rate dazu, mit C++ zu beginnen.
Aus 2 Gründen:
1. Viel von dem C Gedöns lernt man automatisch gleich mit, C ist
schließlich die Mutti von C++
2. Wer sich einmal auf die prozedurale Programmierung eingeschossen hat,
tut sich mit dem Umlernen auf die Objekt orientierte Sicht meist recht
schwer. Anders rum scheint leichter zu sein.
Weitere Sprache sollen mit der neuen "Arduino Pro IDE" hinzu kommen.
Aber das ist noch Musik für Morgen. Wird wohl auch nur für die größeren
Arduino(kompatiblen) interessant werden, z.B. welche mit dem "Kendryte
K210" Prozessor
Dann wird wohl ein Arduino nano für den Anfang. Später kann ich immer
noch das Cortex m7 Board nehmen.
Ich hab nichts gegen 2000 Seiten lesen. Aber ich möchte das nicht als
Voraussetzung haben.
Das war eher im übertragenen Sinne gemeint. Ich möchte nicht etwas so
kompliziertes, wofür ich 2000 Seiten lesen muss um LEDs blinken zu
lassen. Schlecht geschrieben von mir, sorry.
Mit der Objektorientierten Programmierung kann ich mich anfreunden, muss
ich eigentlich auch, nächstes Jahr lernen wir dann Java...
Danke für eure Hilfe.
Ohne euch hätte ich jetzt wahrscheinlich das m7 Board.
Gruß
Ps: falls ein paar Buchstaben, wars das Handy... :)
Irgendwer123 schrieb:> Dann wird wohl ein Arduino nano für den Anfang. Später kann ich immer> noch das Cortex m7 Board nehmen.
Ist ein Anfang.
Irgendwer123 schrieb:> wofür ich 2000 Seiten lesen muss um LEDs blinken zu> lassen.
Ein geübter Ardunaut hat sie, incl. IDE Installation, in ca 5 Minuten
auf dem Nano am blinken.
Installation
Nano und Port auswählen
Blink Beispiel laden
Hochladen drücken
(und es blinkt)
Geht ganz ohne Doku lesen.
Aber dann gehts los....
PS:
Der Nano wird schon mit Blink ausgeliefert.
Also nur an USB stecken und es blinkt.
Arduino Fanboy D. schrieb:> PS:> Der Nano wird schon mit Blink ausgeliefert.> Also nur an USB stecken und es blinkt.
Toll, ich bin ein Programmierheld. Ich habe einen Arduino zum Blinken
gebracht.
Irgendwer123 schrieb:> weil ich erstens nicht 5 - 10€ für einen Sensor> zahle der 20cent wert ist und zweitens nicht,
Die meisten Module aus dem Arduino Umfeld sind billiger, als ihre
Einzelteile.
Irgendwer123 schrieb:> Was würdet ihr mir empfehlen, damit direkt ohne Umweg direkt wirklich> was über Mikrocontroller lerne?
Lies die Antworten, deine Frage wurde umfassend beantwortet.
> Eine aufwendige und komplizierte IDE stört ja nur am Anfang.
Dann fang halt mir der Arduino IDE an, oder bare-metal ohne IDE. Ich
habe Dir meine Anleitunge empfohlen.
> Es ist schwer mich zu entscheiden, einerseits will ich keine 2000 Seiten> Datenblätter lesen (Handbuch oder ein Buch zum Lernen aber schon),> andererseits will ich gleich was gescheites haben.
Bei Arduino Nano Modulen hast du beides. Kannst einfach anfangen und
später doch die 400 Seiten lesen.
> Wenn ein Arduino "so" ohne die ganze Software verwendet wird, wie> unterscheidet es sich dann für den Programmierer zum Beispiel zu einem> m3?
Die Programmierung ist weitgehend identisch, aber bei ARM Controllern
gibt es wie gesagt viel mehr Register einzustellen. Dementsprechend mehr
Lesestoff und mehr Zeilen Code. Referenzhandbuch+Datenblatt+Application
Notes umfassen zusammen weit mehr als 2000 Seiten.
Beim Arduino Nano steht alles was man wissen muss in einem Dokument, dem
Datenblatt. Das hat "nur" ca. 400 Seiten.
Irgendwer123 schrieb:> Warum gehst du nicht zu einem großen Verlag wie vielleicht> Rheinwerk, und verkaufst die Bücher?
Habe ich versucht. Zwei Verlage haben geschätzt, dass die zu erwartende
Absatzmenge zu gering ist. Einer wollte es Online vertreiben, hatt dabei
allerdings so viele Änderungswünsche, dass ich abgelehnt habe.
Mit solchen Büchern wird man sowieso nicht Reich. Der ganze Aufwand
lohnt sich nicht.
> Dann wird wohl ein Arduino nano für den Anfang. Später kann> ich immer noch das Cortex m7 Board nehmen.
Dazwischen würde ich einen Cortex M0 oder maximal M4 einschieben - wegen
der Komplexität.
Konditoren fangen ihre Lehre auch nicht mit Hochzeitstorten an, und
Architekten bauen nicht als erstes ein Kaufhaus.
Arduino Fanboy D. schrieb:> Christian H. schrieb:> Toll, ich bin ein Programmierheld. Ich habe einen Arduino zum Blinken> gebracht.>> Wenn es da endet.. ja!
Dabei wirds nicht bleiben ;)
Stefan ⛄ F. schrieb:> Irgendwer123 schrieb:>> Was würdet ihr mir empfehlen, damit direkt ohne Umweg direkt wirklich>> was über Mikrocontroller lerne?>> Lies die Antworten, deine Frage wurde umfassend beantwortet.
Ja, meine Frage wurde super beantwortet!
Stefan ⛄ F. schrieb:>> Eine aufwendige und komplizierte IDE stört ja nur am Anfang.>> Dann fang halt mir der Arduino IDE an, oder bare-metal ohne IDE. Ich> habe Dir meine Anleitunge empfohlen.
Genau, so werde ichs auch machen.
Ich fang einmal mit der Arduino IDE an und steig dann auf was anderes
um.
Stefan ⛄ F. schrieb:> Bei Arduino Nano Modulen hast du beides. Kannst einfach anfangen und> später doch die 400 Seiten lesen.
Das ist wichtig für mich. In der Hinsicht habe ich Arduino ziemlich
unterschätzt...
Stefan ⛄ F. schrieb:> Irgendwer123 schrieb:>> Warum gehst du nicht zu einem großen Verlag wie vielleicht>> Rheinwerk, und verkaufst die Bücher?>> Habe ich versucht. Zwei Verlage haben geschätzt, dass die zu erwartende> Absatzmenge zu gering ist. Einer wollte es Online vertreiben, hatt dabei> allerdings so viele Änderungswünsche, dass ich abgelehnt habe.>> Mit solchen Büchern wird man sowieso nicht Reich. Der ganze Aufwand> lohnt sich nicht.
Das finde ich sehr schade, gerade solche Bücher sieht man nicht oft.
Stefan ⛄ F. schrieb:>> Dann wird wohl ein Arduino nano für den Anfang. Später kann ich immer>> noch das Cortex m7 Board nehmen.>> Dazwischen würde ich einen Cortex M0 oder maximal M4 einschieben - wegen> der Komplexität.>> Konditoren fangen ihre Lehre auch nicht mit Hochzeitstorten an, und> Architekten bauen nicht als erstes ein Kaufhaus.
Mach ich. Wenns soweit ist, melde ich mich wieder hier. Vielleicht in
gar nicht so ferner Zukunft, wenns Corona Ferien gibt :D
Eine Frage hätte ich noch : Ich hab gesehen, dass es zwei verschiedene
Arduino Nano gibt, einen mit ATmega328 und den anderen mit ATmega 4809.
Welchen soll ich nehmen und wie stark unterscheiden sie sich überhaupt?
Danke
Gruß
Arduino Fanboy D. schrieb:> Irgendwer123 schrieb:> und wie stark unterscheiden sie sich überhaupt?>> Ein gute Gelegenheit, die Datenblätter zu vergleichen.> :-)
Und ich dachte mit Arduino fängt man einfach ohne irgendwas an ^^
Nur Spaß ;)
Irgendwer123 schrieb:> Ich hab gesehen, dass es zwei verschiedene> Arduino Nano gibt, einen mit ATmega328 und den anderen mit ATmega 4809.> Welchen soll ich nehmen und wie stark unterscheiden sie sich überhaupt?https://www.microchip.com/ParamChartSearch/Chart.aspx?branchID=30047
Stichwort: Parametric Search
Bei Produkct wählst du die beiden aus und vergleichst dann die Features.
Keine 200 Seiten Datenblatt nebeneinander legen. :)
Beim Arduino Nano wirds aber so sein, dass du nur von einem Teil der
Vorteile des ATmega 4809 Gebrauch machen wirst, da die Anzahl der
rausgeführten Pins beim "Arduino Nano Every" gleich geblieben ist.
Würde beim "alten" 328p für den Anfang deshalb bleiben, weil es eine
größerer Community gibt, die den benutzt. Da das Arduino Framework viel
für dich übernimmt, wirst du da beim Programmieren keinen unterschied
merken.
Mach wie du willst.
> einerseits will ich keine 2000 Seiten Datenblätter lesen
Das muss man auch nicht.
> das m7 Board
Das sind eher 4000 Seiten. Du meinst wohl, weil es besonders
teuer ist, geht alles von selbst. Nichts könnte irriger sein.
> Geht ganz ohne Doku lesen.
Damit bist du dann entgültig bei den geistigen Sozialhilfeempfängern
angekommen.
@tnn85
Danke,dann nehme ich den alten.
Am Anfang werde ich das Framework verwenden und mich dann je nach Zeit
und Interesse davon abwenden.
@örks
örks schrieb:>> das m7 Board> Das sind eher 4000 Seiten. Du meinst wohl, weil es besonders> teuer ist, geht alles von selbst. Nichts könnte irriger sein.
Nein, ganz im Gegenteil. Das kostet auch nur 21€, also fast gleich wie
ein Arduino Uno. Dass es einfacher ist hab ich nicht erwartet. Ich
wollte ja anfangs auch was "besseres" haben. Ich habe mich da aber
geirrt. Ein Arduino kann doch mehr als gedacht. Ich will ja eben nicht,
dass es von selbst geht, ich will was lernen (somit würde ich für kein
Geld etwas kaufen, das einfach ist). Deswegen dachte ich zuerst auch an
was komplexeres. Wie schon geschrieben, ich habe mich geirrt.
örks schrieb:>> Geht ganz ohne Doku lesen.> Damit bist du dann entgültig bei den geistigen Sozialhilfeempfängern> angekommen.
Das will ich ja auch nicht.
Ich möchte etwas, dass zwar einmal leicht verständlich und
nachvollziehbar ist, aber trotzdem auf Wunsch "mehr kann". Heißt wenn
ich Lust habe, dass ich dann die 2000 Seiten lese, es soll nur kein Muss
sein. Und dafür scheint mir der Nano (die Erkenntnis ist dem Forum zu
verdanken) der Richtige zu sein.
Gruß
Wenn man richtig Mikrocontroller verstehen will, fängt man mit dem EDSIM
an.
Da kann man dann wirklich die einzelnen Bits sehen und Manipulieren:
https://www.edsim51.com/
Irgendwer123 schrieb:> Ich hab gesehen, dass es zwei verschiedene> Arduino Nano gibt, einen mit ATmega328 und den anderen mit ATmega 4809.> Welchen soll ich nehmen und wie stark unterscheiden sie sich überhaupt?
Auf jeden Fall einen mit ATmega328. Wenn jemand von "dem" Arduino
spricht, ohne das konkrete Modell zu nennen, meint er den ATmega328.
Der befindet sich seit vielen Jahren auf dem Arduino Uno und dem Arduino
Nano, das sind (vernünftigerweise) die beiden Einstiegsmodelle der
Arduino Welt. Dazu gibt es die meisten Anleitungen und Bibliotheken.
Markus schrieb:> Wenn man richtig Mikrocontroller verstehen will, fängt man mit dem> EDSIM> an.>> Da kann man dann wirklich die einzelnen Bits sehen und Manipulieren:> https://www.edsim51.com/
Danke, das werde ich mir gleich anschauen!
Joachim B. schrieb:> Irgendwer123 schrieb:>> Das kostet auch nur 21€, also fast gleich wie>> ein Arduino Uno.>> soviel muss man aber nicht ausgeben, jeder China nano oder wenn groß> dann m2560 ist günstiger.>> 2k SRAM 32k flash> Ebay-Artikel Nr. 264491778175> Ebay-Artikel Nr. 283683398610>> 8k SRAM 256k flash> Ebay-Artikel Nr. 264501295686
Wie gesagt, ich wollte den A7 nicht wegen dem Preis haben.
Und die China Nanos funktionieren auch perfekt ?
Die 10€ vom Original sind ja nicht viel, aber die Versandkosten
nerven...
Stefan ⛄ F. schrieb:> Irgendwer123 schrieb:>> Ich hab gesehen, dass es zwei verschiedene>> Arduino Nano gibt, einen mit ATmega328 und den anderen mit ATmega 4809.>> Welchen soll ich nehmen und wie stark unterscheiden sie sich überhaupt?>> Auf jeden Fall einen mit ATmega328. Wenn jemand von "dem" Arduino> spricht, ohne das konkrete Modell zu nennen, meint er den ATmega328.>> Der befindet sich seit vielen Jahren auf dem Arduino Uno und dem Arduino> Nano, das sind (vernünftigerweise) die beiden Einstiegsmodelle der> Arduino Welt. Dazu gibt es die meisten Anleitungen und Bibliotheken.
Danke, dann nehm ich den.
Gruß
Irgendwer123 schrieb:> Und die China Nanos funktionieren auch perfekt ?
bei mir ist keiner auffällig geworden, ich kann die Mär vom gefälschten
Chips nicht bestätigen, schlechte Qualität kann man aber nie am Preis
ausmachen.
Markus schrieb:> Da kann man dann wirklich die einzelnen Bits sehen und Manipulieren:> https://www.edsim51.com/
Das ist im Prinzip das, was ich früher auf dem Papier gemacht hatte um
meine Programme zu prüfen. Zumindest ich, habe damit eine Menge gelernt.
Irgendwer123 schrieb:> Und die China Nanos funktionieren auch perfekt ?
Und möglicherweise musst du in der Arduino IDE unter "Werkzeuge" ->
"Prozessor" noch "ATmega 328p (Old Bootloader)" auswählen.
Wenn du den neuen Bootloader willst, dann musst du zwei Arduinos kaufen
und einen als Programmer programmieren und damit den neuen Bootloader
auf den Zweiten spielen.
Dann genau andersrum und das Gleiche mit dem ersten Arduino machen der
vorher der Programmer war. Du spielst das Programmer-Sketch auf den
zweiten und programmierst damit den ersten mit neuem Bootloader.
>> Da kann man dann wirklich die einzelnen Bits sehen und Manipulieren:>> https://www.edsim51.com/Irgendwer123 schrieb:> Danke, das werde ich mir gleich anschauen!
Dieser Simulator simuliert eine ganz andere CPU, als AVR. Ein Simulator
für AVR ist im AVR Studio enthalten. Der zeigt Dir auch jedes einzelne
Register bit für bit an.
> Und die China Nanos funktionieren auch perfekt ?
Leider nicht immer. Ich hatte ma 10 Stück gekauft, wo nur zwei mit
Bootloader bestückt waren. Aber einen der beiden konnte ich nutzen, um
den Bootloader (mit der Arduino IDE) auf die anderen zu installieren.
Ähnliches haben andere hier auch öfters gemeldet.
Ansonsten sind mit nur ab und zu scharfe Kanten und schief eingelötete
Stiftleisten aufgefallen. Funktioniert haben alle tadellos.
Timo N. schrieb:> Und möglicherweise musst du in der Arduino IDE unter "Werkzeuge" ->> "Prozessor" noch "ATmega 328p (Old Bootloader)" auswählen.
ggf boards.txt anpassen
Melder schrieb:> Die muss man auch nicht nur lesen, sondern auch verstehen.
die muss man überhaupt nicht lesen. Im Gegenteil. Datenbltter und
Ref-Manual liest man punktuell, bezogen auf das aktuelle Problem und
nicht wie ein Buch. Damit wird jeder Anfänger sofort entmutigt.
Eine Blinkende LED ist der richtige Anfang. Das geht innerhalb eines
Nachmittags. Damit lernt man schonmal was GPIOs sind und welche Register
dafür benötigt werden.
nipps schrieb:> Datenbltter und> Ref-Manual liest man punktuell, bezogen auf das aktuelle Problem und> nicht wie ein Buch. Damit wird jeder Anfänger sofort entmutigt.
Ja, das stimmt!
Der einzige Zweck der Datenblätter: Entmutigen!
Arduino Fanboy D. schrieb:> Der einzige Zweck der Datenblätter: Entmutigen!
darf ich das verwenden?
ich liebe Ironie auch wenn sie manchmal schwer zu erkennen ist :)))
Bevor ich missverstanden werde: Natürlich liest man im Datenblatt. Aber
eben nicht alle 2000 Seiten. Das macht überhaupt keinen Sinn.
Das Vorgehen ist eher so:
- Aufgabenstellung identifizieren (zb. ADC ansteuern)
- Im Manual nach dem Kapitel ADC suchen (oder die Lib nutzen)
- Dann Schritt für Schritt die ADC-Register setzen und ADC in Betrieb
nehmen.
Niemand liest in einem Rutsch ein tausendseitiges Manual durch. Was
würde das auch für einen Sinn machen hunderte Tabellen und
Registerdefinitionen durchzulesen?!
Um herauszufinden, welche Kapitel aus dem Datenblatt (bzw.
Referenzhandbuch bei STM) relevant sind, braucht man als Anfänger ein
bisschen Anleitung. Ich habe mich bemüht, auf meine Homepage solche
Hilfestellung zu leisten.
Hallo,
ich nehm glaub ich sicherheitshalber einen echten Nano.
@jar
danke für den Code!
nipps schrieb:> Bevor ich missverstanden werde: Natürlich liest man im Datenblatt.> Aber> eben nicht alle 2000 Seiten. Das macht überhaupt keinen Sinn.>> Das Vorgehen ist eher so:>> - Aufgabenstellung identifizieren (zb. ADC ansteuern)> - Im Manual nach dem Kapitel ADC suchen (oder die Lib nutzen)> - Dann Schritt für Schritt die ADC-Register setzen und ADC in Betrieb> nehmen.>> Niemand liest in einem Rutsch ein tausendseitiges Manual durch. Was> würde das auch für einen Sinn machen hunderte Tabellen und> Registerdefinitionen durchzulesen?
So hab ich das auch vor.
Wie gesagt, solange ich nicht am ersten Tag alles durchlesen muss :)
Stefan ⛄ F. schrieb:> Um herauszufinden, welche Kapitel aus dem Datenblatt (bzw.> Referenzhandbuch bei STM) relevant sind, braucht man als Anfänger ein> bisschen Anleitung. Ich habe mich bemüht, auf meine Homepage solche> Hilfestellung zu leisten.
Die ist eine große Hilfe.
Danke nochmal an alle die mir geholfen haben!
Gruß