สารบัญ:
- ขั้นตอนที่ 1: Raspberry PI และ Xbee RC Transmitter
- ขั้นตอนที่ 2: กำหนดค่า Raspberry Pi UART
- ขั้นตอนที่ 3: เขียนสคริปต์ Python เพื่ออ่านค่าตัวควบคุมเกม
- ขั้นตอนที่ 4: บทสรุป
- ขั้นตอนที่ 5: ต่อ Raspberry Pi Zero เข้ากับ XBee Radio
วีดีโอ: Raspberry Pi + Xbee RC Transmitter: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
คำแนะนำนี้จะแสดงให้คุณเห็นว่าฉันทำอะไรเพื่อสร้างเครื่องส่งสัญญาณ Raspberry Pi Zero + Xbee RC ของตัวเอง
ขั้นตอนที่ 1: Raspberry PI และ Xbee RC Transmitter
ขั้นตอนที่ 2: กำหนดค่า Raspberry Pi UART
สวัสดี!
Raspberry Pi (ทุกรูปแบบ) ใช้งานได้หลากหลายมาก และตอนนี้ได้กลายเป็นรากฐานที่สำคัญของระบบนิเวศของส่วนเสริมที่ง่ายต่อการบัดกรีจำนวนมาก ซึ่งทำให้อุปกรณ์เหล่านี้มีประโยชน์จริง ๆ น่าเสียดายที่สิ่งเดียวที่ Raspberry Pi หายไป (ปัจจุบัน) คือบอร์ดฝ่าวงล้อมหรืออินเทอร์เฟซ GPIO แบบเบ็ดเสร็จสำหรับวิทยุ XBee (ZigBee) อุปกรณ์ XBee เป็นวิธีที่ยอดเยี่ยมในการสื่อสารระหว่างอุปกรณ์ทุกประเภทโดยไม่ต้องใช้โปรโตคอลการแบ่งและการแบ่งส่วนข้อมูลหรือรูปแบบข้อมูลจำนวนมาก และทำให้ง่ายต่อการรวมอุปกรณ์ USB และส่งข้อมูลไปยังอุปกรณ์ระยะไกลอื่นๆ เริ่มต้นด้วย Raspberry Pi เวอร์ชันใดก็ได้ ในคำแนะนำนี้ฉันใช้ศูนย์ Raspberry Pi และกำหนดค่าคอนโซลอนุกรมเพื่อเพิ่ม UART โดยใช้คำแนะนำนี้
ขั้นตอนที่ 3: เขียนสคริปต์ Python เพื่ออ่านค่าตัวควบคุมเกม
โค้ด Python บิตนี้ตอบสนองต่อเหตุการณ์ที่ยกขึ้นโดยตัวควบคุมเกมและส่งค่าของอินพุตบนตัวควบคุมที่ยกเหตุการณ์ขึ้น รหัสนี้จะส่งข้อมูลให้เร็วที่สุดเท่าที่อัตราบอดที่ตั้งไว้ในวิทยุ XBee ในตัวอย่างนี้ วิทยุถูกตั้งค่าเป็น 57600 แต่สามารถตั้งค่าเป็นอัตราบอดสูงสุดได้ ตัวควบคุมเกมคือตัวควบคุมเกม Logitech USB รหัสที่ใช้อยู่ด้านล่าง:
นำเข้า pygame
นำเข้าซีเรียล
ออก = ""
ser=serial. Serial{
port='/dev/ttyAMA0', อัตรารับส่งข้อมูล=57600, parity=serial. PARITY_NONE, stopbits=serial. STOPBITS_ONE, bytesize=serial. EIGHTBITS, หมดเวลา=1
}
pygame.init()
เสร็จสิ้น = เท็จ
ในขณะที่ทำ==เท็จ:
จอยสติ๊ก=pygame.joystick.joystick(0)
จอยสติ๊ก.init()
#การประมวลผลเหตุการณ์
สำหรับเหตุการณ์ใน pygame.event.get():
ถ้า event.type==pygame. JOYAXISMOTION:
sOut="Axis:" + str(event.axis) + ";Value:" + str(event.value)
พิมพ์(sOut)
ser.write(sOut)
ser.flush()
ออก = ""
ถ้า event.type==pygame. JOYHATMOTION:
sOut="Hat: + str(event.hat) + ";Value:" + str(event.value)
พิมพ์(sOut)
ser.write(sOut)
ser.flush()
ออก = ""
ถ้า event.type==pygame. JOYBUTTONDOWN:
sOut="ปุ่มลง:" + str(event.button)
พิมพ์(sOut)
ser.write(sOut)
ser.flush()
ออก = ""
ถ้า event.button==8:
พิมพ์ ("เลิกใช้")
เสร็จสิ้น=จริง
ถ้า event.type==pygame. JOYBUTTONUP:
sOut="ปุ่มขึ้น:" + str(event.button)
พิมพ์(sOut)
ser.write(sOut)
ser.flush()
ออก = ""
ser.close()
pygame.quit()
ขั้นตอนที่ 4: บทสรุป
โครงสร้างสุดท้ายของสิ่งนี้ใช้แบตเตอรี่โทรศัพท์เสริมเพื่อจ่ายไฟให้กับ Raspberry Pi ซึ่งให้พลังงานแก่ตัวควบคุมเกม XBee และ Logitech ในโครงการในอนาคต ฉันจะเพิ่มฝาพลาสติกขึ้นรูปสูญญากาศที่จะใส่ Raspberry PI Zero, XBee Radio และพาวเวอร์ซัพพลาย ทั้งหมดที่แนบมากับตัวควบคุมเกมในชุดเดียวที่สวยงามและเรียบร้อย โครงสร้างเครื่องส่งสัญญาณ RC นี้ทำให้ง่ายต่อการส่งข้อมูลการควบคุมไปยังอะไรก็ได้ ในงานสร้างครั้งต่อไปของฉัน ฉันจะส่งข้อมูลไปยังหุ่นยนต์ hexapod ที่ฉันช่วยชีวิตจากค่าความนิยม หวังว่าคุณจะพบคำแนะนำที่เป็นประโยชน์นี้ สร้างความสุข!
ขั้นตอนที่ 5: ต่อ Raspberry Pi Zero เข้ากับ XBee Radio
ดังแสดงในแผนภาพ เชื่อมต่อ Pi GPIO pin 1 (3.3v) กับ XBee pin 1 เชื่อมต่อ Pi GPIO pin 6 (Gnd) กับ XBee pin 10 และ Pi GPIO Pin 8 (TX) กับ XBee pin 3 (Din). คุณสามารถใช้บอร์ดฝ่าวงล้อม XBee ซึ่งคุณจะต้องเชื่อมต่อ Pi GPIO pin 2 (5v) กับพิน 5v บนบอร์ดฝ่าวงล้อม
แนะนำ:
วิธีดาวน์โหลดรหัส MicroPython ลงใน XBee 3: 18 ขั้นตอน (พร้อมรูปภาพ)
วิธีดาวน์โหลดโค้ด MicroPython ลงใน XBee 3: MicroPython เป็นภาษาโปรแกรมที่ได้รับแรงบันดาลใจจาก Python 3.0 ที่ทำงานบนไมโครคอนโทรลเลอร์ เช่น XBee 3 MicroPython สามารถช่วยลดปริมาณวัสดุสิ้นเปลืองและความเทอะทะโดยรวมของโปรเจ็กต์ของคุณ และทำให้สิ่งต่างๆ ง่ายขึ้นมาก . อย่างไรก็ตาม ฉัน