Innholdsfortegnelse:
- Trinn 1: Raspberry PI og Xbee RC -sender
- Trinn 2: Konfigurer Raspberry Pi UART
- Trinn 3: Skriv et Python -script for å lese verdier for spillkontroller
- Trinn 4: Konklusjon
- Trinn 5: Koble Raspberry Pi Zero til XBee -radioen
Video: Raspberry Pi + Xbee RC -sender: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Denne instruksen vil vise deg hva jeg gjorde for å lage min egen Raspberry Pi Zero + Xbee RC -sender
Trinn 1: Raspberry PI og Xbee RC -sender
Trinn 2: Konfigurer Raspberry Pi UART
Hei der!
Raspberry Pi (alle varianter) er ekstremt allsidig og er nå hjørnesteinen i et økosystem av mange tilleggsprogrammer som er enkle å lodde som gjør disse enhetene VIRKELIG hendige. Dessverre er det én ting som Raspberry Pi mangler (for øyeblikket) et utbruddstavle eller nøkkelferdig GPIO -grensesnitt for XBee (ZigBee) radioer. XBee -enheter er en fin måte å kommunisere mellom alle typer enheter uten mye protokoller eller dataformater på, og gjør det veldig enkelt å integrere USB -enheter og sende dataene sine til andre eksterne enheter. Start med en hvilken som helst versjon av Raspberry Pi. I denne instruksjonsboken brukte jeg en Raspberry Pi null, og konfigurerte seriekonsollen til å frigjøre UART ved hjelp av denne instruerbare.
Trinn 3: Skriv et Python -script for å lese verdier for spillkontroller
Denne biten av Python -kode reagerer på hendelsene som spillkontrolleren har reist og overfører verdien av inngangen på kontrollen som reiste hendelsen. Denne koden sender data så raskt som overføringshastigheten som er angitt på XBee -radioene. I dette eksemplet er radioene satt til 57600, men kan settes til den høyeste overføringshastigheten. Spillkontrolleren er en Logitech USB -spillkontroller. Koden som brukes er nedenfor:
importer pygame
importer serie
sOut = ""
ser = serial. Serial {
port = '/dev/ttyAMA0', baudrate = 57600, paritet = serie. PARITY_NONE, stopbits = serial. STOPBITS_ONE, bytesize = serial. EIGHTBITS, timeout = 1
}
pygame.init ()
gjort = Falske
mens det er gjort == false:
joystick = pygame.joystick.joystick (0)
joystick.init ()
#EVENT BEHANDLING
for hendelse i pygame.event.get ():
hvis event.type == pygame. JOYAXISMOTION:
sOut = "Axis:" + str (event.axis) + "; Value:" + str (event.value)
print (sOut)
ser.write (sOut)
ser.flush ()
sOut = ""
hvis event.type == pygame. JOYHATMOTION:
sOut = "Hatt: + str (event.hat) +"; Verdi: " + str (event.value)
print (sOut)
ser.write (sOut)
ser.flush ()
sOut = ""
hvis event.type == pygame. JOYBUTTONDOWN:
sOut = "Button Down:" + str (event.button)
print (sOut)
ser.write (sOut)
ser.flush ()
sOut = ""
hvis event.button == 8:
print ("Avslutter")
gjort = Sant
hvis event.type == pygame. JOYBUTTONUP:
sOut = "Button Up:" + str (event.button)
print (sOut)
ser.write (sOut)
ser.flush ()
sOut = ""
ser.close ()
pygame.quit ()
Trinn 4: Konklusjon
Den siste bygningen av dette bruker et ekstra telefonbatteri for å drive Raspberry Pi, som driver XBee og Logitech spillkontroller. I et fremtidig prosjekt vil jeg legge til et vakuumformet plastdeksel som vil omslutte Raspberry PI Zero, XBee Radio og strømforsyning, alt festet til spillkontrolleren i en fin, pen bunt. Denne RC -senderbygningen gjør det veldig enkelt å sende kontrolldata til omtrent alt. I min neste build vil jeg sende dataene til en hexapod -robot som jeg reddet fra Goodwill. Håper du synes dette kan være nyttig. Lykke til med bygningen!
Trinn 5: Koble Raspberry Pi Zero til XBee -radioen
Som vist i diagrammet, kobler du Pi GPIO -pinne 1 (3.3v) til XBee -pinne 1. Koble Pi GPIO -pinne 6 (Gnd) til XBee -pinne 10, og Pi GPIO -pinne 8 (TX) til XBee -pinne 3 (Din). Du kan også bruke et XBee breakout board som krever at du kobler Pi GPIO pin 2 (5v) til 5v pin på breakout board
Anbefalt:
Hvordan laste ned MicroPython -kode til XBee 3: 18 trinn (med bilder)
Slik laster du ned MicroPython -kode til XBee 3: MicroPython er et programmeringsspråk inspirert av Python 3.0 som fungerer på mikrokontrollere, for eksempel XBee 3. MicroPython kan bidra til å redusere mengden forsyninger og den generelle omfanget av prosjektet ditt, og gjøre ting mye enklere . Imidlertid har jeg