Mundarija:
- 1 -qadam: HackerBox 0024: qutining tarkibi
- 2 -qadam: Kompyuterni ko'rish
- 3 -qadam: ishlov berish va OpenCV
- 4 -qadam: Arduino Nano mikrokontroller platformasi
- 5 -qadam: Arduino integratsiyalashgan rivojlanish muhiti (IDE)
- 6 -qadam: Servo motorlar
- 7 -qadam: burilish va burilish mexanizmini yig'ish
- 8 -qadam: panjara va egilish moslamasini o'rnatish
- 9 -qadam: panjara va egilish moslamasini simlang va sinab ko'ring
- 10 -qadam: OpenCV yordamida yuzni kuzatish
- 11 -qadam: Sayyorani buzish
Video: HackerBox 0024: Vision Quest: 11 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Vision Quest - Bu oyda HackerBox xakerlari Computer Vision va Servo Motion Tracking bilan tajriba o'tkazmoqdalar. Bu yo'riqnomada HackerBox #0024 bilan ishlashga oid ma'lumotlar mavjud bo'lib, ularni etkazib berish muddati tugashi bilan olishingiz mumkin. Bundan tashqari, agar siz HackerBox -ni har oy pochta qutingizga olishni xohlasangiz, iltimos, HackerBoxes.com saytiga obuna bo'ling va inqilobga qo'shiling!
HackerBox 0024 uchun mavzular va o'quv maqsadlari:
- Computer Vision yordamida tajriba o'tkazish
- OpenCV (Computer Vision) ni sozlash
- Arduino IDE -dan Arduino Nano dasturlash
- Servo motorlarni Arduino Nano bilan boshqarish
- Mexanik panjara va egilish moslamasini yig'ish
- Pan va Tilt harakatini mikrokontroller yordamida boshqarish
- OpenCV yordamida yuzni kuzatishni amalga oshirish
HackerBoxes - DIY elektronikasi va kompyuter texnologiyalari uchun har oylik obuna qutisi xizmati. Biz havaskorlar, ishlab chiqaruvchilar va tajribachilarmiz. Biz orzularning xayolparastlarimiz. Sayyorani hack qiling!
1 -qadam: HackerBox 0024: qutining tarkibi
- HackerBoxes #0024 yig'iladigan ma'lumotnoma kartasi
- Uch qavsli panjara va burilish moslamasi
- Aksessuarlari bo'lgan ikkita MG996R servo
- Ikki alyuminiy dumaloq Servo ulagichi
- Arduino Nano V3 - 5V, 16MGts, MicroUSB
- USB kabeli bilan raqamli kamera yig'ilishi
- Universal klipsli uchta linzali
- Qalam nuri tibbiy ko'rik
- Erkak/ayol duponli duponchilar
- MicroUSB kabeli
- OpenCV -ning eksklyuziv belgisi
- Eksklyuziv Dia de Muertos belgisi
Boshqa foydali narsalar:
- Kamera tagligi uchun kichik yog'och taxta qoldiqlari
- Lehimlash temir, lehim va asosiy lehim asboblari
- Dasturiy vositalar bilan ishlash uchun kompyuter
Eng muhimi, sizga sarguzasht hissi, DIY ruhi va xakerlarning qiziquvchanligi kerak bo'ladi. Hardcore DIY elektronikasi - bu oddiy ish emas va biz uni siz uchun sug'ormaymiz. Maqsad - mukammallik emas, taraqqiyot. Qachonki siz sarguzashtni davom ettirsangiz va zavqlansangiz, yangi texnologiyalarni o'rganishdan va ba'zi loyihalarni ishga solishdan katta mamnuniyat olasiz. Biz har bir qadamni asta -sekin bajarishni, tafsilotlarni o'ylab ko'rishni va hech qachon yordam so'rashdan tortinmaslikni taklif qilamiz.
Tez -tez so'raladigan savollar: Biz HackerBox -ning barcha a'zolaridan haqiqatan ham katta yaxshilik so'rashni yaxshi ko'ramiz. Iltimos, qo'llab -quvvatlash xizmatiga murojaat qilishdan oldin, HackerBoxes veb -saytidagi tez -tez so'raladigan savollarni ko'rib chiqing. Shubhasiz, biz barcha a'zolarga kerak bo'lganda yordam berishni xohlasak ham, qo'llab -quvvatlovchi elektron pochta xabarlarining aksariyati oddiy savollarni o'z ichiga oladi, ular savol -javoblar bo'limida aniq ko'rsatilgan. Tushunganingiz uchun tashakkur!
2 -qadam: Kompyuterni ko'rish
Kompyuter ko'rish-bu raqamli tasvirlar yoki videolardan kompyuterlarning yuqori darajadagi tushuncha olishini o'rganadigan fanlararo sohadir. Muhandislik nuqtai nazaridan, kompyuter ko'rish inson vizual tizimi qila oladigan vazifalarni avtomatlashtirishga intiladi. Ilmiy fan sifatida, kompyuter ko'rish tasvirlardan ma'lumot oladigan sun'iy tizimlar nazariyasi bilan bog'liq. Rasm ma'lumotlari turli xil shakllarda bo'lishi mumkin, masalan, video ketma-ketligi, bir nechta kameradan ko'rish yoki tibbiy skanerdan olingan ko'p o'lchovli ma'lumotlar. Texnologik intizom sifatida, kompyuter ko'rish o'z nazariya va modellarini kompyuter ko'rish tizimini qurish uchun qo'llashga intiladi. Kompyuter ko'rish sub-domenlariga sahnani rekonstruksiya qilish, hodisalarni aniqlash, videoni kuzatish, ob'ektlarni tanib olish, 3D pozitsiyasini baholash, o'rganish, indekslash, harakatni baholash va tasvirni tiklash kiradi.
Shunisi qiziqki, kompyuterni ko'rish kompyuter grafikasining teskarisi deb hisoblanishi mumkin.
3 -qadam: ishlov berish va OpenCV
Qayta ishlash - bu moslashuvchan dasturiy ta'minot eskizlari va tasviriy san'at kontekstida kodlashni o'rganadigan til. Qayta ishlash tasviriy san'at sohasida dasturiy savodxonlikni va texnologiyada vizual savodxonlikni oshirdi. O'n minglab talabalar, rassomlar, dizaynerlar, tadqiqotchilar va havaskorlar ishlov berishdan o'rganish va prototip yaratish uchun foydalanadilar.
OpenCV (Ochiq manbali kompyuter ko'rish kutubxonasi) - bu kompyuterni ko'rish va mashinani o'rganish uchun ochiq manbali dasturiy ta'minot kutubxonasi. OpenCV kompyuter ko'rish ilovalari uchun umumiy infratuzilmani ta'minlash va tijorat mahsulotlarida mashina idrokidan foydalanishni tezlashtirish uchun yaratilgan. OpenCV kutubxonasida 2500 dan ortiq optimallashtirilgan algoritmlar mavjud bo'lib, ular klassik va zamonaviy kompyuter ko'rish va mashinani o'rganish algoritmlarini o'z ichiga oladi. Bu algoritmlardan yuzlarni aniqlash va tanib olish, ob'ektlarni aniqlash, videolarda odamlarning harakatlarini tasniflash, kamera harakatlarini kuzatish, harakatlanuvchi ob'ektlarni kuzatish va h.k.
OpenCV -ni ishlov berish jarayonida Fayl> Misollar menyusidan "Misollar qo'shish" -ni tanlang va keyin "Kutubxonalar" yorlig'i ostida video va OpenCV kutubxonalarini o'rnating. Oddiy yuzni kuzatish uchun LiveCamTest misolini oching. Misollarga ishlov berish uchun boshqa OpenCV -ni ko'rib chiqing.
Boshqa manbalar:
Kompyuterni ko'rishni boshlash - bu kompyuter ko'rishi bilan ijodiy tajriba o'tkazish uchun oson kirish nuqtasini ta'minlaydigan kitob loyihasi. U kompyuterni ko'rish loyihalarini yaratish uchun zarur bo'lgan kod va tushunchalarni taqdim etadi.
Python bilan kompyuterni ko'rishni dasturlash - bu PCV bo'yicha O'Reilly kitobi, kompyuterni ko'rish uchun ochiq manbali Python moduli.
OpenCV -ni o'rganish
Kompyuterni ko'rish: algoritmlar va ilovalar
OpenCV -ni o'zlashtirish
Stenford kursi CS231n vizual tanib olish uchun konvolyutsion neyron tarmoqlar (16 ta video)
Kris Urmson TED Talk Haydovchisiz mashina yo'lni qanday ko'radi
4 -qadam: Arduino Nano mikrokontroller platformasi
Biz skovorodkada va egilgan kameradagi servolarni boshqarish uchun har qanday umumiy mikroto'lqinli platformadan foydalanishimiz mumkin. Arduino Nano-bu yer usti, non paneli uchun qulay, miniatyura qilingan, o'rnatilgan USB. Bu hayratlanarli darajada to'liq xususiyatli va sindirish oson.
Xususiyatlari:
- Mikrokontroller: Atmel ATmega328P
- Voltaj: 5V
- Raqamli kirish -chiqish pinlari: 14 (6 PWM)
- Analog kirish pinlari: 8
- Har bir kirish/chiqish piniga doimiy oqim: 40 mA
- Flash xotira: 32 KB (yuklash uchun 2KB)
- SRAM hajmi: 2 KB
- EEPROM: 1 KB
- Soat tezligi: 16 MGts
- Olchamlari: 17 x 43 mm
Arduino Nano -ning o'ziga xos varianti qora Robotdyn dizaynidir. Interfeysi ko'plab uyali telefonlar va planshetlarda ishlatiladigan bir xil MicroUSB kabellari bilan mos keladigan bortli MicroUSB porti orqali amalga oshiriladi.
Arduino Nanos-da o'rnatilgan USB/ketma-ket ko'prikli chip mavjud. Ushbu maxsus variantda ko'prik chipi CH340G. E'tibor bering, har xil turdagi Arduino platalarida USB/Serial ko'prikli chiplarning boshqa turlari ishlatiladi. Bu chiplar kompyuterning USB portiga Arduino protsessor chipidagi ketma -ket interfeys bilan bog'lanish imkonini beradi.
Kompyuterning operatsion tizimiga USB/Seriyali chip bilan aloqa o'rnatish uchun qurilma drayveri kerak. Haydovchi IDE -ga Arduino platasi bilan aloqa o'rnatishga imkon beradi. Kerakli qurilma drayveri ham OS versiyasiga, ham USB/Seriyali chip turiga bog'liq. CH340 USB/Seriyali chiplari uchun ko'plab operatsion tizimlar uchun drayverlar mavjud (UNIX, Mac OS X yoki Windows). CH340 ishlab chiqaruvchisi bu haydovchilarni shu erda etkazib beradi.
Arduino Nano -ni kompyuterning USB portiga birinchi marta ulaganingizda, yashil chiroq yonib turishi kerak va ko'p o'tmay ko'k LED asta -sekin miltillay boshlaydi. Buning sababi shundaki, Nano yangi Arduino Nano-da ishlaydigan BLINK dasturi bilan oldindan yuklangan.
5 -qadam: Arduino integratsiyalashgan rivojlanish muhiti (IDE)
Agar sizda Arduino IDE hali o'rnatilmagan bo'lsa, uni Arduino.cc saytidan yuklab olishingiz mumkin
Agar siz Arduino ekotizimida ishlash uchun qo'shimcha ma'lumot olishni istasangiz, biz HackerBoxes boshlang'ich ustaxonasi uchun ko'rsatmalarni o'rganishni taklif qilamiz.
Nano -ni MicroUSB kabeliga va kabelning ikkinchi uchini kompyuterning USB portiga ulang, Arduino IDE dasturini ishga tushiring, asboblar> port (ehtimol "wchusb" yozilgan nomi ostida IDE -dan mos keladigan USB -portni tanlang).). Shuningdek, asboblar panelida IDE da "Arduino Nano" ni tanlang.
Nihoyat, misol kodini yuklang:
Fayl-> Misollar-> Asosiy-> Ko'z yumish
Bu aslida Nano -ga oldindan yuklangan kod va ko'k LEDni sekin miltillatish uchun hozirda ishlashi kerak. Shunga ko'ra, agar biz bu misol kodini yuklasak, hech narsa o'zgarmaydi. Buning o'rniga, kodni biroz o'zgartiraylik.
Diqqat bilan qarasangiz, dastur LEDni yoqadi, 1000 millisekund (bir soniya) kutadi, LEDni o'chiradi, yana bir soniya kutadi, keyin hammasini yana - abadiy bajaradi.
Ikkala "kechikish (1000)" iborasini "kechiktirish (100)" ga o'zgartirish orqali kodni o'zgartiring. Bu o'zgartirish LEDni o'n barobar tezroq miltillashiga olib keladi, to'g'rimi?
O'zgartirilgan kodning yuqorisidagi UPLOAD tugmasini (o'q belgisi) bosish orqali o'zgartirilgan kodni Nano -ga yuklaylik. Vaziyat haqida ma'lumot olish uchun quyidagi kodni ko'ring: "kompilyatsiya" va keyin "yuklash". Oxir -oqibat, IDE "Yuklash tugallandi" deb ko'rsatishi kerak va sizning LED tez miltillashi kerak.
Agar shunday bo'lsa, tabriklayman! Siz faqat o'rnatilgan kodning birinchi qismini buzdingiz.
Tez yonib-o'chib turadigan versiya yuklangach va ishga tushganda, LEDni ikki marta tez miltillashi uchun yana kodni o'zgartira olasizmi, keyin takrorlashdan oldin bir necha soniya kutib turasizmi? Sinab ko'ring! Boshqa naqshlar haqida nima deyish mumkin? Istalgan natijani vizualizatsiya qilish, uni kodlash va rejalashtirilganidek ishlashini kuzata olgandan so'ng, siz malakali apparat xakeriga aylanish yo'lida ulkan qadam tashladingiz.
6 -qadam: Servo motorlar
Servo dvigatellar, odatda, impulslarning kengligi servo holatini ko'rsatadigan takrorlanadigan elektr impulslari bilan boshqariladi. Puls kengligi modulyatsiyalangan (PWM) boshqaruv signali ko'pincha Arduino kabi oddiy mikrokontroller tomonidan ishlab chiqariladi.
MG996R kabi kichik sevimli mashg'ulot servolari standart uch simli aloqa orqali ulanadi: doimiy quvvat manbai uchun ikkita sim va nazorat pulslarini o'tkazish uchun bitta sim. MG996R servolari 4,8-7,2 VDC kuchlanishli ish kuchlanishiga ega.
7 -qadam: burilish va burilish mexanizmini yig'ish
- MG996R ikkita servosini sumkasidan tortib oling va hozircha aksessuarlarni chetga surib qo'ying.
- Har bir servoga alyuminiy, dumaloq servo ulagichni ulang. E'tibor bering, ulagichlar servolardan alohida sumkalarda keladi. Birlashtiruvchi juda mahkam joylashtirilgan. Birlashtirgichni servo chiqish uchiga bosib boshlang, so'ngra vintni markaziy teshikka burang. Birlashtirgichni servo chiqishiga tortish uchun ipni torting.
- E'tibor bering, panjara o'rnatish uchun uchta qavs mavjud-ikkita quti va bitta U-qavs.
- Qutidagi qavslardan birini servolardan biri uchun alyuminiy doiraga o'rnating. Biz bu servoni pan servo deb ataymiz. Quti-qavsni markaziy devori bilan alyuminiy aylana tomon yo'naltiring, shunda qutining boshqa ikki devori panani servodan uzoqda. Qutbning o'rta devoridagi markaziy teshiklardan foydalaning. Bu tartib, panani servo ishga tushirilgandan so'ng, biriktirilgan quti-qavsni aylantirib qo'yishiga imkon berishi kerak.
- Boshqa servo (egilgan servo) panani servo alyuminiy doirasiga biriktirilgan qutiga joylashtiring. Burilish servosini o'rnatish uchun kamida ikkita yong'oq va murvatdan foydalaning - har tomondan.
- U-qavsni ushlab turib, U ichki qismidagi "rulmanli" guruchni katta burilish o'rnatish teshiklaridan biriga joylashtiring.
- U-qavsni rulmanli quti qavsining ichidagi egilgan servoga joylashtiring, shunda boshqa katta burilish o'rnatish teshigi (rulmani bo'lmagan) egilgan servo ustidagi alyuminiy doiraga to'g'ri keladi.
- U-qavsni al-alyuminiy doiraga U-qavsning bir tomoniga mahkamlash uchun vintlarni ishlating.
- U-qavsning boshqa tomonida, bitta vintni rulman orqali va ichidagi qutichaning kichik teshigiga mahkamlang. Bu, U-qavsining egilish servosi ishga tushirilgandan keyin, quti-qavs atrofida aylanishi uchun imkon berishi kerak.
8 -qadam: panjara va egilish moslamasini o'rnatish
Qolgan quti-qavsni rasmda ko'rsatilgandek, kamera asosi bo'lib xizmat qilish uchun yog'och taxtaning kichik qoldiqlariga vidalanishi mumkin. Nihoyat, panjara servo qolgan ikkita qutiga o'rnatiladi, bunda servolarni har ikki tomonga mahkamlash uchun kamida ikkita yong'oq va murvat ishlatiladi.
9 -qadam: panjara va egilish moslamasini simlang va sinab ko'ring
Servolarni sxemaga muvofiq sim bilan ulash uchun servodan asl ayol ulagichlarni kesib tashlash, so'ngra Nano pinlariga ulangan signal va er chizig'ini olish uchun DuPont -ning bir nechta urg'ochi uchidan foydalanish osonroq.
Nano -da servolarni USB -dan quvvatlantirish uchun 5V -da etarli oqim yo'q, shuning uchun qo'shimcha ta'minot tavsiya etiladi. Bu 4,8-7,2 voltli diapazonda bo'lishi mumkin. Masalan, to'rtta AA batareyasi (ketma -ket) yaxshi ishlaydi. Skameykali devor yoki siğil ham yaxshi tanlovdir.
Bu erda PanTiltTest.ino sifatida biriktirilgan Arduino kodining oddiy misoli Arduino IDE seriyali monitoridan ikkita servo nazoratini tekshirish uchun ishlatilishi mumkin. Namuna kodida o'rnatilgan 9600 soniyagacha mos keladigan monitorning tezligini o'rnating. 0 dan 180 darajagacha burchak qiymatlarini kiritish servolarni mos ravishda joylashtiradi.
Nihoyat, USB-kamera moduli (yoki boshqa sensor) kuzatuv dasturlarida foydalanish uchun Pan-Tilt Assambleyasining U-qavsiga o'rnatilishi mumkin.
10 -qadam: OpenCV yordamida yuzni kuzatish
Mashinaning ko'rinishini kuzatish tizimi blok-sxemada ko'rsatilgan quyi tizimlarni birlashtirish orqali amalga oshirilishi mumkin. Arduino uchun SerialServoControl eskizini quyidagi Sparkfun qo'llanmasida, OpenCV, Processing, Arduino, USB Kamera va Pan/Tilt Assambleyasi yordamida odamning yuzini kuzatish uchun ko'rsatma bilan topish mumkin. Demo, foydalanuvchi xona bo'ylab harakatlanayotganda ham, yuzni video kadrda markazlashtirish uchun kamerani qayta joylashtirish uchun ikkita servodan foydalanadi. Masalan, C#dagi kod, CamBot videosi uchun GitHub omborini tekshiring.
11 -qadam: Sayyorani buzish
Agar siz ushbu ko'rsatmalarni yoqtirgan bo'lsangiz va elektronika va kompyuter texnologiyalari kabi loyihalarni har oy pochta qutingizga etkazib berishni xohlasangiz, bu erga obuna bo'lish orqali bizga qo'shiling.
Quyidagi izohlarda yoki HackerBoxes Facebook sahifasida o'z yutuqlaringiz bilan o'rtoqlashing. Albatta, agar sizda biron bir savol bo'lsa yoki yordamga muhtoj bo'lsangiz, bizga xabar bering. HackerBoxes -ning bir qismi bo'lganingiz uchun tashakkur. Iltimos, takliflaringiz va mulohazalaringizni keltiring. HackerBox - bu sizning qutilaringiz. Keling, ajoyib narsa qilaylik!
Tavsiya:
Vision LED xodimlarining barqarorligi: 11 qadam (rasmlar bilan)
Vision LED xodimlarining turg'unligi: Ma'lumki, yorug'lik o'chirilganidan keyin ham, inson ko'zlari " ko'rish " bu soniyaning bir qismi uchun. Bu "Vizyonning barqarorligi" yoki "POV" deb nomlanadi va bu sizga "bo'yash" imkonini beradi. tasmani tez siljitish orqali rasmlar
Micro: bit MU Vision Sensor - Ob'ektlarni kuzatish: 7 qadam
Micro: bit MU Vision Sensor - Ob'ektlarni kuzatish: Shunday qilib, biz bu ko'rsatmaga biz o'rnatadigan Smart Car dasturini o'rnatishni boshlaymiz va MU ko'rish sensorini o'rnatamiz. bir oz oddiy ob'ektlarni kuzatish bilan, shuning uchun
Vision 4all - Visao Assistida tizimi kamchiliklari Visais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 qadam
Vision 4all - Visao Assistida dasturining kamchiliklari Visais Usando OpenCV, Dragonboard 410c E Aplicativo Android: DESCRI & Ccedil à a autonomia para deficientes visuais se locomoverem em ambientes como casas ou savdo markazlari va aeroportlar.A lokomo ç mapeados pode ou n ã o s
Raspberry PI Vision Processor (SpartaCam): 8 qadam (rasmlar bilan)
Raspberry PI Vision Processor (SpartaCam): FIRST Robotics Competition robotingiz uchun Raspberry PI ko'rish protsessor tizimi. FIRST haqida Vikipediya, https://en.wikipedia.org/wiki/FIRST_Robotics_Compe bepul ensiklopediyasi … FIRST Robotics Competition (FRC) - bu xalqaro yuqori darajadagi
Mikro: yangi boshlanuvchilar uchun bit MU Vision Sensor - I2C va shaklli kartani tanib olish: 8 qadam
Yangi boshlanuvchilar uchun mikro: bitli MU Vision Sensor - I2C va Shakl kartalarini tanib olish: Men qo'llarimni Micro: bit uchun MU ko'rish sensori oldim. Vizyonga asoslangan turli xil loyihalarni amalga oshirishimga imkon beradigan ajoyib vosita. Afsuski, unga ko'rsatma beradiganlar ko'p emas va hujjatlar haqiqatan ham