Mündəricat:

HackerBox 0024: Vision Quest: 11 addım
HackerBox 0024: Vision Quest: 11 addım

Video: HackerBox 0024: Vision Quest: 11 addım

Video: HackerBox 0024: Vision Quest: 11 addım
Video: HackerBox #0024: Vision Quest 2024, Iyul
Anonim
HackerBox 0024: Vision Quest
HackerBox 0024: Vision Quest

Vision Quest - Bu ay, HackerBox Hackers Computer Vision və Servo Motion Tracking ilə sınaq keçirirlər. Bu Təlimat, HackerBox #0024 ilə işləmək üçün məlumatları ehtiva edir, təchizat bitənə qədər burada əldə edə bilərsiniz. Ayrıca, hər ay poçt qutunuzda belə bir HackerBox almaq istəyirsinizsə, HackerBoxes.com saytına abunə olun və inqilaba qoşulun!

HackerBox 0024 üçün mövzular və öyrənmə məqsədləri:

  • Computer Vision ilə təcrübə
  • OpenCV (Computer Vision) qurulması
  • Arduino IDE -dən Arduino Nanonun proqramlaşdırılması
  • Arduino Nano ilə Servo Motorsa nəzarət
  • Mexaniki Pan və Tilt Komplektinin Montajı
  • Mikro nəzarətçi ilə Pan və Tilt hərəkətinə nəzarət
  • OpenCV -dən istifadə edərək üz izləmə aparın

HackerBoxes, DIY elektronikası və kompüter texnologiyası üçün aylıq abunə qutusu xidmətidir. Biz həvəskarlar, istehsalçılar və təcrübəçilərik. Biz xəyalların xəyalpərəstləriyik. PLANET HACK!

Addım 1: HackerBox 0024: Qutunun İçindəkilər

HackerBox 0024: Qutunun İçindəkilər
HackerBox 0024: Qutunun İçindəkilər
  • HackerBoxes #0024 Kolleksiya Edilən İstinad Kartı
  • Üç Bracket Pan və Tilt Montajı
  • Aksesuarlı iki MG996R Servosu
  • İki Alüminium Dairəvi Servo Bağlayıcı
  • Arduino Nano V3 - 5V, 16MHz, MicroUSB
  • USB kabel ilə rəqəmsal kamera qurğusu
  • Universal Klip Montajlı Üç Lens
  • Tibbi Müayinə Qələm İşıq
  • Dupont Kişi/Qadın Tullananlar
  • MicroUSB Kabel
  • Eksklüziv OpenCV Decal
  • Eksklüziv Dia de Muertos Decal

Faydalı olacaq digər şeylər:

  • Kamera bazası üçün kiçik taxta lövhə
  • Lehimləmə dəmiri, lehim və əsas lehim alətləri
  • Proqram vasitələrini işlətmək üçün kompüter

Ən əsası, macəra hissinə, DIY ruhuna və hacker marağına ehtiyacınız olacaq. Hardcore DIY elektronikası əhəmiyyətsiz bir iş deyil və biz bunu sizin üçün sulamırıq. Məqsəd inkişaf deyil, mükəmməllikdir. Davam edərək macəradan zövq aldığınız zaman, yeni texnologiyanı öyrənməkdən və inşallah bəzi layihələri işə salmaqdan böyük məmnunluq əldə edə bilərsiniz. Hər bir addımı yavaş -yavaş atmağı, detallara fikir verməyi və kömək istəməkdən çəkinməməyi təklif edirik.

Tez -tez verilən suallar: Bütün HackerBox üzvlərindən həqiqətən böyük bir lütf istəməyi sevirik. Zəhmət olmasa, dəstəklə əlaqə saxlamadan əvvəl HackerBoxes veb saytında FAQ -a baxmaq üçün bir neçə dəqiqə ayırın. Açıqca bütün üzvlərə lazım olduğu qədər kömək etmək istəsək də, dəstək e -poçtlarımızın əksəriyyəti FAQ -da çox aydın şəkildə izah edilən sadə sualları əhatə edir. Anladığınız üçün təşəkkür edirik!

Addım 2: Kompüter Görmə

Kompüter Görmə
Kompüter Görmə

