ko'rsatmalar VHDL Dvigatel tezligi nazorati Yo'nalish va tezlikni chap va o'ng tezlikni regulyatori hal qiladi
ESLATMA: Bu sahifa kattaroq qurilishning bir qismidir. Iltimos, BU YERDA boshlaganingizga ishonch hosil qiling, shunda quyidagi kattaroq loyihada qayerga mos kelishini tushunasiz
tugadiview
Dvigatel tezligi va yo'nalishini boshqarish fotodetektor robotidagi ikkita asosiy bo'limdan biri, ikkinchisi fotodetektor yoki yorug'lik detektori bo'limidir. Fotodetektor bo‘limi robotning ko‘rish qobiliyatiga e’tibor qaratsa, vosita tezligi va yo‘nalishini boshqarish bo‘limi robotning harakatiga e’tibor qaratadi. Dvigatel tezligi va yo'nalishini boshqarish fotodetektor bo'limidan olingan ma'lumotlarni qayta ishlaydi va vosita harakati shaklida jismoniy chiqishni beradi.
Ushbu bo'linmaning maqsadi yorug'lik izlovchi robotning chap va o'ng motorining tezligi va yo'nalishini boshqarishdir. Ushbu qiymatlarni aniqlash uchun sizga kamera tomonidan olingan va chegara orqali ishlov berilgan yorug'likning o'lchami va joylashuvi kerak bo'ladi. Bundan tashqari, har bir motorda o'lchangan tezlik kerak bo'ladi. Ushbu kirishlardan siz har bir motor uchun PWM (Pulse-Width Modulation) qiymatini chiqarishingiz mumkin.
Bunga erishish uchun siz ushbu VHDL modullarini yaratishingiz kerak bo'ladi (shuningdek, quyida bog'langan):
- Nazorat
- Xatoni hisoblash
- Ikkilik konvertatsiya
- Yorug'lik manbasining yo'qligi
Ushbu bo'lim uchun VHDL kodini bu erda ko'rishingiz mumkin.
Materiallar
ISE Design Suite 14.7 bilan kodlashni tavsiya qilamiz, chunki u VHDL-da kodni sinash uchun ham ishlatilishi mumkin. Biroq, kodni BASYS 3 ga yuklash uchun Vivado (ver. 2015.4 yoki 2016.4) oʻrnatishingiz va .xdc kengaytmasi bilan cheklovni yozishingiz kerak boʻladi.
VHDL Dvigatel tezligini nazorat qilish: Yo'nalish va tezlikni, chap va o'ng tezlikni regulyatori: 1-bet
KO'RSATMA QADAM
1-qadam: Boshqarish
Yorug'lik izlovchi robotning xatti-harakatlarini qanday boshqarishni tushunish uchun biz yorug'lik manbasini ko'rganda robotning kerakli harakatini tushuntiramiz. Bu xatti-harakatlar yorug'lik manbasining joylashuvi va hajmiga qarab boshqariladi.
Amaldagi algoritm RC robot boshqaruvchisiga o'xshash bo'lib, bitta tutqich chapga yoki o'ngga, boshqasi esa oldinga yoki orqaga burilishi mumkin.
Yorug'likni izlash uchun, agar yorug'lik manbasining joylashuvi robot oldida bo'lsa, bu robot to'g'ri chiziqda harakatlanishini xohlaysiz. Buning uchun siz chap va o'ng motorlarda bir xil tezlikni xohlaysiz. Agar yorug'lik robotning chap tomonida joylashgan bo'lsa, siz o'ng dvigatelning chap motordan tezroq harakatlanishini xohlaysiz, shunda robot yorug'lik tomon chapga burilishi mumkin. Aksincha, agar yorug'lik robotning o'ng tomonida joylashgan bo'lsa, siz chap dvigatelning o'ng motorga qaraganda tezroq harakatlanishini xohlaysiz, shunda robot o'ng tomonga yorug'lik tomon burilishi mumkin. Bu RC kontrollerning chap tutqichiga o'xshaydi, bu erda siz robotni chapga, o'ngga yoki to'g'ri siljitishni xohlaysizmi, boshqarishingiz mumkin.
Keyin, agar yorug'lik manbai uzoqda bo'lsa (kichik yorug'lik manbai) bo'lsa, robot oldinga siljishini yoki aniqlangan yorug'lik manbai juda yaqin bo'lsa (katta yorug'lik manbai) orqaga harakat qilishni xohlaysiz. Robot yorug'lik manbasidan qanchalik uzoqda bo'lsa, robot tezroq harakatlanishini ham xohlaysiz. Bu RC kontrollerning o'ng tutqichiga o'xshaydi, bu erda siz oldinga yoki orqaga harakat qilishni xohlaysizmi va uning qanchalik tez harakatlanishini boshqarishingiz mumkin.
Keyin motorlarning har birining tezligi uchun matematik formulani olishingiz mumkin va biz -255 dan 255 gacha tezlik oralig'ini tanlaymiz. Salbiy qiymat vosita orqaga burilishini, ijobiy qiymat esa vosita oldinga burilishini bildiradi.
Bu robot harakatining asosiy algoritmi. Ushbu modul haqida ko'proq ma'lumot olish uchun bu yerni bosing.
2-qadam: Xatoni hisoblash
Dvigatellar uchun maqsad tezligi va yo'nalishi allaqachon mavjud bo'lganligi sababli, siz motorlarning o'lchangan tezligi va yo'nalishini ham hisobga olishni xohlaysiz. Agar u tezlik maqsadiga erishgan bo'lsa, biz dvigatel faqat o'z tezligida harakat qilishini xohlaymiz. Agar yo'q bo'lsa, biz motorga ko'proq tezlik qo'shmoqchimiz. Nazorat nazariyasida bu yopiq pastadirli qayta aloqa boshqaruv tizimi sifatida tanilgan.
Ushbu modul haqida ko'proq ma'lumot olish uchun bu yerni bosing.
3-qadam: Ikkilik konvertatsiya
Oldingi hisob-kitoblardan siz motorlarning har biri uchun zarur bo'lgan harakatni allaqachon bilgansiz. Biroq, hisob-kitoblar imzolangan ikkilik yordamida amalga oshiriladi. Ushbu modulning maqsadi bu imzolangan qiymatlarni PWM generatori tomonidan o'qilishi mumkin bo'lgan qiymatga aylantirishdir, ular yo'nalish (soat yo'nalishi bo'yicha yoki soat miliga teskari) va tezlik (0 dan 255 gacha). Bundan tashqari, dvigateldan olingan fikr-mulohazalar imzosiz ikkilik tizimda o'lchanganligi sababli, imzolanmagan qiymatlarni (yo'nalish va tezlik) xatoliklarni hisoblash moduli tomonidan hisoblanishi mumkin bo'lgan imzolangan qiymatga aylantirish uchun boshqa modul kerak bo'ladi. Ushbu modul haqida ko'proq ma'lumot olish uchun bu yerni bosing.
4-qadam: yorug'lik manbasining yo'qligi
Siz robot tomonidan yorug'lik aniqlanganda yorug'likni izlash uchun harakatlanadigan robot yaratdingiz. Ammo robot yorug'likni aniqlamasa nima bo'ladi? Ushbu modulning maqsadi bunday holat mavjud bo'lganda nima qilish kerakligini aytib berishdir.
Eng oson yo'l va yorug'lik manbasini izlash - bu robotni joyida aylantirish. Belgilangan soniyalar uchun aylantirilgandan so'ng, agar robot hali ham yorug'lik manbasini topmagan bo'lsa, siz quvvatni tejash uchun robotning harakatini to'xtatishini xohlaysiz. Yana bir belgilangan soniyadan so'ng, robot yorug'likni izlash uchun yana joyida aylanishi kerak. Ushbu modul haqida ko'proq ma'lumot olish uchun bu yerni bosing.
5-qadam: Bu qanday ishlaydi
Ushbu tushuntirish uchun yuqoridagi rasmga murojaat qilishingiz mumkin. Ushbu yo'riqnomaning boshida aytib o'tilganidek, sizga chegara bo'limidan "o'lcham" va "joylashuv" ma'lumotlari kerak bo'ladi. Ushbu ma'lumotlar haqiqiy ekanligiga ishonch hosil qilish uchun (masalanample, siz = 0 o'lchamini olganingizda, o'lcham haqiqatan ham nolga teng, chunki kamera yorug'likni aniqlamaydi va kamera hali ishga tushirilganligi sababli emas) sizga biz "TAYYOR" deb ataydigan qandaydir indikator kerak bo'ladi. Ushbu ma'lumotlar har bir dvigatelning maqsad tezligini aniqlash uchun boshqaruv (Ctrl. vhd) tomonidan qayta ishlanadi (9 bit, imzolangan).
Dvigatelda yanada barqaror chiqish uchun siz yopiq aylanish tizimida fikr-mulohazalardan foydalanmoqchisiz. Bu vosita tezligini o'lchash bo'limidan har bir dvigatelning "yo'nalishi" va "tezligi" ni kiritishni talab qiladi. Ushbu ma'lumotlarni hisob-kitoblaringizga qo'shmoqchi bo'lganingiz uchun, siz ushbu belgisiz qiymatlarni 9 bitli imzolangan ikkilikka aylantirishingiz kerak bo'ladi. Bu imzolangan ikkilik konvertorga (US2S.vhd) imzosiz tomonidan amalga oshiriladi.
Xatoni hisoblash (xato. vhd) nima qiladi, har bir dvigatel uchun harakatni aniqlash uchun maqsad tezligidan o'lchangan tezlikni ayiradi. Bu shuni anglatadiki, ikkalasi ham bir xil qiymatga ega bo'lsa, ayirish nolga aylanadi va vosita faqat o'z momentida harakat qiladi. Robot maqsad tezligiga tezroq yetishi uchun siz ko'paytirish faktorini ham qo'shishingiz mumkin.
Dvigatel boshqaruvchisi har bir dvigatelning tezligi va yo'nalishiga muhtoj bo'lganligi sababli, harakatning imzolangan qiymatlarini ikkita alohida belgilanmagan qiymatlarga tarjima qilishingiz kerak: tezlik (1 bit) va yo'nalish (8 bit). Bu imzosiz ikkilik konvertor (S2US.vhd) tomonidan amalga oshiriladi va motorni boshqarish bo'limiga kirish bo'ladi.
Shuningdek, yorug'lik aniqlanmasa nima qilish kerakligini aniqlash uchun modul qo'shdik (yorug'lik hisoblagichi yo'q. Bhd). Ushbu modul asosan hisoblagich bo'lganligi sababli, robot qancha vaqt aylanishi yoki joyida turishi kerakligini hisoblaydi. Bu robot oldida turgan narsani emas, balki o'z atrofini "ko'rishini" ta'minlaydi va yorug'lik manbasi mavjud bo'lmaganda batareya quvvatini tejaydi.
6-qadam: birlashtiring Files
Birlashtirish uchun files, har bir moduldan signallarni ulashingiz kerak. Buning uchun siz yangi yuqori darajadagi modulni yaratishingiz kerak file. Oldingi modullarning kirish va chiqishlarini komponentlar sifatida joylashtiring, ulanishlar uchun signallarni qo'shing va har bir portni mos keladigan juftlikka tayinlang. Yuqoridagi rasmdagi ulanishlarga murojaat qilishingiz va bu erda kodni ko'rishingiz mumkin.
7-qadam: Sinab ko'ring
Butun kod bilan ishlashni tugatganingizdan so'ng, uni doskaga yuklashdan oldin kodingiz ishlayotganligini bilishingiz kerak, ayniqsa kodning qismlari turli odamlar tomonidan yaratilgan bo'lishi mumkin. Buning uchun test dastgohi kerak bo'ladi, u erda siz soxta qiymatlarni kiritasiz va kod biz xohlagan tarzda harakat qilishini ko'rasiz. Har bir modulni sinab ko'rish orqali dam olishingiz mumkin va agar ularning barchasi to'g'ri ishlayotgan bo'lsa, yuqori darajadagi modulni sinab ko'rishingiz mumkin.
8-qadam: Uskunada sinab ko'ring
Kodingiz kompyuteringizda sinovdan o'tkazilgandan so'ng, kodni haqiqiy uskunada sinab ko'rishingiz mumkin. Siz cheklovni amalga oshirishingiz kerak file Vivado (.xdc file BASYS uchun 3) qaysi kirish va chiqishlar qaysi portlarga borishini nazorat qilish.
MUHIM MASLAHAT: Elektr komponentlari oqim yoki volumning maksimal qiymatiga ega bo'lishi mumkinligini qiyin yo'l bilan bilib oldiktages. Qiymatlar uchun ma'lumotlar varag'iga murojaat qilganingizga ishonch hosil qiling. PMOD HB5 uchun ovoz balandligini o'rnatganingizga ishonch hosil qilingtage quvvat manbaidan 12 volt (chunki bu talab qilinadigan hajmtagdvigatel uchun e) va oqim motorning harakatlanishi uchun zarur bo'lgan darajada kam.
9-qadam: Uni boshqa qismlar bilan birlashtiring
Agar oldingi qadamlar muvaffaqiyatli bo'lsa, robotga yuklanadigan yakuniy kod uchun kodni boshqa guruhlar bilan birlashtiring. Keyin, voila! Siz yorug'likni qidiradigan robotni muvaffaqiyatli yaratdingiz.
10-qadam: Ishtirokchilar
Chapdan o'ngga:
- Antonius Gregorius Deaven Rivaldi
- Feliks Viguna
- Nikolay Sanjaya
- Richard Medyanto
Juda yaxshi: VHDL Dvigatel tezligini nazorat qilish: Yo'nalish va tezlikni, chap va o'ng tezlikni regulyatori: 6-bet
Qayta uchun rahmatviewing! Bu loyiha aslida sinf loyihasining faqat bir qismidir (BASYS 3 platasi va OV7670 kamerasi bilan Light Seeking Robot), shuning uchun men tez orada sinfning yo'riqnomasiga havolani qo'shaman!
Ajoyib: Men hamma narsani bir joyga to'plashni intiqlik bilan kutaman.
Hujjatlar / manbalar
![]() |
ko'rsatmalar VHDL Dvigatel tezligi nazorati Yo'nalish va tezlikni chap va o'ng tezlikni regulyatori hal qiladi [pdf] Ko'rsatmalar VHDL Dvigatel tezligini nazorat qilish yo'nalishi va tezlikni aniqlash Chap va o'ng tezlikni regulyatori, VHDL Dvigatel tezligini boshqarish, Yo'nalishni aniqlash va tezlikni chap va o'ng tezlikni boshqarish |