Mundarija:

Servo Squirter - USB suv tabancasi: 5 qadam
Servo Squirter - USB suv tabancasi: 5 qadam

Video: Servo Squirter - USB suv tabancasi: 5 qadam

Video: Servo Squirter - USB suv tabancasi: 5 qadam
Video: AVR USB Servo Controller 2024, Noyabr
Anonim
Servo Squirter - USB suv tabancasi
Servo Squirter - USB suv tabancasi

USB boshqariladigan servo suv tabancasi. O'tgan yo'lovchilarni o'qqa tutish yoki odamlarni bezovta qiladigan savollarga javob berish uchun juda yaxshi. Bu loyiha yo'naltirilgan o'q otish uchun servo ustiga o'rnatilgan kichik suv nasosidir. Hamma narsa mikrokontroller tomonidan boshqariladi va USB orqali klaviaturadan boshqariladi. Ko'proq bizning loyihalarimiz va bepul video darsliklar bilan tanishish uchun https://www.nerdkits.com veb -saytiga qarang.

1 -qadam: Materiallarni yig'ish

Materiallarni yig'ing
Materiallarni yig'ing
Materiallarni yig'ing
Materiallarni yig'ing
Materiallarni yig'ing
Materiallarni yig'ing

Ushbu loyiha mikrokontrollerga asoslangan. USB NerdKit -ga kiritilgan ATmega168 mikrokontrolleridan tashqari. Ushbu loyiha uchun biz quyidagilarni ishlatdik: 1 Hobby Servo, Hitec HS-501 Past kuchlanishli pistonli suv nasosi1 Kichik n-kanalli MOSFET, 2N7000

2 -qadam: O'chirish sxemasini yig'ing

Davrani yig'ing
Davrani yig'ing
Davrani yig'ing
Davrani yig'ing
Davrani yig'ing
Davrani yig'ing
Davrani yig'ing
Davrani yig'ing

Bizning davrimizning birinchi qismi servoga ulanadi. Bu erda hamma narsa oddiy: mikrokontrolordan servoga bitta sim. Ishlab chiqaruvchiga qarab bir nechta rang belgilar mavjud, shuning uchun uni sinab ko'rishdan oldin tekshiring. NerdKits non panelidagi ServoSquirter sxemasining sxematik sxemasi Devrenning ikkinchi qismi mikrokontrollerga nasos motorini yoqish va o'chirishga imkon beradi. ATmega168 chipining o'zi har qanday pinni 40mA maksimal o'tkazishga imkon beradi, lekin bizning nasosimiz 1000mA ga yaqinroq bo'lishi kerak! Bu katta yukni nazorat qilish uchun biz kattaroq tranzistorli 2N7000 dan foydalanishni tanladik. Birinchidan, biz MOSFET (metall oksidi yarimo'tkazgichli dala effektli tranzistorlar) ni kalit sifatida ishlatish asoslarini tushuntiramiz: Gate kuchlanishini manba ustidan ko'tarib, oqimni drenajdan manbaga o'tkazishga ruxsat beramiz. 2N7000 ma'lumotlar jadvalidan biz 1-rasmni chiqardik, u drenaj oqimi va drenaj manbai kuchlanishining har xil eshik manbalaridagi kuchlanish sozlamalari o'rtasidagi bog'liqlikni ko'rsatadi. Bu grafikdan siz bir nechta muhim narsalarni bilib olishingiz mumkin: 1. Taxminan 3,0 voltdan past bo'lgan VGS uchun hech qanday tok oqishiga ruxsat berilmagan. Bu o'chirilgan holat, uni "uzilish" deb ham atashadi. 2. Kichik VDS uchun egri chiziq bo'ylab taxminan chiziqli ko'rinadi - demak u elektr qarshiligiga "o'xshaydi". Ekvivalent qarshilik - egri chiziqning teskari qiyaligi. MOSFET operatsiyasining bu qismi "triod" deb nomlanadi. 3. Kattaroq VDS uchun ba'zi maksimal oqim darajasiga erishiladi. Bu "to'yinganlik" deb nomlanadi. 4. VGS -ni ko'paytirganimizda, triod va to'yinganlik rejimlarida ko'proq oqim oqishiga ruxsat beriladi, endi siz MOSFET operatsiyasining uchta rejimini bilib oldingiz: kesish, triod va to'yinganlik, chunki bizning eshikni boshqarish raqamli (+5 yoki 0), bizni faqat VGS = 5V uchun sariq rangda ajratilgan egri chiziq tashvishlantiradi. Odatda, MOSFET -ni kalit sifatida ishlatish, odatda, triodli ish rejimini o'z ichiga oladi, chunki MOSFET PD = ID*VDS quvvatini tarqatadi va yaxshi kalit kalitning o'zida oz kuch sarflashi kerak. Ammo bu holda, biz dvigatel bilan shug'ullanamiz va dvigatellar birinchi marta ishga tushganda juda ko'p oqim talab qiladi (kuchlanish pasayishi bilan). Shunday qilib, birinchi yoki ikki soniya ichida MOSFET yuqori VDS bilan ishlaydi va uning maksimal oqimi bilan chegaralanadi - biz ma'lumot varag'iga chizilgan qizil chiziqdan taxminan 800mA. Biz bu nasosni ishga tushirish uchun etarli emasligini aniqladik, shuning uchun biz ozgina hiyla ishlatib, ikkita MOSFETni parallel qo'ydik. Shunday qilib, ular oqimni ulashadilar va 1600mA ga yaqin cho'ktirishlari mumkin, shuningdek, nasosning yuqori quvvat talablari tufayli biz yuqori oqimli devor transformatoridan foydalanganmiz. Agar sizda 5V dan yuqori kuchlanishli devor transformatori bo'lsa - ehtimol 9V yoki 12V bo'lsa - u holda siz

