Hallo!
Ich habe eine Frage, ich würde gerne in die Mikrocontroller
Programmierung einsteigen und habe mich umgeschaut was es so zur Auswahl
gibt.
Arduino fand ich sehr interessant und es scheint ja besonder für
Anfänger viele Tutorials und Projekte zu gebe.
Was ich auch interessant fand war das Raspberry Pi, aber wo genau liegt
da der unterschied?
Das Raspberry hat ja ein eigenes Betriebssystem und der Arduino
sozusagen nicht, aber was gibt es da noch für Unterschiede?
Gibt es für einen Raspberry auch so viele bzw sehr viele Bibliotheken?
Ich würde mich über eine Antwort freuen!
(Ich habe gute Grundlagenkenntnisse in C/C++/Java)
kurz
- der raspberry ist wie dein pc in klein. installiere programme,
schreibe programme für den pc, schliess deinen fernseher an. kannst
dasselbe machen wie mit deinem grossen pc... ist nur langsamer, kann man
aber witzige dinge bauen, weil man das kleine ding so gut verstecken
kann. wenns um den lernfaktor geht, bekommst du hier eher was von linux
mit und pc programmierung
- der arduino ist ein mikrocontroller. hiermit kann man kleinere dinge
ansteuern... statt fernseher ein paar lämpchen. oder ein paar motoren,
die du zu einem kleinen robo zusammenstecken kannst. wenns um den
lernfaktor geht, kannst du, sobald du über die arduino bibliothek
hinausgewachsen bist, lernen wie ein mikroprozessor von innen aufgebaut
ist, wie man echtzeit systeme programmiert für die praezise steuerung
von z.b. einem roboter
fazit: raspberry gross und sehr weit weg von hardware. arduino klein und
sehr nahe an hardware.
Starter schrieb:> Das Raspberry hat ja ein eigenes Betriebssystem und der Arduino> sozusagen nicht, aber was gibt es da noch für Unterschiede?
Der Raspberry Pi 3B spielt USB-Host, hat Ethernet, hat WLAN, hat HDMI,
hat MicroSD, hat Kamera(anschluss), hat 1GB RAM.
Aber warum liest du nicht einfach selber mal?
https://www.raspberrypi.org/products/raspberry-pi-3-model-b/
Bei den Arduinos oder über Arduino IDE programmierbaren Boards gibs
diverse zur Auswahl, angefangen vom einem Arduino Pro Mini (8-Bit
ATmega328, 32kB Flash, 2kB RAM, 8 od. 16MHz ohne USB) über den Teensy
3.2 (32-bit ARM Cortex-M4 mit 72 MHz, 256KB Flash, 64kB RAM) bis zum
Arduino Due (32-Bit SAM3X8E ARM Cortex-M3 mit 84MHz, 512kB Flash, 100kB
RAM)
Starter schrieb:> Das Raspberry hat ja ein eigenes Betriebssystem
Geht auch ohne und kann zudem in BASIC sogar einfacher programmiert
werden als Arduino:
https://www.riscosopen.org/news/articles/2017/02/24/pico-embiggened-once-more
Hier mal als Beispiel das Auslesen des verbreiteten ADC MCP3008 mit SPI
in Software:
SYS "GPIO_WriteMode", CS , OUT
SYS "GPIO_WriteMode", MISO, IN
SYS "GPIO_WriteMode", MOSI, OUT
SYS "GPIO_WriteMode", SCLK, OUT
REPEAT
SYS "GPIO_WriteData", CS , HIGH
SYS "GPIO_WriteData", CS , LOW
SYS "GPIO_WriteData", SCLK, LOW
cmd = channel
cmd = cmd OR %00011000
FOR index = 1 TO 5
IF (cmd AND %00010000) THEN
SYS "GPIO_WriteData", MOSI, HIGH
ELSE
SYS "GPIO_WriteData", MOSI, LOW
ENDIF
SYS "GPIO_WriteData", SCLK, HIGH
SYS "GPIO_WriteData", SCLK, LOW
cmd = cmd << 1
NEXT index
value = 0
bit = 0
FOR index = 1 TO 11
SYS "GPIO_WriteData", SCLK, HIGH
SYS "GPIO_WriteData", SCLK, LOW
value = value << 1
SYS "GPIO_ReadData" , MISO TO bit
IF (bit = HIGH) THEN
value = value OR 1
ENDIF
NEXT index
PRINT "Trimmer = " value
UNTIL FALSE
Die klarste Antwort wäre: Nimm einen Arduino, denn ein Raspberry Pi ist
kein Mikrocontroller.
Auch wenn die Grundsteine dafür vorhanden sind, mit einem Raspberry Pi
ähnliches machen zu können, ist einfach viel zu viel drum herum, was
dich vom wesentlichen abbringt.
Ein Arduino ist ein guter Einstieg, mit dem man schnell Fortschritte
machen kann und wo man extrem viele Beispiele findet. Wenn es dich
tiefergehender interessiert, kannst du irgendwann versuchen ohne die
Arduino IDE zu arbeiten.
Allgemein wird hier die Nutzung der Arduino IDE verteufelt. Das liegt
daran, weil damit die Mikrocomputerwelt für eine breitere Masse
zugänglich gemacht wurde, die entsprechend meist weniger mit der Materie
zu tun haben. Diese Leute wirken dann durch ihre Fragen oft nervig. Wenn
man allerdings gar nicht die Zeit hat so tiefgehend in die Materie
einsteigen zu können, oder gezielte Probleme einfach schnell umsetzen
will, ist das alles eine super Sache. Ich habe mir von Assembler, Basic,
C, bis Arduino alles angeschaut. Da ich aber auch viel Wert auf andere
Teile eines Projekts lege, ist mir der Weg zu aufwendig alles komplett
selbst zu entwickeln. Wenn ich dann mal 1-2 Jahre nichts in der Richtung
gemacht habe, muss ich mich wieder intensiv einarbeiten. Deshalb ist für
mich auch die Arduino IDE nichts falsches, solang man nicht an
Zeitkritische Grenzen stößt.
Den Ehrgeiz sich Dinge selbst zu erarbeiten sollte man natürlich immer
haben.
Also merke: Der Richtige Weg ist der, der dich zum Ziel führt und zu
deiner Arbeitsweise passt.
Arduino
Echtzeit DU hast die volle Kontrolle
PI Linux Computer nicht echtzeitfähig aber schnell, nur hast DU bedingt
Kontrolle, ausserdem sind die Ports sensibler sind schon viele PI
gestorben beim leichtfertigen basteln, teuerer ist es auch als ein
Arduino nano328p
Ich habe einen Arduino am Raspi hängen. Man kann auch beides
kombinieren.
Der Arduino macht die Echzeitanalyse, der Raspi schickt das dann ins
Internet weiter.
Und so teuer ist ja keine der Platinen, dass man nicht auch beide kaufen
könnte.