Saya membangun pemecah labirin labirin otomatis, dan menggunakan webcam untuk mengontrol labirin saya.
Berdasarkan saran di forum lain, saya mencoba mengendalikan pergerakan bola labirin setidaknya dalam satu arah saat ini. Jadi, saya mencoba mengendalikan pergerakan bola saya antara dua koordinat 466.288 dan 466.152. Input ke papan pengontrol motor stepper adalah waktu, tidak ada langkah untuk memutar untuk setiap sumbu yaitu x dan y.
Papan pengontrol motor stepper yang saya gunakan adalah papan pengontrol motor stepper bot telur: http://www.sparkfun.com/products/10025
Jadi untuk berpindah di antara dua poin, haruskah saya membuat sejumlah titik arah antara dua poin yaitu 288 dan 152 (katakanlah 260 240 230 ... 150) dan perbaiki gerakan bola saya?
Algoritma pemrosesan gambar saya tidak cukup cepat untuk melacak bola sehingga bola hanya akan berputar dan jatuh ke dalam lubang.
Beberapa menyarankan agar saya menggunakan templat standar seperti yang ditunjukkan dalam video berikut dan mengoreksi gerakan bola saya untuk penyimpangan di jalur:
http://www.youtube.com/watch?v=Prq78ctJ2Rk&feature=player_embedded
Saya juga menemukan alat pengolah gambar di mana mereka memecahkan masalah yang sama menggunakan poin cara untuk gerakan bola. Melihat terlalu banyak solusi untuk masalah yang sama, saya benar-benar bingung untuk menyelesaikan masalah. Saya sadar bahwa saya harus mengimplementasikan kontroler PID. Tetapi bagaimana saya harus menyelesaikan masalah secara bertahap? Saya macet dan hanya frustrasi dalam menemukan headstart dalam menyelesaikan masalah.
Setup saya terlihat seperti ini:
... dan inilah tangkapan layar perangkat lunak saya:
Revisi 2: Saya juga menghadapi masalah baru sekarang: Sebelumnya saya mengendalikan motor stepper melalui applet Java port serial Arduino. Saya bisa menggerakkan steppers menggunakan applet.
Saya harus mengatur ulang papan setiap kali saya mencoba berkomunikasi melalui port serial. Juga, motor stepper memberi energi sendiri dalam interval kecil ketika tidak ada perintah yang dikirim kepadanya. Ketika motor stepper memasuki mode ini, saya tidak dapat mengontrol papan saya tanpa mengatur ulang papan. Bantuan apa pun akan dihargai.
Revisi 3:
Saya membuat beberapa kemajuan di mana saya menerapkan algoritma PID. Silakan temukan video di bawah ini: http://www.youtube.com/watch?v=MEfp7RqPmqY
Sekarang saya punya masalah dengan kecepatan di mana algoritma PID diimplementasikan. Sebenarnya pemrosesan gambar saya menyelesaikan siklus dalam 200 ms, mengidentifikasi bola dan mengirim perintah ke papan pengontrol motor stepper. Meskipun port serial saya dikirim perintah untuk berganti arah, stepper saya terus berputar ke arah yang sama. Anda dapat menemukan perilaku aneh di video di atas.
Pikir saya adalah bahwa saya harus membatasi nilai PID dengan langit-langit di mana jika nilai PID yang dihitung lebih besar dari 100, saya hanya harus mengirim 100. Saya berharap untuk mendengar pendapat Anda tentang ini.
Cara saya mengimplementasikan kontroler PID adalah saya mengidentifikasi titik awal templat menggunakan algoritme pencocokan templat dan mengidentifikasi bola menggunakan algoritme pencocokan templat lain. Sekarang, saya membuat bola bergerak ke titik tengah dari template titik awal. Bagaimana saya membuatnya mengikuti garis lurus dengan algoritma PID?
Revisi 4:
Saya telah mengisolasi lintasan tetapi saya tidak dapat menemukan fungsi yang benar untuk mencetak koordinat piksel yang benar dari titik awal. Adakah pikiran?