Mundarija:
- Ta'minotlar
- 1 -qadam: 3D bosib chiqarish: korpus, g'ildiraklar, marmar g'ildirak, 6 mm bolt/yong'oq va ultratovushli datchikli o'rnatish
- 2 -qadam: Arduino -ni dasturlash
- 3 -qadam: Robotni yig'ing
- 4 -qadam: Sensor simlarini ulang
- 5 -qadam: Bajarildi !!! 9V Arduino quvvat manbaini ulang, batareya paketini yoqing va OAREE yordamida to'siqlardan qochishni boshlang
Video: OAREE - 3D bosma - muhandislik ta'limi uchun to'siqlardan qochadigan robot (OAREE) Arduino bilan: 5 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
OAREE (muhandislik ta'limi uchun to'siqlardan qochadigan robot)
Dizayn: Ushbu ko'rsatmaning maqsadi oddiy/ixcham, 3D formatida chop etiladigan, yig'ish oson, harakatlanish uchun uzluksiz aylanadigan servolardan foydalanadigan va iloji boricha kamroq sotib olingan qismlarga ega bo'lgan OAR robotini loyihalash edi. Men ishonamanki, men bu ajoyib robotni yaratishga muvaffaq bo'ldim va uni OAREE (muhandislik ta'limi uchun to'siqlardan qochuvchi robot) deb nomladim. Bu robot to'siqlarni sezadi, to'xtaydi, chapga va o'ngga qaraydi, keyin hech qanday to'siqsiz burilib, oldinga davom etadi.
Ma'lumot: Internetda robotlardan qochish uchun ko'plab to'siqlar bor, lekin ularning ko'pchiligi katta, yig'ish qiyin va qimmat. Bu robotlarning ko'pchiligida Arduino kodi mavjud, lekin yaxshi o'ylangan, ishlaydigan misolni topish qiyin edi. Men ham g'ildiraklar uchun doimiy aylanish servosidan foydalanishni xohlardim (shahar motorlari o'rniga), hali qilinmagan. Shunday qilib, men dunyo bilan bo'lishish uchun ixcham, ixtirochi OAR robotini ishlab chiqish missiyasini boshladim.
Keyingi rivojlanish: Bu robotni yanada aniqroq ping qilish, chiziqni kuzatish imkoniyati uchun IQ sensorlar, to'siqlar masofasini aks ettiruvchi LCD displey va boshqalarni qo'shish uchun yanada takomillashtirish mumkin.
Ta'minotlar
- 1x Arduino Uno -
- 1 ta V5 sensorli qalqon -
- 1x 4xAA batareya ushlagichi yoqilgan/yoqilmagan -
- 1x SG90 Servo -
- 2x uzluksiz aylanish servolari -
- Arduino uchun 1x 9V batareyali quvvat kabeli (ixtiyoriy) -
- 1x HC -SR04 ultratovush sensori -
- 4x ayol-ayol o'tish simlari-https://www.amazon.com/RGBZONE-120pcs-Multicolored…
- 2x rezina bantlar
- 1x 9V batareya (ixtiyoriy)
- 4x AA batareyalar
- 4x kichik vintlardek (4 x 1/2 yoki shunga o'xshash)
- Villi tornavida
- G'ildiraklarga rezina bantlarni mahkamlash uchun elim
1 -qadam: 3D bosib chiqarish: korpus, g'ildiraklar, marmar g'ildirak, 6 mm bolt/yong'oq va ultratovushli datchikli o'rnatish
3D bosib chiqarish 5 qismdan iborat.
- Tana
- G'ildiraklar
- Marmar quyma
- 6 mm bolt/yong'oq (ixtiyoriy, metall somun/murvat bilan almashtirilishi mumkin)
- Ultrasonik sensorli o'rnatish
Barcha kerakli. STL fayllari Sketchup fayllari bilan bir qatorda ushbu ko'rsatmaga ham kiritilgan. 40% to'ldirish tavsiya etiladi.
2 -qadam: Arduino -ni dasturlash
Kodni Arduino UNOga yuboring: Arduino IDE yordamida kodni (ilova qilingan faylda) Arduino moduliga yuboring. Ushbu eskiz bilan servo.h va newping.h kutubxonalarini yuklab olishingiz va qo'shishingiz kerak bo'ladi.
Kod yaxshilab izohlangan, shuning uchun har bir buyruq nima qilishini ko'rishingiz mumkin. Agar xohlasangiz, ultratovush sensori masofasini kattaroq yoki kichikroq qiymatga osongina o'zgartirishingiz mumkin. Bu boshlang'ich kod bo'lib, uni keyinchalik loyihani ishlab chiqish uchun kengaytirish va ishlatish uchun mo'ljallangan.
// ROBOTDAN TUG'ILISHNI TASHKIL ETISH // [email protected], [email protected], TN universiteti, Chattanooga, Elektrotexnika, FALL 2019 // Kerakli materiallar: // 1) Arduiino UNO, 2) Servo Sensor qalqoni v5.0, 3) HCSR04 Ultrasonik Sensor, 4) FS90 Servo (Ultrasonik Sensor uchun) // 5 va 6) G'ildiraklar uchun 2x TURMASLI ROTATION SERVOS // 7) Orqa g'ildirak burilish uchun 16 mm marmar, 8 va 9) g'ildiraklar uchun 2 ta rezina bant // 10- 15) 1x (4xAA) Batareya ushlagichi, yoqish/o'chirish tugmasi, 16 va 17) Arduino UNO quvvat manbaiga ega 9V batareya // 3D PRINT: // 18) ROBOT korpusi, 19 va 20) 2x g'ildiraklar, 21) marmar g'ildirak, 22) ultrasonik sensor O'rnatish va 6 mm vint (biriktirilgan fayllarni ko'ring) // -------------------------------------- -------------------------------------------------- ---------------------------------------- #include // Servo kutubxonasini qo'shing #include // Newping kutubxonasini qo'shing // ------------------------------------------- -------------------------------------------------- ------------------------------------ #dasturlash TRIGGER_PIN 1 2 // AQSh tetiği Arduino -da 12 -pinni belgilaydi #Echo_PIN 13 -ni aniqlang // US Echo -ni Arduino -dagi 13 -pinli #define MAX_DISTANCE 250 // Pinggacha bo'lgan masofa (maksimal 250) int masofa = 100; // ------------------------------------------------ -------------------------------------------------- ------------------------------- Servo US_Servo; // Ultrasonik sensor Servo Servo Left_Servo; // Chap g'ildirak Servo Servo O'ng_Servo; // O'ng g'ildirakli Servo NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing pinlari va maksimal masofani sozlash. // ------------------------------------------------ -------------------------------------------------- ------------------------------ void o'rnatish () // KIRISH/CHIQARISH, QO'YISH QAYERDA, BOSHLANISH POSITIOSI/HARAKATINI O'RNATISH {pinMode (12, OUTPUT); // Trigger pin chiqishi pinMode (13, INPUT) sifatida o'rnatildi; // US_Servo.attach (11) kirish sifatida echo pin o'rnatilgan; // US Servo 11 US_Servo.write (90) ga o'rnatildi; // US SERVO oldinga qarab turibdi
Chap_Servo.attach (9); // Chap g'ildirak servo 9 -pin uchun
Left_Servo.write (90); // LEFT WHEEL SERVO STOP ga o'rnatildi
O'ng_Servo.attach (10); // O'ng g'ildirakli servo pin 10 ga o'rnatildi
Right_Servo.write (90); // RIGHT WHEEL SERVO STOP kechiktirishga o'rnatildi (2000); // 2 soniya kuting masofa = readPing (); // To'g'ridan -to'g'ri joylashishni kechiktirishda Ping masofasini olish (100); // 100 ms MoveForward () kuting; // ROBOT oldinga siljiydi} // ------------------------------------------ -------------------------------------------------- ------------------------------------- void loop () {int distanceRight = 0; // AQSh masofasini o'ngga boshlang 0 int masofaLeft = 0; // AQShning chapga masofasini 0 da boshlang //US_Servo.write(90); // AQSh servo markazi // kechiktirish (50); // US_Servo.write (70); // Bir oz o'ngga qarang // kechiktirish (250); // US_Servo.write (110); // Bir oz chapga qarang // kechiktirish (250); // US_Servo.write (90); // qarash markazi
agar (masofa <= 20) // Robot oldinga siljiydi {moveStop (); // Robot STOPS masofada = masofaLeft) // Qaysi tomonga burilishni hal qiling {turnRight (); // O'ng tomon eng katta masofaga ega, ROBOT 0,3 soniya kechikish uchun O'ngga buriladi (500); // Bu kechikish burilish uzunligini belgilaydi moveStop (); // Robot STOPS} boshqa {turnLeft (); // Chap tarafdagi eng katta masofa, ROBOT 0,3 soniya kechikish uchun chapga buriladi (500); // Bu kechikish burilish uzunligini belgilaydi moveStop (); // Robot STOPS}} boshqa {moveForward (); // Robot oldinga siljiydi} masofa = readPing (); // AQSh sayohatning yangi yo'nalishi uchun yangi PINGni o'qiydi} // ----------------------------------- -------------------------------------------------- -------------------------------------------- int lookRight () // Ultrasonik datchik O'ng funktsiyani qidirish {US_Servo.write (30); // AQSh servo burchakli kechiktirishga O'ngga siljiydi (500); int masofasi = readPing (); // O'ng kechikish uchun ping qiymatini o'rnating (100); US_Servo.write (90); // AQSh servolari MARKAZGA KAYDIRISH, qaytish masofasi; // Masofa o'rnatildi} // ------------------------------------------ -------------------------------------------------- ------------------------------------- int lookLeft () // Ultrasonik sensor LOOK FUNKSIYASINI KO'RISH {US_Servo.yozish (150); // AQSh servo burchakni kechiktirishga (500) chapga MOVES; int masofasi = readPing (); // Chap kechikish uchun ping qiymatini o'rnating (100); US_Servo.write (90); // AQSh servo MOVES TO CENTER qaytish masofasi; // Masofa o'rnatildi} // ------------------------------------------ -------------------------------------------------- ------------------------------------- int readPing () // Ultrasonik sensor uchun Ping funktsiyasini o'qish. {kechikish (100); // pinglar orasidagi 100ms (min ping vaqti = 0,29ms) int cm = sonar.ping_cm (); // PING masofasi yig'iladi va sm bilan o'rnatiladi, agar (cm == 0) {sm = 250; } qaytarish sm; } // ----------------------------------------------- -------------------------------------------------- -------------------------------- bekor harakatsiz to'xtatish () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 oldinga, 0 teskari Right_Servo.write (90); // RightServo 0 oldinga, 180 teskari} // --------------------------------------- -------------------------------------------------- ---------------------------------------- bekor harakat MoveForward () // ROBOT FORWARD {Left_Servo.yozish (180); // LeftServo 180 oldinga, 0 teskari Right_Servo.write (0); // RightServo 0 oldinga, 180 teskari} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveBackward () // ROBOT BACKWARD {Left_Servo.yozish (0); // LeftServo 180 oldinga, 0 teskari Right_Servo.write (180); // RightServo 0 oldinga, 180 teskari} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnRight () // ROBOT RIGHT {Chap_Servo.yozish (180); // LeftServo 180 oldinga, 0 teskari Right_Servo.write (90); // RightServo 0 oldinga, 180 teskari} // --------------------------------------- -------------------------------------------------- ---------------------------------------- bo'sh burilish Chapga () // ROBOT CHOQ {Chap_Servo.yozish (90); // LeftServo 180 oldinga, 0 teskari Right_Servo.write (0); // RightServo 0 oldinga, 180 teskari} // --------------------------------------- -------------------------------------------------- ----------------------------------------
3 -qadam: Robotni yig'ing
Endi robotni birlashtirish vaqti keldi. Bosqichlar quyida keltirilgan.
1) Dumaloq Servo disk va kauchuk bantlarni g'ildiraklarga ulang: Barcha servolar plastik o'rnatish moslamalari va vintlar bilan ta'minlangan. Dumaloq disklarni toping va ularni g'ildiraklarning tekis tomonidagi ikkita teshikka burang. Rezina bantlar g'ildirak atrofiga mahkam o'rnashib oladi. Kauchuk bantlarni joyida ushlab turish uchun ozgina elim qo'shishingiz mumkin.
2) Marmar gipsli biriktirma: Marmar g'ildirakni orqa tarafdagi ikkita uchburchakka ulash uchun ikkita kichik vintni ishlating. Marmar g'ildirak - bu orqa g'ildirakni oddiy almashtirish va orqa burilish nuqtasini ta'minlaydi.
3) Servolarni uyalarga joylashtiring (vintlardek kerak emas): FS90 Servo (Ultrasonik Sensor uchun) tanasining old uyasiga joylashtiring. Ikki doimiy aylanish servolari chap va o'ng uyalarga siljiydi. Slotlar mahkam o'rnashish uchun mo'ljallangan, shuning uchun servolarni joyida ushlab turish uchun vintlar kerak emas. Servo simlar uyalardagi yivlardan o'tib ketishiga ishonch hosil qiling, shunda ular tananing orqa tomoniga qaraydi.
4) 9V batareyani joylashtirish (ixtiyoriy): 9V batareya + Arduino quvvat ulagichini old servo orqasiga joylashtiring.
5) Ultrasonik datchikni o'rnatish moslamasi: ikkita kichik vintni ishlatib, oq plastmassa servo qo'shimchalardan birini Ultrasonik Sensor o'rnatish plastinkasining pastki qismiga mahkamlang. Keyinchalik, Ultrasonik Sensor korpusini o'rnatish plastinkasiga ulash uchun 3D bosilgan 6 mm bolt/gaykani ishlating (yoki metall murvat/gaykani almashtiring). Nihoyat, datchikni pimlari yuqoriga qaragan holda korpusga joylashtiring va korpusning orqa qismiga mahkamlang.
6) 4 ta AA batareya qutisi: AA batareyasi qutisini katta to'rtburchaklar maydonga joylashtiring, yoqish/o'chirish tugmasi orqa tomonga qaragan.
7) Arduino Uno + V5 Sensor qalqoni: qalqonni Arduino -ga ulang va batareya korpusining ustki qismiga joylashtiring. Quvvat ulagichi chapga qaragan bo'lishi kerak.
Sizning robotingiz qurilgan! Nima qoldi? Arduino va ulanish simlarini dasturlash: servolar, ultrasonik sensorlar va quvvat manbai.
4 -qadam: Sensor simlarini ulang
Servo simlarini V5 Shield -ga ulang:
- Chap uzluksiz aylanish Servo PIN 9 ga biriktiriladi
- O'ng uzluksiz aylanish Servo PIN 10 ga biriktiriladi
- Old FS90 Servo PIN 11 ga ulanadi
Ultrasonik sensorli pinlarni (4x urg'ochidan ayolga o'tish simlari orqali) V5 qalqoniga ulang:
- PIN 12 -ni ishga tushiring
- PIN -13 -ga echo
- "V" bilan belgilangan har qanday pinlarga VCC
- "G" belgisi bilan belgilangan har qanday pimga asos.
AA batareya qutisini V5 qalqoniga ulang:
- VCC ulagichiga ijobiy, qizil simni ulang
- Zamin ulanishiga salbiy, qora simni ulang
5 -qadam: Bajarildi !!! 9V Arduino quvvat manbaini ulang, batareya paketini yoqing va OAREE yordamida to'siqlardan qochishni boshlang
Bajarildi !!
1) 9V Arduino quvvat manbasini ulang (ixtiyoriy)
2) Batareya paketini yoqing
3) OAREE bilan to'siqlardan qochishni boshlang !!!
Ishonchim komilki, siz yangi do'stingiz - OAREEni ko'rasiz, bu to'siqni his qilasiz, zaxira nusxasini olasiz va yo'nalishni o'zgartirasiz. OAREE Ultrasonik Sensor o'chiradigan (devorlar kabi) katta ob'ektlar bilan eng yaxshi ishlaydi. Kichkina sirt maydoni va burchaklari tufayli stul oyoqlari kabi mayda narsalarni ping qilish qiyin. Iltimos, baham ko'ring, yanada rivojlantiring va kerakli o'zgarishlar yoki xatolar haqida menga xabar bering. Bu katta tajriba bo'ldi va umid qilamanki, siz ham men kabi bu loyihani amalga oshirishdan zavqlanasiz!
Robototexnika musobaqasida ikkinchi o'rinni egalladi
Tavsiya:
To'siqlardan qochadigan robot (Arduino): 8 qadam (rasmlar bilan)
To'siqlardan qochadigan robot (Arduino): Bu erda men sizga Arduino asosida to'siqlardan qochadigan robot yaratish haqida ko'rsatma beraman. Umid qilamanki, bu robotni juda oson yasash bo'yicha asta -sekin ko'rsatma beraman. Robotning oldini oladigan to'siq - bu har qanday eskirishni oldini oladigan to'liq avtonom robot
Bulutli bulut sizni davolaydi (yig'ilish funktsiyasiga ega bo'lgan to'siqlardan qochadigan robot): 8 qadam
Bulutli bulut sizni davolaydi (yig'ish funktsiyali to'siqlardan qochadigan robot): foydasiz mashina - Arduino roboti
To'siqlardan qochadigan robot: 5 qadam
To'siqlardan qochadigan robot: Robototexnikada to'siqlardan qochish- bu pozitsiya cheklanmagan yoki to'qnashmagan cheklovlar ostida bo'lgan boshqaruv vazifasini bajarish vazifasi. U sonar sensori bilan jihozlangan bo'lib, u robot yo'li orasidagi to'siqlarni sezadi.
Ardublock to'siqlardan qochadigan robot: 7 qadam (rasmlar bilan)
Ardublock to'siqlardan qochadigan robot: Bu ko'rsatma "Qanday qilib robotdan qochadigan Arduino to'sig'ini yaratish kerak" haqida .YouTube yaqinda yuklagan video. Buni tekshirib ko'rishingizni qat'iy tavsiya qilaman. Qani boshladik
Shaxsiyat bilan to'siqlardan qochadigan robot!: 7 qadam (rasmlar bilan)
Shaxsiyat bilan to'siqlardan qochadigan robot !: Ko'pchilik roumingdagi "botlardan" farqli o'laroq, bu shunday aylanib yuradiki, u aslida "o'ylayotgan" ko'rinadi! BASIC Stamp mikrokontrolerlari (Basic Atom, Parallax Basic Stamps, Coridium Stamp va boshqalar), har xil turdagi shassi, bir nechta datchiklar va boshqalar