Mundarija:

Raspberry Pi + Xbee RC uzatuvchi: 5 qadam
Raspberry Pi + Xbee RC uzatuvchi: 5 qadam

Video: Raspberry Pi + Xbee RC uzatuvchi: 5 qadam

Video: Raspberry Pi + Xbee RC uzatuvchi: 5 qadam
Video: Custom Xbee remote with Raspberry Pi 2024, Noyabr
Anonim
Raspberry Pi + Xbee RC uzatuvchi
Raspberry Pi + Xbee RC uzatuvchi

Bu ko'rsatma sizga o'z Raspberry Pi Zero + Xbee RC transmitterini yaratish uchun nima qilganimni ko'rsatib beradi.

1 -qadam: Raspberry PI va Xbee RC transmitteri

2 -qadam: Raspberry Pi UART -ni sozlang

Salom!

Raspberry Pi (barcha variantlar) juda ko'p qirrali va hozirda bu qurilmalarni haqiqatan ham qulay qiladigan lehimlanishi oson bo'lgan qo'shimchalarning ekotizimining asosidir. Afsuski, Raspberry Pi -da etishmayotgan narsa (hozirda) - bu XBee (ZigBee) radiosi uchun kalit taxtasi yoki kalitli GPIO interfeysi. XBee qurilmalari - har xil turdagi qurilmalar o'rtasida juda ko'p kesish va kesish protokollari yoki ma'lumotlar formatisiz aloqa qilishning ajoyib usuli va USB qurilmalarini birlashtirish va ularning ma'lumotlarini boshqa masofaviy qurilmalarga yuborishni osonlashtiradi. Boshlash uchun, Raspberry Pi -ning har qanday versiyasidan boshlang. Ushbu yo'riqnomada men Raspberry Pi nolini ishlatdim va UARTni ushbu ko'rsatma yordamida bo'shatish uchun ketma -ket konsolni sozladim.

3 -qadam: O'yin boshqaruvchisi qiymatlarini o'qish uchun Python skriptini yozing

Python kodining bu qismi o'yin boshqaruvchisi tomonidan ko'tarilgan hodisalarga javob beradi va voqeani ko'targan boshqaruv elementining qiymatini uzatadi. Bu kod ma'lumotlarni XBee radiolarida o'rnatilgan tezlik tezligida yuboradi. Bu misolda radiolar 57600 ga o'rnatildi, lekin ularning eng yuqori uzatilish tezligiga o'rnatilishi mumkin edi. O'yin boshqaruvchisi - Logitech USB o'yin boshqaruvchisi. Amaldagi kod quyida keltirilgan:

pygame import qilish

serialni import qilish

sOut = ""

ser = serial. Serial {

port = '/dev/ttyAMA0', bod tezligi = 57600, tenglik = serial. PARITY_NONE, stopbits = serial. STOPBITS_ONE, bayt = serial. EIGHTBITS, tanaffus = 1

}

pygame.init ()

bajarilgan = noto'g'ri

bajarilganda == noto'g'ri:

joystik = pygame.joystick.joystik (0)

joystick.init ()

#HAQIQATDA ISHLAB CHIQISH

pygame.event.get () dagi voqea uchun:

agar event.type == pygame. JOYAXISMOTION:

sOut = "Eksa:" + str (event.axis) + "; Qiymat:" + str (voqea.qiymati)

chop etish (chiqish)

ser.write (sOut)

ser.flush ()

sOut = ""

agar event.type == pygame. JOYHATMOTION:

sOut = "Shlyapa: + str (hodisa.hat) +"; Qiymati: " + str (voqea.qiymati)

chop etish (chiqish)

ser.write (sOut)

ser.flush ()

sOut = ""

agar event.type == pygame. JOYBUTTONDOWN:

sOut = "Pastga tugma:" + str (voqea tugmasi)

chop etish (chiqish)

ser.write (sOut)

ser.flush ()

sOut = ""

agar event.button == 8:

chop etish ("Chiqish")

bajarilgan = To'g'ri

agar event.type == pygame. JOYBUTTONUP:

sOut = "Tugma yuqoriga:" + str (voqea tugmasi)

chop etish (chiqish)

ser.write (sOut)

ser.flush ()

sOut = ""

ser.close ()

pygame.quit ()

4 -qadam: Xulosa

Oxirgi qurilishda XBee va Logitech o'yin boshqaruvchisini quvvatlaydigan Raspberry Pi -ni quvvatlantirish uchun yordamchi telefon batareyasi ishlatiladi. Kelgusi loyihada men Raspberry PI Zero, XBee Radio va quvvat manbaini o'z ichiga oladigan vakuumli plastik qopqoqni qo'shaman, hammasi o'yin boshqaruvchisiga bitta chiroyli to'plamda. Ushbu RC transmitterining tuzilishi deyarli har qanday narsaga boshqaruv ma'lumotlarini yuborishni juda osonlashtiradi. Keyingi qurilishda men ma'lumotlarni yaxshi niyatdan qutqargan olti burchakli robotga yuboraman. Umid qilamanki, bu sizga yordam beradi. Baxtli bino!

5 -qadam: Raspberry Pi Zero -ni XBee Radio -ga ulang

Raspberry Pi Zero -ni XBee Radio -ga ulang
Raspberry Pi Zero -ni XBee Radio -ga ulang

Diagrammada ko'rsatilgandek, Pi GPIO pin 1 (3.3v) ni XBee pin 1 ga ulang. Pi GPIO pin 6 (Gnd) ni XBee pin 10 ga, Pi GPIO pin 8 (TX) ni XBee pin 3 (Din) ga ulang.. Bundan tashqari, siz Pi GPIO pin 2 (5v) ni kesish platasidagi 5v piniga ulashni talab qiladigan XBee uzilish taxtasidan foydalanishingiz mumkin.

Tavsiya: