Sadržaj:
- Korak 1: Raspberry PI i Xbee RC predajnik
- Korak 2: Konfigurirajte Raspberry Pi UART
- Korak 3: Napišite Python skriptu za čitanje vrijednosti kontrolera igre
- Korak 4: Zaključak
- Korak 5: Priključite Raspberry Pi Zero na XBee radio
Video: Raspberry Pi + Xbee RC predajnik: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Ovo uputstvo će vam pokazati šta sam uradio da stvorim svoj vlastiti Raspberry Pi Zero + Xbee RC predajnik
Korak 1: Raspberry PI i Xbee RC predajnik
Korak 2: Konfigurirajte Raspberry Pi UART
Zdravo!
Raspberry Pi (sve varijacije) su izuzetno svestrani i sada su kamen temeljac ekosistema mnogih dodataka za jednostavno lemljenje koji ove uređaje čine ZDRAVO zgodnim. Nažalost, jedino što nedostaje Raspberry Pi -u (trenutno) je ploča za razbijanje ili GPIO sučelje po principu ključ u ruke za XBee (ZigBee) radije. XBee uređaji odličan su način za komunikaciju između svih vrsta uređaja bez puno protokola ili kockanja protokola ili formata podataka i čine ga vrlo jednostavnom za integraciju USB uređaja i slanje njihovih podataka na druge udaljene uređaje. Za početak počnite s bilo kojom verzijom Raspberry Pi. U ovom Instructable -u koristio sam Raspberry Pi zero i konfigurirao serijsku konzolu da oslobodi UART pomoću ovog Instructable -a.
Korak 3: Napišite Python skriptu za čitanje vrijednosti kontrolera igre
Ovaj dio Python koda reagira na događaje koje pokreće kontroler igre i prenosi vrijednost unosa na kontroli koja je pokrenula događaj. Ovaj kôd šalje podatke onoliko brzo koliko je brzina prijenosa postavljena na radijima XBee. U ovom primjeru radiji su postavljeni na 57600, ali se mogu postaviti na najveću brzinu prijenosa. Kontroler za igre je Logitech USB kontroler za igre. Kôd koji se koristi je dolje:
import pygame
uvoz serijske
sOut = ""
ser = serial. Serial {
port = '/dev/ttyAMA0', baudrate = 57600, paritet = serijski. PARITY_NONE, stopbits = serijski. STOPBITS_ONE, bytesize = serial. EIGHTBITS, timeout = 1
}
pygame.init ()
done = False
dok je gotovo == false:
joystick = pygame.joystick.joystick (0)
joystick.init ()
#EVENTNA OBRADA
za događaj u pygame.event.get ():
if event.type == pygame. JOYAXISMOTION:
sOut = "Osa:" + str (event.axis) + "; Vrijednost:" + str (event.value)
ispis (sOut)
ser.write (sOut)
ser.flush ()
sOut = ""
if event.type == pygame. JOYHATMOTION:
sOut = "Hat: + str (event.hat) +"; Vrijednost: " + str (event.value)
ispis (sOut)
ser.write (sOut)
ser.flush ()
sOut = ""
if event.type == pygame. JOYBUTTONDOWN:
sOut = "Button Down:" + str (event.button)
ispis (sOut)
ser.write (sOut)
ser.flush ()
sOut = ""
if event.button == 8:
print ("Odustajanje")
učinjeno = Tačno
if event.type == pygame. JOYBUTTONUP:
sOut = "Button Up:" + str (event.button)
ispis (sOut)
ser.write (sOut)
ser.flush ()
sOut = ""
ser.close ()
pygame.quit ()
Korak 4: Zaključak
Konačna verzija ovoga koristi pomoćnu bateriju telefona za napajanje Raspberry Pi, koji napaja XBee i Logitech kontroler igre. U jednom budućem projektu dodaću vakuumski oblikovani plastični omotač koji će obuhvatiti Raspberry PI Zero, XBee Radio i napajanje, sve spojeno na kontroler igre u jedan lep, uredan paket. Ova konstrukcija daljinskog upravljača čini vrlo lakim slanje kontrolnih podataka na gotovo sve. U sljedećoj verziji poslaću podatke heksapodnom robotu kojeg sam spasio iz dobre volje. Nadam se da će vam ovo uputstvo biti od pomoći. Srećna zgrada!
Korak 5: Priključite Raspberry Pi Zero na XBee radio
Kao što je prikazano na dijagramu, spojite Pi GPIO pin 1 (3.3v) na XBee pin 1. Priključite Pi GPIO pin 6 (Gnd) na XBee pin 10, a Pi GPIO Pin 8 (TX) na XBee pin 3 (Din). Također možete koristiti XBee probojnu ploču za koju je potrebno da spojite Pi GPIO pin 2 (5v) na pin 5v na razbojnoj ploči.
Preporučuje se:
Kako preuzeti MicroPython kod na XBee 3: 18 koraka (sa slikama)
Kako preuzeti MicroPython kod na XBee 3: MicroPython je programski jezik inspirisan Python 3.0 koji radi na mikrokontrolerima, kao što je XBee 3. MicroPython može pomoći u smanjenju količine zaliha i ukupne glomaznosti vašeg projekta, te uvelike olakšati stvari . Međutim, ja smatram