สารบัญ:

R/C เป็น USB Bridge: 7 ขั้นตอน
R/C เป็น USB Bridge: 7 ขั้นตอน

วีดีโอ: R/C เป็น USB Bridge: 7 ขั้นตอน

วีดีโอ: R/C เป็น USB Bridge: 7 ขั้นตอน
วีดีโอ: How to Fix " Has stopped working" in windows 7 2024, พฤศจิกายน
Anonim
สะพาน R/C เป็น USB
สะพาน R/C เป็น USB

แปลงสัญญาณ PPM จากเครื่องรับวิทยุเป็นตำแหน่งจอยสติ๊ก

ใช้เพื่อเล่นเกมโปรดและโปรแกรมจำลองการบินด้วยเครื่องส่งสัญญาณวิทยุ R/C ของคุณ คำแนะนำนี้ใช้ Arduino จาก littleBits และตัวรับ DSMX รวมถึงข้อมูลโค้ดอย่างง่ายเพื่อทำการแปลงนี้

คุณจะต้องการ

  • พลัง
  • Arduino
  • สาย USB
  • ส่วนหัวของพิน
  • สายจัมเปอร์
  • เครื่องรับวิทยุที่มีเอาต์พุต PPM

ขั้นตอนที่ 1: บัดกรีส่วนหัวของพินเข้ากับพอร์ต I/O เพิ่มเติมของ Arduino

หัวเข็มบัดกรีไปยังพอร์ต I/O เพิ่มเติมของ Arduino
หัวเข็มบัดกรีไปยังพอร์ต I/O เพิ่มเติมของ Arduino

ในการจ่ายไฟให้กับเครื่องรับ (RX) จำเป็นต้องเพิ่มส่วนหัวของพินเข้ากับ Arduino สิ่งนี้จะทำให้การเดินสายระหว่าง Bit และ RX ง่ายขึ้นมาก ดู https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit สำหรับข้อมูลเพิ่มเติม

ขั้นตอนที่ 2: เพิ่ม Arduino Joystick Library ใน IDE ของคุณ

เพิ่มไลบรารีจอยสติ๊ก Arduino ลงใน IDE ของคุณ
เพิ่มไลบรารีจอยสติ๊ก Arduino ลงใน IDE ของคุณ

คุณสามารถพบไลบรารี่บน GitHub https://github.com/MHeironimus/ArduinoJoystickLib… ขอบคุณ Matthew Heironimus สำหรับการเขียน

Arduinos บางตัวเท่านั้นที่สามารถเลียนแบบ HID ได้เหมือนจอยสติ๊ก เนื่องจากไมโครคอนโทรลเลอร์ littleBits คือหัวใจของ Arduino Leonardo คุณจึงพร้อมลุย

ขั้นตอนที่ 3: แฟลชโค้ดลงบน Arduino

#include #define inputPin 16#define channel 4 #define lo 800 //ปรับเป็นเอาต์พุตของ RX#define hi 1600 // ปรับเป็นเอาต์พุตของ RX#define filter 10int channel [channels]; int ค่าก่อนหน้า[ช่อง]; ตัวนับ int = 0;จอยสติ๊ก_ จอยสติ๊ก(JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, จริง, จริง, เท็จ, เท็จ, เท็จ, เท็จ, จริง, จริง, เท็จ, เท็จ, เท็จ); ตั้งค่าเป็นโมฆะ () { Joystick.setXAxisRange (แท้จริง สวัสดี); Joystick.setYAxisRange(สวัสดี); Joystick.setThrottleRange(สวัสดี); Joystick.setRudderRange(สวัสดี); จอยสติ๊ก.begin(); Serial.begin(9600); pinMode(อินพุทพิน อินพุท); } void loop(){ if(pulseIn(inputPin, HIGH) > 3000) { for(int i = 0; i <= channels-1; i++) { channel=pulseIn(inputPin, HIGH); } for(int i = 0; i <= channels-1; i++) { if((channel> 2000) || (channel <500)) { channel = PreviousValue; } อื่น ๆ { ช่อง = (ค่าก่อนหน้า+ช่อง)/2; เคาน์เตอร์++; } } Joystick.setXAxis(ช่อง[0]); Joystick.setYAxis(ช่อง [1]); จอยสติ๊ก.setThrottle(ช่อง [2]); Joystick.setRudder(ช่อง[3]); } ถ้า (ตัวนับ > ตัวกรอง) { สำหรับ (int i = 0; i <= ช่อง -1; i++) { Serial.print ("ช่อง"); Serial.print(i+1); Serial.print(": "); Serial.println(ช่อง); ค่าก่อนหน้า=ช่อง; } ตัวนับ=0; } }

โปรดทราบว่ารหัสที่เชื่อมระหว่างสัญญาณ R/C และ USB HID ที่จำลองมานั้นมาในรูปแบบที่ง่ายที่สุด ฟังก์ชันที่ใช้ที่นี่ – pulseIn – เป็นฟังก์ชันการบล็อก อ่านที่นี่และที่นี่ วิธีการใช้วิธีการไม่บล็อกโดยใช้การขัดจังหวะ

ขั้นตอนที่ 4: ทำการเดินสายไฟ

ทำสายไฟ
ทำสายไฟ
ทำสายไฟ
ทำสายไฟ

เชื่อมต่อสายจัมเปอร์/สายดูปองท์ระหว่าง Bit และ RX ขั้วต่อที่ปลายสายเหล่านี้ต้องเป็นตัวเมีย เราเชื่อมต่อ GND (สีน้ำเงิน), VCC (สีน้ำตาล) และสัญญาณ (สีส้ม) จากพอร์ต PPM ของ RX ถึง GND, VCC และ d16 บน Arduino

ขั้นตอนที่ 5: ผูกผู้รับ

ตัดการเชื่อมต่อ Arduino จากพลังงาน ใส่สายรัดเข้าไปในตำแหน่งขั้วต่อที่มีเครื่องหมาย BIND บน RX เปิดเครื่องส่งวิทยุของคุณและเปลี่ยนเป็นโหมดผูก ถัดไปใช้พลังงานกับ Arduino กระบวนการผูกสำเร็จเมื่อ LED ในตัวรับเปิดขึ้น

ขั้นตอนที่ 6: ปรับโค้ดให้เข้ากับสถานการณ์ของคุณ

ต้องแก้ไขค่าคงที่ hi และ lo ในภาพร่าง Arduino เพื่อสะท้อนผลลัพธ์ที่แท้จริงของเครื่องรับที่คุณใช้

#define lo 800

#define สวัสดี 1600

สัญญาณภายในพัลส์ PPM นั้นเหมาะสมที่สุดตั้งแต่ 1000μs ถึง 2000μs RX ที่ใช้ในค่าเอาต์พุตที่สอนได้นี้ประมาณระหว่าง 800 ถึง 1600 และแตกต่างกันเล็กน้อยในแต่ละช่อง ในการค้นหาว่าตัวรับสัญญาณของคุณมีช่วงใด ให้เปิด Serial Monitor ใน Arduino IDE เพื่อดูผลลัพธ์ของ RX ของคุณ จะมีลักษณะเช่นนี้:

ช่อง 1: 728

ช่อง 2: 729 ช่อง 3: 703 ช่อง 4: 726 ช่อง 1: 1681 ช่อง 2: 1639 ช่อง 3: 1613 ช่อง 4: 1676

เมื่อคุณมีแนวคิดที่ชัดเจนขึ้นเกี่ยวกับช่วงที่เอาต์พุต RX ของคุณ ให้เลือกการประมาณที่ดีสำหรับ hi และ lo แล้วเปลี่ยนค่าคงที่ตามลำดับ จากนั้นอัปโหลดภาพร่างไปยัง Arduino อีกครั้ง

ขั้นตอนที่ 7: ปรับเทียบจอยสติ๊กจำลอง

เชื่อมต่ออุปกรณ์กับคอมพิวเตอร์ของคุณ และใช้ฟังก์ชันการปรับเทียบของระบบปฏิบัติการของคุณเพื่อปรับเทียบจอยสติ๊กที่จำลอง เครื่องมือที่ดีสำหรับ Linux คือ jstest-gtk

การปรับปรุงเพิ่มเติม

  • เขียนโค้ดที่ไม่บล็อก (ดูขั้นตอนที่ 3)
  • กำหนดช่วงต่อช่อง ไม่ใช่ทั่วโลก (ดูขั้นตอนที่ 6)

อ่านเพิ่มเติม

  • เรดคอน CM703
  • PPM

แนะนำ: