Wie kann man mit Himbeer-Pi ein Arduino steuern?


8

Ich habe ein Arduino Uno, das auf eine iOS-Anwendung reagieren muss, wobei das Internet das Medium ist. Mein ursprünglicher Plan war es, einen WLAN-Schutzschild für das Arduino zu verwenden, aber da ich derzeit keinen bekomme, dachte ich, ich könnte einfach einen Himbeer-Pi verwenden, der mit dem Internet verbunden ist, um das Arduino zu steuern. Ich gehe davon aus, dass dies möglich ist?

Ich muss den Himbeer-Pi auf einen Webserver antworten lassen und ein Signal an das Arduino senden. Ist das möglich und wenn ja, kann mir jemand einen Rat geben, wie ich das machen soll?

Antworten:


3

Ich arbeite gerade an einem ähnlichen Projekt. Es ist ein einfaches webgesteuertes R / C-Auto. Ich war im selben Boot wie Sie, ich wollte ursprünglich einen WLAN-Schild für mein Arduino. Aber ich entschied mich für einen Himbeer-Pi, der über USB an meinen Mega 2560 angeschlossen war. Sie sollten prüfen, ob Sie das Firmata-Protokoll auf Ihrem Arduino ausführen können. Es kommt mit der Arduino IDE. Schauen Sie einfach unter Datei-> Beispiele-> Firmata nach und laden Sie die StandardFirmata auf Ihr Board hoch.

Der nächste Schritt war das Ausführen eines Webservers node.js mit den Knotenpaketen firmata und socket.io. Ich habe kürzlich begonnen, mit dem Paket johnny-five node.js zu experimentieren. Einfach, weil ich ein bisschen noob bin, wenn es um die Programmierung von node.j geht, und Probleme hatte, es richtig zu machen, nur mit dem Firmata-Node-Paket. Johnny-Five scheint vielversprechend und ich hatte ein bisschen Glück damit, aber mein Code ist noch in Arbeit. Ich werde einen Link zu meiner Github-Seite posten, damit Sie zumindest eine Referenz haben können (motor_test.js und motor_test.html, denken Sie daran, dass der Code immer noch nicht funktioniert. Ich konnte eine LED erfolgreich steuern, aber Motoren sind a andere Geschichte. Wenn ich heute Zeit habe, werde ich meinen Code über das Projekt node.js an meine funktionierende LED-Steuerung senden.

Wie auch immer, ich weiß, dass ich Ihnen keine vollständig funktionierende Lösung anbieten konnte, aber ich hoffe, dass dies Sie zumindest in die richtige Richtung bringt. Sie können mir jederzeit eine E-Mail senden (messyfresh@gmail.com). Ich würde gerne mehr helfen, so gut ich kann.

Hier sind die Referenzen. Google sie einfach. Ich kann nicht mehr als 2 Links posten.
Installieren Sie Node.js auf RPi ( http://joshondesign.com/2013/10/23/noderpi ).
Meine Github-Seite ( https://github.com/messyfresh/pi_rc )
Firmata
Node.js (Ich habe die beste Version für gefunden Verwendung mit socket.io und firmata ist 0.8.2x)
Socket.io
Node.js Firmata
Johnny-Five Node.js


3

Ich habe dies kürzlich mit Node-Serialport begleitet .

Der folgende Link erklärt eine gute Strategie für die vollständige Kontrolle über das Arduino.

Bearbeiten: jemand hat einen Link für mich bearbeitet und hinzugefügt :)

Meine Lösung

Schauen Sie sich arduino / serial.ino, pi / server.js und pi / views / profile.ejs an. Server.js öffnet den serialPort und einen Socket mit profile.ejs. Wenn auf profile.ejs etwas passiert, wird serialPort.write (Puffer, Codierung) in server.js ausgelöst.

Standardmäßig wird das Arduino Uno nur zu Ihrer Information zurückgesetzt, wenn eine serielle Verbindung geöffnet wird. Wenn Sie versuchen, Daten zu senden, ohne ein oder zwei Sekunden nach dem Öffnen der seriellen Verbindung zu warten, schlägt dies fehl. Ich fand heraus, dass sich dieses Problem von selbst löste, als ich menschliche Interaktion benötigte, um serialport.write () auszulösen. Eine andere Lösung finden Sie, indem Sie DisablingAutoResetOnSerialConnection googeln.

Hoffe das hilft!

@ bobbyg603


Sie sollten in Ihren Kommentaren hinzufügen, auf welches Github-Projekt Sie sich beziehen, dann kann das OP einen Blick darauf werfen
kolin

3

Der einfachste Weg wäre, den Hardware-UART (zuerst die Konsole auf Pi deaktivieren ) auf beiden Geräten zu verwenden. Bei einer Konfiguration mit 115 Kilobaud können Sie viele Textdaten wie JSON übertragen, aber auch Binärdaten wie Zips und JPGs können verarbeitet werden. Es wird empfohlen, zuerst mit niedrigeren Raten zu beginnen, da einige Bibliotheken Probleme mit höheren Bauds haben.

Sie können dann Wrapper auf dem Pi in einer beliebigen Variante schreiben: C, PHP, Java, .NET MONO, Perl oder Python.

Dies ist eine Option für eine leichtgewichtige Bibliothek, die Sie selbst aufbauen können. Es gibt eine Fülle von Artikeln dazu, wie Sie dies auf Arduino und Raspberry Pi tun können.


1

Wir haben einen kleinen PHP-Daemon entwickelt, der eine Verbindung zu einem Remserial-Daemon (Uart-to-TCP-Socket) herstellt und diesen umschließt. Es kann leicht erweitert werden, um zusätzliche Aufgaben wie das Herstellen einer Verbindung zu einem Webserver und das Senden einiger Daten auszuführen.

Der Daemon wird in einem Paket zusammen mit einer vollständigen WEB-Benutzeroberfläche geliefert, um ein Arduino-ähnliches Board namens CoPiino zu steuern.

Lassen Sie mich wissen, wenn Sie Unterstützung beim Extrahieren des Daemons benötigen.

Einige Projektinfos finden Sie hier http://www.copiino.cc

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.