Kompüter görmə, kompüterlərin rəqəmsal şəkillərdən və ya videolardan yüksək səviyyədə anlayış əldə etmələri ilə məşğul olan fənlərarası bir sahədir. Mühəndislik baxımından, kompüter görmə qabiliyyəti insanın vizual sisteminin edə biləcəyi vəzifələri avtomatlaşdırmağa çalışır. Elmi bir intizam olaraq, kompüter görmə, görüntülərdən məlumat çıxaran süni sistemlərin arxasındakı nəzəriyyə ilə əlaqədardır. Görüntü məlumatları, video ardıcıllığı, birdən çox kameradan görüntülər və ya tibbi skanerdən çoxölçülü məlumatlar kimi bir çox formada ola bilər. Texnoloji bir intizam olaraq, kompüter görmə, kompüter görmə sistemlərinin qurulması üçün nəzəriyyə və modellərini tətbiq etməyə çalışır. Kompüter görmə alt sahələrinə səhnə yenidən qurulması, hadisələrin aşkarlanması, video izləmə, obyektlərin tanınması, 3D poza qiymətləndirmə, öyrənmə, indeksləmə, hərəkətin qiymətləndirilməsi və görüntünün bərpası daxildir.

Maraqlıdır ki, kompüter görmə qabiliyyəti kompüter qrafikasının tərsinə çevrilə bilər.

Addım 3: İşləmə və OpenCV

Emal və OpenCV
Emal və OpenCV

Emal, çevik bir proqram eskiz kitabı və vizual sənət kontekstində kod yazmağı öyrənmək üçün bir dildir. Emal, vizual sənət daxilində proqram savadını və texnologiya daxilində vizual savadlılığı artırdı. Öyrənmək və prototip etmək üçün Processing -dən istifadə edən on minlərlə tələbə, rəssam, dizayner, tədqiqatçı və hobbi var.

OpenCV (Açıq Mənbə Kompüter Görmə Kitabxanası) açıq mənbə kompüter görmə və maşın öyrənmə proqram kitabxanasıdır. OpenCV, kompüter görmə tətbiqləri üçün ortaq bir infrastruktur təmin etmək və ticarət məhsullarında maşın algısının istifadəsini sürətləndirmək üçün qurulmuşdur. OpenCV kitabxanasında həm klassik, həm də ən müasir kompüter görmə və maşın öyrənmə alqoritmlərindən ibarət 2500-dən çox optimallaşdırılmış alqoritm var. Bu alqoritmlər üzləri aşkar etmək və tanımaq, obyektləri müəyyən etmək, videolarda insan hərəkətlərini təsnif etmək, kamera hərəkətlərini izləmək, hərəkət edən cisimləri izləmək və s.

Fayl> Nümunələr menyusundan "Nümunələr əlavə et" seçin və sonra Kitabxanalar sekmesinin altında həm Video, həm də OpenCV kitabxanalarını quraşdıraraq OpenCV -ni İşləmə daxilində quraşdırın. Əsas üz izləmə üçün LiveCamTest nümunəsini açın. Nümunələrin işlənməsi üçün bəzi digər OpenCV -lərə baxın.

Daha çox qaynaq:

Computer Vision ilə Başlarken, kompüter görmə ilə yaradıcı təcrübələr üçün asan bir giriş nöqtəsi təmin edən bir kitab layihəsidir. Kompüter görmə layihələri qurmaq üçün lazım olan kodu və anlayışları təqdim edir.

Python ilə Kompüter Vizyonunu Proqramlaşdırmaq, kompüter görmə üçün açıq mənbə Python modulu olan PCV üzərindəki O'Reilly kitabdır.

OpenCV öyrənmək

Kompüter Görmə: Alqoritmlər və Tətbiqlər

OpenCV -ni mənimsəmək

Stanford Course CS231n Vizual Tanıma üçün Konvolyutsion Sinir Şəbəkələri (16 Video)

Chris Urmson TED Talk Sürücüsüz avtomobil yolu necə görür

Addım 4: Arduino Nano Mikrokontrolör Platforması

Arduino Nano Mikrokontrolör Platforması
Arduino Nano Mikrokontrolör Platforması

Tava və əyilmə kameramızdakı servoları idarə etmək üçün hər hansı bir ümumi mikro nəzarətçi platformasından istifadə edə bilərik. Arduino Nano, səthə quraşdırılmış, çörək taxtasına uyğun, miniatürləşdirilmiş USB ilə birləşdirilmiş Arduino lövhəsidir. Qəribə dərəcədə tam xüsusiyyətlidir və hack etmək asandır.

Xüsusiyyətləri:

  • Mikro nəzarətçi: Atmel ATmega328P
  • Gərginlik: 5V
  • Rəqəmsal I/O Pinləri: 14 (6 PWM)
  • Analog giriş pinləri: 8
  • I/O Pin başına DC cərəyanı: 40 mA
  • Flash Yaddaş: 32 KB (bootloader üçün 2KB)
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • Saat Sürəti: 16 MHz
  • Ölçülər: 17 x 43 mm

Arduino Nanonun bu xüsusi variantı qara Robotdyn dizaynıdır. İnterfeys, bir çox cib telefonu və planşetdə istifadə edilən eyni MicroUSB kabelləri ilə uyğun gələn bir bortda MicroUSB portudur.

Arduino Nanos, quraşdırılmış USB/Serial körpü çipinə malikdir. Bu xüsusi variantda körpü çipi CH340G -dir. Qeyd edək ki, müxtəlif növ Arduino lövhələrində istifadə olunan digər USB/Serial körpü çipləri var. Bu çiplər, kompüterinizin USB portunun Arduino prosessor çipindəki serial interfeysi ilə əlaqə qurmasına imkan verir.

Kompüterin əməliyyat sistemi, USB/Serial çiplə əlaqə qurmaq üçün Cihaz Sürücüsü tələb edir. Sürücü, IDE -nin Arduino lövhəsi ilə əlaqə qurmasına imkan verir. Lazım olan xüsusi cihaz sürücüsü həm OS versiyasından, həm də USB/Serial çipin növündən asılıdır. CH340 USB/Serial çipləri üçün bir çox əməliyyat sistemi (UNIX, Mac OS X və ya Windows) üçün sürücülər mövcuddur. CH340 istehsalçısı həmin sürücüləri burada təmin edir.

Arduino Nano'yu kompüterinizin USB portuna ilk dəfə qoşduğunuzda, yaşıl güc işığı yanmalı və mavi LED yavaş -yavaş yanıb -sönməyə başlayacaq. Bunun səbəbi, Nanonun yeni Arduino Nano üzərində işləyən BLINK proqramı ilə əvvəlcədən yüklənməsidir.

Addım 5: Arduino Integrated Development Environment (IDE)

Arduino İnteqrasiya İnkişaf Mühiti (IDE)
Arduino İnteqrasiya İnkişaf Mühiti (IDE)

Arduino IDE hələ qurulmamışdırsa, Arduino.cc saytından yükləyə bilərsiniz

Arduino ekosistemində işləmək üçün əlavə məlumat əldə etmək istəyirsinizsə, HackerBoxes Başlanğıc Atölyesi üçün təlimatları nəzərdən keçirməyi təklif edirik.

Nanonu MicroUSB kabelinə və kabelin digər ucunu kompüterdəki USB portuna qoşun, Arduino IDE proqramını işə salın, alətlər> port (ehtimal ki, "wchusb" olan bir ad altında IDE -də uyğun USB portunu seçin)). Alətlər> lövhə altında IDE -də "Arduino Nano" nu da seçin.

Nəhayət, bir nümunə kodu yükləyin:

Fayl-> Nümunələr-> Əsaslar-> Göz qırp

Bu əslində Nanoya əvvəlcədən yüklənmiş və mavi LED -in yavaş -yavaş yanıb -sönməsi üçün hazırda çalışmalı olan koddur. Buna görə, bu nümunə kodu yükləsək, heç nə dəyişməyəcək. Bunun əvəzinə kodu bir az dəyişdirək.

Diqqətlə baxdığınızda, proqramın LED -i yandırdığını, 1000 milisaniyəni (bir saniyə) gözlədiyini, LED -i söndürdüyünü, başqa bir saniyəni gözlədiyini və sonra hər şeyi yenidən - sonsuza qədər gördüyünü görə bilərsiniz.

Hər iki "gecikmə (1000)" ifadəsini "gecikmə (100)" olaraq dəyişdirərək kodu dəyişdirin. Bu dəyişiklik LED -in on qat daha sürətli yanıb sönməsinə səbəb olacaq, elə deyilmi?

Dəyişdirilmiş kodunuzun üstündəki YÜKLƏ düyməsini (ox işarəsi) tıklayaraq dəyişdirilmiş kodu Nanoya yükləyək. Vəziyyət məlumatı üçün aşağıdakı kodu izləyin: "tərtib etmək" və sonra "yükləmək". Nəhayət, IDE "Yükləmə Tamamlandı" göstərməli və LEDiniz daha sürətli yanıb -sönməlidir.

Əgər belədirsə, təbrik edirəm! İlk quraşdırılmış kodunuzu sındırdınız.

Sürətlə yanıb-sönən versiyanız yükləndikdə və işə salındıqda, niyə LED-in iki dəfə sürətli yanıb-sönməsini təmin etmək üçün kodu yenidən dəyişə biləcəyinizi və niyə təkrar etməzdən əvvəl bir neçə saniyə gözlədiyinizi görmürsünüz? Bir cəhd edin! Başqa nümunələr necə? İstədiyiniz nəticəni görmə qabiliyyətinə malik olmağı, kodlaşdırmağı və planlaşdırıldığı kimi işləməsini müşahidə etdikdən sonra, bacarıqlı bir hardware hakerinə çevrilmək üçün böyük bir addım atmış olursunuz.

Addım 6: Servo Motors

Servo Motorlar
Servo Motorlar

Servo mühərrikləri ümumiyyətlə impulsların eni servonun mövqeyini göstərən bir sıra təkrarlanan elektrik impulsları ilə idarə olunur. Pulse width modulated (PWM) nəzarət siqnalı tez -tez Arduino kimi ümumi bir mikro nəzarətçi tərəfindən yaradılır.

Kiçik hobbi servolar, məsələn MG996R, standart üç telli bir əlaqə vasitəsi ilə bağlanır: bir DC enerji təchizatı üçün iki tel və nəzarət pulslarını daşımaq üçün bir tel. MG996R servoları 4.8-7.2 VDC iş gərginliyi qəzəbinə malikdir.

Addım 7: Pan və əyilmə mexanizminin yığılması

Pan və əyilmə mexanizminin yığılması
Pan və əyilmə mexanizminin yığılması
  1. Hər iki MG996R servosunu çantalarından çıxarın və daxil olan aksesuarları bir kənara qoyun.
  2. Hər bir servoya alüminium, dairəvi servo bağlayıcı bağlayın. Qeyd edək ki, bağlayıcılar servodan ayrı çantalarda gəlir. Bağlayıcı çox sıx oturur. Bağlayıcıyı servo çıxışın ucuna basaraq başlayın və sonra mərkəzi çuxura bir vida vurun. Bağlayıcıyı servo çıxışa çəkmək üçün ipi sıxın.
  3. Diqqət yetirin ki, pan-tilt montajı üçün üç mötərizə var-iki qutu-mötərizə və bir U-mötərizə.
  4. Qutunun mötərizələrindən birini servolardan biri üçün alüminium dairəyə quraşdırın. Bu servoya pan servo deyəcəyik. Qutunun braketini mərkəz divarı ilə alüminium dairəyə yönəldin ki, qutunun digər iki divarı tavanın servosundan uzaqlaşsın. Qutunun orta divarındakı orta deliklərdən istifadə edin. Bu tənzimləmə, pan servonun işə salındıqdan sonra əlavə edilmiş qutu braketini fırlatmasına imkan verməlidir.
  5. Digər servo (əyilmə servo) tava servonun alüminium dairəsinə bərkidilmiş qutu braketinə yerləşdirin. Əyilmə servosunu yapışdırmaq üçün ən azı iki qoz və bolt istifadə edin - hər tərəfdən bir.
  6. U-braketini tutaraq, pirinç "yatağı" U-nun içərisindən böyük dönmə montaj deliklərindən birinə daxil edin.
  7. U-braketini, yatağı olan digər böyük dönmə montaj çuxurunun (yatağı olmayan) əyilmə servosundakı alüminium dairə ilə hizalanması üçün qutu braketinin içərisindəki əyilmə servosuna yerləşdirin.
  8. U-braketini U-braketin bir tərəfindəki alüminium dairəyə yapışdırmaq üçün vintlərdən istifadə edin.
  9. U-mötərizənin digər tərəfində, tək bir vidanı yatağın içindən və içərisindəki qutu mötərizəsindəki kiçik çuxura sıxın. Bu, əyilmə servosu işə salındıqda U-braketinin daha sonra qutu braketinin ətrafında dönməsinə imkan verməlidir.

Addım 8: Pan və əyilmə qurğusunun quraşdırılması

Pan və əyilmə qurğusunun quraşdırılması
Pan və əyilmə qurğusunun quraşdırılması
Pan və əyilmə qurğusunun quraşdırılması
Pan və əyilmə qurğusunun quraşdırılması

Qalan qutu mötərizəsi, şəkildə göstərildiyi kimi bir kamera əsası olaraq xidmət etmək üçün kiçik bir taxta lövhəsinə vidalana bilər. Nəhayət, pan servo, hər iki tərəfdə bir servo bağlamaq üçün ən azı iki qoz -fındıq və bolt istifadə edərək qalan qutu braketinin içərisinə quraşdırılır.

Addım 9: Pan və Tilt Montajını tel edin və sınayın

Pan və Tilt Qurğusunu Tel edin və Test edin
Pan və Tilt Qurğusunu Tel edin və Test edin

Servoları sxemə görə bağlamaq üçün, orijinal qadın konnektorlarını servodan kəsmək və sonra Nano sancaqlarına bağlı olan siqnal və torpaq xətlərini əldə etmək üçün bəzi qadın DuPont tullanan uclarını istifadə etmək ən qısa yoldur.

Nano, servoları USB -dən gücləndirmək üçün 5V -da kifayət qədər cərəyana malik deyil, buna görə əlavə təchizat tövsiyə olunur. Bu 4.8-7.2 Volt aralığında bir şey ola bilər. Məsələn, dörd AA batareya (seriyalı) yaxşı işləyəcək. Bir dəzgah təchizatı və ya divar siğili də yaxşı bir seçimdir.

Buraya PanTiltTest.ino olaraq əlavə edilən sadə nümunə Arduino IDE -də serial monitordan iki servonun idarə olunmasını yoxlamaq üçün istifadə edilə bilər. Nümunə kodunda göstərilən 9600 saniyəyə uyğun olaraq monitorun ötürmə sürətini təyin edin. 0 ilə 180 dərəcə arasında bucaq dəyərlərinin daxil edilməsi servoları müvafiq olaraq yerləşdirəcək.

Nəhayət, USB Kamera Modulu (və ya digər sensor) izləmə tətbiqlərində istifadə üçün Pan-Tilt Assambleyasının U-Mötərizəsinə quraşdırıla bilər.

Addım 10: OpenCV ilə Üz İzləmə

Image
Image
Planeti Hack et
Planeti Hack et

Maşın görmə üz izləmə sistemi, alt sistemləri blok diaqramda göstərildiyi kimi birləşdirərək həyata keçirilə bilər. Arduino üçün SerialServoControl eskizini, insan üzünü izləmək üçün OpenCV, Qenerasiya, Arduino, USB Kamera və Pan/Tilt Assambleyasından istifadə edərək əlaqəli bir nümayişlə birlikdə aşağıdakı Sparkfun təlimatında tapa bilərsiniz. Demo, istifadəçi otaq ətrafında hərəkət edərkən də üzü video çərçivədə ortada saxlamaq üçün kameranın yerini dəyişmək üçün iki servo istifadə edir. Məsələn, C#-dəki kod, CamBot videosu üçün GitHub deposuna baxın.

Addım 11: Planeti sındırın

Bu Təlimatlardan zövq aldınızsa və hər ay poçt qutunuza belə bir elektronika və kompüter texnologiyası layihəsi göndərmək istəyirsinizsə, bura ABUNƏ OLaraq bizə qoşulun.

Uğurunuzu aşağıdakı şərhlərdə və ya HackerBoxes Facebook Səhifəsində paylaşın. Əlbəttə ki, hər hansı bir sualınız varsa və ya bir şeyə ehtiyacınız varsa bizə bildirin. HackerBoxes -un bir hissəsi olduğunuz üçün təşəkkür edirəm. Zəhmət olmasa təklif və rəylərinizi bildirin. HackerBoxes sizin qutularınızdır. Gəlin böyük bir şey edək!

Tövsiyə: