Arduino-Raspberry Pi Roboter

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Leute,

    ich habe vor kurzem den Raspberry Pi entdeckt und mich mehr damit beschäftigt und muss sagen, dass ich echt begeistert bin, was man alles so mit dem kleinen Teil anstellen kann.

    Mein Projekt ist für einen totalen Anfänger wahrscheinlich schon viel zu hoch gegriffen aber es drängt nicht und ich hab Geduld. Da ich aufgrund meines Pharmazie-Studiums wenig Zeit habe, möchte ich es eher als kleines Hobby nebenbei machen.

    Ich programmiere sehr gerne, jedoch hauptsächlich aus Spaß an der Freude oder wenn ich ein Programm für mich brauche. Früher habe ich mit Pascal/Delphi angefangen und nutze jetzt nur noch Java und/oder Lua. Es fällt mir jedoch nicht so schwer mein Wissen dort auf andere Programmiersprachen zu übertragen, da die Grundlagen bis auf Synthax doch schon sehr ähnlich sind. Da mir eher die Software liegt, muss ich sagen, dass Hardware eher gar nicht so mein Ding ist und ich mich da mit der Zeit reinfinden muss. In Sachen Elektronik bin ich also noch ein ziemlicher Anfänger und bis auf ein paar wenige Sachen, kenn ich höchstens die Physik dahinter. :)

    Aber das soll mich nicht aufhalten. Mein Ziel ist es einen Roboter zu bauen (< 200€), der nach und nach ein paar Extras bekommt.

    Zunächst habe ich eine Plattform gefunden, die 4 Motoren enthält. Diese sollen über Arduino Board mit Motor Shield gesteuert werden. Das ganze soll wiederrum mit dem Raspberry Pi gesteuert werden. An letzterem soll dann auch alles weitere hängen. Dazu gehört auf jeden Fall eine Webcam.

    Mal zusammenfassen was ich dazu alles brauche:

    - Arduino Board
    - Motor Shield
    - Robotplattform mit 4 Motoren
    - Raspberry Pi
    - USB Hub
    - Wlan-Empfänger
    - Bluetooth-Empfänger
    - USB-Akkus
    - Webcam

    Der Roboter soll per VNC durch meinen Laptop und/oder per Bluetooth (könnte mir ne App fürs Handy schreiben) gesteuert werden. Die Webcam dient als meine Augen, um den Roboter durchs Haus steuern zu können. Die USB-Akkus dienen als Stromquelle und die Motoren werden über Batterien betrieben.

    Die wichtigste Frage ist erstmal, ob ich auch an alles gedacht habe oder ob noch etwas fehlt?


    Das Motor Shield ist für 2 Motoren ausgelegt, jedoch besitzt die Plattform 4 Motoren. Kann ich die Motoren auf der jeweils gleichen Seite auf einen Steckplatz machen, damit ich Allradantrieb habe oder einfach nur 2 Motoren anschließen für Front- oder Heckantrieb? Wahrscheinlich tausche ich die Räder nachher gegen Ketten aus. Dort wäre es dann sicher sinnvoll nur jeweils einen Motor zu haben oder?

  • Zitat


    Das Motor Shield ist für 2 Motoren ausgelegt, jedoch besitzt die Plattform 4 Motoren. Kann ich die Motoren auf der jeweils gleichen Seite auf einen Steckplatz machen, damit ich Allradantrieb habe oder einfach nur 2 Motoren anschließen für Front- oder Heckantrieb? Wahrscheinlich tausche ich die Räder nachher gegen Ketten aus. Dort wäre es dann sicher sinnvoll nur jeweils einen Motor zu haben oder?

    Klingt nach fahren :)

  • Hi,

    zu deinem Projekt würde ich dir folgendes Setup empfehlen:

    Arudino -> sicherlich Uno
    Motorshield -> nimm das von Saintsmart, das ist baugleich mit Adafruit, kostet aber nur 8,- bis 12,- Euro.
    Dein Chassis kommt mir bekannt vor (abgekantetes Aluprofil zum zusammenschrauben?). Für den Anfang genügt es die Motoren pro Seite prarallel zu schalten. Sicherlich nicht optimal, aber es geht.

    Streiche folgendes:

    • USB-Hub
    • "USB-Akku" aka Powerbank, etc.
    • Webcam
    • Bluetooth
    • VNC


    Setze:

    Alternative zu Webcam:
    Raspberry Pi Camera Module (damit sparst du dir schon einmal ein USB-Gerät).

    Alternative zu "USB-Akku":
    Statt Powerbank empfehle ich dir einen Lipo-Akku (z.B. 7.4 V 5000 mAh 20C) und google nach einem 5V 3A BEC Step-Down Spannungsregler (alternativ kannst du dir das auch selbst löten). Das Ganze kannst du dann via GPIO anbinden. Ferner kannst du so auch deinen Akku über GPIO auslesen. Das macht Sinn, denn einen tiefenentladenen Akku wollen wir nicht und ein Raspberry Pi, der mitten im Betrieb "zusammenbricht" - auch nicht (gut, programmieren musst du...). Python ist hier immer eine gute Wahl.

    Alternative zu Bluetooth:
    Wie wäre es damit. Dein Roboter ist per Wifi im Netz. Reichweite ist daher deutlich höher als bei Bluetooth. Wenn du "mobil" sein willst, dann betreibe deinen Robter im Ad-Hoc Modus. Ein Accesspoint fällt weg. Geeignete USB-Wifi-Sticks findest du schon um die 10,- Euro. Falls es immer noch Bluetooth sein soll, kannst du auch das über GPIO lösen.

    Alternative zu VNC:
    Beschäftige dich mal mit dem Mjpeg-Streamer. Es gibt inzwischen auch eine Variante, die direkt mit dem Camera Modul zusammenarbeitet. Du kommst per Wlan auf ca. 3-5 fps. Das genügt in der Regel für langsame Fahrten durch die Wohnung ;)

    Der Hub verbraucht zu viel und ist nicht nötig. Schau dir mal die Standardspezifikationen für USB an. Multipliziere das mit den Ports am Hub - oder schau mal auf das Netzteil deines Hubs.

    PS.: Den Arduino kannst du auch per GPIO anschließen. Das läuft dann via Logic-Level-Converter. Alternativ gehts auch mit ein paar Transistoren... Somit wäre sogar noch ein USB-Port am Raspberry Pi frei

    Liebe Grüße und viel Glück bei deinem Projekt.

    Einmal editiert, zuletzt von PIARBO (29. Oktober 2013 um 15:05)

  • Ich mache das so:
    Ich habe einen wlan hotspot auf meinem Pi erstellt, und lasse einen Server und mjpg-streamer laufen.
    Angeschlossen habe ich eine Webcam und vier AA nimh-Akkus.
    Funzt ziemlich gut bei mir, mit stabilen Frameraten.
    Nur die Laufzeit ist nicht so dolle.
    Viel Erfolg.:bravo2:

    Mit stabilen Frameraten meine Ich: 15 fps bei 240x480 pixeln.
    Das ist für einen Roboter gut genug.
    Den Arduino schließe ich über USB an.
    Den Raspi kontrolliere ich über ssh.

    22,6% aller Statistiken sind nur ausgedacht. :geek:

    Einmal editiert, zuletzt von Himbeerschlange (22. April 2015 um 16:18)

  • Hallo,
    warum dazu einen Arduino bemühen ? Mit einer 16 Kanal PWM Servosteuerung von DeekRobot oder Adafruit lassen sich Modellbauservos vom Raspi ohne nennenswerte CPU Belastung direkt steuern. Kostenmäßig liegt das sicher weit unterhalb der Arduino Lösung. In meinem Projekt Raspi http://www.bechele.de verwende ich genau diese Kombination ohne weitere Bauteile. Motoren lassen sich auch über PWM (PulsWeitenModulation) elegant ansteuern man benötigt nur einen Leistungstreiber für den Leistungsteil und man hat gleich eine schöne Geschwindigkeitsregelung. Modellbauservos bringen das sogar alles schon mit.

  • bechele: Weil ein Arduino nicht nur PWM Channels besitzt sondern auch Interrupt und Analoge Eingänge (abgesehen von den Digitalen Ausgängen). Je nach Umfang des Roboters sind 16 Channels schnell verbraucht - für mein Projekt verbrauche ich zZt insg. 26 I/O's plus SPI und I2C (siehe > hier <). Gerade wenn es um Roboter und echte Autonomie geht werden zudem speziellere I/O's benötigt.

    Ein Ardunio kostet zudem auch nicht wirklich viel - ein Uno kriegt man bereits für 8€ und könnte für kleinere Projekte reichen.

    Die Steuerung des Arduino's über USB bzw UART gestaltet sich Programmiertechnisch auch ziemlich einfach, da man den Sketch nur entsprechend gestalten muss.

  • meigrafd:
    Zugegeben mit Interrupts tut sich der Raspi eher schwerer, aber Ports kann ich am Raspi ebenfalls fast beliebig viele verwenden, wenn ich entsprechende Bausteine z.B. MCP23017 über i2C verwende. In meinem Projekt habe ich für die Bewegungseingabe auch einen Arduino micro pro verwendet - eben wegen der Analogeingabe. Nur frage ich mich, warum ich ein Motorsteuershield verwenden soll, wenns auch einfacher geht. Kommt zugegebenermaßen natürlich immer auf die Anwendung an.
    Für die angefragte Anwendung hätte ich jedenfalls anfangs nicht so tief in die Bastelkiste gegriffen.
    Gruß
    Rolf

Jetzt mitmachen!

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