Мазмуну:

HackerBox 0024: Vision Quest: 11 кадам
HackerBox 0024: Vision Quest: 11 кадам

Video: HackerBox 0024: Vision Quest: 11 кадам

Video: HackerBox 0024: Vision Quest: 11 кадам
Video: HackerBox #0024: Vision Quest 2024, Июль
Anonim
HackerBox 0024: Vision Quest
HackerBox 0024: Vision Quest

Көрүү тапшырмасы - Бул айда HackerBox хакерлери Computer Vision жана Servo Motion Tracking менен эксперимент жүргүзүп жатышат. Бул Нускамада HackerBox #0024 менен иштөө боюнча маалымат камтылган, аны керектөөлөр бүтүп жатканда бул жерден алсаңыз болот. Ошондой эле, эгер сиз ай сайын ушул сыяктуу HackerBoxту почта кутуңузга алууну кааласаңыз, HackerBoxes.com сайтына жазылып, революцияга кошулуңуз!

HackerBox 0024 үчүн темалар жана окуу максаттары:

  • Computer Vision менен тажрыйба жүргүзүү
  • OpenCV (Computer Vision) орнотуу
  • Arduino IDEден Arduino Nano программалоо
  • Arduino Nano менен Servo Motors башкаруу
  • Механикалык пан жана эңкейиш курамын чогултуу
  • Микроконтроллер менен Pan жана Tilt Motion көзөмөлдөө
  • OpenCV аркылуу жүзгө көз салуу

HackerBoxes - бул DIY электроникасы жана компьютердик технологиялар үчүн ай сайын жазылуу кутучасы кызматы. Биз хоббисттер, жаратуучулар жана эксперименттербиз. Биз кыялдардын кыялкечтерибиз. HACK PLANET!

1 -кадам: HackerBox 0024: Мазмуну

HackerBox 0024: кутунун мазмуну
HackerBox 0024: кутунун мазмуну
  • HackerBoxes #0024 коллекциялык маалымдама картасы
  • Үч кронштейн панели жана эңкейиши
  • Аксессуары бар эки MG996R сервосу
  • Эки Алюминий тегерек Servo Couplers
  • Arduino Nano V3 - 5V, 16MHz, MicroUSB
  • USB кабели менен санарип камера чогултуу
  • Универсалдуу клип орнотуучу үч линза
  • Медициналык текшерүү Pen Light
  • Dupont Эркек/Аял секирүүчүлөр
  • MicroUSB кабели
  • Эксклюзивдүү OpenCV декалы
  • Эксклюзивдүү Dia de Muertos Decal

Башка пайдалуу нерселер:

  • Камера үчүн кичинекей жыгач тактайдын калдыгы
  • Лампочка, ширетүүчү жана негизги ширетүүчү шаймандар
  • Программалык куралдарды иштетүү үчүн компьютер

Баарынан маанилүүсү, сизге укмуштуу окуялар, DIY руху жана хакердик кызыгуу керек болот. Hardcore DIY электроникасы анча маанилүү эмес жана биз аны сиз үчүн сугарбайбыз. Максат - кемчилик эмес, прогресс. Укмуштуу окуялардан ырахат алганда, жаңы технологияны үйрөнүүдөн жана кээ бир долбоорлорду ишке ашыруудан чоң канааттануу алса болот. Биз ар бир кадамды акырындык менен кылууну, майда -чүйдөсүнө чейин ойлонууну жана эч качан жардам суроодон тартынбоону сунуштайбыз.

СУРООЛОР: Биз HackerBoxтун бардык мүчөлөрүнөн чоң ырайым суроону жакшы көрөбүз. Сураныч, колдоо менен байланышуудан мурун HackerBoxes веб -сайтындагы FAQ менен таанышуу үчүн бир нече мүнөт бөлүңүз. Биз, албетте, мүмкүн болушунча бардык мүчөлөргө жардам бергибиз келсе да, биздин колдоо каттарыбыздын көбү FAQда так жазылган жөнөкөй суроолорду камтыйт. Түшүнгөнүңүз үчүн рахмат!

2 -кадам: Компьютердик көрүнүш

Computer Vision
Computer Vision

Компьютердик көрүнүш-бул компьютерлердин санариптик сүрөттөрдөн же видеолордон жогорку деңгээлде түшүнүк алуусуна багытталган дисциплиналар аралык талаа. Инженердик көз караштан алганда, компьютердин көрүүсү адамдын визуалдык системасы кыла турган милдеттерди автоматташтырууга умтулат. Илимий дисциплина катары, компьютердин көрүүсү сүрөттөрдөн маалыматты чыгаруучу жасалма системалардын теориясына байланыштуу. Сүрөт маалыматтары видео сценарийлери, бир нече камерадан көрүүлөр же медициналык сканерден көп өлчөмдүү маалыматтар сыяктуу ар кандай формада болушу мүмкүн. Технологиялык дисциплина катары, компьютердин көрүүсү компьютердин көрүү системаларын куруу үчүн өзүнүн теорияларын жана моделдерин колдонууга умтулат. Компьютердик көрүүнүн суб-домендерине көрүнүштү калыбына келтирүү, окуяны аныктоо, видеого көз салуу, объектини таануу, 3D позасын баалоо, үйрөнүү, индекстөө, кыймылды баалоо жана сүрөттү калыбына келтирүү кирет.

Кызыктуусу, компьютердин көрүүсү компьютердик графикага тескери деп каралышы мүмкүн.

3 -кадам: иштетүү жана OpenCV

Иштетүү жана OpenCV
Иштетүү жана OpenCV

Кайра иштетүү - бул ийкемдүү программалык эскиз китеп жана визуалдык искусствонун контекстинде код жазууну үйрөнүү үчүн тил. Кайра иштетүү визуалдык искусство ичиндеги программалык сабаттуулукту жана технология ичиндеги визуалдык сабаттуулукту өнүктүрдү. Окуу жана прототиптөө үчүн Processingди колдонгон он миңдеген студенттер, сүрөтчүлөр, дизайнерлер, изилдөөчүлөр жана хоббисттер бар.

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

OpenCVди иштетүү ичинде File> Examples менюсунан "Мисалдарды кошуу" дегенди тандап, анан Китепканалар өтмөгүнүн астында Video жана OpenCV китепканаларын орнотуңуз. Негизги бетти көзөмөлдөө үчүн LiveCamTest мисалын ачыңыз. Мисалдарды иштетүү үчүн башка OpenCVлерди карап көрүңүз бул жерде.

Дагы Ресурстар:

Computer Vision менен баштоо - бул компьютердин көрүүсү менен чыгармачылык эксперимент жүргүзүү үчүн оңой кирүү пунктун камсыз кылган китеп долбоору. Бул компьютердин көрүү долбоорлорун куруу үчүн зарыл болгон кодду жана түшүнүктөрдү киргизет.

Python менен компьютерди көрүүнү программалоо - бул PCVдеги O'Reilly китеби, компьютерди көрүү үчүн ачык булак Python модулу.

OpenCV үйрөнүү

Компьютердик көрүнүш: Алгоритмдер жана колдонмолор

OpenCVди өздөштүрүү

Stanford Course CS231n Конволюциялык Нейрон Тармактары Көрүү Таануу үчүн (16 Видео)

Крис Урмсон TED Talk Айдоочусу жок унаа жолду кантип көрөт

4 -кадам: Arduino Nano микроконтроллер платформасы

Arduino Nano микроконтроллер платформасы
Arduino Nano микроконтроллер платформасы

Биз көмүскөбүздө жана эңкейиш камерабыздагы серволорду көзөмөлдөө үчүн жалпы микро контроллер платформасын колдоно алабыз. Arduino Nano-бул беттин үстүнө орнотулган, нанга ылайыктуу, кичирейтилген Arduino тактасы, интеграцияланган USB менен. Бул укмуштуудай толук өзгөчөлөнгөн жана бузууга оңой.

Өзгөчөлүктөрү:

  • Микроконтроллер: Atmel ATmega328P
  • Чыңалуу: 5V
  • Санариптик I/O казыктары: 14 (6 PWM)
  • Аналогдук кирүү казыктары: 8
  • I/O Pin күнүнө DC ток: 40 мА
  • Flash Memory: 32 KB (жүктөгүч үчүн 2КБ)
  • SRAM: 2 KB
  • EEPROM: 1 КБ
  • Сааттын ылдамдыгы: 16 МГц
  • Өлчөмү: 17mm x 43mm

Arduino Nanoнун бул өзгөчө варианты кара Robotdyn дизайны. Интерфейс көптөгөн мобилдик телефондордо жана планшеттерде колдонулган MicroUSB кабелдерине туура келген MicroUSB портунда.

Arduino Nanos орнотулган USB/Serial көпүрөсүнүн чипине ээ. Бул өзгөчө вариантта көпүрөнүн чипи CH340G. Белгилей кетчү нерсе, Arduino такталарында ар кандай USB/Сериялык көпүрөнүн башка түрлөрү колдонулат. Бул чиптер компьютердин USB портуна Arduino процессорунун чипиндеги сериялык интерфейс менен байланышууга мүмкүнчүлүк берет.

Компьютердин иштөө тутуму USB/Сериялык чип менен байланышуу үчүн Түзмөк Драйверин талап кылат. Айдоочу IDEге Arduino тактасы менен байланышууга мүмкүнчүлүк берет. Зарыл болгон конкреттүү түзмөк драйвери OS версиясына да, USB/Сериялык чиптин түрүнө да жараша болот. CH340 USB/Serial чиптери үчүн көптөгөн операциялык системалар үчүн драйверлер бар (UNIX, Mac OS X, же Windows). CH340 өндүрүүчүсү бул айдоочуларды бул жерде камсыздайт.

Ардуино Нанону биринчи жолу компьютериңиздин USB портуна туташтырганыңызда, жашыл жарык күйүп, көп өтпөй көк LED акырын өчүп башташы керек. Бул Nano жаңы Arduino Nano иштеп жаткан BLINK программасы менен алдын ала жүктөлгөндүктөн болот.

5 -кадам: Arduino комплекстүү өнүктүрүү чөйрөсү (IDE)

Arduino комплекстүү өнүктүрүү чөйрөсү (IDE)
Arduino комплекстүү өнүктүрүү чөйрөсү (IDE)

Эгерде сизде Arduino IDE орнотула элек болсо, аны Arduino.cc сайтынан жүктөп алсаңыз болот

Эгерде сиз Arduino экосистемасында иштөө үчүн кошумча киришүү маалыматын алгыңыз келсе, HackerBoxes стартердик семинарына көрсөтмөлөрдү карап чыгууну сунуштайбыз.

Нанону MicroUSB кабелине жана кабелдин экинчи учун компьютердеги USB портуна туташтырыңыз, Arduino IDE программасын ишке киргизиңиз, IDEден шаймандар> порт астындагы ылайыктуу USB портун тандаңыз (портунда "wchusb" бар болушу мүмкүн)). Ошондой эле куралдар> тактасынан IDEдеги "Arduino Nano" тандаңыз.

Акырында, коддун бир мисалын жүктөңүз:

File-> Examples-> Basics-> Blink

Бул чындыгында Наного жүктөлгөн код жана көк LEDди акырын өчүрүү үчүн азыр иштеп жаткан болушу керек. Демек, биз бул мисал кодун жүктөсөк, эч нерсе өзгөрбөйт. Анын ордуна, кодду бир аз өзгөртөлү.

Жакшылап карасаңыз, программа LEDди күйгүзүп, 1000 миллисекунд (бир секунд) күтөт, светодиодду өчүрөт, дагы бир секунда күтөт, анан баарын кайра жасайт - түбөлүк.

"Кечиктирүү (1000)" билдирүүлөрүнүн экөөнү тең "кечиктирүү (100)" деп өзгөртүү менен кодду өзгөртүңүз. Бул өзгөртүү светодиоддун он эсе тезирээк өчүшүнө алып келет, туурабы?

Келгиле, өзгөртүлгөн коддун үстүндөгү UPLOAD баскычын (жебе сөлөкөтүн) чыкылдатуу менен Nanoго өзгөртүлгөн кодду жүктөйбүз. Статус маалыматы үчүн төмөндөгү кодду караңыз: "компиляция", анан "жүктөө". Акыр -аягы, IDE "Жүктөө аяктады" дегенди көрсөтүшү керек жана сиздин LED тезирээк жарк этип турушу керек.

