Indholdsfortegnelse:
- Trin 1: Hindbær PI og Xbee RC -sender
- Trin 2: Konfigurer Raspberry Pi UART
- Trin 3: Skriv et Python -script for at læse værdier for spilcontroller
- Trin 4: Konklusion
- Trin 5: Tilslut Raspberry Pi Zero til XBee Radio
Video: Raspberry Pi + Xbee RC -sender: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Denne instruktive viser dig, hvad jeg gjorde for at lave min egen Raspberry Pi Zero + Xbee RC -sender
Trin 1: Hindbær PI og Xbee RC -sender
Trin 2: Konfigurer Raspberry Pi UART
Hej med dig!
Raspberry Pi (alle variationer) er ekstremt alsidige og er nu hjørnestenen i et økosystem med mange let at lodde tilføjelser, der gør disse enheder VIRKELIG handy. Desværre er den eneste ting, Raspberry Pi mangler (i øjeblikket) et breakout board eller nøglefærdig GPIO -interface til XBee (ZigBee) radioer. XBee -enheder er en fantastisk måde at kommunikere mellem alle slags enheder uden mange protokolprøver eller dataformater på, og gør det meget let at integrere USB -enheder og sende deres data til andre eksterne enheder. Start med en hvilken som helst version af Raspberry Pi. I denne Instructable brugte jeg en Raspberry Pi zero og konfigurerede den serielle konsol til at frigøre UART ved hjælp af denne Instructable.
Trin 3: Skriv et Python -script for at læse værdier for spilcontroller
Denne bit af Python -kode reagerer på de begivenheder, der er rejst af spilcontrolleren og transmitterer værdien af input på den kontrol, der rejste begivenheden. Denne kode sender data lige så hurtigt som den baudhastighed, der er indstillet på XBee -radioerne. I dette eksempel er radioerne indstillet til 57600, men kan indstilles til deres højeste baudhastighed. Spilcontrolleren er en Logitech USB -spilcontroller. Den anvendte kode er herunder:
importer pygame
import seriel
sOut = ""
ser = serial. Serial {
port = '/dev/ttyAMA0', baudrate = 57600, paritet = serie. PARITY_NONE, stopbits = seriel. STOPBITS_ONE, bytesize = serial. EIGHTBITS, timeout = 1
}
pygame.init ()
udført = Falskt
mens det er gjort == false:
joystick = pygame.joystick.joystick (0)
joystick.init ()
#EVENT BEHANDLING
for begivenhed 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 = "Hat: + str (event.hat) +"; Værdi: " + 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 ("Afslutter")
udført = Sandt
hvis event.type == pygame. JOYBUTTONUP:
sOut = "Button Up:" + str (event.button)
print (sOut)
ser.write (sOut)
ser.flush ()
sOut = ""
ser.close ()
pygame.quit ()
Trin 4: Konklusion
Den sidste opbygning af dette bruger et ekstra telefonbatteri til at drive Raspberry Pi, som driver XBee og Logitech -spilcontrolleren. I et fremtidigt projekt vil jeg tilføje et vakuumformet plastdæksel, der vil omslutte Raspberry PI Zero, XBee Radio og strømforsyning, der alle er knyttet til gamecontrolleren i et flot, pænt bundt. Denne RC -senderbygning gør det meget let at sende kontroldata til næsten alt. I min næste build vil jeg sende dataene til en hexapod -robot, som jeg reddede fra Goodwill. Håber du finder dette instruerbart nyttigt. Glad bygning!
Trin 5: Tilslut Raspberry Pi Zero til XBee Radio
Som vist i diagrammet skal du slutte Pi GPIO -pin 1 (3.3v) til XBee -pin 1. Tilslut Pi GPIO -pin 6 (Gnd) til XBee -pin 10 og Pi GPIO Pin 8 (TX) til XBee -pin 3 (Din). Du kan også bruge et XBee breakout board, som kræver, at du forbinder Pi GPIO pin 2 (5v) til 5v pin på breakout board
Anbefalede:
Sådan downloades MicroPython -kode til XBee 3: 18 trin (med billeder)
Sådan downloades MicroPython -kode til XBee 3: MicroPython er et programmeringssprog, der er inspireret af Python 3.0, der fungerer på mikrokontrollere, f.eks. XBee 3. MicroPython kan hjælpe med at reducere mængden af forsyninger og den samlede bulk i dit projekt og gøre tingene meget lettere . Jeg synes dog