ฉันกำลังสร้างตัวแก้เขาวงกตอัตโนมัติและใช้เว็บแคมเพื่อควบคุมเขาวงกต
จากคำแนะนำในฟอรัมอื่นฉันพยายามควบคุมการเคลื่อนที่ของเขาวงกตอย่างน้อยในทิศทางเดียวในขณะนี้ ดังนั้นฉันจึงพยายามควบคุมการเคลื่อนไหวของลูกของฉันระหว่างสองพิกัด 466,288 และ 466,152 อินพุตไปยังบอร์ดควบคุมมอเตอร์สเต็ปเป็นเวลาโดยไม่มีขั้นตอนในการหมุนสำหรับแต่ละแกนเช่น x และ y
บอร์ดควบคุมมอเตอร์ที่ฉันใช้คือบอร์ดควบคุมมอเตอร์บอทไข่: http://www.sparkfun.com/products/10025
ดังนั้นในการเคลื่อนที่ระหว่างสองจุดฉันควรสร้างจำนวนจุดทางระหว่างสองจุดคือ 288 และ 152 (พูด 260 240 230 ... 150) และแก้ไขการเคลื่อนที่ของลูกบอลของฉัน?
อัลกอริทึมการประมวลผลภาพของฉันไม่เร็วพอที่จะติดตามลูกบอลที่ลูกบอลเพิ่งหมุนและตกลงไปในหลุม
บางคนแนะนำว่าฉันใช้เทมเพลตมาตรฐานตามที่แสดงในวิดีโอต่อไปนี้และแก้ไขการเคลื่อนไหวลูกของฉันสำหรับการเบี่ยงเบนในเส้นทาง:
http://www.youtube.com/watch?v=Prq78ctJ2Rk&feature=player_embedded
ฉันยังเจอเครื่องมือประมวลผลภาพที่พวกเขาแก้ปัญหาเดียวกันโดยใช้วิธีชี้คะแนนสำหรับการเคลื่อนที่ของลูกบอล การเห็นวิธีแก้ไขปัญหาเดียวกันมากเกินไปฉันสับสนโดยสิ้นเชิงในการแก้ปัญหา ฉันรู้ว่าฉันควรใช้คอนโทรลเลอร์ PID แต่ฉันจะไปแก้ปัญหาเป็นระยะได้อย่างไร? ฉันติดขัดและท้อแท้ในการค้นหาความเป็นผู้นำในการแก้ปัญหา
การตั้งค่าของฉันมีลักษณะเช่นนี้:
... และนี่คือภาพหน้าจอของซอฟต์แวร์ของฉัน:
ฉบับที่ 2: ฉันกำลังเผชิญกับปัญหาใหม่ในตอนนี้: ก่อนหน้านี้ฉันควบคุมมอเตอร์ผ่านทางแอปเพล็ต Java พอร์ตอนุกรม Arduino ฉันสามารถขับสเต็ปเปอร์ได้โดยใช้แอปเพล็ต
ฉันต้องรีเซ็ตบอร์ดทุกครั้งที่ฉันพยายามสื่อสารผ่านพอร์ตอนุกรม นอกจากนี้มอเตอร์สเต็ปยังให้พลังงานกับตัวเองในช่วงเวลาสั้น ๆ เมื่อไม่มีการส่งคำสั่ง เมื่อสเต็ปเปอร์มอเตอร์เข้าสู่โหมดนี้ฉันไม่สามารถควบคุมบอร์ดได้โดยไม่ต้องรีเซ็ตบอร์ด ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม
รุ่นที่ 3:
ฉันมีความคืบหน้าบางอย่างเมื่อใช้อัลกอริทึม PID โปรดค้นหาวิดีโอด้านล่าง: http://www.youtube.com/watch?v=MEfp7RqPmqY
ตอนนี้ฉันมีปัญหากับความเร็วที่อัลกอริทึม PID ถูกนำไปใช้ ที่จริงแล้วการประมวลผลภาพของฉันเสร็จสิ้นรอบใน 200 ms ระบุลูกบอลและส่งคำสั่งไปยังบอร์ดควบคุมมอเตอร์ แม้ว่าพอร์ตอนุกรมของฉันจะถูกส่งคำสั่งให้เปลี่ยนทิศทาง แต่ฉันก็ยังหมุนไปในทิศทางเดียวกัน คุณสามารถค้นหาพฤติกรรมแปลก ๆ ในวิดีโอด้านบน
ความคิดของฉันคือฉันควร จำกัด ค่า PID ด้วยเพดานซึ่งหากค่า PID ที่คำนวณได้มากกว่า 100 ฉันควรส่ง 100 ฉันรอคอยที่จะได้ยินความคิดของคุณเกี่ยวกับเรื่องนี้
วิธีที่ฉันใช้คอนโทรลเลอร์ PID คือฉันระบุจุดเริ่มต้นของแม่แบบโดยใช้อัลกอริทึมการจับคู่แม่แบบและระบุลูกบอลโดยใช้อัลกอริทึมการจับคู่แม่แบบอื่น ตอนนี้ฉันทำให้ลูกบอลเคลื่อนที่ไปที่เซนทรอยด์ของเทมเพลตจุดเริ่มต้น ฉันจะทำให้มันเป็นไปตามเส้นตรงด้วยอัลกอริทึม PID ได้อย่างไร
รุ่นที่ 4:
ฉันแยกเส้นทางการเคลื่อนที่ แต่ฉันไม่สามารถค้นหาฟังก์ชันที่ถูกต้องเพื่อพิมพ์พิกัดพิกเซลที่ถูกต้องจากจุดเริ่มต้น ความคิดใด ๆ