İçindekiler:

Raspberry Pi + Xbee RC Verici: 5 Adım
Raspberry Pi + Xbee RC Verici: 5 Adım

Video: Raspberry Pi + Xbee RC Verici: 5 Adım

Video: Raspberry Pi + Xbee RC Verici: 5 Adım
Video: LoRa ile 5 Km'den Röle Kontrolü | Kendin Yap | Arduino | Fixaj 2024, Temmuz
Anonim
Raspberry Pi + Xbee RC Verici
Raspberry Pi + Xbee RC Verici

Bu talimat size kendi Raspberry Pi Zero + Xbee RC vericimi oluşturmak için ne yaptığımı gösterecek.

Adım 1: Raspberry PI ve Xbee RC Verici

2. Adım: Raspberry Pi UART'ı yapılandırın

Selam!

Raspberry Pi (tüm varyasyonlar) son derece çok yönlüdür ve artık bu cihazları GERÇEKTEN kullanışlı hale getiren, lehimlenmesi kolay birçok eklentiden oluşan bir ekosistemin temel taşıdır. Ne yazık ki, Raspberry Pi'nin (şu anda) eksik olduğu tek şey, XBee (ZigBee) telsizleri için bir devre kartı veya anahtar teslimi GPIO arabirimidir. XBee cihazları, çok fazla parçalama ve dilimleme protokolü veya veri formatı olmadan her türlü cihaz arasında iletişim kurmanın harika bir yoludur ve USB cihazlarını entegre etmeyi ve verilerini diğer uzak cihazlara göndermeyi çok kolaylaştırır. Başlamak için Raspberry Pi'nin herhangi bir sürümüyle başlayın. Bu Eğitilebilir Dosyada bir Ahududu Pi sıfır kullandım ve bu Eğitilebilir Dosyayı kullanarak UART'ı serbest bırakmak için seri konsolu yapılandırdım.

Adım 3: Game Controller Değerlerini Okumak İçin Bir Python Komut Dosyası Yazın

Python kodunun bu biti, oyun kumandası tarafından oluşturulan olaylara tepki verir ve olayı başlatan kontrol üzerindeki girdinin değerini iletir. Bu kod, verileri XBee telsizlerinde ayarlanan baud hızı kadar hızlı gönderir. Bu örnekte telsizler 57600'e ayarlanmıştır ancak en yüksek baud hızlarına da ayarlanabilir. Oyun kumandası bir Logitech USB oyun kumandasıdır. Kullanılan kod aşağıdadır:

pygame'i içe aktar

seriyi içe aktar

sOut=""

ser=seri. Seri{

bağlantı noktası='/dev/ttyAMA0', baud hızı=57600, parite=seri. PARITY_NONE, stopbits=seri. STOPBITS_ONE, bytesize=seri. EIGHTBITS, zaman aşımı=1

}

pygame.init()

bitti=Yanlış

yapılırken==yanlış:

joystick=pygame.joystick.joystick(0)

joystick.init()

#EVENT İŞLEME

pygame.event.get() içindeki olay için:

if event.type==pygame. JOYAXISMOTION:

sOut="Eksen:" + str(event.axis) + ";Değer:" + str(event.value)

yazdır(sOut)

ser.write(sOut)

ser.flush()

sOut=""

if event.type==pygame. JOYHATMOTION:

sOut="Şapka: + str(event.hat) + ";Değer:" + str(event.value)

yazdır(sOut)

ser.write(sOut)

ser.flush()

sOut=""

if event.type==pygame. JOYBUTTONDOWN:

sOut="Düğme Aşağı:" + str(event.button)

yazdır(sOut)

ser.write(sOut)

ser.flush()

sOut=""

if event.button==8:

print("Çıkış")

bitti=Doğru

if event.type==pygame. JOYBUTTONUP:

sOut="Düğme Yukarı:" + str(event.button)

yazdır(sOut)

ser.write(sOut)

ser.flush()

sOut=""

ser.kapat()

pygame.quit()

4. Adım: Sonuç

Bunun son yapısı, XBee ve Logitech oyun denetleyicisine güç sağlayan Raspberry Pi'ye güç sağlamak için yardımcı bir telefon pili kullanır. Gelecekteki bir projede, Raspberry PI Zero, XBee Radio ve güç kaynağını kaplayacak, tümü oyun kumandasına bağlı, güzel ve temiz bir pakette vakumla şekillendirilmiş bir plastik kapak ekleyeceğim. Bu RC verici yapısı, kontrol verilerini hemen hemen her şeye göndermeyi çok kolaylaştırır. Bir sonraki derlememde, verileri Goodwill'den kurtardığım bir hexapod robotuna göndereceğim. Umarım bu talimatı faydalı bulursunuz. Mutlu Bina!

Adım 5: Raspberry Pi Zero'yu XBee Radyosuna bağlayın

Raspberry Pi Zero'yu XBee Radyosuna bağlayın
Raspberry Pi Zero'yu XBee Radyosuna bağlayın

Şemada gösterildiği gibi, Pi GPIO pin 1'i (3.3v) XBee pin 1'e bağlayın. Pi GPIO pin 6'yı (Gnd) XBee pin 10'a ve Pi GPIO Pin 8'i (TX) XBee pin 3'e (Din) bağlayın.. Ayrıca, Pi GPIO pin 2'yi (5v) devre kartı üzerindeki 5v pinine bağlamanızı gerektiren bir XBee devre kartı da kullanabilirsiniz.

Önerilen: