Taula de continguts:

HackerBox 0024: Vision Quest: 11 passos
HackerBox 0024: Vision Quest: 11 passos

Vídeo: HackerBox 0024: Vision Quest: 11 passos

Vídeo: HackerBox 0024: Vision Quest: 11 passos
Vídeo: HackerBox #0024: Vision Quest 2024, Desembre
Anonim
HackerBox 0024: Vision Quest
HackerBox 0024: Vision Quest

Vision Quest: aquest mes, els hackers de HackerBox estan experimentant amb la visió per ordinador i el seguiment del moviment servo. Aquest manual instructiu conté informació per treballar amb HackerBox # 0024, que podeu recollir aquí fins a esgotar els subministraments. A més, si voleu rebre un HackerBox com aquest a la vostra bústia de correu cada mes, subscriviu-vos a HackerBoxes.com i uniu-vos a la revolució.

Temes i objectius d'aprenentatge per a HackerBox 0024:

  • Experimentar amb visió per ordinador
  • Configuració d'OpenCV (Visió per Computador)
  • Programació de l'Arduino Nano des de l'IDE Arduino
  • Control de servomotors amb l’Arduino Nano
  • Muntatge d’un conjunt mecànic de panell i inclinació
  • Control de moviments de panoràmica i inclinació amb un microcontrolador
  • Realització del seguiment facial mitjançant OpenCV

HackerBoxes és el servei de caixa de subscripció mensual per a electrònica de bricolatge i tecnologia informàtica. Som aficionats, creadors i experimentadors. Som els somiadors dels somnis. HACK EL PLANETA!

Pas 1: HackerBox 0024: contingut de la caixa

HackerBox 0024: Contingut de la caixa
HackerBox 0024: Contingut de la caixa
  • HackerBoxes # 0024 Targeta de referència col·leccionable
  • Muntatge de panell i inclinació de tres suports
  • Dos servos MG996R amb accessoris
  • Dos servoacopladors circulars d'alumini
  • Arduino Nano V3 - 5 V, 16 MHz, MicroUSB
  • Muntatge de càmera digital amb cable USB
  • Tres lents amb clip de fixació universal
  • Llum de ploma d’inspecció mèdica
  • Jumpers masculins / femenins de Dupont
  • Cable MicroUSB
  • Etiqueta OpenCV exclusiva
  • Decal exclusiu Dia de Muertos

Algunes altres coses que us seran útils:

  • Petita ferralla de tauler de fusta per a la base de la càmera
  • Soldador, soldador i eines bàsiques de soldadura
  • Ordinador per executar eines de programari

El més important és que necessiteu un sentiment d’aventura, esperit de bricolatge i curiositat per part dels pirates informàtics. L’electrònica de bricolatge dur no és una recerca trivial i no l’emperem. L’objectiu és el progrés, no la perfecció. Quan persisteix i gaudeix de l’aventura, es pot obtenir una gran satisfacció a partir de l’aprenentatge de noves tecnologies i amb l’esperança que alguns projectes funcionin. Us suggerim fer cada pas lentament, tenint en compte els detalls i sense dubtar mai a demanar ajuda.

PREGUNTES FREQÜENTS: Ens agrada demanar un gran favor a tots els membres de HackerBox. Preneu-vos uns minuts per revisar les PMF del lloc web de HackerBoxes abans de contactar amb el servei d'assistència. Tot i que, òbviament, volem ajudar tots els membres tant com sigui necessari, la majoria dels nostres correus electrònics d’assistència impliquen preguntes senzilles que es tracten molt clarament a les PMF. Gràcies per entendre!

Pas 2: Visió per ordinador

Visió per ordinador
Visió per ordinador

La visió per ordinador és un camp interdisciplinari que tracta de com els ordinadors obtenen una comprensió d’alt nivell a partir d’imatges o vídeos digitals. Des de la perspectiva de l’enginyeria, la visió per ordinador busca automatitzar tasques que el sistema visual humà pot fer. Com a disciplina científica, la visió per computador es preocupa per la teoria que hi ha darrere dels sistemes artificials que extreuen informació d’imatges. Les dades de la imatge poden adoptar diverses formes, com ara seqüències de vídeo, visualitzacions de diverses càmeres o dades multidimensionals d’un escàner mèdic. Com a disciplina tecnològica, la visió per computador busca aplicar les seves teories i models per a la construcció de sistemes de visió per computador. Els subdominis de visió per ordinador inclouen la reconstrucció d’escenes, la detecció d’esdeveniments, el seguiment de vídeo, el reconeixement d’objectes, l’estimació de posades en 3D, l’aprenentatge, la indexació, l’estimació del moviment i la restauració d’imatges.

És interessant assenyalar que la visió per computador es pot considerar la inversa dels gràfics per ordinador.

Pas 3: Processament i OpenCV

Processament i OpenCV
Processament i OpenCV

Processing és un quadern de programari flexible i un llenguatge per aprendre a codificar en el context de les arts visuals. El processament ha promogut l’alfabetització de programari dins de les arts visuals i l’alfabetització visual dins de la tecnologia. Hi ha desenes de milers d’estudiants, artistes, dissenyadors, investigadors i aficionats que utilitzen el processament per aprendre i prototipar.

OpenCV (Open Source Computer Vision Library) és una biblioteca de programari de visió per ordinador i aprenentatge automàtic de codi obert. OpenCV es va crear per proporcionar una infraestructura comuna per a aplicacions de visió per computador i per accelerar l’ús de la percepció de la màquina en els productes comercials. La biblioteca OpenCV té més de 2500 algorismes optimitzats, que inclouen un conjunt complet d’algorismes de visió per computador i d’aprenentatge automàtic, tant clàssics com d’última generació. Aquests algoritmes es poden utilitzar per detectar i reconèixer cares, identificar objectes, classificar les accions humanes en vídeos, fer un seguiment dels moviments de la càmera, rastrejar objectes en moviment, etc.

Instal·leu OpenCV a Processament des del menú Fitxer> Exemples seleccionant "Afegeix exemples" i, a continuació, a la pestanya Biblioteques instal·lant les biblioteques de vídeo i OpenCV. Obriu l'exemple de LiveCamTest per al seguiment facial bàsic. Consulteu alguns altres exemples d’OpenCV per processar aquí.

Més recursos:

Introducció a la visió per ordinador és un projecte de llibre que proporciona un punt d’entrada fàcil per a l’experimentació creativa amb la visió per computador. Introdueix el codi i els conceptes necessaris per construir projectes de visió per computador.

Programació de visió per ordinador amb Python és un llibre d’O’Reilly sobre PCV, un mòdul Python de codi obert per a visió per ordinador.

Aprenentatge OpenCV

Visió per computador: algorismes i aplicacions

Dominar OpenCV

Stanford Course CS231n Xarxes neuronals convolucionals per al reconeixement visual (16 vídeos)

Chris Urmson TED Talk Com veu la carretera un cotxe sense conductor

Pas 4: plataforma de microcontroladors Arduino Nano

Plataforma de microcontroladors Nano Arduino
Plataforma de microcontroladors Nano Arduino

Podem utilitzar qualsevol plataforma de microcontroladors comuna per controlar servos a la nostra càmera panoràmica i inclinable. L'Arduino Nano és una placa Arduino miniaturitzada, compatible amb taulers de muntatge, amb superfície integrada i USB. És increïblement complet i fàcil de piratejar.

Característiques:

  • Microcontrolador: Atmel ATmega328P
  • Voltatge: 5V
  • Pins d'E / S digitals: 14 (6 PWM)
  • Pins d'entrada analògica: 8
  • Corrent continu per pin d'E / S: 40 mA
  • Memòria Flash: 32 KB (2 KB per al carregador d'arrencada)
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • Velocitat de rellotge: 16 MHz
  • Dimensions: 17 mm x 43 mm

Aquesta variant particular de l'Arduino Nano és el disseny negre de Robotdyn. La interfície és mitjançant un port MicroUSB integrat que és compatible amb els mateixos cables MicroUSB que s’utilitzen amb molts telèfons mòbils i tauletes.

Arduino Nanos inclou un xip pont USB / sèrie integrat. En aquesta variant en particular, el xip pont és el CH340G. Tingueu en compte que hi ha diversos altres tipus de xips de pont USB / sèrie que s’utilitzen en els diversos tipus de plaques Arduino. Aquests xips permeten que el port USB de l'ordinador es comuniqui amb la interfície sèrie del xip del processador d'Arduino.

El sistema operatiu d’un ordinador requereix un controlador de dispositiu per comunicar-se amb el xip USB / sèrie. El controlador permet a l'IDE comunicar-se amb la placa Arduino. El controlador de dispositiu específic que es necessita depèn tant de la versió del sistema operatiu com del tipus de xip USB / sèrie. Per als xips USB / sèrie CH340, hi ha controladors disponibles per a molts sistemes operatius (UNIX, Mac OS X o Windows). El fabricant del CH340 subministra aquests controladors aquí.

Quan connecteu l’Arduino Nano per primera vegada a un port USB de l’ordinador, el llum verd d’encesa s’ha d’encendre i poc després el LED blau hauria de començar a parpellejar lentament. Això passa perquè Nano està precarregat amb el programa BLINK, que s’executa al flamant Arduino Nano.

Pas 5: Entorn de desenvolupament integrat (IDE) Arduino

Entorn de desenvolupament integrat (IDE) Arduino
Entorn de desenvolupament integrat (IDE) Arduino

Si encara no teniu instal·lat l’IDE Arduino, el podeu descarregar des d’Arduino.cc

Si voleu informació introductòria addicional per treballar a l’ecosistema Arduino, us recomanem que consulteu les instruccions del Taller d’inici de HackerBoxes.

Connecteu el Nano al cable MicroUSB i l’altre extrem del cable a un port USB de l’ordinador, engegueu el programari Arduino IDE i seleccioneu el port USB adequat a l’IDE a Eines> port (probablement un nom amb "wchusb" al seu interior). També seleccioneu "Arduino Nano" a l'IDE sota eines> tauler.

Finalment, carregueu un fragment de codi d'exemple:

Fitxer-> Exemples-> Conceptes bàsics-> Parpellejar

Aquest és en realitat el codi que s’ha precarregat al Nano i que hauria d’executar-se ara mateix per parpellejar lentament el LED blau. En conseqüència, si carreguem aquest codi d'exemple, no canviarà res. En canvi, modificem una mica el codi.

Si ho mireu de prop, podeu veure que el programa encén el LED, espera 1000 mil·lisegons (un segon), apaga el LED, espera un segon i, tot seguit, ho fa tot de nou, per sempre.

Modifiqueu el codi canviant les instruccions "delay (1000)" per "delay (100)". Aquesta modificació farà que el LED parpellegi deu vegades més ràpid, oi?

Carregem el codi modificat a Nano fent clic al botó CARREGAR (la icona de fletxa) just a sobre del codi modificat. Mireu a sota del codi la informació d’estat: "compilació" i després "càrrega". Finalment, l'IDE hauria d'indicar "Càrrega completa" i el LED hauria de parpellejar més ràpidament.

Si és així, felicitats! Acabeu de piratejar el vostre primer fragment de codi incrustat.

Un cop carregada i executada la versió de parpelleig ràpid, per què no veieu si podeu tornar a canviar el codi per fer que el LED parpellegi ràpidament dues vegades i espereu un parell de segons abans de repetir-lo? Prova-ho! Què tal uns altres patrons? Un cop hàgiu aconseguit visualitzar el resultat desitjat, codificar-lo i observar-lo com funciona, heu fet un pas enorme cap a convertir-vos en un pirata informàtic competent.

Pas 6: servomotors

Servomotors
Servomotors

Els servomotors generalment es controlen mitjançant una sèrie d’impulsos elèctrics que es repeteixen on l’amplada dels impulsos indica la posició del servo. El senyal de control modulat per amplada de pols (PWM) sovint és generat per un microcontrolador comú com un Arduino.

Els petits servos hobby, com el MG996R, es connecten mitjançant una connexió estàndard de tres fils: dos cables per a una font d'alimentació de CC i un cable per transportar els impulsos de control. Els servos MG996R tenen una ràbia de tensió de funcionament de 4,8-7,2 VDC.

Pas 7: Muntatge del mecanisme de panoràmica i inclinació

Muntatge del mecanisme Pan i Tilt
Muntatge del mecanisme Pan i Tilt
  1. Traieu els dos servos MG996R de les bosses i deixeu de banda els accessoris inclosos.
  2. Connecteu un servoacoblador circular d'alumini a cada servo. Tingueu en compte que els acoblaments vénen en bosses separades dels servos. L'acoblament és molt ajustat. Comenceu prement l'acoblador a l'extrem de la sortida del servo i, a continuació, introduïu un cargol al forat central. Estrenyiu el fil per dibuixar l’acoblador a la sortida del servo.
  3. Tingueu en compte que hi ha tres suports per al conjunt d’inclinació panoràmica: dos suports de caixa i un suport en U.
  4. Muntar un dels suports de caixa al cercle d'alumini per a un dels servos. A aquest servo l'anomenarem servo pan. Orientar el suport de la caixa amb la seva paret central contra el cercle d'alumini de manera que les altres dues parets del suport de la caixa quedin allunyades del servo pan. Utilitzeu els forats centrals de la paret central del suport de la caixa. Aquesta disposició hauria de permetre al servo pan girar el suport de la caixa adjunt un cop accionat.
  5. Col·loqueu l'altre servo (servo inclinable) al suport de la caixa que s'uneix al cercle d'alumini del servo pan. Utilitzeu almenys dos femelles i perns per fixar el servo d'inclinació, un a cada costat.
  6. Agafant el suport en U, introduïu el "coixinet" de llautó des de l'interior de la U a través d'un dels grans forats de muntatge del pivot.
  7. Col·loqueu el suport en U amb el coixinet al servo inclinable que hi ha dins del suport de la caixa de manera que l’altre forat de muntatge de pivot gran (el que no té el coixinet) s’alini amb el cercle d’alumini del servo inclinable.
  8. Feu servir cargols per fixar el suport en U al cercle d'alumini d'un costat del suport en U.
  9. A l'altre costat del suport en U, estrenyeu un sol cargol a través del coixinet i introduïu-lo al petit forat del suport del quadre. Això hauria de permetre que el suport en U giri al voltant del suport de caixa més endavant quan s'activi el servo d'inclinació.

Pas 8: muntatge del conjunt Pan i Tilt

Muntatge del conjunt Pan i Tilt
Muntatge del conjunt Pan i Tilt
Muntatge del conjunt Pan i Tilt
Muntatge del conjunt Pan i Tilt

El suport de la caixa restant es pot cargolar a una petita ferralla de tauler de fusta perquè serveixi de base de càmera, tal com es mostra a la imatge. Finalment, el servo de pa es munta dins del suport de la caixa restant mitjançant almenys dos femelles i perns per fixar el servo al suport, un a cada costat.

Pas 9: connecteu i proveu el conjunt Pan i Tilt

Connecteu i proveu el conjunt Pan i Tilt
Connecteu i proveu el conjunt Pan i Tilt

Per connectar els servos d’acord amb l’esquema, és més ràpid tallar els connectors femenins originals dels servos i, a continuació, utilitzar alguns extrems de pont DuPont femella per obtenir les línies de senyal i terra connectades als pins Nano.

El Nano no té prou corrent a l’alimentació de 5V per alimentar els servos des d’USB, de manera que es recomana un subministrament addicional. Pot ser qualsevol cosa del rang 4,8-7,2 volts. Per exemple, quatre bateries AA (en sèrie) funcionaran bé. Un subministrament de banc o berruga de paret també és una bona opció.

El simple exemple de codi Arduino adjunt aquí com a PanTiltTest.ino es pot utilitzar per provar el control dels dos servos des del monitor sèrie de l'IDE Arduino. Establiu la velocitat de transmissió del monitor perquè coincideixi amb els 9600bps establerts al codi d'exemple. Si introduïu valors d’angle entre 0 i 180 graus, els servos es posicionaran en conseqüència.

Finalment, el mòdul de càmera USB (o un altre sensor) es pot muntar al suport en U del conjunt Pan-Tilt per utilitzar-lo en aplicacions de seguiment.

Pas 10: Seguiment facial amb OpenCV

Image
Image
Pirateja el planeta
Pirateja el planeta

Es pot implementar un sistema de seguiment facial de visió artificial combinant subsistemes tal com es mostra al diagrama de blocs. L'esbós de SerialServoControl per a Arduino es pot trobar al següent tutorial de Sparkfun juntament amb una demostració relacionada amb OpenCV, Processing, un Arduino, una càmera USB i un conjunt Pan / Tilt per rastrejar una cara humana. La demostració utilitza dos servos per canviar la posició de la càmera per tal de mantenir la cara centrada en el marc del vídeo, fins i tot quan l’usuari es mou per la sala. Per exemple, el codi a C #, consulteu el dipòsit de GitHub per al vídeo CamBot.

Pas 11: piratejar el planeta

Si us ha agradat aquest Instrucable i voleu rebre una caixa de projectes electrònics i informàtics com aquest directament a la vostra bústia de correu cada mes, uniu-vos-hi subscrivint-vos AQUÍ.

Arribeu i compartiu el vostre èxit als comentaris següents o a la pàgina de Facebook de HackerBoxes. Indiqueu-nos si teniu cap pregunta o necessiteu ajuda per res. Gràcies per formar part de HackerBoxes. Si us plau, mantingueu els vostres suggeriments i suggeriments. HackerBoxes són LES VOSTRES caixes. Fem alguna cosa genial!

Recomanat: