Hallo zusammen,
ich würde gerne ein Mikrocontroller-Board anschaffen und bin da noch
unschlüssig. Mittelfristig sollen auf jeden Fall Projekte bearbeitet
werden, bei denen Sensoren (auch analog) eingelesen werden und auch
Aktoren wie Motoren angesteuert werden. Ich werde daher auf jeden Fall
AD-Wandler benötigen, evtl. benötige ich auch analoge Ausgangsspannungen
(DA-Wandler).
Da ich nicht so die uC-Erfahrung habe, ist die Frage, welches Equipment
man sich da am besten anschafft. Es soll auf jeden Fall die genannten
Szenarien abdecken können und kann dann auch 500 € oder so kosten, wenn
es wirklich flexibel einsetzbar ist.
Ich habe mir mal den Raspberry PI angeschaut, und der hat ja riesen
Leistung, allerdings nur digitiale IO. Wobei es da wohl auch zum
Nachrüsten AD und DA-Wandler gibt. Das Teil wäre auch schon günstig.
Wäre das was für meine Anforderungen? Das Teil scheint ja ein Desktop-PC
Ersatz zu sein - kann man da auch wirklich uC-Programmierung auf
unterster Hardwareebene mit machen und hätte dann auch die angegebene
Leistung zur Verfügung (> 1 GHz, 4 GB RAM, etc.).
Kommt evtl. ein Signalverarbeitungsboard (z.B. von TI) in Frage?
Wenn ihr ne Idee habt, schaue ich mir das gerne an. Bin, was uC
anbelangt, noch relativ unbedarft.
Gruß
Markus
Ohne Vorwissen würde ich immer Arduino empfehlen, z.B. einen Arduino
Uno. Gerne auch als Klon aus China für ein paar Euro.
Riesen Community und viele Tutorials, das ist als Anfänger viel wert.
Auf einen RasPi wird immer ein Betriebsystem laufen, der Hardwareebene
kommt man dabei nicht nahe.
Falls du Netwerk (WLAN/Ethernet/Mobilfunk) brauchst, gibt es dafür auch
Arduino Ableger. Mit einem normalen Arduino hast du fürs erste
ausreichend Digitale Ein/Ausgänge, 6 Analoge Eingänge und die
wichtigsten seriellen Schnittstellen wie SPI, und I2C.
Analoge Ausgänge, insb. für Motoren, werden überlichweise als PWM
realisiert. DA-Wandler sind für Motoren nicht zu gebrauchen.
Markus schrieb:> Das Teil scheint ja ein Desktop-PC> Ersatz zu sein - kann man da auch wirklich uC-Programmierung auf> unterster Hardwareebene mit machen
Ja, Nein.
Nimm da besser MCs der 8Bit-Klasse, z.B. AVRs. Da braucht es keine
Konfigurations-Marathons und 10Bit-ADCs bzw. PWM als analoge Ausgänge
sind mit drauf. Außerdem sind sie 5V tauglich (gängige Analogspannung).
Im DIP-Gehäuse sind sie auch für Anfänger gut zu löten bzw. bei Defekt
schnell mal in der Fassung getauscht.
Danke.
Anfänger ist so ne Sache. Hatte im Studium (schon etwas länger her) auch
8051 mit Assembler programmiert, bissel ARM7 mit C und etwas
Signalverarbeitung mit nem TI-Board. Nur ist davon nicht mehr viel
übrig. Ich denke aber, dass ich aufgrund der Vorkenntnisse dann eine
recht schnelle Lernkurve haben werde. Die Frage ist dann, ob der Arduino
da mithalten kann. Ich habe halt schon mitbekommen, dass Schüler mit dem
Arduino programmieren und da im Endeffekt nur vorgefertigte Funktionen
zusammenbasteln. Das wäre mir dann zu wenig. Vermutlich kann man mit dem
Arduino aber auch selbst tiefer einsteigen und hinter die Kulissen
blicken - richtig? Dann wärs für den Anfang vielleicht gar nicht
schlecht.
Markus schrieb:> ich würde gerne ein Mikrocontroller-Board anschaffen und bin da noch> unschlüssig. Mittelfristig sollen auf jeden Fall....
Vergiss Mittelfristig. Nimm irgendeins bis 10€ und schaffe erst mal den
Einstieg. Wenn du dann mal "drinnen" bist besorgst du dir dann das
passende, oder mehrere, oder du machst dein Board gleich selber wie die
meisten hier.
> Ich werde daher auf jeden Fall AD-Wandler benötigen...
Das haben eigentlich alle.
> Ich habe mir mal den Raspberry PI angeschaut
Das ist mehr PC als Controller.
Nimm einen Arduino-Clon aus China für 2€ und einen USBASP-Programmer für
2€ und meistere einfach mal den Einstieg. Der Rest kommt dann...
> Ich habe halt schon mitbekommen, dass Schüler mit dem> Arduino programmieren und da im Endeffekt nur vorgefertigte Funktionen> zusammenbasteln.
Ich habe auch Arduino-nanos, programmiere diese aber hart in Assembler.
Die Arduino-Programmier-Umgebung habe ich noch nie angesehen. Das geht
auch.
Markus schrieb:> Anfänger ist so ne Sache. Hatte im Studium (schon etwas länger her) auch> 8051 mit Assembler programmiert, bissel ARM7 mit C und etwas> Signalverarbeitung mit nem TI-Board.
Dann wirst du mit den 32 Bit Cortex-M schnell klarkommen, für den
Einstieg sind da z.B. die STM32 Nucleo Boards gut. Der nötige
Programmer/Debughardware ist on Board und es sind alle µC Anschlüsse auf
Buchsenleisten verfügbar um diverse Arduinoboards oder STM Morphoboards
anzuschliessen. Die STM32 haben aber schon je nach Modellreihe sehr
leistungsfähige AD Wandler auf dem Chip oder auch Peripherie für
Motoren, Displays, Ethernet, USB usw. Auch der Rechenkern ist sehr fix
und hat bei den Cortex-M4 auch eine FPU, damit rennt digitale
Signalverarbeitung auch sehr schnell.
Einstieg in die SW ist auch relativ einfach mit den Arduino Libs die es
mittlerweile auch für fast alles STM32 gibt oder alternativ mbed. Damit
bekommt man schnell etwas ans Laufen und auch analoge Werte eingelesen.
Aber das lässt sich auch auf Registerebene nutzen um die volle Leistung
aus den Dingern rauszukitzeln, dann geht es natürlich mit den
Datenblättern ans eingemachte.
Hab von nem Kollegen ein Arduino Uno Board bekommen und mir noch ein
Nucleo-Board bestellt.
Gestern bin ich bei Heise zufällig auf das BBC micro:bit gestoßen und
das auch noch bestellt. Kennt das jemand? Da wäre auch gleich ein
3D-Magnetfeld- und Beschleunigungssensor mit drauf, Bluetooth,
LED-Matrix, usw: https://shop.heise.de/katalog/bbc-micro-bit-1
Jedenfalls habe ich dann ein paar Spielsachen zum Ausprobieren.
Darf ich als Alternative noch die ESP32/NodeMCU in den Raum werfen?
Sieht aus wie ein Arduino, hat aber WLAN und kann sowohl in Arduino-Stil
(evt sogar mit PlatformIO) programmiert werden, als auch -- für
fortgeschrittene Projekte -- mit einem FreeRTOS-SDK.