Inhaltsverzeichnis:

Raspberry Pi + Xbee RC-Sender - Gunook
Raspberry Pi + Xbee RC-Sender - Gunook

Video: Raspberry Pi + Xbee RC-Sender - Gunook

Video: Raspberry Pi + Xbee RC-Sender - Gunook
Video: LoRa Image and Video transmission wireless | ML on EdgeX 2024, Juli
Anonim
Raspberry Pi + Xbee RC-Sender
Raspberry Pi + Xbee RC-Sender

Dieses anweisbare zeigt Ihnen, was ich getan habe, um meinen eigenen Raspberry Pi Zero + Xbee RC-Sender zu erstellen

Schritt 1: Raspberry PI und Xbee RC Sender

Schritt 2: Konfigurieren Sie den Raspberry Pi UART

Sie da!

Die Raspberry Pi (alle Variationen) sind extrem vielseitig und bilden heute den Grundstein eines Ökosystems aus vielen einfach zu lötenden Add-Ons, die diese Geräte WIRKLICH praktisch machen. Leider fehlt dem Raspberry Pi (derzeit) nur ein Breakout-Board oder eine schlüsselfertige GPIO-Schnittstelle für XBee (ZigBee)-Funkgeräte. XBee-Geräte sind eine großartige Möglichkeit, ohne viele Dicing- und Slicing-Protokolle oder Datenformate zwischen allen Arten von Geräten zu kommunizieren und machen es sehr einfach, USB-Geräte zu integrieren und ihre Daten an andere entfernte Geräte zu senden. Beginnen Sie mit einer beliebigen Version des Raspberry Pi. In diesem Instructable habe ich einen Raspberry Pi Zero verwendet und die serielle Konsole konfiguriert, um den UART mit diesem Instructable freizugeben.

Schritt 3: Schreiben Sie ein Python-Skript zum Lesen von Gamecontroller-Werten

Dieses Bit des Python-Codes reagiert auf die vom Gamecontroller ausgelösten Ereignisse und überträgt den Wert der Eingabe des Steuerelements, das das Ereignis ausgelöst hat. Dieser Code sendet Daten so schnell wie die Baudrate, die auf den XBee-Funkgeräten eingestellt ist. In diesem Beispiel sind die Funkgeräte auf 57600 eingestellt, könnten aber auch auf ihre höchste Baudrate eingestellt werden. Der Gamecontroller ist ein Logitech USB-Gamecontroller. Der verwendete Code ist unten:

Pygame importieren

Seriennummer importieren

sOut=""

ser=seriell. Seriell{

port='/dev/ttyAMA0', Baudrate=57600, parity=seriell. PARITY_NONE, stopbits=seriell. STOPBITS_ONE, bytesize=seriell. EIGHTBITS, Zeitüberschreitung=1

}

pygame.init()

erledigt=Falsch

solange fertig==falsch:

Joystick=pygame.joystick.joystick(0)

Joystick.init()

#EVENTVERARBEITUNG

für Ereignis in pygame.event.get():

if event.type==pygame. JOYAXISMOTION:

sOut="Achse:" + str(Ereignis. Achse) + ";Wert:" + str(Ereignis. Wert)

Drucken (sOut)

ser.write(sOut)

ser.flush()

sOut=""

if event.type==pygame. JOYHATMOTION:

sOut="Hut: + str(event.hat) + ";Wert:" + str(event.wert)

Drucken (sOut)

ser.write(sOut)

ser.flush()

sOut=""

if event.type==pygame. JOYBUTTONDOWN:

sOut="Button Down:" + str(event.button)

Drucken (sOut)

ser.write(sOut)

ser.flush()

sOut=""

if event.button==8:

print("Beenden")

done=Wahr

if event.type==pygame. JOYBUTTONUP:

sOut="Button Up:" + str(event.button)

Drucken (sOut)

ser.write(sOut)

ser.flush()

sOut=""

ser.close()

pygame.quit()

Schritt 4: Fazit

Der letzte Build davon verwendet einen zusätzlichen Telefonakku, um den Raspberry Pi mit Strom zu versorgen, der den XBee- und Logitech-Gamecontroller mit Strom versorgt. In einem zukünftigen Projekt werde ich eine vakuumgeformte Kunststoffabdeckung hinzufügen, die den Raspberry PI Zero, das XBee-Radio und das Netzteil umschließt, die alle in einem schönen, ordentlichen Bündel an den Gamecontroller angeschlossen sind. Dieser RC-Sender-Build macht es sehr einfach, Steuerdaten an fast alles zu senden. In meinem nächsten Build werde ich die Daten an einen Hexapod-Roboter senden, den ich von Goodwill gerettet habe. Hoffe, Sie finden dieses instructable hilfreich. Glückliches Bauen!

Schritt 5: Verbinden Sie den Raspberry Pi Zero mit dem XBee Radio

Verbinden Sie den Raspberry Pi Zero mit dem XBee Radio
Verbinden Sie den Raspberry Pi Zero mit dem XBee Radio

Verbinden Sie, wie in der Abbildung gezeigt, den Pi GPIO-Pin 1 (3,3 V) mit dem XBee-Pin 1. Verbinden Sie den Pi GPIO-Pin 6 (Gnd) mit XBee-Pin 10 und den Pi GPIO-Pin 8 (TX) mit XBee-Pin 3 (Din). Sie können auch ein XBee-Breakout-Board verwenden, bei dem Sie den Pi GPIO-Pin 2 (5 V) mit dem 5 V-Pin auf dem Breakout-Board verbinden müssen

Empfohlen: