Съдържание:

HackerBox 0024: Визия Quest: 11 стъпки
HackerBox 0024: Визия Quest: 11 стъпки

Видео: HackerBox 0024: Визия Quest: 11 стъпки

Видео: HackerBox 0024: Визия Quest: 11 стъпки
Видео: HackerBox #0024: Vision Quest 2024, Ноември
Anonim
HackerBox 0024: Визия Quest
HackerBox 0024: Визия Quest

Vision Quest - Този месец хакерите HackerBox експериментират с Computer Vision и Servo Motion Tracking. Тази инструкция съдържа информация за работа с HackerBox #0024, която можете да вземете тук до изчерпване на количествата. Също така, ако искате да получавате такъв HackerBox точно във вашата пощенска кутия всеки месец, моля, абонирайте се на HackerBoxes.com и се присъединете към революцията!

Теми и учебни цели за HackerBox 0024:

  • Експериментирайте с Computer Vision
  • Настройване на OpenCV (Computer Vision)
  • Програмиране на Arduino Nano от Arduino IDE
  • Управление на серво мотори с Arduino Nano
  • Сглобяване на механичен монтажен панел и наклон
  • Управление на движението Pan и Tilt с микроконтролер
  • Извършване на проследяване на лица с помощта на OpenCV

HackerBoxes е услугата за месечен абонамент за електронна електроника и компютърни технологии. Ние сме любители, създатели и експериментатори. Ние сме мечтателите на мечтите. ХАК НА ПЛАНЕТАТА!

Стъпка 1: HackerBox 0024: Съдържание на кутията

HackerBox 0024: Съдържание на кутията
HackerBox 0024: Съдържание на кутията
  • HackerBoxes #0024 Колекционерска референтна карта
  • Сглобяване на три скоби и наклон
  • Два сервомотора MG996R с аксесоари
  • Две алуминиеви кръгли серво съединители
  • Arduino Nano V3 - 5V, 16MHz, MicroUSB
  • Монтаж на цифрова камера с USB кабел
  • Три обектива с универсална скоба
  • Лампа за медицинска инспекция
  • Мъжки/женски джъмпери Dupont
  • MicroUSB кабел
  • Изключителна наклейка за OpenCV
  • Изключителна наклейка Dia de Muertos

Някои други неща, които ще бъдат полезни:

  • Малък скрап от дървена дъска за основата на камерата
  • Поялник, спойка и основни инструменти за запояване
  • Компютър за стартиране на софтуерни инструменти

Най -важното е, че ще ви трябва чувство за приключение, дух „направи си сам“и хакерско любопитство. Хардкор DIY електрониката не е тривиално занимание и ние не я разводняваме вместо вас. Целта е напредък, а не съвършенство. Когато упорствате и се наслаждавате на приключението, голямо удоволствие може да бъде получено от изучаването на нови технологии и надявам се някои проекти да работят. Предлагаме да правите всяка стъпка бавно, като имате предвид детайлите и никога не се колебайте да помолите за помощ.

ЧЕСТО ЗАДАВАНИ ВЪПРОСИ: Обичаме да помолим всички членове на HackerBox за наистина голяма услуга. Моля, отделете няколко минути, за да прегледате често задаваните въпроси на уебсайта на HackerBoxes, преди да се свържете с поддръжката. Въпреки че очевидно искаме да помогнем на всички членове колкото е необходимо, повечето от имейлите ни за поддръжка включват прости въпроси, които са много ясно разгледани в често задаваните въпроси. Благодаря ви за разбирането!

Стъпка 2: Компютърно зрение

Компютърно зрение
Компютърно зрение

Компютърното зрение е интердисциплинарно поле, което се занимава с това как компютрите получават разбиране на високо ниво от цифрови изображения или видеоклипове. От гледна точка на инженерството, компютърното зрение се стреми да автоматизира задачи, които човешката визуална система може да изпълнява. Като научна дисциплина компютърното зрение се занимава с теорията зад изкуствените системи, които извличат информация от изображения. Данните за изображението могат да имат много форми, като видео поредици, изгледи от множество камери или многоизмерни данни от медицински скенер. Като технологична дисциплина компютърното зрение се стреми да приложи своите теории и модели за изграждането на системи за компютърно виждане. Поддомените на компютърното зрение включват реконструкция на сцена, откриване на събития, проследяване на видео, разпознаване на обекти, 3D оценка на поза, учене, индексиране, оценка на движение и възстановяване на изображението.

Интересно е да се отбележи, че компютърното зрение може да се счита за обратното на компютърната графика.

Стъпка 3: Обработка и OpenCV

Обработка и OpenCV
Обработка и OpenCV

Обработката е гъвкав софтуерен скицник и език за изучаване на кодирането в контекста на визуалните изкуства. Обработката е насърчила софтуерната грамотност във визуалните изкуства и визуалната грамотност в рамките на технологиите. Има десетки хиляди студенти, художници, дизайнери, изследователи и любители, които използват Processing за обучение и създаване на прототипи.

OpenCV (Open Source Computer Vision Library) е софтуерна библиотека с отворен код за компютърно виждане и машинно обучение. OpenCV е създаден, за да осигури обща инфраструктура за приложения за компютърно зрение и да ускори използването на машинното възприятие в търговските продукти. Библиотеката на OpenCV има повече от 2500 оптимизирани алгоритми, които включват изчерпателен набор от класически и най-съвременни алгоритми за компютърно зрение и машинно обучение. Тези алгоритми могат да се използват за откриване и разпознаване на лица, идентифициране на обекти, класифициране на човешките действия във видеоклипове, проследяване на движенията на камерата, проследяване на движещи се обекти и т.н.

Инсталирайте OpenCV в рамките на Обработка от менюто Файл> Примери, като изберете „Добавяне на примери“и след това в раздела Библиотеки, инсталирайки както видео, така и OpenCV библиотеките. Отворете примера LiveCamTest за основно проследяване на лица. Вижте някои други примери за обработка на OpenCV тук.

Още ресурси:

Първи стъпки с Computer Vision е книжен проект, осигуряващ лесна входна точка за творчески експерименти с компютърното зрение. Той въвежда кода и концепциите, необходими за изграждането на проекти за компютърно зрение.

Програмирането на Computer Vision с Python е книга на O'Reilly за PCV, Python модул с отворен код за компютърно зрение.

Изучаване на OpenCV

Компютърно виждане: Алгоритми и приложения

Овладяване на OpenCV

Станфордски курс CS231n Конволюционни невронни мрежи за визуално разпознаване (16 видеоклипа)

Крис Урмсън TED Talk Как кола без шофьор вижда пътя

Стъпка 4: Платформа за микроконтролер Arduino Nano

Платформа за микроконтролер Arduino Nano
Платформа за микроконтролер Arduino Nano

Можем да използваме всяка обща платформа за микроконтролер за управление на серво в нашата система за задвижване и накланяне на камера. Arduino Nano е миниатюризирана дъска Arduino с повърхностен монтаж, подходяща за макет, с вграден USB. Той е невероятно пълнофункционален и лесен за хакване.

Характеристика:

  • Микроконтролер: Atmel ATmega328P
  • Напрежение: 5V
  • Цифрови I/O пинове: 14 (6 PWM)
  • Изводи за аналогов вход: 8
  • DC ток на I/O Pin: 40 mA
  • Флаш памет: 32 KB (2KB за буутлоудъра)
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • Тактова честота: 16 MHz
  • Размери: 17мм х 43мм

Този конкретен вариант на Arduino Nano е черният дизайн на Robotdyn. Интерфейсът е чрез вграден MicroUSB порт, който е съвместим със същите MicroUSB кабели, използвани с много мобилни телефони и таблети.

Arduino Nanos разполага с вграден USB/сериен мост чип. В този конкретен вариант мостният чип е CH340G. Имайте предвид, че има различни други видове USB/серийни мостови чипове, използвани на различните видове платки Arduino. Тези чипове ви позволяват USB порта на компютъра да комуникира със серийния интерфейс на процесорния чип на Arduino.

Операционната система на компютъра изисква драйвер за устройство за комуникация с USB/сериен чип. Драйверът позволява на IDE да комуникира с платката Arduino. Конкретният драйвер на устройството, който е необходим, зависи както от версията на операционната система, така и от типа USB/сериен чип. За CH340 USB/серийни чипове има налични драйвери за много операционни системи (UNIX, Mac OS X или Windows). Производителят на CH340 доставя тези драйвери тук.

Когато включите за първи път Arduino Nano в USB порт на вашия компютър, зеленият индикатор за захранване трябва да светне и малко след това синият светодиод трябва да започне да мига бавно. Това се случва, защото Nano е предварително заредена с програмата BLINK, която работи на чисто новия Arduino Nano.

Стъпка 5: Интегрирана среда за развитие на Arduino (IDE)

Интегрирана среда за развитие на Arduino (IDE)
Интегрирана среда за развитие на Arduino (IDE)

Ако все още не сте инсталирали Arduino IDE, можете да го изтеглите от Arduino.cc

Ако искате допълнителна уводна информация за работа в екосистемата Arduino, предлагаме да проверите инструкциите за работилницата за стартиране на HackerBoxes.

Включете Nano в MicroUSB кабела, а другия край на кабела в USB порт на компютъра, стартирайте софтуера Arduino IDE, изберете подходящия USB порт в IDE под инструменти> порт (вероятно име с "wchusb" в него). Също така изберете „Arduino Nano“в IDE под инструменти> дъска.

Накрая заредете парче примерен код:

Файл-> Примери-> Основи-> Мигане

Това всъщност е кодът, който е предварително инсталиран на Nano и трябва да работи точно сега, за да мига бавно синия светодиод. Съответно, ако заредим този примерен код, нищо няма да се промени. Вместо това нека променим малко кода.

Ако се вгледате внимателно, можете да видите, че програмата включва светодиода, изчаква 1000 милисекунди (една секунда), изключва светодиода, изчаква още една секунда и след това прави всичко отново - завинаги.

Променете кода, като промените двата израза "delay (1000)" на "delay (100)". Тази модификация ще накара светодиода да мига десет пъти по -бързо, нали?

Нека заредим модифицирания код в Nano, като кликнете върху бутона UPLOAD (иконата със стрелка) точно над променения код. Гледайте под кода за информация за състоянието: „компилиране“и след това „качване“. В крайна сметка IDE трябва да показва „Качването е завършено“и вашият светодиод трябва да мига по -бързо.

Ако е така, поздравления! Току -що сте хакнали първото си парче вграден код.

След като вашата версия за бързо мигане се зареди и работи, защо да не видите дали можете да промените кода отново, за да накарате светодиода да мига бързо два пъти и след това да изчакате няколко секунди, преди да повторите? Пробвам! Какво ще кажете за някои други модели? След като успеете да визуализирате желания резултат, да го кодирате и да го наблюдавате, за да работи по план, вие сте направили огромна стъпка към превръщането си в компетентен хардуер хакер.

Стъпка 6: Серво мотори

Серво мотори
Серво мотори

Серво двигателите обикновено се управляват от серия от повтарящи се електрически импулси, където ширината на импулсите показва позицията на серво. Контролният сигнал с модулирана широчина на импулса (PWM) често се генерира от общ микроконтролер като Arduino.

Малки хоби серво, като например MG996R, са свързани чрез стандартна трипроводна връзка: два проводника за захранване с постоянен ток и един проводник за пренасяне на управляващите импулси. Сервомоторите MG996R имат работно напрежение от 4.8-7.2 VDC.

Стъпка 7: Сглобяване на механизма за панорамиране и накланяне

Сглобяване на механизма за накланяне и накланяне
Сглобяване на механизма за накланяне и накланяне
  1. Извадете двата сервомотора MG996R от чантите им и оставете настрана включените аксесоари засега.
  2. Прикрепете алуминиев, кръгъл серво съединител към всяко серво. Обърнете внимание, че съединителите се предлагат в отделни торбички от сервомоторите. Съединителят е много плътно прилепнал. Започнете, като натиснете съединителя към края на серво изхода и след това вкарайте винт в централния отвор. Затегнете резбата, за да изтеглите съединителя към серво изхода.
  3. Обърнете внимание, че има три скоби за монтажа с накланяне на панорама-две скоби за кутия и една U-скоба.
  4. Монтирайте една от скобите на кутията върху алуминиевия кръг за едно от сервоустройствата. Това серво ще го наречем пан серво. Ориентирайте скобата на кутията с централната й стена към алуминиевия кръг, така че другите две стени на скобата да са обърнати далеч от сервото на тигана. Използвайте централните отвори на средната стена на скобата на кутията. Тази подредба трябва да позволи на сервопривода на тигана да завърти прикрепената скоба на кутията, след като се задейства.
  5. Поставете другото серво (наклонено серво) в скобата на кутията, която е прикрепена към алуминиевия кръг на серво. Използвайте поне две гайки и болтове, за да закрепите сервопривода за накланяне - по един от всяка страна.
  6. Като държите U-скобата, поставете месинговия „лагер“от вътрешната страна на U през един от големите отвори за монтаж на шарнири.
  7. Поставете U-скобата с лагера върху сервопривода за накланяне, който е вътре в скобата на кутията, така че другият голям отвор за монтаж на шарнира (този без лагера) да се подравнява с алуминиевия кръг на серво-наклона.
  8. Използвайте винтове, за да прикрепите U-скобата към алуминиевия кръг от едната страна на U-скобата.
  9. От другата страна на U-скобата, затегнете един винт през лагера и в малкия отвор в скобата на кутията вътре. Това би трябвало да позволи на U-скобата да се завърти около скобата на кутията по-късно, когато се задейства накланящото серво.

Стъпка 8: Монтиране на панела и наклона

Монтиране на модула Pan and Tilt
Монтиране на модула Pan and Tilt
Монтиране на модула Pan and Tilt
Монтиране на модула Pan and Tilt

Останалата кутия-скоба може да се завинтва към малък скрап от дървена дъска, за да служи като основа на камерата, както е показано на изображението. И накрая, сервото на тигана е монтирано в тази останала скоба на кутията, като се използват поне две гайки и болтове за закрепване на серво към скобата - по един от всяка страна.

Стъпка 9: Свържете и тествайте панела за накланяне и накланяне

Извършете проводник и тествайте панела за накланяне и накланяне
Извършете проводник и тествайте панела за накланяне и накланяне

За да свържете проводниците в съответствие със схемата, най -бързо е просто да отрежете оригиналните женски конектори от сервомоторите и след това да използвате някои женски краища на джъмпера DuPont, за да получите сигнала и заземяващите линии, прикрепени към Nano щифтовете.

Nano няма достатъчно ток на 5V захранването, за да захранва сервомоторите от USB, така че се препоръчва допълнително захранване. Това може да бъде всичко в диапазона 4,8-7,2 волта. Например, четири батерии тип АА (последователно) ще работят добре. Поставка за пейка или брадавица за стена също е добър избор.

Простият примерен код на Arduino, прикрепен тук като PanTiltTest.ino, може да се използва за тестване на управлението на двата сервомотора от серийния монитор на Arduino IDE. Задайте скоростта на предаване на монитора да съответства на 9600bps, зададени в примерния код. Въвеждането на стойности на ъгъла между 0 и 180 градуса ще постави съответно сервомоторите.

И накрая, модулът на USB камерата (или друг сензор) може да бъде монтиран към U-скобата на модула Pan-Tilt за използване при проследяване на приложения.

Стъпка 10: Проследяване на лица с OpenCV

Image
Image
Хакнете планетата
Хакнете планетата

Система за проследяване на лицето на машинно зрение може да бъде внедрена чрез комбиниране на подсистеми, както е показано на блоковата диаграма. Скицата на SerialServoControl за Arduino може да бъде намерена в следния урок Sparkfun заедно със свързана демонстрация, използваща OpenCV, Processing, Arduino, USB камера и Pan/Tilt монтаж за проследяване на човешко лице. Демото използва два сервомотора за преместване на камерата, за да поддържа лицето центрирано във видео кадъра, дори когато потребителят се движи из стаята. Например код в C#, вижте хранилището на GitHub за видеоклипа CamBot.

Стъпка 11: Хакнете планетата

Ако сте се наслаждавали на този Instrucable и искате да получавате кутия с проекти за електроника и компютърни технологии като тази всеки месец директно във вашата пощенска кутия, моля, присъединете се към нас чрез АБОНИРАНЕ ТУК.

Протегнете ръка и споделете успеха си в коментарите по -долу или на страницата на HackerBoxes във Facebook. Със сигурност ни уведомете, ако имате въпроси или имате нужда от помощ за нещо. Благодарим ви, че сте част от HackerBoxes. Моля, продължавайте да получавате вашите предложения и обратна връзка. HackerBoxes са ВАШИТЕ кутии. Нека направим нещо страхотно!

Препоръчано: