Anschließen des Raspberry Pi und die Arduino

Manche Menschen sehen die Arduino und Raspberry Pi als rivalisierende Bretter, aber dies ist nicht der Fall. Wenn überhaupt, sind sie komplementär - die Schwäche des einen die Stärke des anderen ist. Hier sind drei Möglichkeiten, ein Arduino und Raspberry Pi verbindet.

Menu

  • Usb
  • Seriell
  • Ich2c

USB

den USB-Anschluss auf dem Raspberry Pi an den USB-Anschluss auf der Arduino einfach verbinden. Das ist alles, was Sie tun müssen. Es gibt eine leichte curve, dass die Pi kann potenziell die Arduino eine von zwei Ports zuweisen, so dass, wenn die serielle Schnittstelle an den Arduino eröffnen, verwenden Sie die folgende Code-Schnipsel:

Import serialtry: ser = serial.Serial ( '/ dev / ttyACM0', 115200, timeout = 2) außer: ser = serial.Serial ( '/ dev / ttyACM1', 115200, timeout = 2)

Dies setzt voraus, dass Sie den Code in das Arduino eingerichtet haben den seriellen Port an der gleichen 115200 Baud-Rate mit einem beginnen Befehl zu verwenden:

Serial.begin (115200)

Sie können eine beliebige Baudrate verwenden, die die beiden Systeme verwenden können, aber sie müssen übereinstimmen. Auf der Pi Seite verwenden ser.write () zu senden, was in den Klammern an den Arduino ist und back = ser.read (1) ein Byte zurück zu bekommen. Wenn es hat nichts nach der Timeout-Zeit empfangen worden setzen Sie, wenn Sie den Port zu öffnen, wird der Anruf zurückkehrt. Sie können so viele Bytes zurück aus dieser Aufforderung erhalten, wie Sie in den Klammern gesetzt.

seriell

Dies funktioniert in der Software ähnlich wie USB, aber hier gibt es die GPIO-Pins auf dem Raspberry Pi mit den TX-und RX-Pins auf dem Arduino verbinden. Diese Methode kann nützlich sein, wenn Sie ein Arduino mit mehr als eine serielle Schnittstelle haben, wie der Arduino Mega. Der einzige Haken ist, dass, wenn Sie einen 5V Arduino verwenden, einige Pegelverschiebungsschaltungen benötigen. Für den Empfang wird eine 5V-Signal in das Pi, ein einfaches Widerstandsteiler genügen, aber in von 3V3 steigen Sie einen Transistor müssen bis 5V.

bild0.jpg

Beliebige Allzweck-NPN-Transistor kann hier verwendet werden. Sie kommunizieren in der gleichen Weise wie die USB-Seriell, außer dass Sie immer den ttyACM0 Hafen zu bekommen.

Für beide Serien-Methoden, die Sie übertragen Bytes keine Zahlen. Wenn Sie Probleme damit haben, vielleicht noch einige andere Software installieren, hat die Standard-Abläufe Ihres seriellen Anschluss an der Pi-Seite geändert. Wenn ja, Online-Suche für die Symptome Ihrer spezifischen Problem.

ich2C

Das i2C (sprich: # 147-I quadriert C # 148- aber oft geschrieben I2C) kann verwendet werden, um die beiden miteinander zu verbinden. Das i2C-System ist ein Master / Slave-Anordnung - nur der Master sendet oder Daten anfordert. Der Raspberry Pi ist nicht sehr gut geeignet für Sein ein I2C-Slave, so muss man es der Meister zu machen. Der Bus erfordert Pull-up-Widerstände, die sich bereits auf GPIO-Pins 2 und 3 auf dem Raspberry Pi. Leider hat der 5V Arduino seine internen Pull-up-Widerstand aktiviert, wenn Sie die Standard-I verwenden sind2C-Bibliothek genannt # 147-Draht # 148-- weil dies die Linien ziehen bis 5V, es könnte Ihr Pi beschädigen. So finden Sie den Draht Bibliothek hacken müssen (die man für I2C) oder, noch besser, verwenden Sie eine Bibliothek, die die Kontrolle über die internen Pull-up-Widerstände wie die bei fand man erlaubt Github.com. Der Anschluss erfolgt dann einfach. Beachten Sie, dass ein Beispiel für den Arduino als I unter Verwendung von2C-Slave im Beispielteil der Arduino-IDE.

image1.jpg

Wenn Sie möchten, um die Software nicht ändern, werden Sie eine I verwenden müssen2C Pegelverschiebungsschaltung.

Menü