Мазмұны:

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

Бейне: HackerBox 0024: Vision Quest: 11 қадам

Бейне: HackerBox 0024: Vision Quest: 11 қадам
Бейне: HackerBox #0024: Vision Quest 2024, Шілде
Anonim
HackerBox 0024: Vision Quest
HackerBox 0024: Vision Quest

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 басқару
  • Механикалық панельді және көлбеу қондырғыны жинау
  • Микроконтроллер көмегімен жылжу мен көлбеу қозғалысты басқару
  • OpenCV көмегімен бет бақылауды орындау

HackerBoxes - бұл DIY электроникасы мен компьютерлік технологиялар үшін ай сайынғы жазылым қорапшасы. Біз әуесқоймыз, жасаушылар мен эксперименттер. Біз армандардың армандарымыз. Планетаны бұзыңыз!

1 -қадам: HackerBox 0024: қораптың мазмұны

HackerBox 0024: қораптың мазмұны
HackerBox 0024: қораптың мазмұны
  • HackerBoxes #0024 Жиналатын анықтама картасы
  • Үш кронштейндік панель және көлбеу жинақ
  • Аксессуарлары бар екі MG996R сервосы
  • Алюминийден жасалған екі дөңгелек серво муфтасы
  • Arduino Nano V3 - 5V, 16 МГц, MicroUSB
  • USB кабелі бар сандық камера жиынтығы
  • Әмбебап қысқыш қондырғысы бар үш линза
  • Медициналық бақылау қаламы
  • Дюпон ерлер/әйелдер секіргіштері
  • MicroUSB кабелі
  • Эксклюзивті OpenCV декалы
  • Эксклюзивті Dia de Muertos жапсырмасы

Пайдалы болатын басқа да нәрселер:

  • Камера негізіне арналған ағаштан жасалған кішкене сынық
  • Пісіру үтігі, дәнекерлеу және негізгі дәнекерлеу құралдары
  • Бағдарламалық құралдарды іске қосуға арналған компьютер

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

Жиі қойылатын СҰРАҚТАР: Біз HackerBox -тың барлық мүшелерінен шын ықыласпен сұрағымыз келеді. Қолдау қызметіне хабарласпас бұрын HackerBoxes веб -сайтындағы Жиі қойылатын сұрақтарды қарау үшін бірнеше минут бөліңіз. Біз барлық мүшелерге қажет болғанша көмектескіміз келетіні анық болса да, біздің қолдау электрондық хаттарымыздың көпшілігінде ЖҚС -те нақты көрсетілген қарапайым сұрақтар бар. Түсінгеніңізге рахмет!

2 -қадам: компьютерлік көру

Компьютерлік көру
Компьютерлік көру

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

Бір қызығы, компьютерлік көруді компьютерлік графиканың керісінше деп санауға болады.

3 -қадам: өңдеу және OpenCV

Өңдеу және OpenCV
Өңдеу және OpenCV

Өңдеу - бұл икемді бағдарламалық жасақтама нобайы және бейнелеу өнері контекстінде кодтауды үйренуге арналған тіл. Өңдеу бейнелеу өнеріндегі бағдарламалық сауаттылықты және технологиядағы визуалды сауаттылықты арттырды. Он мыңдаған студенттер, суретшілер, дизайнерлер, зерттеушілер мен әуесқойлар бар, олар өңдеу мен прототиптерді өңдеу үшін пайдаланады.

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

OpenCV файлын өңдеу> «Мысалдар» мәзірінен «Мысалдар қосу» тармағын таңдап, содан кейін «Кітапханалар» қойындысының астында Бейнені де, OpenCV кітапханаларын да орнатыңыз. Негізгі бет бақылау үшін LiveCamTest мысалын ашыңыз. Мысалдарды өңдеу үшін басқа OpenCV -ді қараңыз.

Басқа ресурстар:

Компьютерлік көруді бастау - бұл компьютерлік көру арқылы шығармашылық тәжірибе жасау үшін кіру нүктесін ұсынатын кітап жобасы. Ол компьютерлік көру жобаларын құруға қажетті код пен түсініктерді енгізеді.

Python көмегімен компьютерлік көруді бағдарламалау - бұл PCV -дегі O'Reilly кітабы, компьютерді көруге арналған Python модулінің ашық көзі.

OpenCV үйрену

Компьютерлік көзқарас: алгоритмдер мен қосымшалар

OpenCV бағдарламасын меңгеру

Stanford Course CS231n визуалды тануға арналған конволюциялық нейрондық желілер (16 бейне)

Крис Урмсон TED Talk Жүргізушісіз көлік жолды қалай көреді

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

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

Біз табада және көлбеу камерада серверлерді басқару үшін кез келген жалпы микроконтроллер платформасын қолдана аламыз. Arduino Nano-бұл бетке орнатылған, нанға ыңғайлы, миниатюрленген Arduino тақтасы. Бұл таңғажайып толық функционалды және бұзуға оңай.

Ерекше өзгешеліктері:

  • Микроконтроллер: Atmel ATmega328P
  • Кернеу: 5 В.
  • Сандық енгізу -шығару түйреуіштері: 14 (6 PWM)
  • Аналогты кіріс түйреуіштері: 8
  • Енгізу -шығару түйісіндегі тұрақты ток: 40 мА
  • Флэш -жады: 32 Кбайт (жүктеуші үшін 2 КБ)
  • SRAM: 2 Кбайт
  • EEPROM: 1 Кбайт
  • Сағат жиілігі: 16 МГц
  • Өлшемдері: 17 x 43 мм

Arduino Nano -ның бұл ерекше нұсқасы - қара Robotdyn дизайны. Интерфейс көптеген ұялы телефондар мен планшеттерде қолданылатын MicroUSB кабельдерімен үйлесімді борттағы MicroUSB порты арқылы жасалған.

Arduino Nanos-та кіріктірілген USB/сериялық көпір чипі бар. Бұл нақты нұсқада көпір чипі CH340G болып табылады. Әр түрлі Arduino тақталарында USB/Serial көпір чиптерінің басқа түрлері бар екенін ескеріңіз. Бұл чиптер компьютердің USB порты Arduino процессор чипіндегі сериялық интерфейспен байланысуға мүмкіндік береді.

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

Arduino Nano -ны компьютердің USB портына алғаш рет қосқанда, жасыл қуат шамы жануы керек және көп ұзамай көк жарық диоды баяу жыпылықтай бастайды. Бұл 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» таңдаңыз.

Соңында, мысал кодының бір бөлігін жүктеңіз:

Файл-> Мысалдар-> Негізгі-> Жыпылықтау

Бұл шын мәнінде наноға алдын ала жүктелген код және көк жарық диодты баяу жыпылықтау үшін дәл қазір жұмыс істеуі керек. Тиісінше, егер біз осы мысал кодын жүктесек, ештеңе өзгермейді. Оның орнына кодты сәл өзгертейік.

Зер салып қарасаңыз, бағдарлама жарық диодты қосады, 1000 миллисекунд күтеді (бір секунд), жарық диодты өшіреді, екінші секунд күтеді, содан кейін бәрі қайтадан - мәңгі жасайды.

«Кешігу (1000)» операторының екеуін де «кешіктіру (100)» етіп өзгерту арқылы кодты өзгертіңіз. Бұл модификация жарықдиодты он есе жылдам жыпылықтайды, иә?

Өзгертілген кодтың үстіндегі UPLOAD түймесін (көрсеткі белгісі) басу арқылы өзгертілген кодты наноға жүктейік. Күй туралы ақпарат алу үшін кодты қараңыз: «құрастыру», содан кейін «жүктеу». Ақыр соңында, IDE «Жүктеу аяқталды» деп көрсетуі керек және сіздің жарық диоды тез жыпылықтауы керек.

Олай болса, құттықтаймын! Сіз енді енгізілген кодтың бірінші бөлігін бұздыңыз.

Жылдам жыпылықтайтын нұсқаңыз жүктеліп, жұмыс істеп тұрған кезде, светодиоды екі рет тез жыпылықтап, қайталанбас бұрын бірнеше секунд күту үшін кодты қайта өзгертуге болатынын неге білмейсіз? Байқап көріңіз! Басқа үлгілер туралы не деуге болады? Қажетті нәтижені елестету, оны кодтау және жоспарланғандай жұмыс жасауын бақылай отырып, сіз сауатты аппараттық хакер болуға үлкен қадам жасадыңыз.

6 -қадам: Servo Motors

Серво моторлары
Серво моторлары

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

MG996R сияқты шағын әуесқойлық серво стандартты үш сымды байланыс арқылы қосылады: тұрақты ток көзіне арналған екі сым және басқару импульстерін тасымалдауға арналған бір сым. MG996R сервосының жұмыс кернеуі 4,8-7,2 VDC болады.

7 -қадам: панельді және қисайту механизмін жинау

Тегістеу мен еңкейту механизмін құрастыру
Тегістеу мен еңкейту механизмін құрастыру
  1. MG996R сервосының екеуін де сөмкелерінен шығарып алыңыз және қосалқы құралдарды әзірге қойыңыз.
  2. Әр сервоға алюминий, дөңгелек серво қосқышын бекітіңіз. Муфталар серводардан бөлек сөмкелерде келетінін ескеріңіз. Қосқыш өте тығыз бекітілген. Іліністі серво шығысының соңына басып бастаңыз, содан кейін бұранданы орталық тесікке бұраңыз. Қосқышты серво шығысына тарту үшін жіпті қатайтыңыз.
  3. Айналмалы қисайту үшін үш кронштейн бар екенін ескеріңіз-екі қорапты жақша және бір U тірегі.
  4. Қорапша кронштейндерінің біреуін сервоға арналған алюминий шеңберге орнатыңыз. Біз бұл серводы панно серво деп атаймыз. Қорап кронштейнін орталық қабырғасы алюминийден жасалған шеңберге қаратып, қорап кронштейнінің басқа екі қабырғасы табаның сервоінен қарама-қарсы бағытталуы керек. Қорап кронштейнінің ортаңғы қабырғасындағы орталық тесіктерді қолданыңыз. Бұл реттелу табақ сервосын бекітілген қорапша кронштейнін іске қосқаннан кейін айналдыруға мүмкіндік беруі керек.
  5. Басқа сервоны (көлбеу серво) кастрөлдің алюминий шеңберіне бекітілген қорапша кронштейніне орналастырыңыз. Көлбеу сервоны бекіту үшін кемінде екі гайка мен болтты қолданыңыз - әр жағынан бір.
  6. U-кронштейнін ұстап тұрып, жастықшаның «мойынтірегін» U-ның үлкен бұрылыс бекіту тесіктерінің біріне салыңыз.
  7. Мойынтірегі бар U тіреуішін қорапша кронштейнінің ішіндегі көлбеу сервоға қойыңыз, осылайша басқа үлкен бұрылыс орнату тесігі (мойынтірегі жоқ) көлбеу серводегі алюминий шеңбермен тураланады.
  8. U-кронштейнінің бір жағындағы алюминий шеңберге бекіту үшін бұрандаларды қолданыңыз.
  9. U-кронштейннің екінші жағында мойынтірек арқылы және оның ішіндегі қорап-кронштейндегі кішкене тесікке бір бұранданы қатайтыңыз. Бұл U-кронштейні кейінірек көлбеу серво іске қосылған кезде қорапша кронштейнінің айналасында айналуына мүмкіндік беруі керек.

8 -қадам: панель мен еңкейту жинағын орнату

Панельді және көлбеу қондырғыны орнату
Панельді және көлбеу қондырғыны орнату
Панорамалық және көлбеу қондырғыны орнату
Панорамалық және көлбеу қондырғыны орнату

Қалған қорапшаны суретте көрсетілгендей камера негізі ретінде қызмет ету үшін ағаш тақтаның кішкене қалдықтарына бұрап қоюға болады. Ақырында, табақша сервопривод сол жақ қорапшаға орнатылады, кем дегенде екі гайка мен болтты қолданып, сервоны кронштейнге бекітеді - әр жағынан.

9 -қадам: Панельді және көлбеу жинақты сыммен тексеріңіз

Панельді және еңкейту жинағын сыммен тексеріңіз
Панельді және еңкейту жинағын сыммен тексеріңіз

Сервоға схемаға сәйкес сымдарды қосу үшін, серводардан бастапқы аналық коннекторларды қиып алу керек, содан кейін Nano түйреуіштеріне бекітілген сигнал мен жер сызықтарын алу үшін DuPont антеннасының кейбір ұштарын қолданыңыз.

Nano -да 5В кернеуінде серво USB -ден қуат алу үшін жеткілікті ток жоқ, сондықтан қосымша қорек ұсынылады. Бұл 4,8-7,2 Вольт диапазонындағы кез келген нәрсе болуы мүмкін. Мысалы, төрт АА батареясы (сериялы) жақсы жұмыс істейді. Орындықтар немесе қабырғаға арналған сиқыр-бұл жақсы таңдау.

Мұнда PanTiltTest.ino ретінде қосылған Arduino кодының қарапайым мысалы Arduino IDE сериялы мониторынан екі сервопроекторды басқаруды тексеру үшін пайдаланылуы мүмкін. Монитордың жіберу жылдамдығын мысал кодында орнатылған 9600bps -ке сәйкес келетін етіп орнатыңыз. 0 мен 180 градус арасындағы бұрыштық мәндерді енгізу серверлерді тиісінше орналастырады.

Ақырында, USB камера модулін (немесе басқа сенсорды) қадағалау қосымшаларында пайдалану үшін панельді қисайтудың U-кронштейніне орнатуға болады.

10 -қадам: OpenCV көмегімен бетті бақылау

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

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

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

Егер сіз осы нұсқаулықты ұнатсаңыз және ай сайын электронды пошта жәшігіңіздің электронды пошта жәшігіне жеткізілуін қаласаңыз, бізге осында ЖАЗЫЛУ арқылы қосылыңыз.

Қол жеткізіңіз және төмендегі түсініктемелерде немесе HackerBoxes Facebook бетіндегі табыстарыңызбен бөлісіңіз. Егер сізде қандай да бір сұрақтар туындаса немесе көмек қажет болса, бізге хабарлаңыз. HackerBoxes бағдарламасына қатысқаныңыз үшін рахмет. Ұсыныстарыңыз бен пікірлеріңіздің келуін қадағалаңыз. HackerBoxes - бұл сіздің қораптарыңыз. Керемет нәрсе жасайық!

Ұсынылған: