Mundarija:
- 1 -qadam: O'quv qo'llanmaning joylashuvi o'zgartirildi
- 2 -qadam: SnappyXO differentsial haydovchi robotini yarating
- 3 -qadam: Elektronikani ulang
- 4 -qadam: PreciseMovement Arduino kutubxonasini o'rnating
- 5 -qadam: kod
- 6 -qadam: Bu qanday ishlaydi
Video: SnappyXO aniq harakatlantiruvchi robot: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
PrecisionMovement Arduino kutubxonasi yordamida Arduino robotingizni to'g'ri masofaga yurgizib yoki belgilangan burchakka burib qo'ying.
Burilish paytida ishqalanishni minimallashtirish uchun robotga dumaloq to'p yoki unga teng keladigan to'p kerak.
www.pololu.com/product/954
Siz robotga ma'lum masofaga oldinga borishni yoki belgilangan burchakka burilishni aytishingiz mumkin. Dastur o'z pozitsiyasini o'lik hisob yordamida aniqlaydi. Joyni baholash faqat g'ildirak tezligiga bog'liq bo'lgani uchun, siljish katta xatolarga olib keladi. Robot dizayneri sirg'alish xavfini kamaytirish uchun ehtiyot bo'lishi kerak.
Bu SnappyXO roboti bilan ishlash uchun sinovdan o'tgan.
1 -qadam: O'quv qo'llanmaning joylashuvi o'zgartirildi
Qo'llanma quyidagi sahifaga ko'chirildi. Bu darslik endi saqlanmaydi.
sites.google.com/stonybrook.edu/premo
2 -qadam: SnappyXO differentsial haydovchi robotini yarating
Biz foydalanadigan PreciseMovement kutubxonasi faqat differentsial haydovchi robotlarga mos keladi. Siz boshqa 2 g'ildirakli robotlardan foydalanishni tanlashingiz mumkin.
3 -qadam: Elektronikani ulang
Standart SnappyXO optik kodlovchi uchun:
D0 (kodlovchi chiqishi) -> Arduino raqamli pin
VCC -> Arduino 5V
GND -> GND
Motor va Arduino quvvati:
Dvigatel quvvat manbai siz foydalanadigan dvigatellarga mos bo'lishi kerak. SnappyXO to'plami uchun dvigatel quvvati uchun 4AA, Arduino quvvati uchun 9V batareya ishlatiladi. Ularning barchasida umumiy GND borligiga ishonch hosil qiling.
4 -qadam: PreciseMovement Arduino kutubxonasini o'rnating
Yuklab olish:
github.com/jaean123/PreciseMovement-library/releases
Arduino kutubxonasini qanday o'rnatish kerak:
wiki.seeedstudio.com/How_to_install_Arduino_Library/
5 -qadam: kod
Arduino kodi:
create.arduino.cc/editor/ whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview
Bu parametrlar sozlashni talab qiladi. Kodda tavsiya etilgan boshqa parametrlar yaxshiroq ishlashi uchun sozlanishi mumkin.
- Dvigatel pinlarini ARDUINO PINS ostida tekshiring va o'rnating.
-
LENGTH va RADIUS -ni o'rnating.
- LENGTH - chap g'ildirakdan o'ng g'ildirakgacha bo'lgan masofa.
- RADIUS - g'ildirak radiusi.
-
PULSES_PER_REV -ni o'rnating, bu bitta g'ildirak aylanishi uchun kodlovchi chiqadigan pulslar soni.
- E'tibor bering, agar kodlovchi to'g'ridan -to'g'ri g'ildirak milidan o'qish uchun ulanmagan bo'lsa, bu bitta dvigatel milining aylanishida enkoderning chiqish pulslari sonidan farq qiladi.
- PULSES_PER_REV = (motor milining bir aylanishida pulslar) x (tishli nisbati)
-
Agar oldinga siljishdan keyin robot haddan tashqari otayotganini ko'rsangiz, STOP_LENGTH -ni o'rnating.
Robot taxmin qilingan pozitsiya nishondan STOP_LENGTH uzoqlashganda to'xtaydi. Shunday qilib, STOP_LENGTH - robot to'xtashi uchun zarur bo'lgan taxminiy masofa
-
PID parametrlari
KP_FW: Bu oldinga siljishning proportsional komponenti. Robot to'g'ri ketguncha buni oshiring. Agar siz buni sozlash orqali to'g'ridan -to'g'ri yo'lga qo'ya olmasangiz, demak, apparat xato bo'lishi mumkin. (masalan, g'ildirakning noto'g'ri joylashishi va boshqalar)
KP_TW: Bu PID burilish harakatining mutanosib komponenti. Faqat past qiymatdan boshlang va uni burilish tezligi yoki burilish paytida robotning burchak tezligi etarlicha tez bo'lguncha oshiring, lekin haddan oshib ketishga olib kelmaydi. Kuzatuvlarni amalga oshirish uchun siz pastadir funktsiyasiga quyidagilarni kiritish orqali robotni 0 dan 90 gacha va orqaga almashtirishingiz mumkin
Buni KP_FW -ni sozlash uchun joylashtiring:
mover.forward (99999);
Buni KP_TW -ni sozlash uchun 0 dan 90 gacha almashtirish uchun pastadirga qo'ying:
mover.twist (90); // Twist 90 CW
kechikish (2000);
mover.twist (-90) // Twist 90 CCW
kechikish (2000);
E'tibor bering, TARGET_TWIST_OMEGA -da burchak tezligini aylantirish uchun KI_TW -ni ham sozlash kerak, chunki mutanosib boshqaruvchi hech qachon aniq maqsadga erisha olmaydi. Biroq, aniq burchak tezligida burilish shart emas. Burchak tezligi etarlicha sekin bo'lishi kerak.
6 -qadam: Bu qanday ishlaydi
Agar siz uning qanday ishlashini bilishni istasangiz, o'qing.
Oldinga siljish to'g'ri yo'nalish bo'yicha aniq ta'qib qilish algoritmi yordamida to'g'ri saqlanadi. Pure Pursuit haqida:
Burilish PID boshqaruvchisi burilish burchak tezligini TARGET_TWIST_OMEGA da ushlab turishga harakat qiladi. E'tibor bering, bu burchak tezligi g'ildiraklar emas, balki butun robotning burchak tezligi. Faqat bitta PID boshqaruvchisi ishlatiladi va chiqish chap va o'ng dvigatellarning PWM yozish tezligidir. O'lik hisoblash burchakni hisoblash uchun amalga oshiriladi. Burchak xato chegarasiga yetganda, robot to'xtaydi.
Tavsiya:
Waveshare elektron siyoh displeyi aniq voltmetr (0-90v DC) Arduino Nano bilan: 3 qadam
Waveshare elektron siyoh displeyi aniq voltmetr (0-90v DC) Arduino Nano bilan: Ushbu yo'riqnomada men 90 dyuymgacha aniq kuchlanishlarni ko'rsatish uchun Arduino Nano, kuchlanish bo'luvchi va ADS1115 bilan 2,9 dyuymli elektron qog'ozli displeydan foydalanaman. Elektron qog'oz displeyidagi volt DC. Bu ko'rsatma oldingi ikkita loyihani birlashtiradi:- Ardui
Arduino aniq va aniq voltmetr (0-90V shahar): 3 qadam
Arduino aniq va aniq voltli o'lchagich (0-90V shahar): Men bu ko'rsatmada Arduino Nano yordamida yuqori voltli shaharni (0-90v) nisbiy aniqlik va aniqlik bilan o'lchash uchun voltmetr qurdim. Men olgan sinov o'lchovlari etarlicha aniq edi, asosan 0,1v bilan o'lchangan haqiqiy kuchlanishdan
Magnit-harakatlantiruvchi qush: 5 qadam
Magnit-motivli qush: Loyiha haqida Loyiha sizga motivatsiya sifatida tvit yozadigan qushni ifodalovchi o'yinchoq yasashni ko'rsatadi. Qushning "qamish almashtirish" deb nomlangan o'ziga xos sezgi organi bor; magnit bu elementga yaqinlashganda, kontaktlar yopiladi va
Raspberry Pi bilan harakatlantiruvchi kamera: 6 qadam
Raspberry Pi bilan harakatlantiruvchi kamera: HC-SR501 passiv infraqizil sensori bilan Raspberry Pi, sincapning ko'rinishini aniqlaydi, so'ngra videoni eng yaxshi burchak va masofada yozib olish uchun SONY A6300 ni ishga tushiradi
Yumshoq mushak (harakatlantiruvchi): 11 qadam
Yumshoq mushak (aktuator): Keling, birinchi yumshoq mushakimizni (aktuator) quraylik. Yumshoq aktuatorlarni tayyorlash uchun zarur bo'lgan barcha narsalar quyida keltirilgan, men ularni qaerdan sotib olish mumkinligi haqida havolalarni ham aytib o'tganman