Inhoudsopgave:

Raspberry Pi + Xbee RC-zender - Ajarnpa
Raspberry Pi + Xbee RC-zender - Ajarnpa

Video: Raspberry Pi + Xbee RC-zender - Ajarnpa

Video: Raspberry Pi + Xbee RC-zender - Ajarnpa
Video: Raspberry Pi IoT Server - Xbee Setup 2024, November
Anonim
Raspberry Pi + Xbee RC-zender
Raspberry Pi + Xbee RC-zender

Deze instructable laat je zien wat ik heb gedaan om mijn eigen Raspberry Pi Zero + Xbee RC-zender te maken

Stap 1: Raspberry PI en Xbee RC-zender

Stap 2: Configureer de Raspberry Pi UART

Hoi!

De Raspberry Pi (alle variaties) zijn extreem veelzijdig en vormen nu de hoeksteen van een ecosysteem van vele eenvoudig te solderen add-ons die deze apparaten ECHT handig maken. Helaas is het enige dat Raspberry Pi (momenteel) mist een breakout-bord of kant-en-klare GPIO-interface voor XBee (ZigBee) radio's. XBee-apparaten zijn een geweldige manier om te communiceren tussen allerlei soorten apparaten zonder veel protocollen of dataformaten in blokjes te snijden en te snijden en maken het heel gemakkelijk om USB-apparaten te integreren en hun gegevens naar andere externe apparaten te verzenden. Begin om te beginnen met een willekeurige versie van de Raspberry Pi. In deze Instructable heb ik een Raspberry Pi-nul gebruikt en de seriële console geconfigureerd om de UART vrij te maken met behulp van deze Instructable.

Stap 3: Schrijf een Python-script om de spelbesturingswaarden te lezen

Dit stukje Python-code reageert op de gebeurtenissen die door de gamecontroller zijn gegenereerd en verzendt de waarde van de invoer naar de besturing die de gebeurtenis heeft veroorzaakt. Deze code verzendt gegevens net zo snel als de baudrate die is ingesteld op de XBee-radio's. In dit voorbeeld zijn de radio's ingesteld op 57600 maar kunnen ze op hun hoogste baudrate worden ingesteld. De gamecontroller is een Logitech USB-gamecontroller. De gebruikte code staat hieronder:

import pygame

serieel importeren

sOut=""

ser=serieel. Serieel{

port='/dev/ttyAMA0', baudrate=57600, pariteit=serieel. PARITY_NONE, stopbits=serieel. STOPBITS_ONE, bytesize=serieel. EIGHTBITS, time-out=1

}

pygame.init()

gedaan=False

terwijl klaar==false:

joystick=pygame.joystick.joystick(0)

joystick.init()

#EVENEMENTVERWERKING

voor evenement in pygame.event.get():

if event.type==pygame. JOYAXISMOTION:

sOut="Axis:" + str(event.axis) + ";Value:" + str(event.value)

print(sOut)

ser.write(sOut)

ser.flush()

sOut=""

if event.type==pygame. JOYHATMOTION:

sOut="Hat: + str(event.hat) + ";Value:" + str(event.value)

print(sOut)

ser.write(sOut)

ser.flush()

sOut=""

if event.type==pygame. JOYBUTTONDOWN:

sOut="Knop omlaag:" + str(event.knop)

print(sOut)

ser.write(sOut)

ser.flush()

sOut=""

if event.button==8:

print("Stop")

gedaan = True

if event.type==pygame. JOYBUTTONUP:

sOut="Knop omhoog:" + str(event.knop)

print(sOut)

ser.write(sOut)

ser.flush()

sOut=""

ser.close()

pygame.quit()

Stap 4: Conclusie

De uiteindelijke build hiervan gebruikt een extra telefoonbatterij om de Raspberry Pi van stroom te voorzien, die de XBee- en Logitech-gamecontroller van stroom voorziet. In een toekomstig project zal ik een vacuümgevormde plastic hoes toevoegen die de Raspberry PI Zero, XBee Radio en voeding zal omsluiten, allemaal bevestigd aan de gamecontroller in een mooie, nette bundel. Deze RC-zender maakt het heel eenvoudig om besturingsgegevens naar zo ongeveer alles te verzenden. In mijn volgende build zal ik de gegevens naar een hexapod-robot sturen die ik van Goodwill heb gered. Ik hoop dat je dit instructable nuttig vindt. Gelukkig gebouw!

Stap 5: Sluit de Raspberry Pi Zero aan op de XBee Radio

Sluit de Raspberry Pi Zero aan op de XBee Radio
Sluit de Raspberry Pi Zero aan op de XBee Radio

Sluit zoals weergegeven in het diagram de Pi GPIO-pin 1 (3.3v) aan op XBee-pin 1. Sluit de Pi GPIO-pin 6 (Gnd) aan op XBee-pin 10 en Pi GPIO-pin 8 (TX) op XBee-pin 3 (Din). U kunt ook een XBee-breakout-bord gebruiken waarvoor u de Pi GPIO-pin 2 (5v) moet verbinden met de 5v-pin op het breakout-bord

Aanbevolen: