Der sicherste Weg, Raspberry Pi mit Arduino Uno R3 zu verbinden


13

Ich arbeite an einem Roboter mit einem Arduino Uno R3 und wollte die Fähigkeit haben, den Arduino drahtlos zu steuern, wie das Stoppen des Arduino, ohne jedes Mal den Netzstecker ziehen zu müssen.

Ich möchte wissen, wie ich meinen Raspberry Pi am sichersten mit dem Arduino verbinden kann, ohne dass die Gefahr besteht, dass die Spannung in die eine oder andere Richtung geht.

Ich habe mir die Verwendung von i2c und Serial angesehen (siehe folgende Seiten): http://blog.oscarliang.net/raspberry-pi-arduino-connected-i2c/ & http://blog.oscarliang.net/connect-raspberry-pi- und-arduino-usb-kabel / . Ich muss noch USB nachschlagen. Der Grund, warum ich diese Frage stelle, ist, dass auf dem i2c-Post steht, dass ich auf die Spannungsdifferenz achten soll:

Wie funktioniert es? Ist es sicher?

Der Raspberry Pi läuft mit 3,3 Volt, während der Arduino mit 5 Volt läuft. Es gibt Tutorials, die die Verwendung eines Pegelumsetzers für die I2C-Kommunikation vorschlagen. Dies wird NICHT benötigt, wenn der Raspberry Pi als "Master" und der Arduino als "Slave" ausgeführt wird.

Wie kann ich das RPi sicher als Master und das Arduino als Slave verbinden?


1
Einfach über USB anschließen. Um das Arduino herunterzufahren, können Sie einfach einen (NPN) -Transistor an einen der GPIO-Ports anschließen, der den Reset-Pin des Arduino auf Masse zieht und das Arduino in einem Herunterfahrzustand hält, bis die Reset-Leitung wiederhergestellt ist.
Gerben

Antworten:


4

Absolut sicher wäre Bluetooth serial. Mit einem unterstützten USB-Dongle auf dem Raspberry Pi und so etwas wie einem Bluefruit EZ-Link auf dem Arduino können Sie den Arduino ohne physische Verbindung vom Raspberry Pi aus programmieren und steuern.

Das nächstbeste wäre wahrscheinlich über USB. Es gibt ein "Standard" -Protokoll ( Firmata ) für die Interaktion mit Arduino und Sensoren, aber es ist möglicherweise nicht ideal für die Robotik.


Hoo! 22 $, nicht gerade billig, aber okay! Werde das untersuchen!
RPiAwesomeness

2
Versuchen Sie Ebay für billigere Alternativen, wenn Kosten ein Faktor ist
Jervelund

Wenn Sie Bluetooth serial sagen, würde dies funktionieren? foxytronics.com/products/…
RPiAwesomeness

Ja, mit der JY-MCU würde man wahrscheinlich nach viel Fummeln arbeiten. Das teurere, mit dem ich verbunden war, erledigt alle komplexen Einrichtungsschritte. Das ist mir den Preisunterschied wert.
Scruss

OK großartig. Ich mag es zu fummeln und dieses ist billiger und der Service ist großartig, also denke ich, dass ich mit diesem hier mitfahren werde. Vielen Dank!
RPiAwesomeness

11

Die kurze Antwort auf Ihre Frage, wie Sie das RPi sicher mit einem Arduino verbinden können, finden Sie in der Tat unter dem ersten Link, den Sie gepostet haben: http://blog.oscarliang.net/raspberry-pi-arduino-connected-i2c/ . Ich habe die dort angegebene Methode mit großem Erfolg und ohne Beschädigung von Bauteilen angewendet.

Ihre Frage legt jedoch nahe, dass Sie dieser Methode nicht vertrauen, und ich denke, der Schlüssel zum Vertrauen liegt darin, zu verstehen, warum sie sicher ist. Dies wird in dem Absatz nach dem von Ihnen zitierten erläutert, aber möglicherweise mit zu vielen Details. Der Schlüssel ist das Fehlen eines "Pull-Up" -Widerstandes beim 5V Arduino. Ohne sie ist die einzige Spannungsversorgung das 3,3-V-RPi, das glücklicherweise hoch genug ist, um vom Arduino erkannt zu werden.


7

Wenn Sie Ihren USB-Port Ihres Rpi nicht schonen möchten, können Sie GPIO Serial verwenden, um mit Ihrem Arduino zu kommunizieren. Es gibt ein großartiges Tutorial von Conor O'Neill zum Verbinden von Rpi mit einem Arduino Pro Mini. Die Vorgehensweise ist bei Ihrem Arduino Uno gleich.

Sie benötigen lediglich einen LLC (Logic Level Converter), um diese beiden Geräte verbinden zu können. Wie Sie bereits erwähnt haben, werden diese Geräte mit unterschiedlichen Spannungspegeln betrieben.

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.