Андай болсо, куттуктайм! Сиз жөн гана камтылган кодуңуздун биринчи бөлүгүн бузуп алдыңыз.

Тез ирмөөчү версияңыз жүктөлүп жана иштеп баштагандан кийин, эмне үчүн кодду кайра өзгөртө аласызбы же жокпу, LED эки жолу тез өчүп, кайра кайталана электе бир нече секунд күтө аласызбы? Колдонуп көрүңүз! Башка үлгүлөр жөнүндө эмне айтууга болот? Каалаган жыйынтыкты элестетип, аны коддоп, пландаштырылгандай иштеши үчүн ийгиликке жеткенден кийин, сиз компетенттүү аппараттык хакер болууга карай чоң кадам жасадыңыз.

6 -кадам: Servo Motors

Servo Motors
Servo Motors

Серво моторлору жалпысынан бир нече жолу кайталануучу электрдик импульстар тарабынан башкарылат, бул жерде импульстардын туурасы сервонун абалын көрсөтүп турат. Импульстун туурасы модуляцияланган (PWM) башкаруу сигналын көбүнчө Arduino сыяктуу жалпы микроконтроллер түзөт.

Чакан хобби сервосу, мисалы MG996R, стандарттуу үч зымдуу туташуу аркылуу туташат: туруктуу токтун эки зымы жана башкаруу импульсун ташуу үчүн бир зым. MG996R сервосунда 4.8-7.2 VDC чыңалуусу бар.

7 -кадам: Пан жана эңкейиш механизмин чогултуу

Пан жана жантаюу механизмин чогултуу
Пан жана жантаюу механизмин чогултуу
  1. MG996R эки сервосун сумкасынан сууруп алып, камтылган аксессуарларды азырынча бөлүп коюңуз.
  2. Ар бир сервого алюминий, тегерек серво кошкучту тиркеңиз. Көңүл бургула, кошкучтар серводон өзүнчө баштыкчаларда келет. Кошкуч абдан бекем орнотулган. Куплерди servo өндүрүшүнүн аягына басуудан баштаңыз, андан кийин борбордук тешикке бураманы сайыңыз. Жипти тарткыла, конвейерди servo өндүрүшкө тартуу.
  3. Көңүл буруңуз, панелди эңкейтүү үчүн үч кашаа бар-эки куту кронштейн жана бир U кашаа.
  4. Коробка-кронштейндердин бирин алюминий тегерекке серволордун бирине орнотуңуз. Биз бул сервону пан серво деп атайбыз. Коробка-кронштейнди борбордук дубалы менен алюминий тегерекке каратып, коробканын башка эки дубалы көмөч серводон карама-каршы багытталат. Кутучанын ортоңку дубалындагы борбордук тешиктерди колдонуңуз. Бул түзүлүш панно сервого тиркелген куту-кронштейнди иштеткенден кийин айланып чыгууга мүмкүндүк бериши керек.
  5. Башка сервону (эңкейтүү серво) пано сервонун алюминий тегерегине бекитилген куту кронштейнине коюңуз. Эң аз дегенде эки гайканы жана болтту колдонуңуз, эңкейиш сервону - эки тараптан бирөө.
  6. U-кронштейнди кармап туруп, жездин "подшипнигин" U'дун чоң бурулуш тешиктеринин бири аркылуу киргизиңиз.
  7. U-кронштейнди башка чоң бурулуш орнотуучу тешик (подшипниги жок) жантайма сервонун алюминий тегерегине дал келгендей кылып, кутунун кронштейнинин ичиндеги эңкейиш сервого коюңуз.
  8. U-кронштейнди U-кронштейндин бир жагындагы алюминий чөйрөсүнө бекитүү үчүн бурамаларды колдонуңуз.
  9. U-кронштейндин экинчи тарабында, бир бураманы подшипник аркылуу жана ичиндеги кутуча кронштейниндеги кичинекей тешикке тартыңыз. Бул U-кронштейнге кийинчерээк жантаюу сервосу иштетилгенде кутуча-кронштейндин айланасында айланышына мүмкүндүк бериши керек.

8 -кадам: Пан жана Тент Ассамблеясын орнотуу

Пан жана жантаюу жыйынын монтаждоо
Пан жана жантаюу жыйынын монтаждоо
Пан жана жантаюу жыйынын монтаждоо
Пан жана жантаюу жыйынын монтаждоо

Калган кутуча-кронштейнди сүрөттө көрсөтүлгөндөй камера базасы катары кызмат кылуу үчүн кичинекей жыгач тактайдын сыныктарына бурап койсо болот. Акырында, панво сервосу ошол калган кутуча -кронштейнге орнотулат, кеминде эки гайканы жана болтту колдонуп, сервону кронштейнге бекитүү үчүн - ар бир тарапта.

9 -кадам: Пан жана Тент Ассамблеясын зым менен сынап көрүңүз

Пан жана Тент Ассамблеясын зым менен сынап көрүңүз
Пан жана Тент Ассамблеясын зым менен сынап көрүңүз

Серволорду схемага ылайык зым менен жабуу үчүн, серводон баштапкы аял коннекторлорун кесип, анан Nano казыктарына туташтырылган сигналды жана жер линияларын алуу үчүн кээ бир аялдык DuPont секиргичтерин колдонуу эң ылдам болот.

Нанодо USBдан серволорду иштетүү үчүн 5V булагына жетиштүү ток жок, ошондуктан кошумча камсыздоо сунушталат. Бул 4.8-7.2 Вольт диапазонундагы бир нерсе болушу мүмкүн. Мисалы, төрт АА батарейкасы (серияда) жакшы иштейт. Скамейка менен камсыздоо же дубал сөөлү да жакшы чечим.

Бул жерде PanTiltTest.ino катары тиркелген жөнөкөй мисал Arduino IDEдеги сериялык монитордон эки сервопростту башкарууну текшерүү үчүн колдонсо болот. Мисал кодунда орнотулган 9600bps ылдамдыгына монитордун ылдамдыгын коюңуз. 0 жана 180 градус ортосундагы бурчтук маанилерди киргизүү серверлерди ошого жараша жайгаштырат.

Акырында, USB Камера Модулу (же башка сенсор) көзөмөлдөө колдонмолорунда колдонуу үчүн Pan-Tilt Ассамблеясынын U-кронштейнине орнотулушу мүмкүн.

10 -кадам: OpenCV менен жүздү көзөмөлдөө

Image
Image
Планетаны бузуу
Планетаны бузуу

Машинанын көрүнүшүн көзөмөлдөө системасы блок-схемада көрсөтүлгөндөй подсистемаларды бириктирүү аркылуу ишке ашырылышы мүмкүн. Arduino үчүн SerialServoControl эскизин кийинки Sparkfun үйрөткүчүндө, OpenCV, Processing, Arduino, USB Камера жана Pan/Tilt Ассамблеясын колдонуп, адамдын жүзүн байкоо үчүн табууга болот. Колдонуучу бөлмөдө ары -бери жылып баратканда да, демо камеранын ордун өзгөртүү үчүн жүздү видео кадрдын борборунда кармоо үчүн эки сервопросту колдонот. Мисалы, C #деги код, CamBot видеосу үчүн GitHub репозиторийин караңыз.

11 -кадам: Планетаны бузуу

Эгерде сиз бул Instrucableдан ырахат алган болсоңуз жана ушул сыяктуу электроника жана компьютердик технологиялар долбоорлорун ай сайын почтаңызга жеткирүүнү кааласаңыз, анда бул жерге ЖАЗЫЛУУ менен бизге кошулуңуз.

Төмөндөгү комментарийлерде же HackerBoxes Facebook баракчасында ийгиликке жетиңиз. Албетте, эгерде сизде кандайдыр бир суроолор болсо же кандайдыр бир нерсеге жардам керек болсо, бизге кабарлаңыз. HackerBoxesтун бир бөлүгү болгонуңуз үчүн рахмат. Сураныч, сунуштарыңыз жана сын -пикирлериңиз келиңиз. HackerBoxes - бул сиздин кутуңуз. Келгиле, улуу нерсени жасайбыз!

Сунушталууда: