สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: รวบรวมเสบียง
- ขั้นตอนที่ 2: การเชื่อมต่อโมดูล NRF กับ Arduino
- ขั้นตอนที่ 3: มาเริ่มเขียนโค้ดกันเถอะ
- ขั้นตอนที่ 4: หมายเหตุของผู้เขียน
วีดีโอ: ทำให้ท่าทางจมูกของคุณควบคุมได้ใน $10: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
คำแนะนำนี้เป็นแนวทางในการเปลี่ยนเสียงพึมพำ R / C ของคุณให้เป็นเสียงพึมพำที่ควบคุมด้วยท่าทางในราคาต่ำกว่า $ 10!
ฉันเป็นคนที่ได้รับแรงบันดาลใจจากภาพยนตร์ Sci-Fi มากและพยายามทำให้เทคโนโลยีแสดงในภาพยนตร์ในชีวิตจริง โปรเจ็กต์นี้เป็นแรงบันดาลใจจากภาพยนตร์สองเรื่อง ได้แก่ "STAR WARS: The Empire Strikes Back" และ "Project Almanac" ในภาพยนตร์ทั้งสองเรื่อง คุณเห็นวัตถุบินได้ (X-wing Starship & R/C Drone) ซึ่งควบคุมโดยการเคลื่อนไหวของมือเท่านั้น นี่เป็นแรงบันดาลใจให้ฉันทำสิ่งที่คล้ายคลึงกัน …
เห็นได้ชัดว่าฉันไม่ได้เป็นเจ้าของ X-wing โชคไม่ดีที่ฉันต้องทำงานกับ Mini R/C Quadcopter
แผนคือ - จะมีสคริปต์การประมวลผลภาพที่ทำงานบนแล็ปท็อปของฉัน ซึ่งจะคอยมองหามือของฉันอย่างต่อเนื่องและติดตามตำแหน่งในเฟรมวิดีโอ เมื่อได้พิกัดของมือแล้ว มันจะส่งสัญญาณตามลำดับไปยังโดรน และจะทำโดยใช้ Arduino ที่เชื่อมต่อกับแล็ปท็อปพร้อมกับโมดูลรับส่งสัญญาณ NRF24L01 2.4GHz ซึ่งสามารถสื่อสารโดยตรงกับบอร์ดรับสัญญาณของโดรน R/C ใดๆ.
เสบียง
- คอมพิวเตอร์แล็ปท็อป/เดสก์ท็อปที่ติดตั้งเว็บแคมและ Python (ฉันกำลังใช้แล็ปท็อป W indows กับเว็บแคมในตัวและใช้งาน Python 2.7.14)
- R/C Drone ใดๆ ที่ทำงานบนความถี่ 2.4Ghz (JJRC H36 ในกรณีของฉัน)
- Arduino UNO พร้อมกับสายการเขียนโปรแกรม (ฉันใช้โคลนของมันเพราะมันถูกกว่า)
- NRF24L01 โมดูลรับส่งสัญญาณไร้สายเสาอากาศ 2.4GHz (ฉันซื้อสิ่งนี้จากที่นี่เพียง₹ 99 ($ 1.38))
- บอร์ดอะแดปเตอร์ 3.3V สำหรับโมดูลไร้สาย 24L01 (ฉันซื้อสิ่งนี้จากที่นี่ในราคาเพียง₹ 49 ($ 0.68))
- สายจัมเปอร์ชายและหญิง x7
ขั้นตอนที่ 1: รวบรวมเสบียง
ขั้นตอนที่ 2: การเชื่อมต่อโมดูล NRF กับ Arduino
ตอนนี้เมื่อคุณมีส่วนประกอบทั้งหมดแล้ว มาเริ่มด้วยการเดินสายโมดูล NRF กับ Arduino กัน
- ขั้นแรก ใส่โมดูล NRF ลงในช่องเสียบที่ให้มาบนอะแดปเตอร์ คุณสามารถดูภาพด้านบนได้
-
หลังจากนั้น นำสาย Male to Female และเชื่อมต่ออะแดปเตอร์ NRF กับ Arduino ดังนี้: (ดูแผนภาพวงจรด้านบน)
- พินอะแดปเตอร์ NRF - Arduino Pin
- VCC - 5v
- GND - GND
- CE - พินดิจิตอล 5
- CSN - พินอนาล็อก 1
- SCK - พินดิจิตอล 4
- MO - พินดิจิตอล 3
- MI - อนาล็อกพิน 0
- IRQ - ไม่ได้ใช้
- เมื่อเชื่อมต่อเสร็จแล้ว ให้เชื่อมต่อ Arduino กับพีซีของคุณโดยใช้ Arduino Programming USB Cable และคุณเกือบเสร็จแล้ว
ขั้นตอนที่ 3: มาเริ่มเขียนโค้ดกันเถอะ
มาเริ่มกันที่ส่วนยาก…!!!
ฉันไม่ได้ทำรหัสทั้งหมดด้วยตัวเอง แต่ฉันได้นำโค้ดบางส่วนจากนักพัฒนาหลาย ๆ คนมารวมไว้เป็นหนึ่งเดียวด้วยการปรับแต่งเล็กน้อย ดังนั้นเครดิตที่เหมาะสมกับผู้สร้างดั้งเดิมทั้งหมดจะได้รับล่วงหน้า
คุณสามารถดาวน์โหลดรหัสทั้งหมดที่แนบมาที่นี่และทำให้มันใช้งานได้ หรือคุณสามารถไปที่ที่เก็บ Github ของฉัน ซึ่งฉันจะอัปเดตโค้ดล่าสุดอย่างต่อเนื่องเพื่อการติดตามที่ดียิ่งขึ้น
ติดตามมือ:
ตัวแยกประเภท Haar Cascade ใช้สำหรับการติดตามด้วยมือในโครงการนี้ Haar Cascade ได้รับการฝึกฝนโดยการวางภาพบวกทับชุดภาพเชิงลบ และข้อมูลที่ได้รับการฝึกอบรมนี้มักจะเก็บไว้ในไฟล์ ".xml" คุณอาจได้รับไฟล์ Classifier ของเกือบทุกอย่างบนอินเทอร์เน็ตหรือคุณสามารถสร้างไฟล์ของคุณเองเช่นนี้ สำหรับโปรเจ็กต์นี้ เนื่องจากเราจำเป็นต้องควบคุมด้วยท่าทางด้วยมือ ฉันจึงใช้ตัวจำแนกประเภทหมัดชื่อ "closed_frontal_palm.xml" ซึ่งสร้างโดย Aravind Nambissan เพื่อตรวจจับมือของฉัน คุณสามารถทดสอบรหัสนี้ได้โดยเรียกใช้รหัส "hand_live.py" ใน repo ของฉัน
การเลือกรหัส NRF24 เพื่อให้ตรงกับโดรนของคุณ:
ตามผู้ผลิตและรุ่นของโดรนของคุณ คุณสามารถอ้างถึงที่เก็บ Github - "nrf24_cx10_pc" ที่สร้างโดย Perry Tsao เพื่อเลือกรหัส Arduino ที่เหมาะสมในการทำงาน ซึ่งจะตรงกับความถี่ของมัน เขาได้จัดทำบทช่วยสอนที่ดีในการควบคุม CX10 Drone ของเขาผ่านพีซี
ขณะที่ฉันใช้โดรน JJRC H36 ฉันได้อ้างถึงที่เก็บ Github อื่น - "nrf24_JJRC_H36_pc" ซึ่งเป็นทางแยกของ repo ของ Perry Tsao ที่ทำโดย Lewis Cornick เพื่อควบคุม JJRC H36 ของเขาบนพีซี
เตรียม Arduino พร้อม:
ฉันแยก repo ของ Lewis ไปที่ Github ซึ่งคุณสามารถโคลนได้หากคุณกำลังทำงานบนโดรนตัวเดียวกัน คุณต้องอัปโหลดโค้ด "nRF24_multipro.ino" หนึ่งครั้งบน Arduino Uno ของคุณเพื่อจับคู่กับ Drone ของคุณทุกครั้งที่เราเรียกใช้สคริปต์ Python
การทดสอบการสื่อสารแบบอนุกรม:
ใน repo เดียวกัน คุณอาจพบรหัส "serial_test.py" ซึ่งสามารถใช้ในการทดสอบ Serial Communication ของสคริปต์ Python กับ Arduino และหากโดรนของคุณจับคู่ได้หรือไม่ อย่าลืมเปลี่ยนพอร์ต COM ในโค้ดตามพอร์ต COM ของบอร์ด Arduino ของคุณ
การรวมทุกอย่างไว้ในรหัสเดียว:
ดังนั้นฉันจึงรวมรหัสเหล่านี้ทั้งหมดโดยนักพัฒนาต่าง ๆ และสร้างรหัสของฉันเอง "handserial.py" หากคุณกำลังทำสิ่งเดียวกันกับที่ฉันทำกับโดรนตัวเดียวกัน คุณสามารถเรียกใช้รหัสนี้โดยตรง จากนั้นคุณสามารถควบคุมโดรนของคุณโดยเพียงแค่ยกกำปั้นขึ้นไปในอากาศ รหัสแรกติดตามเพื่อกำปั้นในเฟรมวิดีโอ รหัสจะส่งค่าปีกผีเสื้อให้โดรนขึ้นหรือลงและในทำนองเดียวกันขึ้นอยู่กับพิกัด X ของหมัด รหัสจะส่งค่าปีกปีกให้โดรนบังคับไปทางซ้ายหรือขวา.
ขั้นตอนที่ 4: หมายเหตุของผู้เขียน
มี 4 ประเด็นที่ฉันอยากจะพูดถึงเป็นพิเศษเกี่ยวกับโครงการนี้:
- ตามที่ระบุไว้ก่อนหน้านี้ ฉันยังไม่ได้สร้างรหัสนี้โดยสมบูรณ์ แต่ฉันกำลังทำงานอย่างต่อเนื่องและจะอัปเดตรหัสเพื่อการติดตามที่ดีขึ้นใน Github Repository ของฉัน ดังนั้นหากมีข้อสงสัยหรืออัปเดตใด ๆ คุณสามารถเยี่ยมชมที่เก็บหรือ ping ฉันบน Instagram
- ขณะนี้ เรากำลังใช้เว็บแคมของแล็ปท็อปซึ่งไม่อนุญาตให้มีมุมมองของโดรน แต่ถ้าจำเป็น กล้องที่ติดตั้งบนโดรนก็สามารถนำมาใช้เพื่อการติดตามได้เช่นกัน ซึ่งจะช่วยให้มีมุมมองที่ดีขึ้นและควบคุมได้ดีขึ้นในที่สุด
- สำหรับโครงการนี้ ฉันใช้โดรน JJRC H36 ซึ่งเป็นหนึ่งในโดรนราคาถูกที่สุดในตลาด ดังนั้นจึงขาดความเสถียรของไจโรสโคป นั่นเป็นเหตุผลที่คุณอาจรู้สึกว่าการเคลื่อนไหวในวิดีโอสั่นคลอน แต่ถ้าคุณใช้โดรนคุณภาพดีและมีเสถียรภาพที่ดี คุณจะไม่ประสบปัญหานี้
- ฉันต้องการแก้ไข Computer Vision และการควบคุมเสียงพึมพำ ดังนั้นฉันจึงเริ่มโครงการนี้ แต่หลังจากทำงานกับคอมพิวเตอร์วิทัศน์แล้ว ฉันรู้สึกว่ามันไม่ใช่ทางออกที่ดีที่สุดในการควบคุมโดรน ดังนั้นฉันจึงวางแผนที่จะสร้างอุปกรณ์ประเภทถุงมือที่มีเซ็นเซอร์ Gyro เพื่อควบคุมโดรนในอนาคต ดังนั้นคอยติดตามการปรับปรุง …
หากคุณชอบบทช่วยสอนนี้โปรดกดไลค์และแชร์และโหวตให้
แค่นี้ก่อนนะ..เจอกันใหม่ตอนหน้า…
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง