Mundarija:

Arduino -ga asoslangan robotni kuzatib borish va undan qochish: 5 qadam
Arduino -ga asoslangan robotni kuzatib borish va undan qochish: 5 qadam

Video: Arduino -ga asoslangan robotni kuzatib borish va undan qochish: 5 qadam

Video: Arduino -ga asoslangan robotni kuzatib borish va undan qochish: 5 qadam
Video: ⚙️ "LEGO" ва "ARDUINO" конструкторлари 2024, Iyul
Anonim
Arduino asosidagi robotni kuzatib borish va undan qochish
Arduino asosidagi robotni kuzatib borish va undan qochish

Bu yorug'likdan qochadigan oddiy loyihadir.

Men bu simulyatsiyani Proteus 8.6 pro da qildim. Komponentlar kerak: -1) Arduino uno.

2) 3 ta LDR.

3) 2 ta shahar tishli dvigatellari 4) bitta servo.5) uchta 1k rezistorlar 6) bitta H-ko'prigi l290D7) bitta yoqish va o'chirish tugmasi [dasturning holatini o'zgartirish uchun]

8) 9v va 5v batareyalar

1 -qadam: Ardunio kodi

Arduino kodi ozgina o'zgartirilgan -2016 yil 23 fevral]

Ushbu kod juda sharhlangan, men tushuntirmoqchi emasman, lekin agar sizga yordam kerak bo'lsa, men bilan bog'laning ([email protected])

Eslatma: -Bu dasturda ikkita shartdan foydalanaman: 1-chi-yorug'lik ta'qib qilish uchun.2-chi-yorug'likdan saqlanish uchun.

Bu shartlar bajarilganda, Robot yorug'likni kuzatadi yoki undan qochadi. [Bu men tanlagan LDRning minimal qiymati. Oddiy Yorug'likda uning diapazoni 80 dan 95 gacha, lekin uning intensivligi tobora ortib borayotgani sababli, u a = 400 kuchlanish bo'luvchi printsipi ustida ishlayotganda, induktsiyalanadi. // tolarans qiymati]

2 -qadam: Proteus fayllari

Arduino kutubxonasi uchun ushbu havoladan yuklab oling

3-qadam: H-ko'prigingiz qanday ishlaydi

Sizning H-ko'prigingiz qanday ishlaydi
Sizning H-ko'prigingiz qanday ishlaydi
Sizning H-ko'prigingiz qanday ishlaydi
Sizning H-ko'prigingiz qanday ishlaydi

L293NE/SN754410 juda oddiy H-ko'prigi. Uning ikkita ko'prigi bor, biri chipning chap tomonida, biri o'ngda va 2 ta dvigatelni boshqarishi mumkin. U 1 ampergacha tok o'tkaza oladi va 4,5 V dan 36 V gacha ishlaydi. Siz ushbu laboratoriyada foydalanadigan kichik shahar motorini past kuchlanishdan xavfsiz ishlashi mumkin, shuning uchun bu H-ko'prigi yaxshi ishlaydi. H-ko'prigi quyidagi pin va xususiyatlarga ega: 1-pin (1, 2EN) bizning motorimizni yoqadi yoki o'chiradi, bu HIGH yoki LOWPin 2 (1A)-bu bizning motorimiz uchun mantiqiy pin (kirish yuqori yoki past). 3 (1Y)-dvigatel terminallaridan biri uchun 4-5-pin-yer uchun, 6-pin (2Y)-boshqa motor terminali uchun 7-pin (2A)-bu dvigatelimiz uchun mantiqiy pin (kirish yuqori yoki past) PIN 8 (VCC2))-bu bizning dvigatelimiz uchun quvvat manbai, bu sizning motoringizning nominal kuchlanishiga bog'liq bo'lishi kerak 9-11-chi pinlar ulanmagan, chunki siz ushbu laboratoriyada faqat bitta dvigateldan foydalanasiz 12-13-pinlar yer uchun 14-15-pinlar ulanmagan Pin 16 (VCC1) 5V ga ulangan. Yuqorida H-ko'prikning diagrammasi va qaysi pinlar bizning misolimizda nima qiladi. Dvigatel mantiqiy pimlarning holatiga qarab qanday ishlashini ko'rsatadigan haqiqat jadvali (bizning Arduino tomonidan o'rnatiladi).

Ushbu loyihada, yoqish pimi Arduino -dagi raqamli pinga ulanadi, shuning uchun siz uni YUQORI yoki LOW yuborib, dvigatelni yoqishingiz yoki o'chirishingiz mumkin. Dvigatelning mantiqiy pimlari Arduino -dagi raqamli pinlarga ham ulangan, shuning uchun siz motorni bir tomonga burish uchun "YUQORI" va "LOW", yoki "LOW" va "HIGH" ni boshqa tomonga burishingiz mumkin. Dvigatel besleme zo'riqishi odatda tashqi quvvat manbai bo'lgan vosita uchun kuchlanish manbaiga ulanadi. Agar sizning dvigatelingiz 5V va 500mA dan kam ishlay olsa, siz Arduino 5V chiqishidan foydalanishingiz mumkin. Ko'pgina motorlar bundan yuqori kuchlanish va yuqori oqim talab qiladi, shuning uchun sizga tashqi quvvat manbai kerak bo'ladi.

