Mundarija:

QO'ShIMChA: 6 qadam
QO'ShIMChA: 6 qadam

Video: QO'ShIMChA: 6 qadam

Video: QO'ShIMChA: 6 qadam
Video: 6 oylik bolaning taomnomasi. 2024, Iyul
Anonim
OCH
OCH
OCH
OCH

Kuchli katakta yordamchisiz. Yuzni tanib olish Zeitgeistga tegsa, UUCH sizga tegadi! OUCH nafaqat tashqi ko'rinishingizni biladi, balki juda zerikarli bo'lishni ham biladi! Katta akadan farqli o'laroq, bu mashina juda ko'zga ko'rinadigan va faqat bitta maqsadni bajaradi: hayotingizni mayda -chuyda qilish. Siz hech qachon uyda quyoshdan saqlaydigan ko'zoynakni unutib, yorqin aks ettirishdan hayratga tushganmisiz? OUCH sizga bu lahzani qayta -qayta takrorlashga imkon beradi. Atrofingizdagi eng yorqin yorug'lik manbasidan yorug'likni to'g'ridan -to'g'ri yuzingizga aks ettirib, siz uning atrofida bir lahzada ham zavqlanmasligingizga ishonch hosil qilasiz.

Ehtiyot bo'ling, aks holda OUCH siz ko'rgan oxirgi narsa bo'lishi mumkin!

Loyiha ITECH magistrlik dasturida hisoblash dizayni va raqamli ishlab chiqarish seminari doirasida o'tkazildi.

Avgust Lehrek | Maks Zorn

Ta'minotlar

Elektron qismlar:

Arduino

  • Arduino UNO

    • 2 marta Reely Mini Servo S0009
    • 4x fotorezistorlar
    • 4x10k rezistorlar
    • 2x potansiyometr
    • 1x USB printer kabeli

Raspberry Pi

  • Rasberry Pi 4

    • 1x RaspiCam
    • 4x Reely Mini Servo S0009
    • 1x PCA9685 16-kanalli 12-bitli PWM Servo drayveri
    • 5V shahar tashqi quvvat manbai
    • 1x Rasberry Pi 5.1V - 3Amp quvvat manbai (yoki tashqi ekvivalent)
    • 1x MAKERFACTORY HC-SR05 Ultraschallsensor (MF-6402156)
    • 1x470 Ohm qarshilik
    • 1x 320 Ohm qarshilik

3D bosilgan qismlar:

UUCH turli shakl va o'lchamlarda keladi. Ushbu versiya uchun biz maxsus printerlarni chop etish uchun 3D printerdan foydalanganmiz.

  • 4 x stend
  • 2 x S bazasi
  • 1 x L tayanch
  • 2 marta aylantirish bazasi er -xotin
  • 1 x aylantirish bazasi bitta
  • 1 x Eksa qo'llab -quvvatlash to'plami
  • 1 x Eksa qo'llab -quvvatlash to'plami M
  • 1 x Eksa qo'llab -quvvatlash to'plami L
  • 1 x Kamera o'rnatish
  • 1 x yorug'lik tog'i
  • 1 x Ko'zgu tog'i

Majburiy emas, siz taqdim etilgan Tower dizaynidan foydalanib, komponentlarni moslashtirasiz:

  • 1 x Minora (4 x Stend o'rniga)
  • 1 x asosiy S va 1x bazaviy M (2 x asosiy S o'rniga)

Boshqa qismlar:

  • Mylar
  • 1 x rezina tasma
  • 1 x fermuar taqish
  • 12 M5 x 160 tekis vintlardek
  • 2 M5 x 80 tekis vintlardek

Asboblar:

  • 3D printer
  • H3.0 tornavida
  • Issiq yopishtiruvchi qurol

1 -qadam: 1 -qadam: qismlarni chop etish

Agar sizda 3D printer mavjud bo'lsa, siz servolarni joylashtirish va uchta asosiy komponentni o'rnatish uchun maxsus mexanizmlarni chop etishingiz mumkin.

Face komponenti uchun bizga kerak:

  • 2 x stend
  • 1 x L tayanch
  • 1 x aylanadigan tayanchli er -xotin
  • 1 x Eksa qo'llab -quvvatlash to'plami M
  • 1 x Kamera va masofa sensori o'rnatilishi

Light komponenti quyidagilarni talab qiladi:

  • 1 x stend
  • 1 x S bazasi
  • 1 x aylanadigan tayanchli er -xotin
  • 1 x Axis qo'llab -quvvatlash to'plami
  • 1 x yorug'lik tog'i

Mirror komponentlari quyidagilardan iborat:

  • 1 x stend
  • 1 x S bazasi
  • 1 x aylanadigan tayanch yagona
  • 1 x Eksa qo'llab -quvvatlash to'plami L
  • Ko'zgu tog'i

Va nihoyat, siz taqdim etilgan minorani ham chop etishingiz mumkin.

Agar siz uni barcha uchta komponent uchun asos sifatida ishlatmoqchi bo'lsangiz, koddagi vektor matematikasini mos ravishda o'zgartirishingiz kerak bo'ladi. Bundan tashqari, yuz komponentini L bazasi o'rniga M bazasi bilan minoraga ulang.

2 -qadam: 2 -qadam: oynani yaratish

2 -qadam: oynani yaratish
2 -qadam: oynani yaratish
2 -qadam: oynani yaratish
2 -qadam: oynani yaratish

O'zingizning ko'zgu komponentasini yaratish uchun Mylar dumaloq qismini kesib oling va uni 3D bosilgan oynaning yuqori qismiga qo'ying. Keyin avval rezina tasmadan joyiga mahkamlang. Kauchuk tasma komponentning atrofidagi truba ichiga joylashishi kerak. Keyin ulanishni muloyimlik bilan mahkamlash uchun fermuar taqing, uni juda qattiq tortmang. Endi siz yaltiroq, ko'zgu yuzasiga ega bo'lmaguncha Mylar cho'zishni boshlashingiz mumkin. Nihoyat, fermuar bog'ichini mahkamlang va chiroyli yuzingizning aksidan zavqlaning!

3 -qadam: 3 -qadam: Komponentlarni yig'ish

3 -qadam: Komponentlarni yig'ish
3 -qadam: Komponentlarni yig'ish
3 -qadam: Komponentlarni yig'ish
3 -qadam: Komponentlarni yig'ish
3 -qadam: Komponentlarni yig'ish
3 -qadam: Komponentlarni yig'ish
3 -qadam: Komponentlarni yig'ish
3 -qadam: Komponentlarni yig'ish

Yuz komponenti

  1. Issiq yopishtiruvchi Servo mushtini aylanuvchi poydevorga mos ravishda kesib oling
  2. Servo ulagichini taglikning pastki qismida joylashgan yivga yopishtiring
  3. Ikkala asosiy qismni bir -biriga qo'ying, shunda Servo ulagich bilan qulflanadi
  4. Ulagichni Servoga mahkamlash uchun Servo vintini ishlating
  5. Ikkinchi ulagich qismini eksa tayanchining yuqori qismida joylashgan yivga issiq yopishtiring
  6. Eksa tayanchini aylanadigan taglikka burab qo'yish uchun 4 ta M5 murvatidan foydalaning
  7. Issiq yopishtiruvchi ikkinchi Servo
  8. Kamerani pimlarga siljiting
  9. Ultrasonik masofa sezgichini vintlardek yoki issiq yopishtirish orqali mahkamlagichga ulang
  10. Kamera / sensor moslamasini eksa tayanchiga ulang, Servo yana ulagich qismiga o'tishi kerak
  11. Ulagichni Servoga mahkamlash uchun Servo vintini ishlating
  12. Raspberry Pi va servo drayverni kontrplak bo'lagiga burang (oraliq L tagining teshiklariga mos kelishiga ishonch hosil qiling)
  13. Face komponentini M5 murvat yordamida stendlarga mahkamlang

Oynali komponent

  1. 1 dan 7 gacha bo'lgan amallarni bajaring
  2. Ko'zguni eksa tayanchiga ulang
  3. Oyna tayanchini kontrplakka yopishtiring, shunda "Mirror" va "Face" komponentlari hizalanadi
  4. M5 murvatidan foydalanib, Mirror komponentini stendga burab qo'ying

Yorug'lik komponenti

  1. Yuqoridan 1-7 bosqichlarni bajaring
  2. Yorug'lik sezgichlarini xoch ostidagi o'rnatish teshiklari orqali o'tkazing
  3. Soyali xochni eksa tayanchiga ulang, Servo yana ulagich qismiga siljishi kerak
  4. Ulagichni Servoga mahkamlash uchun Servo vintini ishlating
  5. Stendni kontrplakka yopishtiring, shunda Light, Mirror va Face komponenti hizalanadi va ko'zgu yuz va nur komponentlari orasida bo'ladi.
  6. Face komponentini M5 murvat yordamida stendlarga mahkamlang

*Barcha komponentlar minoraga ham ulanishi mumkin edi, lekin kodlash va simlarning murakkabligi va bosib chiqarish vaqtining ko'payishini hisobga oling. Agar siz minoradan foydalanmoqchi bo'lsangiz, Face komponenti uchun L bazasi o'rniga B asosiy qismini ishlating va asosiy qismlarni ko'zoynaklar va M5 murvatlari yordamida minoraga mahkamlang.

4 -qadam: 4 -qadam: Kengashlarni sozlash

4 -qadam: Kengashlarni sozlash
4 -qadam: Kengashlarni sozlash
4 -qadam: Kengashlarni sozlash
4 -qadam: Kengashlarni sozlash
4 -qadam: Kengashlarni sozlash
4 -qadam: Kengashlarni sozlash

Mana uchta komponentning ulanish sxemasi. Quyosh kuzatuvchisi Arduino -dagi o'z tsikli ustida ishlaydi va o'z USB -porti orqali o'z servo pozitsiyalarini Rasberry Pi -ga yuboradi. Maqsadning yanada mustahkam uchburchagini yaratish uchun ixtiyoriy masofa sensori pan/tilt piCamera old qismiga ulanishi mumkin. Bu erda biz ularni to'g'ri chiziqqa joylashtiramiz va vektorlarni o'rtacha hisoblaymiz, shuning uchun kerak emas.

To'rtta servo tashqi 5V quvvat manbai bilan ishlaydigan PCA9685 servo drayveriga ulangan. Servolardan ikkitasi skanerlash va yuzni kuzatish kamerasining egilishini nazorat qiladi, qolgan ikkitasi panani boshqaradi va oynani egadi.

5 -qadam: Kod:

Kod
Kod

Ushbu loyihaning kodini ikki qismga bo'lish mumkin: Arduino yorug'lik kuzatuvchi kodi va piton yuzini kuzatish/oynani joylashtirish kodi.

Arduino kodi:

Bu kod geobruce -dan quyoshni kuzatish loyihasining biroz o'zgartirilgan versiyasidir. Bu quyoshni kuzatish komponenti haqida ko'proq ma'lumot olish uchun ajoyib ma'lumotdir va batafsil ma'lumotni ushbu ko'rsatma sahifasida topish mumkin. Yorug'lik intensivligi qiymatlari 4 ta fotorezistorlardan olinadi va eng yorqin maydonni topish va servolarni mos ravishda sozlash uchun o'rtacha hisoblanadi. Keyin servo burchak qiymatlarini ketma -ket portga yozamiz.

Python kodi:

Bu kod yuzni kuzatish mexanizmini yaratish uchun ochiq rezyumelarni birlashtiradi, shuningdek ko'zgu uchun servolarni boshqaradi. Raspberry pi -da ochiq rezyumeni yuklab olish uchun siz bir necha bosqichlardan o'tishingiz kerak bo'ladi. Buning uchun juda ko'p manbalar bor, lekin menga pyimagesearch manbasi juda yoqadi. Bu jarayonning to'liq yo'lini bu erda topishingiz mumkin. Eslatma: Biz ochiq rezyumeni kutubxonalarini virtual muhitga yukladik, u erda biz kodni ishga tushiramiz, agar siz shunday qaror qilsangiz, siz dasturni ishlatayotgan virtual muhitga barcha bog'liqliklarni yuklaganingizga ishonch hosil qiling. Pi o'zi.

Ochiq rezyumeni yuklaganingizdan so'ng, ushbu kodni ishga tushirish uchun yana bir qancha bog'liqliklar kerak bo'ladi (siz ishlayotgan muhitda o'rnatilgan):

  • Adafruit ServoKit: Malinali Pi -ni yuklab olish jarayonining to'liq sahifasini bu erda topishingiz mumkin.
  • imutillar
  • befarq
  • gpiozero (agar masofa sensori ishlatilsa)

Yuzni kuzatish uchun skript argumentni (--faces) talab qiladi, bu OpenCv yuzlarni topish uchun ishlatadigan.xml fayli. Siz bu faylni python skript bilan bir xil katalogga qo'yishingiz kerak bo'ladi. Men buni yuklab olishda ko'rsatganman va uni bu erda ham topishingiz mumkin.

6 -qadam: Kodni ishga tushirish

Kodni ishga tushirish
Kodni ishga tushirish
Kodni ishga tushirish
Kodni ishga tushirish

Bir xil katalogda barcha kodlar yuklab olingandan so'ng va ochiq rezyume bilan virtual muhitni o'rnatganingizdan so'ng, siz uni ishga tushirishga tayyormiz.

  1. Pi -dagi buyruq satrini oching
  2. Workon CV -ni kiriting (yoki virtual muhitingiz uchun qaysi nomni tanlagan bo'lsangiz)
  3. Katalogni fayllar saqlanadigan joyga o'zgartiring (CD (fayllarga yo'l))
  4. Oxirgi qatorda dastur va uning xususiyatlari ko'rsatilgan. (python Face3.py -yuzlar haarcascade_frontalface_default.xml)

Siz uni ishga tushirganingizda, ekranda picam -dan video oqimi paydo bo'lishi kerak va buyruq irodasi barcha oltita servodan servo qiymatlarini chop etishni boshlaydi.

Va siz tugadingiz! Sizda mavjud bo'lgan servo sifatiga qarab, siz tizimning aniqligini yaxshilash uchun har birini alohida sozlashni xohlashingiz mumkin. Biz to'g'ri ishlashlari uchun barcha PWM diapazonlarini o'zgartirishga majbur bo'ldik.

Tavsiya: