“Arduino oder Raspberry Pi, das ist hier die Frage …”, nein, den ollen Shakespeare wollen wir dafür nicht wieder ausbuddeln, aber die Frage hat sich der ein oder andere sicher auch schon gestellt und eine Antwort wäre denkbar einfach: “Es kommt darauf an, was man machen möchte.”
Diese weitere Frage muss sich dann jeder selbst stellen und dann kommt er mit Sicherheit zu dem System, was sein Problem am besten lösen kann.
Fangen wir mal mit dem Grundlegenden an.:
Was ist ein Raspberry Pi? Ein PC/Computer.
Was ist ein Arduino? Ein Mikrocontroller
Doch gehen wir ins Detail:
Raspberri Pi
Auf einem Raspberry Pi werden sich die meisten Anfänger zu Beginn wohler fühlen, da man ja wie gewohnt einen Monitor, Tastatur und Maus daran anschließen kann und nach dem Hochfahren ein Mausunterstütztes Linux-Betriebssystem erscheint.
Auf der Kommandokonsole kann man auch schon auf die GPIO (engl. GPIO – general purpose input/output, deutsch Schnittstelle) zugreifen und beispielsweise eine LED leuchten lassen.
Durch das Betriebssystem können auch Aufgaben wie Mediacenter, Webserver, Mailserver, WLAN-Drucker, Faxmodem und viele weitere Dienste eingerichtet werden.
Im Gegensatz zu einem “normalen” PC ist dieser Ein-Platinen-Rechner natürlich nicht ganz so leistungsfähig, aber mit dem Raspberry Pi 2 kann man problemlos HD-Inhalte auf dem Fernseher laufen lassen.
Der Stromverbrauch ist im Gegensatz zu einem normalen PC auch wesentlich geringer (unter Last verbraucht der PI 2 rund 1.5-2.5 Watt. Aufs ganze Jahr gesehen kommen wir so auf 13-35 kWh und liegen da bei weit unter 10 Euro Kosten für Strom, wenn der Pi 365 Tage nonstop eingeschaltet ist).
Es macht ihn daher zu einem idealen Bastelcomputer, wenn man sich eher darauf festlegt eine Programmiersprache zu lernen wie beispielsweise Python, die ja sehr stark durch die Raspberry Foundation auf den Pi’s gefördert wurde und wird. Aber natürlich sind auch andere Sprachen wie Java, C, C++, Perl, Ruby, usw. möglich.
Man könnte sich auf diesem System seinen eigenen kleinen Server hinstellen, oder wie man das heute so schön nennt, eine eigene Cloud betreiben.
Ein wenig Bastelei mit der GPIO-Schnittstelle kann man auch machen (in einem späteren Beitrag zeige ich Euch wie man einen Infrarotempfänger daran anschließen kann um eine Fernbedienung beispielsweise für das KODI-Mediacenter verwenden zu können.), aber der Schwerpunkt liegt meiner Meinung nach eher im Softwarebereich.
Arduino
Der Arduino braucht da ein klein wenig mehr Anforderungen für den Start, denn er braucht einen vorhanden Computer mit einem laufenden Betriebssystem (Linux/Windows/Mac), damit man ihn programmieren kann. Dies geschieht entweder direkt durch den Anschluss an einen USB-Port, oder beispielsweise über einen USB-Programmer.
Im Gegensatz zum Raspberry Pi hat der Arduino kein eigenes Betriebssystem. Der Vorteil ist aber: Man schaltet ihn ein und er ist bereit, da er keine Ladezeiten hat wie ein Betriebssystem bis es bereit ist. Man schaltet ihn auch einfach ab. Ein Herunterfahren ist nicht nötig.
Auch kann der Preis eine Rolle spielen, denn die Mikrocontroller ATMega und ATtiny (auch andere, aber ich beziehe mich jetzt mal nur auf die Controller von der Firma Atmel) kosten nur wenige Euro. So bekommt man einen ATMega328P-PU-Baustein der sich als Basis auch auf einem Uno befindet im günstigsten Fall für 2-3 Euro. Ein Raspberry Pi kostet um die 40 Euro.
Gerade beim basteln kann der Preis eine Rolle spielen, denn wenn man nicht aufpasst und den Controller bzw. Prozessor himmelt wird ein neuer Raspberry fällig. Bei einem Arduino tauscht man nur den Controller aus und es kann weitergehen.
Die Einsatzgebiete eines Arduinos kann man klar einteilen in “Messen, Steuern, Regeln”. Durch seine Kompaktheit (kein aufgeblähtes Betriebssystem) hat der Arduino einen sehr hohen Durchsatz und kann damit sehr schnell Prozesse abarbeiten.
Wird ein Arduino beispielsweise als Sensor für die Außentemperatur eingesetzt, so kann man ihn alle paar Sekunden/Minuten/Stunden/… aus seinem Tiefschlaf holen, ihn messen und seine Daten an eine Station übermitteln lassen und dann geht er wieder schlafen.
Wir können so enorm viel Energie sparen. Und da Mikrocontroller kaum Energie benötigen, könnte man nach einer Optimierung so ein System batteriebetrieben viele Monate, sogar Jahre laufen lassen.
Ihn zu programmieren ist ein wenig schwieriger. Hierzu vorweg erst einmal die Info, welche Programmiersprache so ein Controller versteht.
Mikrocontrolleren arbeiten wie jeder vollwertige Computer auch in der Maschinensprache. Diese besteht nur aus 0 und 1. Darüber liegt eine Sprache die sich Assembler nennt. Sie ist wohl die Hochsprache, die immer noch sehr nah an die Maschinensprache herankommt.
Beherrscht man Assembler, kann man im Grunde genommen jeden Controllertyp entsprechend programmieren, da diese Sprache jeder Controller spricht.
Ein weitere Hochsprache mit der beliebt Mikrocontroller programmiert werden ist die Sprache C. Assembler wird heutzutage meist nur noch verwendet, wenn es darum geht, das allerletzte Fitzelchen Geschwindigkeit herauszupressen. Selbst die Industrie geht meist hin zu C, oder sogar Java.
Arduino hat nun diese Sprache C ein wenig vereinfacht mit Befehlen, zurechtgeschnitten auf ihre Controller. Für den Anfänger ist das in Ordnung, denn es fördert die ersten Erfolge und macht Lust auf Mehr, statt gefrustet gleich wieder aufzuhören.
Auf lange Sicht sollte man sich aber mit der Sprache C (oder Assembler) vertraut machen, denn nur damit kann man auch das Letzte aus dem Controller herauskitzeln.
Und keine Sorge. Hier reicht das reine C aus. C++ ist uninteressant für die Mikrocontroller-Programmierung.
Wer detailliert wissen will, warum er kein C++ braucht, kann ja mal bei http://www.mikrocontroller.net den verlinkten Artikel lesen. (Aber davon abgesehen, gibt es auch Quellcodes die in C++ für (Atmel-)Mikrocontroller geschrieben sind.)
Auch gibt es im Bereich Arduino mehr Shields als für den Raspberry Pi.
Ein Shield ist eine bestückte oder unbestückte Zusatzplatine die bestimmte Aufgaben hat und die man einfach dazustecken kann, beispielsweise ein LCD-Shield.
Der Arduino verfügt über analoge Pins, der Raspberry hat nur digitale Pins. An einem digitalen Pin liegt entweder ein High oder ein Low an, also 1 oder 0. Der analoge Pin übermittelt einen Zahlenwert von 0-1023.
Somit kann man vereinfacht sagen: Ein Arduino kann Dir genau sagen wieviel Grad Draußen sind. Ein Raspberry erkennt nur, dass eine Temperatur gemessen wird.
Fazit?
Eine Empfehlung kann ich auch keinem geben, auch wenn es nach der Menge des Textes zu dem jeweiligen System einen klaren Unterschied gibt. Dies liegt aber eher daran, dass ich die grundlegenden Elemente eines PC – wie es der Raspberry Pi ja ist – nicht im Detail durchgegangen bin, da ja jeder einen Computer oder Smartphone besitzt und weiß, was er damit so alles anstellen kann.
Es gibt aber viele Einsatzgebiete in denen man beide Systeme verwenden kann und ich sage mal, dass beide nicht wirklich teuer sind um mit beiden zu experimentieren und seine Ideen zu verwirklichen.
Ich persönlich aber stieg mit einem Raspberry Pi ein und die erste blinkende LED am GPIO-Anschluss ließ mich tiefer in den Bereich Elektronik eintauchen. Ich habe quasi wieder Blut geleckt, da ich ja schon in meiner Kinder- und Jugendzeit mich mit der Elektronik beschäftigt hatte und mir das sehr großen Spaß machte.
Jetzt nutze ich beide Systeme, muss aber sagen, dass ich derzeit lieber mit dem Arduino bastle, da dort nunmal durch “Messen, Steuern, Regeln” das Einsatzgebiet die echte Welt, statt einer virtuellen ist. Ich kann also – ganz im Sinne vom Internet of Things Gegenstände mit dem Computer kommunizieren lassen.
Ob das immer so Sinn macht (wie eine Tasse, die die Temperatur des Getränks per eMail an den Besitzer der Tasse sendet, der neben ihr sitzt) sei mal dahin gestellt. Es geht ja nur darum, dass man es machen könnte und dabei lernt, welche Möglichkeiten Wie machbar sind.
Zukunftssicher ist die Programmierung von Hardware (Arduino, bzw. Mikrocontroller im Allgemeinen) auf jeden Fall, denn die physikalischen Hintergründe wie ein Controller arbeitet, werden sich ja nicht ändern.
Auch muss ich eines zugeben, was mir auch schon selbst aufgefallen ist: Das Arbeiten mit dem Arduino lehrt Disziplin, denn man hat nicht GB-weise Arbeits- und Festplattenspeicher zur Verfügung. Man muss also die begrenzten Möglichkeiten eines Mikrocontrollers geschickt ausnutzen und man wird irgendwann nicht mehr um den Punkt herumkommen seine Programme zu optimieren.
Ich lernte dies schon einmal kennen, als ich die vorhanden 1.024 Bytes des EEPROM-Speichers auf dem Papier durchrechnete um Möglichkeiten durchzuspielen, wie ich am sinnvollsten trotzdem noch größere Mengen abspeichern kann.
6 Comments
Peter Dinkelacker
16. März 2021 at 7:32 pmNeulich bestellte ich mir ein Elektronik Versuchs Steckplatz mit geeigneten 45 Grad Rahmen wobei ein Arduino dabei lag incl. Stromversorgung etc. Nun hatte ich mir ein Sensor Kit von Seeed mit erworben.
Kann ich das Sensor Kit für Arduino auch mit Raspberry Pi 3 betreiben?
Ronin
17. März 2021 at 10:51 amHallo Peter,
im Prinzip schon, nur musst Du folgendes beachten: Der Raspberry hat nur Digitale Pins. Heißt also, Du hast nur eine 0 oder eine 1 die er empfangen oder senden kann.
Sensoren liefern aber in der Regel ein analoges Signal. Ein Temperatursensor beispielsweise.
Du brauchst also im einfachsten Fall ein ADC-Shield für Deinen Raspi, oder Du baust es Dir mit den entsprechenden ICs selbst zusammen. Google mal nach “Raspberry Pi Analoge Eingänge” für nähere Infos.
Viele Grüße,
Michael
Verolanda
25. Oktober 2020 at 9:34 amHallo, wäre denn der Arduino für einen 13jährigen Einsteiger geeignet?
Er beschäftigt sich zur Zeit vorwiegend mit PC Spiele. Möchte später, beruflich gerne was mit Computer machen. Wir Eltern würden sein Interesse Richtung Computer gerne fördern, ihn aber die Möglichkeit bieten, verschiedene Anwendungen kennen zu lernen.
Technisch, Programmieren, spielen, entwickeln ect.
Ronin
25. Oktober 2020 at 1:05 pmHallo Verolanda,
Zu Deiner ersten Frage: Ja. Ich wünschte, ich hätte damals als 13jähriger auch schon so was haben können. 🙂
Ich gehe davon aus, das “zur Zeit vorwiegend PC Spiele” nicht das ist, was Ihr Euch gerne vorstellt. Will er aber Computerspiele entwickeln, wäre ein Arduino das falsche Werkzeug, da der Arduino ja kein Computer, sondern nur ein Controller ist, auf dem man keine PC-Spiele entwickeln kann.
Ansonsten ist ein Arduino natürlich eine feine Sache, wenn man mit ihm Sachen bauen will, die man ansteuern kann, oder die man überwacht, usw. Diese Daten lassen sich dann mit dem PC weiter verarbeiten.
Je nach Interessengebiet kann man sich hier schön austoben. Ein Roboter deckt bspw. so ziemlich alles ab. Du entwickelst ihn, beschäftigst dich im technischen Bereich mit der Elektronik und der Mechanik, programmierst ihn ihm Anschluss und “spielst” danach, bis er das macht, was er machen soll.
Es ist aber auch ein enorm großes Projekt und er sollte auf jeden Fall mit kleineren Schritten anfangen, sonst machts keinen Spaß, wenn man keine ersten Ergebnisse sieht.
Daher würde ich am Anfang raten, mit einem Sensorenkit und einem Arduino zu beginnen. Ein preisgünstiger Einstieg und wenn es ihm Spaß macht und sein Interesse geweckt ist, kann man jederzeit mit den entsprechenden Bauteilen erweitern und investiert am Anfang nicht umsonst Geld.
Hoffe, das hilft Dir weiter, ansonsten schreib mir einfach direkt nochmal.
Viele Grüße,
Michael
Horst
23. Juni 2020 at 11:40 amMoin,
um objektiv zu bleiben, fehlt mir einfach mal der definierte Rahmen ( Aufgabe: Daten sammeln und auswerten – wie groß ist der Aufwand, was erwartet man ? Weitere Aspekte zum Vergleiche in einer Tabelle: MCU/CPU, Takt, Stromverbrauch, Sensoren, Reaktions- und Verarbeitungsgeschwindigkeit, Speicher-Kapazität, … ), in dem sich beide bzw. alle 3 Systeme bewegen. So benötigt der Arduino für die meisten Aufgaben keinen Monitor und Tastatur.
Dann möchte ich doch mal korrigieren: [Original]”Der Arduino verfügt über analoge Pins, … Der analoge Pin übermittelt einen Zahlenwert von 0-255.” – richtig wäre hier 0 .. 1023, da eine 10-Bit-Auflösung pro Analog-Pin anliegt.
zerstep
20. Dezember 2019 at 5:27 pmHallo,
witzigerweise habe ich den selben Werdegang genommen, und fand schließlich, das Arduino bzw Attiny für meinen Bastelspaß am besten passt. Ich hatte den RasPi durchgehend laufen um mehere Temperaturen zu registrieren, die ich dann via Wlan auslesen wollte, Schwaches Signal oder fehlerhafter Code jedenfalls hängt sich die Himbeere laufend auf…
Jetzt fühle ich mich mit dem Arduino viel näher an den Roots of Coding (computing) und mit den Tinys kann ich den Platzmangel echt nachvollziehen.
Gruß und Frohe Festtage
Peter