Dvigatelni H-ko'prigiga ulang Dvigatelni 2-rasmda ko'rsatilganidek, H-ko'prigiga ulang.

Yoki, agar siz Arduino uchun tashqi quvvat manbaidan foydalanayotgan bo'lsangiz, Vin pinidan foydalanishingiz mumkin.

4 -qadam: LDR qanday ishlaydi

Endi qo'shimcha tushuntirish kerak bo'lishi mumkin bo'lgan birinchi narsa - nurga bog'liq rezistorlardan foydalanish. Yorug'likka bog'liq rezistorlar (yoki LDR) - bu qarshilik, ularning qiymati atrofdagi yorug'lik miqdoriga qarab o'zgaradi, ammo biz Arduino yordamida qarshilikni qanday aniqlashimiz mumkin? Siz haqiqatan ham qila olmaysiz, lekin siz analog pimlardan foydalanib, kuchlanish darajasini aniqlay olasiz, ular 0-5 V gacha (asosiy foydalanishda) o'lchanadi. Endi siz: "Qanday qilib qarshilik qiymatlarini kuchlanish o'zgarishiga aylantiramiz?" Deb so'rashingiz mumkin, bu oddiy, biz kuchlanishni ajratuvchi qilamiz. Kuchlanishni taqsimlovchi kuchlanishni oladi, so'ngra kirish voltajiga va ishlatilgan rezistorlarning ikkita qiymatining nisbatiga mutanosib ravishda bu kuchlanishning bir qismini chiqaradi. Tenglama quyidagicha:

Chiqish kuchlanishi = Kirish kuchlanishi * (R2 / (R1 + R2)) Bu erda R1 - birinchi rezistorning qiymati, R2 - ikkinchisining qiymati.

Endi bu erda "Ammo LDR qanday qarshilikka ega?" Degan savol tug'iladi, yaxshi savol. Atrofdagi yorug'lik qanchalik kam bo'lsa, qarshilik qanchalik baland bo'lsa, atrofdagi yorug'lik shunchalik past bo'ladi. Endi men ma'lum bir LDR uchun ularning qarshilik diapazoni 200 - 10 kilo ohmni ishlatardim, lekin bu har xil bo'lganlar uchun o'zgaradi, shuning uchun ularni qayerdan sotib olganingizni ko'rib chiqing va ma'lumotlar jadvalini yoki shunga o'xshash narsalarni topishga harakat qiling. Case R1 aslida bizning LDR, shuning uchun keling, bu tenglamani qaytaraylik va matematik-sehrli (matematik elektr sehrli) qilaylik. Endi biz bu ohm qiymatlarini ohmga aylantirishimiz kerak: 200 kilo-ohm = 200 000 ohm 10 Kilo-ohm = 10 000 ohm Shunday qilib, biz qora rangda bo'lganimizda chiqish voltajining nima ekanligini aniqlash uchun quyidagi raqamlarni ulaymiz: 5 * (10000 / (200000 + 10000)) Kirish 5V, biz olayotgan narsadir. Arduino -dan. Yuqorida 0,24 V (yaxlitlangan) berilgan. Endi biz quyidagi raqamlar yordamida chiqish voltajining eng yuqori yorqinligini topamiz: 5 * (10000 / (10000 + 10000)) Va bu bizga aniq 2,5 V beradi. Shunday qilib, biz Arduinoning analog pinlariga kiradigan kuchlanish qiymatlari, lekin bu dasturda ko'rinadigan qiymatlar emas, "Lekin nima uchun?" deb so'rashingiz mumkin. Arduino analog -raqamli chipdan foydalanadi, u analog kuchlanishni raqamli ma'lumotlarga aylantiradi. Arduino-dagi raqamli pinlardan farqli o'laroq, u 0 yoki 5 V bo'lgan yuqori yoki past holatni o'qiy oladi, analog pinlar 0-5V dan o'qishi va uni 0-1023 oralig'iga o'zgartirishi mumkin.. biz aslida Arduino qanday qiymatlarni o'qishini hisoblashimiz mumkin.

Bu chiziqli funksiya bo'lgani uchun biz quyidagi formuladan foydalanishimiz mumkin: Y = mX + C Bu erda; Y = Raqamli qiymat qaerda; m = qiyalik, (ko'tarilish / yugurish), (raqamli qiymat / analog qiymat) Bu erda; Y = Y kesish 0, shuning uchun bizga beradi: Y = mXm = 1023 /5 = 204.6 Shunday qilib: Raqamli qiymat = 204.6 * Analog qiymat Shunday qilib, qora rangda raqamli qiymat: 204.6 * 0.24 bo'ladi, bu taxminan 49 ni beradi. Eng yuqori yorqinlikda u quyidagicha bo'ladi: 204.6 * 2.5. Bu taxminan 511 ni beradi. Endi ikkitasi ikkita analog pimga o'rnatilsa, biz ikkita qiymatni saqlash uchun ikkita tamsayıli o'zgaruvchini yaratishimiz mumkin va qaysi biri eng past qiymatga ega ekanligini ko'rish uchun taqqoslash operatorlari. robotni shu tomonga burish.

Tavsiya: