Raspberry Pi Projekte für Dummies

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.

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.

Raspberry Pi GPIO Pin Alternative Funktionen

Der Universal Eingang / Ausgang (GPIO) Pins können zwischen Ein- oder Ausgang und haben einen Pull-up oder Pull-Down-Widerstand aktiviert, aber es gibt eine Vielzahl von anderen Peripheriegeräte in der Raspberry Pi Chip geschaltet werden, die auf diese umgeschaltet werden kann Pins. Sie können für einen Stift, GPIO 18 die Grundanordnung zu sehen.

bild0.jpg

Alle anderen Stifte haben eine ähnliche Anordnung, aber mit unterschiedlichen Blöcken zur Auswahl. Die Zahlen auf den Schalter sind die Drei-Bit-Registerwert, der in der Sammlung von alternativen Funktionsauswahlregister eingestellt werden müssen. Beachten Sie, dass die Alt-Zahlen wenig Beziehung zu den Bitmuster haben Sie tatsächlich eingestellt.

Obwohl es 54 GPIO-Leitungen in der Raspberry Pi des Prozessors sind, nur 28 sind auf der Platine an den P1-Anschluss herausgebracht (weniger auf das Non-Plus-Modelle) - der Rest wird für die tatsächlich macht den Prozessor wirken wie ein Computer (Dinge verwendet, wie die SD-Karte, USB-Anschluss und LEDs). Auf der B + und A + Modelle, können Sie die ersten 28 GPIO Zentrierstifte- auf früheren Modellen haben, haben Sie eine Teilmenge davon. Die meisten Diagramme Sie nur eine Auswahl dieser alternativen Funktionen finden geben. Hier können Sie alle alternativen Funktionen sehen und wo sie erscheinen auf dem GPIO-Anschluss.

image1.jpg

Das erste, was zu erkennen ist, dass es zwei Arten von # 147-hier nichts # 148-: Man ist leer und der andere ist markiert, wie. Es ist wahrscheinlich, dass diese reservierten Funktionen für Werkstests verwendet werden, des Chips oder für Funktionen, die nicht im Datenblatt angegeben. Die leeren diejenigen sind einfach nicht umgesetzt.

Für die volle blutige Geschichte, die BCM2835 ARM Peripherals Dokument ist, wo Sie aussehen wollen, aber hier ist ein kurzer Blick auf einige der Funktionen:

  • ALT 0: Wo die meisten der interessanten und nützlichen alternativen Funktionen so weit wie die Raspberry Pi sind betroffen ist. Die SDA und SCL 0 und 1 sind die beiden I2C-Busse und die TXD0 und RXD0 sind die seriellen Verbindungen. Die GPCLK Linien sind ein Allzwecktaktausgang, der mit einer festen Frequenz zu laufen unabhängig von einer Software eingestellt werden kann. Die PWM-Pins bieten die beiden pulsbreitenmodulierten outputs- der SPI 0 die Serial Peripheral Interface Buslinien. Schließlich bieten die PCM-Pins Puls-Code-modulierte Audioausgänge.

  • ALT 1: Die Stifte werden als Sekundär Speicherbus verwendet. Aufgrund der Gestaltung der Himbeere Pi, ist dies überhaupt nicht von Nutzen.

  • ALT 2: Die einzigen ALT 2 Pins die an den GPIO-Pin-Header herausgebracht sind reserviert.

  • ALT 3: Die nützlichsten Stifte sind hier die CTS0 und RTS0 Lines- diese Leitungen für die serielle Modul Handshaking, wenn Sie sie benötigen. Die BSC Linien sind für die Serial-Controller von Broadcom, die einen schnellen Modus I2C-konformen Bus unterstützen 7-Bit- und 10-Bit-Adressierung und die Zeitsteuerung von internen Registern gesteuert wird. Die SD1 Linien sind wahrscheinlich für die Steuerung von einer SD-Karte, aber der BCM2835 ARM Peripherals Dokument macht keine andere erwähnt. Es ist nicht die Art und Weise der Raspberry Pi ohnehin die SD-Karte zugreift.

  • ALT 4: Die SPI-1-Leitungen sind eine zweite SPI-Bus. Und die ARM-Pins sind für eine JTAG-Schnittstelle. JTAG ist eine Möglichkeit, ohne Software auf sie auf den Chip zu sprechen. Es ist sehr viel für die ersten Tests auf einem System während der Entwicklung verwendet, obwohl es auch für Hardware-Debugging verwendet werden.

  • ALT 5: Die nützlichen Pins sind hier die zweite serielle Schnittstelle Daten und Handshaking-Leitungen. Die PWM Linien sind genau die gleichen PWM Linien, die Schalter 12 und 13 GPIO unter ALT 0 sind, nur dieses Mal sie GPIO geschaltet sind 20 und 21. Es gibt auch zwei der Allzwecktaktleitungen zusammen mit einer anderen Kopie die ARM JTAG-Signale.

Einschalten aus dem Raspberry Pi

Eine häufig gestellte Frage ist # 147-Will der Raspberry Pi Macht das?, # 148-, auf die die Antworter ist immer # 147-Was meinst du mit Macht? # 148- Grundsätzlich gibt es drei Möglichkeiten, ein Pi etwas mit Strom versorgen und verfügen jeweils über eine separate Antwort.

Beschaffung der Energie aus dem GPIO-Pin

Die GPIO-Pins sind ziemlich zerbrechlich auf dem Raspberry Pi, im Vergleich zu anderen Boards wie dem Arduino. Jeder GPIO-Pin kann Quelle (Bieten den aktuellen) oder sinken (Saugen den Strom in den Stift etwas zu schalten gegen Masse) etwa 16 mA. Die Gesamtmenge an Strom abgeleitet oder von allen Pins aufaddiert versenkt sollte auf etwa 50 mA begrenzt werden, die jedem erstreckt sich für die nicht-plus-Modelle etwa 3mA.

Das einzige, was sollten Sie direkt von einem GPIO-Pin Stromversorgung ist eine LED, und nur mit einem geringen Strom dazu. Alles andere muss durch eine Art von Fahrer zu gehen - in der Regel ein Transistor oder FET. Auch ist die Ausgangsspannung nur 3V3, so viele Geräte benötigen eine höhere Spannung als auch mehr Strom.

Beschaffung der Energie aus dem Pi

Dies ist, wo das Signal etwas zu steuern, von den GPIO-Pins abgeleitet ist, aber die tatsächliche Leistung zu fahren sie aus dem 3V3 oder 5V interne Stromleitungen des Raspberry Pi ist.

die 3V3 Versorgung zu verwenden ist schwierig, weil die Linie, die durch den integrierten Spannungsregler gehen wird, und es gibt eine begrenzte Anzahl von Ersatzstrom verfügbar ist, bevor Sie eine Überhitzung der Behörden erhalten. Nehmen Sie nicht mehr als 50 mA aus dieser Stromschiene. Wenn Sie mehr wollen, sollten Sie auf der 5V-Leitung einen Spannungsregler verwendet wird.

Viel mehr Erfolg versprechend ist die 5V Leitung, weil sie aus der gleichen Stromquelle abgeleitet ist, die die gesamte Pi mit Strom versorgt. Da die Pi in Spitzen zu 800mA einnimmt, wenn Sie die Pi mit einer 2A Versorgung Strom, könnten Sie etwa 1.2A von den 5V Linien nehmen. Parallel die beiden 5V Pins auf dem GPIO-Anschluss und mindestens zwei Gründe, den Widerstand durch den Verbinder eingeführt zu reduzieren. Aber am oberen Ende dieses Stromaufnahme, erwarten ein wenig Spannungsabfall - Sie könnten ein Volt oder so verloren und am Ende mit nur etwa 4V.

Beschaffung der Energie von einer externen Versorgung

Es gibt Zeiten, wenn Sie eine höhere Spannung als 3V3 oder 5V benötigen ein Gerät zu steuern. Wenn dies der Fall ist, müssen Sie eine separate Stromversorgung. Das bedeutet, dass der Boden oder -ve Anschluss des externen Stromversorgung muss mit der Masse des Raspberry Pi verbunden werden. Eine gemeinsame Angst dabei ist, dass dieser Wille in gewisser Weise die Pi beschädigen, aber solange es nur der Boden ist, der verbunden ist, gibt es nichts zu befürchten.

Zum Beispiel könnte eine typische Anwendung, ein 12V Relais anzutreiben.

bild0.jpg

Die Art und Weise ein Transistor funktioniert sichergestellt, dass die 12V nicht zurück in die Raspberry Pi entweicht.

Die Relaiskontakte sind völlig unabhängig von der Pi- dies gesagt wird, isoliert werden. Jede Art von Spule oder Induktivität muss eine Diode gegen Rücken zu schützen haben EMF- dies ist eine große Sperrspannungsspitze, die auftritt, wenn die Relaisspule des Strom entfernt wird und das Magnetfeld zusammenbricht. Die Diode Shorts diese aus und verhindert, dass er einen Schaden verursacht.

Der 1K Widerstand in der Basis des Transistors sorgt dafür, dass Sie nicht vom GPIO-Pin zu viel Strom zeichne. Diese Schaltung ist auf andere Dinge als auch - zum Beispiel anstelle der Relaisspule, ein Motor haben kann.

Menü