3 -qadam: MCU -da PWM -ni o'rnating

MCU -da PWM -ni o'rnating
MCU -da PWM -ni o'rnating
MCU -da PWM -ni o'rnating
MCU -da PWM -ni o'rnating
MCU -da PWM -ni o'rnating
MCU -da PWM -ni o'rnating

PWM registrlari va hisob -kitoblari Videoda biz taymer/taymer modulida ishlatiladigan ikkita daraja haqida gapiramiz: eng yuqori qiymat va solishtirish qiymati. Bu ikkalasi ham siz xohlagan PWM signalini ishlab chiqarishda muhim ahamiyatga ega, lekin ATmega168 ning PWM chiqishini birinchi navbatda faollashtirish uchun biz bir nechta registrlarni o'rnatishimiz kerak. Birinchidan, biz tez pulsatsiyalanish tezligini OCR1A bilan tanlaymiz, bu esa o'z navbatida yangi pulsni qanchalik tez boshlashimizni belgilashga imkon beradi, keyin soatni 8 ga bo'linish bilan o'rnatamiz. har 8/(14745600 Gts) = 542 nanosaniyada 1 ga. Bizda bu taymer uchun 16-bitli registrlar mavjud, demak, biz umumiy signal vaqtini 65536*542ns = 36 millisekundgacha sozlashimiz mumkin. Agar biz kattaroq bo'linish raqamidan foydalansak, biz pulslarimizni bir -biridan uzoqlashtira olamiz (bu vaziyatda bu yordam bermaydi) va biz aniqlikni yo'qotamiz. Agar biz kichikroq bo'linish raqamini qo'llagan bo'lsak (masalan, 1), biz impulslarimizni kamida 16 millisekund ajratib ololmas edik, chunki servo kutganidek. Nihoyat, biz "teskari bo'lmagan" PWM uchun Chiqish solishtirish rejimini o'rnatdik. chiqish, bu bizning videoda tasvirlangan. Biz, shuningdek, PB2 pinini chiqish piniga o'rnatdik-bu erda ko'rsatilmagan, lekin u kodda. Ushbu rasmlarni ATmega168 ma'lumotlar sahifasining 132-134-sahifalaridan kattalashtirish uchun bosing, bizning ro'yxatga olish qiymati tanlangan:

4 -qadam: Mikrokontrollerni dasturlash

Endi MCUni dasturlash vaqti keldi. To'liq manba kodi bizning veb -saytimizda keltirilgan https://www.nerdkits.com/videos/servosquirter Kod birinchi navbatda servo haydash uchun PWMni o'rnatadi. Keyin kod bir muncha vaqt o'tgach, foydalanuvchi kirishini kutadi. 1 va 0 belgilar nasos tranzistoriga ulangan MCU pinini yoqadi yoki o'chiradi. Bu nasosni yoqadi va o'chiradi, bu bizga o'z xohishiga ko'ra o'q otish qobiliyatini beradi, kod "[" va "]" tugmalariga ham javob beradi, bu tugmalar PWM pinidagi taqqoslash qiymatini oshiradi yoki kamaytiradi, bu esa servoga olib keladi. pozitsiyasini o'zgartirish uchun vosita. Bu sizga o'q otishdan oldin nishonga olish qobiliyatini beradi.

5 -qadam: Seriyali port aloqalari

Seriyali port aloqalari
Seriyali port aloqalari
Seriyali port aloqalari
Seriyali port aloqalari
Seriyali port aloqalari
Seriyali port aloqalari
Seriyali port aloqalari
Seriyali port aloqalari

Oxirgi qadam - kompyuterni sozlash, shunda siz buyruqlarni Mikrokontrollerga yuborishingiz mumkin. NerdKit -da biz kompyuterga buyruqlar va ma'lumotlarni yuborish uchun ketma -ket kabeldan foydalanamiz. Ko'p dasturlash tillarida ketma -ket port orqali NerdKit bilan bog'lana oladigan oddiy dasturlarni yozish mumkin. Ammo biz uchun ketma -ket aloqani o'rnatish uchun terminal dasturidan foydalanish ancha sodda. Shunday qilib, siz klaviaturada yozishingiz va NerdKit. Windows javobini ko'rishingiz mumkin, agar siz Windows XP yoki undan oldingi versiyasini ishlatayotgan bo'lsangiz, HyperTerminal qo'shilgan va "Ishga tushirish -> Dasturlar -> Aksessuarlar -> ostida" Boshlash "menyusida bo'lishi kerak. Aloqa ". HyperTerminal -ni birinchi marta ochganingizda, u sizdan ulanishni o'rnatishni so'raydi. Asosiy HyperTerminal sceenida bo'lmaguningizcha, ularni bekor qiling. NerdKit bilan ishlash uchun to'g'ri COM portini tanlash va port sozlamalarini to'g'ri sozlash uchun HyperTerminal -ni o'rnatishingiz kerak bo'ladi. HyperTerm -ni to'g'ri o'rnatish uchun quyidagi skrinshotlarni bajaring. Agar siz Windows Vista -da bo'lsangiz, HyperTerminal endi qo'shilmaydi. Bunday holda, PuTTY (Windows o'rnatuvchisi) ni yuklab oling. Mac OS X -ni mos keladigan COM portidan foydalanib Putty -ni o'rnatish uchun quyidagi ulanish sozlamalarini ishlating. Terminal dasturiga kirgandan so'ng, ketma -ket port orqali aloqani boshlash uchun "screen /dev/tty. PL* 115200" yozing. Linux biz Linuxdan foydalanadi. minicom "seriyali port bilan gaplashish. Boshlash uchun konsolda "minicom -s" ni ishga tushiring va minicom -ning sozlash menyusiga kiring. "Seriya portini sozlash" bo'limiga o'ting. Parametrlarni quyidagicha o'rnating: Linuxda Minicom konfiguratsiyasi So'ngra, "escape" tugmasini bosing va sozlamalarni standart sifatida saqlash uchun "Sozlamalarni dfl sifatida saqlash" dan foydalaning. Endi siz "Chiqish" tugmachasini bosishingiz va NerdKit bilan gaplashish uchun minicomdan foydalanishingiz kerak.

Tavsiya: