สารบัญ:

จอยสติ๊ก PC แบบไร้สาย/ปุ่มวงล้อ: 4 ขั้นตอน (พร้อมรูปภาพ)
จอยสติ๊ก PC แบบไร้สาย/ปุ่มวงล้อ: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: จอยสติ๊ก PC แบบไร้สาย/ปุ่มวงล้อ: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: จอยสติ๊ก PC แบบไร้สาย/ปุ่มวงล้อ: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Review Wireless Controller WC-691 MODELOS (รีวิวตัวสินค้า) 2024, พฤศจิกายน
Anonim
จอยสติ๊ก PC ไร้สาย/ปุ่มวงล้อ
จอยสติ๊ก PC ไร้สาย/ปุ่มวงล้อ

ในช่วงไม่กี่ปีที่ผ่านมาฉันได้สร้างซิมการแข่งรถตัวใหม่ และตัดสินใจใช้พวงมาลัย DIY Direct Drive แม้ว่าโปรเจ็กต์นั้นเพียงอย่างเดียวอาจเป็นคำสั่งได้หลายอย่างในตัวเอง แต่นี่เป็นคำแนะนำเกี่ยวกับการสร้างปุ่มทั้งหมดบนวงล้อแบบไร้สาย

ทำไม?

  • ล้อ DD หมุนได้ไม่จำกัด ดังนั้นการมีสายไฟเข้าไปจะน่ารำคาญ
  • ไม่มีความสามารถในการเดินสายเคเบิลผ่านเพลาล้อเหมือนในล้อเชิงพาณิชย์
  • ฉันต้องการสลับล้อได้อย่างง่ายดายด้วยการกำหนดค่าปุ่มต่างๆ
  • เพราะฉันทำได้:)

เพื่อให้บรรลุเป้าหมายของปุ่มไร้สาย เราต้องพิจารณา:

  • การส่งกำลัง
  • การเชื่อมต่อไร้สาย
  • เวลาตอบสนอง/ความล่าช้า
  • ความน่าเชื่อถือ

ส่วนประกอบต่อไปนี้ได้รับการคัดเลือกเพื่อให้ตรงกับเกณฑ์นี้:Tx - Arduino Nano พร้อมโมดูล Integrated NRF24 ที่นี่หรือใช้ Generic Nano หรือ Pro Mini + NRF24 ModuleRx - Arduino Pro Micro / Leonardo / Beetle (Atmega32u4) + โมดูล NRF24USB 'Battery Bank' - ใด ๆ แบตเตอรีแบตเตอรี 18650 เดี่ยวทั่วไปควรใช้งานได้ จะใช้เวลาประมาณ 20 ชั่วโมง! คุณอาจต้องการตรวจสอบว่าสามารถชาร์จและจ่ายไฟได้ในเวลาเดียวกันหรือไม่ สิ่งนี้มีประโยชน์หากเครื่องแบนและคุณต้องการชาร์จและใช้งานพร้อมกัน

นอกจากนี้ คุณจะต้องมีปุ่มและสวิตช์เปิดปิดที่คุณเลือก สายเชื่อมต่อ และท่อหดแบบใช้ความร้อน

สามารถใช้ใน 'กล่องปุ่ม' แทนการใช้ล้อได้ แต่ฉันคิดว่าจะมีความต้องการน้อยกว่านี้ เนื่องจากมันไม่มีประโยชน์อะไรมากหากมันไม่เคลื่อนที่

เครื่องมือที่จำเป็น:

หัวแร้งและหัวแร้ง ปืนกาวร้อนมีประโยชน์สำหรับการติดตั้งชิ้นส่วนด้วย Arduino IDE ติดตั้งบนคอมพิวเตอร์ของคุณ

ขั้นตอนที่ 1: การเดินสายเครื่องส่งสัญญาณ

การเดินสายเครื่องส่งสัญญาณ
การเดินสายเครื่องส่งสัญญาณ
การเดินสายเครื่องส่งสัญญาณ
การเดินสายเครื่องส่งสัญญาณ
การเดินสายเครื่องส่งสัญญาณ
การเดินสายเครื่องส่งสัญญาณ

เริ่มต้นด้วยการติดตั้งสวิตช์ได้มากเท่าที่คุณต้องการบนพวงมาลัยของคุณและพิจารณาตำแหน่งของ Arduino ต่อสายไฟทั้งหมดเข้ากับสวิตช์ตามแผนภาพ แต่ละปุ่มจะต่อสายเข้ากับ GND ด้านหนึ่งและอีกด้านหนึ่งกับพิน Arduino ที่เกี่ยวข้อง รหัสนี้อนุญาตให้มีสวิตช์/ปุ่ม 14 ตัว ซึ่งน่าจะเพียงพอสำหรับล้อส่วนใหญ่

หากคุณใช้นาโนกับโมดูล NRF ที่ฝังอยู่ คุณไม่จำเป็นต้องเพิ่มการเดินสายที่เกี่ยวข้อง เพียงแค่ต่อปุ่ม

ปุ่มต่างๆ เรียงตามลำดับ (1-14):RX, TX, D2, D3, D4, D5, D6, D7, A0, A1, A2, A3, A4, A5

แต่ทำไมมีเพียง 14 ปุ่ม เหตุผลนี้เป็นเพราะเราสามารถอ่านพินเต็มอย่างรวดเร็วและการส่งข้อมูลเพียง 2 ไบต์ใช้เวลาไม่นาน - ดังนั้นแม้ว่าจะสามารถปรับเปลี่ยนให้รวมปุ่มเพิ่มเติม (ผ่านเมทริกซ์) และ/ หรืออินพุตแบบอะนาล็อก สิ่งนี้จะทำให้ทุกอย่างช้าลงเล็กน้อย การอ่านเมทริกซ์และการอ่าน/การแปลงแบบแอนะล็อกใช้เวลาประมวลผล ฉันต้องการเพียง 12 ปุ่มบนวงล้อของฉันดังนั้นฉันจึงไปกับมัน แต่จะพิจารณาเพิ่มอีก

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

หากคุณต้องการโซลูชันที่กำหนดเองมากกว่านี้ อาจจำเป็นต้องเปิดแบตเตอรีแบตเตอรีออกและนำระบบภายในมาใช้ใหม่ในการกำหนดค่าที่คุณกำหนดเอง

ฉันไม่มีที่ว่างในพวงมาลัยของฉันที่จะปล่อยให้มันอยู่ในชั้นเชิง ดังนั้นมันจึงถูกถอดออก ฉันถอดขั้วต่อ USB มาตรฐานออกจากบอร์ดชาร์จและบัดกรีสาย +5 และ Gnd จากแผ่นรองพอร์ต usb ไปยัง Arduino ผ่านสวิตช์ รายละเอียดค่อนข้างยาก เนื่องจากมีตัวเลือกมากมาย…

จากนั้นจึงติดตั้งวงจรภายในวงล้อ โดยเผยให้เห็นขั้วต่อการชาร์จแบบ micro USB

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

นั่นคือล้ออะไร สำหรับผู้ที่สนใจ การออกแบบล้อของฉันคือของ Amstudio - การออกแบบชิ้นส่วนซิมการแข่งรถ DIY ที่ยอดเยี่ยมบางอย่างมีจำหน่ายในราคาที่เหมาะสม

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

ผู้รับ
ผู้รับ
ผู้รับ
ผู้รับ
ผู้รับ
ผู้รับ

เพียงทำตามแผนภาพการเดินสายไฟตามที่แนบมา หากคุณไม่ได้ใช้ Leonardo คุณจะต้องมีตัวควบคุมภายนอก 3.3v เช่น AMS1117 ตัวควบคุม Pro Micro ไม่สามารถจ่ายกระแสไฟเพียงพอสำหรับโมดูล NRF24 และด้วงไม่มีเลย

ฉันมีรหัสสีสำหรับการเชื่อมต่อกับโมดูล NRF เหมือนกันสำหรับ Pro Micro และด้วง

Arduino 'Beetle' ซึ่งค่อนข้างหาได้ง่ายในที่ทั่วไป แต่จำเป็นต้องใช้ตัวควบคุม 3.3v อีกครั้งเนื่องจากไม่มีเลย ฉันได้ทดสอบสิ่งนี้และใช้งานได้ดีเช่นกัน ความผูกพันก็เหมือนกัน

ขั้นตอนที่ 3: การเขียนโปรแกรมอุปกรณ์

การเขียนโปรแกรมอุปกรณ์
การเขียนโปรแกรมอุปกรณ์
การเขียนโปรแกรมอุปกรณ์
การเขียนโปรแกรมอุปกรณ์
การเขียนโปรแกรมอุปกรณ์
การเขียนโปรแกรมอุปกรณ์

หากคุณยังไม่ได้ติดตั้ง Arduino IDE ให้ไปที่ https://www.arduino.cc และดาวน์โหลดเวอร์ชันที่เหมาะสมกับระบบปฏิบัติการของคุณสำหรับตัวอย่างนี้ ฉันใช้ windows

เมื่อตั้งค่าแล้ว คุณจะต้องมีไลบรารี่สองแห่งที่แตกต่างกัน - อันแรกนั้นง่ายผ่าน Sketch -> รวมไลบรารี -> จัดการไลบรารี (หรือ CTRL+SHIFT+I)

NRFLite โดย Dave Parson (เวอร์ชัน 2.2.2 ณ วันที่เผยแพร่)

อันที่สองจะต้องติดตั้งด้วยตนเองจาก

คลิกที่ 'โคลนหรือดาวน์โหลด' จากนั้น 'ดาวน์โหลด ZIP และเปิดไฟล์ที่ดาวน์โหลด จากนั้นคุณจะต้องคลิกผ่านไปยังโฟลเดอร์ต่างๆ จนกว่าคุณจะเห็นโฟลเดอร์ 'จอยสติ๊ก' - คัดลอกไปที่โฟลเดอร์ Arduino Libraries ของคุณ (บน windows โดยปกติจะอยู่ภายใต้ Documents -> Arduino -> Libraries

รีสตาร์ท Arduino IDE

หากคุณกำลังใช้ Pro Micro สำหรับเครื่องรับ คุณจะต้องเพิ่มบอร์ดนั้นใน IDE. File -> Preferences -> Additional Boards Manager URLs:

ใส่:

จากนั้นไปที่เครื่องมือ -> ตัวจัดการบอร์ด ค้นหา Sparkfun และติดตั้ง 'Sparkfun AVR Boards'

ตอนนี้เราพร้อมแล้ว! เริ่มต้นด้วยตัวส่งสัญญาณ - เชื่อมต่อกับพีซีของคุณ

ภายใต้เครื่องมือ -> บอร์ด ให้เลือก 'Arduino Nano' (หรือตัวแปรใดก็ตามที่คุณตัดสินใจใช้) ตรวจสอบพอร์ต COM ใต้เมนูเครื่องมือด้วย

เปิดไฟล์ Wireless_Wheel_Tx ที่แนบมา

มีเพียงหนึ่งบรรทัดที่คุณอาจต้องการเปลี่ยนในรหัสนี้และนั่นคือ:

int nrfChannel = 22;

คุณมีช่องสัญญาณสูงสุด 126 ช่องที่คุณสามารถใช้ได้บนคลื่นความถี่ 2.4Ghz คุณควรปล่อยไว้อย่างที่เป็นอยู่ แต่ถ้าพบว่าคุณมีปัญหาด้านความน่าเชื่อถือ อาจเปลี่ยนเป็นตัวเลขอื่น

จากนั้นเพียงกดปุ่ม 'อัปโหลด' และรอให้เสร็จสิ้น

เช่นเดียวกับ Leonardo/Pro Micro/Beetle - เลือกบอร์ดที่คุณต้องการ - สำหรับ Leonardo และ Beetle ให้เลือกบอร์ด Arduino leonardo สำหรับ Pro Micro ให้เลือกและเลือกตัวแปร/โปรเซสเซอร์ Atmega32u4 (5v, 16Mhz) เปิดไฟล์ Wireless_Wheel_Rx เปลี่ยนการตั้งค่า nrfChannel (หากคุณเปลี่ยนบน Tx) และโปรแกรมออกไป

เมื่ออุปกรณ์รีบูตในการเขียนโปรแกรม คอมพิวเตอร์ของคุณควรตรวจพบอุปกรณ์จอยสติ๊ก หากคุณเปิดเครื่องส่งด้วย คุณควรจะสามารถกดปุ่มและให้เครื่องแสดงในสถานะอุปกรณ์ได้!

คุณสมบัติเด่นที่บังเอิญคือคุณจะได้รับไฟแสดงสถานะบน Leonardo และ Pro Micro - ไฟ LED USB TX จะสว่างขึ้นเมื่อมีการเชื่อมต่อกับปุ่มต่างๆ สิ่งนี้ไม่มีอยู่ในด้วงอย่างไรก็ตาม

ปรับปรุงเมื่อ 13/2/2021

ฉันได้เพิ่มไฟล์พิเศษ 2 ไฟล์ (Tx และ Rx) ให้กับคำสั่งที่นี่สำหรับรุ่นที่มีอินพุตแบบอะนาล็อก 4 ช่องและเมทริกซ์ปุ่ม 3X8 ส่วนใหญ่ยังไม่ทดลอง อาจจะล่าช้า โปรดลองและแสดงความคิดเห็น

ขั้นตอนที่ 4: การปรับปรุง

การปรับปรุง
การปรับปรุง

ไฟ LED หลังจากใช้วิธีแก้ปัญหานี้ชั่วขณะหนึ่ง ฉันมีนิสัยชอบเปิดพวงมาลัยทิ้งไว้โดยไม่ได้ตั้งใจ เพื่อช่วยแก้ปัญหานี้ ฉันได้เพิ่ม LED ที่ด้านหน้าเพื่อให้เห็นว่าล้อเปิดอยู่ นี่เป็นเพียงการนำ 3 มม. แบบง่าย ๆ จาก 5v บน Arduino ผ่านตัวต้านทาน ด้านบนถูกขัดลงเพื่อกระจายแสงเล็กน้อยและป้องกันแสงสะท้อน

เครื่องวัดระดับแบตเตอรี่ฉันซื้อเครื่องวัดระดับแบตเตอรี่จาก BG หรือ Ali แต่เมื่อพวกเขามาถึงก็มีขนาดใหญ่กว่าที่ฉันคาดไว้มาก แต่นี่คือสิ่งที่ฉันยังต้องการเพิ่ม มีตัวเลือกมากมายสำหรับสิ่งนี้ แต่เนื่องจากแบตเตอรี่มีอายุการใช้งานยาวนาน ฉันจึงมักจะชาร์จใหม่หลังจากใช้งานไปไม่กี่ชั่วโมง

ปุ่มพิเศษ/ตัวเข้ารหัส/อินพุตแบบอะนาล็อกยังคงคิดเกี่ยวกับสิ่งนี้ สำหรับฉัน มันไม่ได้สำคัญสำหรับการแข่งรถที่ฉันทำ แต่สำหรับสิ่งต่าง ๆ เช่น F1 มันน่าจะมีประโยชน์มากกว่า ฉันจะพิจารณาสองเวอร์ชันหรือเพิ่มสิ่งนี้หากมีความต้องการเพียงพอ แต่อาจส่งผลต่อเวลาตอบสนองของปุ่ม

แนะนำ: