Arduino oder Raspberry Pi?

Arduino oder Raspberry„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

Raspberry Pi 2

Raspberry Pi 2

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).

Raspberry Zero - der neue kleine Raspi

Raspberry Zero – der neue kleine Raspi (Preis angeblich unter 5 Dollar. Schauen wir mal.)

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

Arduino Uno

Arduino Uno

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.

Arduino Pro Mini

Arduino Pro Mini- Maße: ~ 35 x 20 mm

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.)

Arduino Nano (hat USB-Anschluss)

Arduino Nano (hat USB-Anschluss)

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-255.
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.


Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.