Roboter mit Arduino oder mit Raspberry Pi und warum?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,
    ich mache es mal kurz. :D

    Ich möchte mir einen kleine Roboter bauen und frage mich jetzt, ob ich dazu einen Arduino oder einen Raspberry Pi verwenden sollte. Im Internet gibt es Roboter, welche nur mit einem Arduino betrieben werden, dann welche die nur mit einem Raspberry betrieben werden und dann wieder andere, die mit beidem laufen.

    Ich verstehe da noch nicht so ganz den Unterschied. Welchen Vorteil hat ein Arduino dem Pi gegenüber? Oder ist das einfach Geschmackssache? Oder hängt das davon ab, was der Roboter alles können soll?

  • Roboter mit Arduino oder mit Raspberry Pi und warum?? Schau mal ob du hier fündig wirst!

  • Hallo,

    der Arduino ist ein Mikrocontroller, wohingegen der Raspberry Pi ein vollwertiger Computer ist.

    Überlege dir was du genau machen willst und lese viel. Du wirst dann selbst herausfinden welche Plattform die passende ist.

  • Der Aurino kann in Echtzeit arbeiten. Das beim Pi fast nicht möglich ist.

    Dem muss ich wiedersprechen. Mit dem PI ist sowas durchaus auch möglich - wobei "Echtzeit" auch im Bezug auf einen Microcontroller auf das jeweilige Programm ankommt, also genau genommen auch da nicht ganz zutrifft.

    Der Vorteil von einem Microcontroller ist nun mal das weitaus mehr I/O Ports zur Verfügung stehen. Der PI hat bekanntlich nur 17 GPIO's wovon auch nur einer Hardware-PWM fähig ist (bzw beim B+ sinds glaub ich 3). Ein Arduino hat aber i.d.R. mind. 6 Hardware-PWM Ports...
    (Hardware-PWM ist schneller als Software-PWM)

    Auch ist es relativ einfach einen Arduino zu programmieren und dem gewisse Abläufe beizubringen die dann auch zügig (unter Vorbehalt, siehe "Echtzeit") abgearbeitet werden: Bei 16MHz wären das 16 Millionen Operationen pro Sekunde die nur für das Programm augebracht werden können. Der PI hingegen muss seine 700MHz auch noch dem Betriebssystem und anderen Teilen der Hardware opfern..

    Beim Arduino ist aber der Nachteil das man dem sein Programm, sozusagen aufwendig, neu flashen muss um Änderungen vorzunehmen - zwar gibt es auch dafür gewisse Wege den Sketch nicht jedesmal neu flashen zu müssen aber die sind sehr aufwendig....

    Auch kann ein Arduino keine Kamera verarbeiten - ich glaub dafür gibt es noch nicht mals ein Shield ... WLAN müsste man mit einem Shield nachrüsten, verbraucht dann aber auch einige I/O Ports. Man könnte zwar auch Funk realisieren wie zB über RFM12B Module und diese via SPI ansprechen usw, aber das ist nicht so Zuverlässig (zumindest in meinen Tests)

    Daher war es zumindest für mein Projekt einfacher sowas wie WLAN und Kamera über den RaspberryPI laufen zu lassen - auch Webserver usw läuft direkt auf dem einen PI. Und für alles was gesteuert werden muss; Sensoren, Motoren, Servos usw; wird an den Arduino angeschlossen welcher wiederum mit dem PI verbunden ist um Abläufe oder Sensorwerte verfolgen zu können. Der PI ist in meinem Fall das Gehirn und verarbeitet alles - übermittelt an den Arduino was der machen soll, Motoren ansprechen zB Stop oder wie Schnell diese drehen sollen, reagiert auf bestimmte Messwerte wie zB Abstandssensoren dass das Gefährt stehen bleiben soll wenn ein Hindernis zu nah ist usw.

    Überleg dir was du machen möchtest, was dein Gefährt können soll, was du ggf später auch noch nachrüsten möchtest - welchen Funktionsumfang du mind. haben möchtest usw

  • Naja ... :s


    ...
    Auch kann ein Arduino keine Kamera verarbeiten ...
    ...
    zB über RFM12B Module und diese via SPI ansprechen usw, aber das ist nicht so Zuverlässig (zumindest in meinen Tests)
    ...

    also ganz so ist es ja (gottseidank) nicht.
    Was hätten wir nur früher gemacht, als es noch keinen Arduino-Bootloader gab und alles in Assembler ( später dann auch C ) realisiert werden musste ...
    Selbstverständlich kann ein ATMEL auch eine Kamera bedienen (die vom RPi scheint übrigens IIC oder SPI zu verwenden) ... und auch LAN oder WLAN ist möglich.
    Es gibt sogar TCP/IP-Stacks für den Atmel ... und das schon lange bevor jemand überhaupt an den Arduino dachte.
    Und wenn etwas nicht sehr zuverlässig ist, dann liegt es nicht am Prozessor ...
    Und ja ... ein MicroController ist echtzeitfähig ...
    Der RPi selbst wäre auch echtzeitfähig, würdest Du ihn "generisch" nehmen ... also ohne Linux drauf.

    Und das ist genau der Punkt:
    Du sparst Dir eine Menge Arbeit, wenn ein OS auf dem Controller läuft ... dafür büßt Du aber (zumindest teilweise) die Echtzeitfähigkeit ein.

    Und sicher reicht auch ein RPi als Schaltzentrale eines einfachen Roboters. Abstände messen, Motoren steuern, ... kriegt der locker auf die Reihe. Ob die Reaktion auf ein Hindernis jetzt 10 ms früher oder später erfolgt, ist im Prinzip vollkommen Banane.
    Sinn macht es, Intelligenz und damit Funktionalität auszulagern ... da kämen dann die Arduinos ins Spiel ...
    -> Hier <- wäre z.B. mal etwas Interessantes zum Lesen dazu ...

    cu,
    -ds-

  • Vielen Dank für die Antworten bisher. :)

    Ich werde meinen Roboter erstmal nur mit meinem Pi betreiben, da es da viele gute Anleitungen zu gibt und ich erstmal nicht so viele Funktionen brauche.

    Ich habe aber noch eine Frage:

    Ich möchte den Roboter mit einer Kamera ausstatten, damit ich ihn später vom Handy aus steuern kann und ein Bild habe.
    Aber ich kann doch bestimmt nicht jede x beliebige USB Webcam benutzen, oder? Welche Kriterien muss eine Webcam erfüllen, um am Pi zu laufen?


  • Also vom Bauchgefühl her würde ich sagen: nimm die Raspi-Cam.
    Die ist für den RPi konzipiert und wird dadurch optimal unterstützt. Bei USB-Teilen wirst Du m.E. wegen des Delays nicht glücklich werden ...
    cu,
    -ds-

    Die ist aber relativ teuer und ich habe im Internet in irgendeinem Tutorial gelesen, dass dort eine Logitech Webcam verwendet wurde und das lief auch super. :/

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!