Indholdsfortegnelse:

HackerBox 0024: Vision Quest: 11 trin
HackerBox 0024: Vision Quest: 11 trin

Video: HackerBox 0024: Vision Quest: 11 trin

Video: HackerBox 0024: Vision Quest: 11 trin
Video: HackerBox #0024: Vision Quest 2024, Juli
Anonim
HackerBox 0024: Vision Quest
HackerBox 0024: Vision Quest

Vision Quest - I denne måned eksperimenterer HackerBox Hackers med Computer Vision og Servo Motion Tracking. Denne instruktion indeholder oplysninger om arbejde med HackerBox #0024, som du kan hente her, så længe lager haves. Hvis du også gerne vil modtage en HackerBox som denne direkte i din postkasse hver måned, skal du abonnere på HackerBoxes.com og deltage i revolutionen!

Emner og læringsmål for HackerBox 0024:

  • Eksperimenter med computer vision
  • Opsætning af OpenCV (Computer Vision)
  • Programmering af Arduino Nano fra Arduino IDE
  • Styring af servomotorer med Arduino Nano
  • Montering af en mekanisk gryde og hældningssamling
  • Styring af pan og tilt -bevægelse med en mikrokontroller
  • Udfør ansigtssporing ved hjælp af OpenCV

HackerBoxes er den månedlige abonnementskassetjeneste til DIY -elektronik og computerteknologi. Vi er hobbyfolk, producenter og eksperimenterende. Vi er drømmernes drømmere. HACK PLANET!

Trin 1: HackerBox 0024: Indhold i kassen

HackerBox 0024: Æskeindhold
HackerBox 0024: Æskeindhold
  • HackerBoxes #0024 Samlbart referencekort
  • Tre beslag pan og vippe samling
  • To MG996R -servoer med tilbehør
  • To cirkulære servokoblinger i aluminium
  • Arduino Nano V3 - 5V, 16MHz, MicroUSB
  • Digitalkamera med USB -kabel
  • Tre linser med Universal Clip Mount
  • Medical Inspection Pen Light
  • Dupont mandlige/kvindelige jumpere
  • MicroUSB -kabel
  • Eksklusivt OpenCV -mærkat
  • Eksklusivt Dia de Muertos -mærkat

Nogle andre ting, der vil være nyttige:

  • Lille træbrætskrot til kamerabase
  • Loddejern, lodde og grundlæggende loddeværktøjer
  • Computer til at køre softwareværktøjer

Vigtigst af alt har du brug for en følelse af eventyr, DIY -ånd og hacker -nysgerrighed. Hardcore DIY elektronik er ikke en triviel forfølgelse, og vi vander det ikke ned for dig. Målet er fremskridt, ikke perfektion. Når du vedvarer og nyder eventyret, kan stor tilfredshed udledes af at lære ny teknologi og forhåbentlig få nogle projekter til at fungere. Vi foreslår at tage hvert trin langsomt, tænke på detaljerne og aldrig tøve med at bede om hjælp.

STILLEDE SPØRGSMÅL: Vi vil gerne bede alle HackerBox -medlemmer om en rigtig stor tjeneste. Brug et par minutter på at gennemgå ofte stillede spørgsmål på HackerBoxes websted, inden du kontakter support. Selvom vi naturligvis ønsker at hjælpe alle medlemmer så meget som nødvendigt, involverer de fleste af vores support -e -mails enkle spørgsmål, der er meget tydeligt behandlet i FAQ. Tak for din forståelse!

Trin 2: Computersyn

Computersyn
Computersyn

Computersyn er et tværfagligt felt, der beskæftiger sig med, hvordan computere opnår forståelse på højt niveau fra digitale billeder eller videoer. Set fra ingeniørperspektiv søger edb -vision at automatisere opgaver, som det menneskelige visuelle system kan udføre. Som en videnskabelig disciplin beskæftiger computervision sig med teorien bag kunstige systemer, der udtrækker information fra billeder. Billeddata kan have mange former, f.eks. Videosekvenser, visninger fra flere kameraer eller multidimensionelle data fra en medicinsk scanner. Som en teknologisk disciplin søger edb -vision at anvende sine teorier og modeller til konstruktion af edb -vision -systemer. Sub-domæner til computersyn omfatter scenegenopbygning, hændelsesdetektering, videosporing, genkendelse af genstande, estimering af 3D-positur, læring, indeksering, bevægelsesestimering og billedgendannelse.

Det er interessant at bemærke, at computersyn kan betragtes som omvendt af computergrafik.

Trin 3: Behandling og OpenCV

Behandling og OpenCV
Behandling og OpenCV

Processing er en fleksibel softwareskitsebog og et sprog til at lære at kode inden for billedkunsten. Behandling har fremmet softwarelæskompetence inden for billedkunst og visuel læsefærdighed inden for teknologi. Der er titusinder af studerende, kunstnere, designere, forskere og hobbyfolk, der bruger Processing til læring og prototyper.

OpenCV (Open Source Computer Vision Library) er et open source -computervision og maskinlæringssoftwarebibliotek. OpenCV blev bygget til at levere en fælles infrastruktur til computer vision applikationer og for at fremskynde brugen af maskinopfattelse i de kommercielle produkter. OpenCV-biblioteket har mere end 2500 optimerede algoritmer, der inkluderer et omfattende sæt af både klassiske og topmoderne computersyn og algoritmer til maskinlæring. Disse algoritmer kan bruges til at registrere og genkende ansigter, identificere objekter, klassificere menneskelige handlinger i videoer, spore kamerabevægelser, spore bevægelige objekter og så videre.

Installer OpenCV i Processing fra menuen Filer> Eksempler ved at vælge "Tilføj eksempler" og derefter installere både video- og OpenCV -bibliotekerne under fanen Libraries. Åbn LiveCamTest -eksemplet til grundlæggende ansigtssporing. Tjek nogle andre OpenCV til behandlingseksempler her.

Flere ressourcer:

Kom godt i gang med Computer Vision er et bogprojekt, der giver et let indgangspunkt for kreative eksperimenter med computersyn. Det introducerer den kode og de begreber, der er nødvendige for at bygge computer vision -projekter.

Programmering af Computer Vision med Python er en O'Reilly -bog om PCV, et open source Python -modul til computersyn.

At lære OpenCV

Computersyn: Algoritmer og applikationer

Beherske OpenCV

Stanford Course CS231n Konvolutionelle neurale netværk til visuel genkendelse (16 videoer)

Chris Urmson TED Talk Hvordan en førerløs bil ser vejen

Trin 4: Arduino Nano Microcontroller Platform

Arduino Nano mikrokontroller platform
Arduino Nano mikrokontroller platform

Vi kan bruge en hvilken som helst fælles mikrontrollerplatform til styring af servoer i vores pan og tilt -kameraholder. Arduino Nano er et overflademonteret, brødbræt-venligt, miniaturiseret Arduino-bord med integreret USB. Det er fantastisk fuldt udstyret og let at hacke.

Funktioner:

  • Mikrocontroller: Atmel ATmega328P
  • Spænding: 5V
  • Digitale I/O -pins: 14 (6 PWM)
  • Analoge indgangsstifter: 8
  • DC -strøm pr. I/O -pin: 40 mA
  • Flashhukommelse: 32 KB (2KB til bootloader)
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • Urhastighed: 16 MHz
  • Dimensioner: 17 mm x 43 mm

Denne særlige variant af Arduino Nano er det sorte Robotdyn -design. Interfacet er via en indbygget MicroUSB-port, der er kompatibel med de samme MicroUSB-kabler, der bruges til mange mobiltelefoner og tablets.

Arduino Nanos har en indbygget USB/seriel brochip. På denne særlige variant er brochippen CH340G. Bemærk, at der er forskellige andre typer USB/Serial bridge -chips, der bruges på de forskellige typer Arduino -kort. Disse chips gør det muligt for din computers USB -port at kommunikere med det serielle interface på Arduinos processorchip.

En computers operativsystem kræver, at en enhedsdriver kommunikerer med USB/seriel chip. Driveren tillader IDE at kommunikere med Arduino -kortet. Den specifikke enhedsdriver, der er nødvendig, afhænger af både OS -versionen og også typen af USB/seriel chip. Til CH340 USB/Serial -chips er der tilgængelige drivere til mange operativsystemer (UNIX, Mac OS X eller Windows). Producenten af CH340 leverer disse chauffører her.

Når du først tilslutter Arduino Nano til en USB -port på din computer, skal den grønne strømindikator lyse og kort tid efter begynder den blå LED at blinke langsomt. Dette sker, fordi Nano er forudindlæst med BLINK-programmet, der kører på den helt nye Arduino Nano.

Trin 5: Arduino Integrated Development Environment (IDE)

Arduino Integrated Development Environment (IDE)
Arduino Integrated Development Environment (IDE)

Hvis du endnu ikke har Arduino IDE installeret, kan du downloade den fra Arduino.cc

Hvis du ønsker yderligere introduktionsoplysninger til arbejde i Arduino -økosystemet, foreslår vi, at du læser instruktionerne for HackerBoxes Starter Workshop.

Slut Nano til MicroUSB -kablet og den anden ende af kablet til en USB -port på computeren, start Arduino IDE -softwaren, vælg den passende USB -port i IDE under værktøjer> port (sandsynligvis et navn med "wchusb" i den). Vælg også "Arduino Nano" i IDE under værktøjer> bord.

Endelig skal du indlæse et stykke eksempelkode:

Fil-> Eksempler-> Grundlæggende-> Blink

Dette er faktisk koden, der var forudindlæst på Nano og skulle køre lige nu for langsomt at blinke den blå LED. Derfor, hvis vi indlæser denne eksempelkode, ændres intet. Lad os i stedet ændre koden en lille smule.

Når du ser nærmere på, kan du se, at programmet tænder LED'en, venter 1000 millisekunder (et sekund), slukker LED'en, venter endnu et sekund og derefter gør det hele igen - for evigt.

Rediger koden ved at ændre begge "forsinkelser (1000)" udsagn til "forsinkelse (100)". Denne ændring får LED'en til at blinke ti gange hurtigere, ikke?

Lad os indlæse den ændrede kode i Nano ved at klikke på knappen UPLOAD (pilikonet) lige over din ændrede kode. Se nedenfor koden for statusoplysninger: "kompilering" og derefter "upload". Til sidst skal IDE angive "Upload fuldført", og din LED blinker hurtigere.

Hvis ja, tillykke! Du har lige hacket dit første stykke indlejret kode.

Når din hurtigblink-version er indlæst og kører, hvorfor så ikke se, om du kan ændre koden igen for at få LED'en til at blinke hurtigt to gange og derefter vente et par sekunder, før du gentager? Prøv det! Hvad med nogle andre mønstre? Når det lykkes dig at visualisere et ønsket resultat, kode det og observere det til at fungere som planlagt, har du taget et enormt skridt mod at blive en kompetent hardwarehacker.

Trin 6: Servomotorer

Servomotorer
Servomotorer

Servomotorer styres generelt af en række gentagne elektriske impulser, hvor pulsenes bredde angiver servoens position. Det pulsbreddemodulerede (PWM) kontrolsignal genereres ofte af en fælles mikrokontroller, f.eks. En Arduino.

Små hobby-servoer, f.eks. MG996R, tilsluttes via en standard tre-leder forbindelse: to ledninger til en jævnstrømforsyning og en ledning til at transportere kontrolimpulserne. MG996R-servoer har et driftsspændingsraseri på 4,8-7,2 VDC.

Trin 7: Montering af gryde- og vippemekanisme

Montering af gryde- og vippemekanisme
Montering af gryde- og vippemekanisme
  1. Træk begge MG996R -servoer ud af tasken, og sæt det medfølgende tilbehør til side nu.
  2. Sæt en aluminium, cirkulær servokobling på hver servo. Bemærk, at koblingerne kommer i separate poser fra servoerne. Koblingen sidder meget tæt. Start med at trykke koblingen på enden af servoudgangen, og træk derefter en skrue ind i midterhullet. Spænd tråden for at trække koblingen på servoudgangen.
  3. Bemærk, at der er tre beslag til pan-tilt-samlingen-to kassebeslag og en U-beslag.
  4. Monter en af boksbeslagene på aluminiumscirklen til en af servoerne. Vi vil kalde denne servo for pan servo. Ret kassebeslaget med dens midtervæg mod aluminiumscirklen, så boksbeslagets to andre vægge vender væk fra panservoen. Brug midterhullerne på boksbeslagets midtervæg. Dette arrangement bør gøre det muligt for panservoen at dreje den vedhæftede boksbeslag rundt, når den er aktiveret.
  5. Placer den anden servo (vippeservo) i boksbeslaget, der er fastgjort til aluminiumssirklen på panservoen. Brug mindst to møtrikker og bolte til at fastgøre vippeservoen - en på hver side.
  6. Hold i U-beslaget, indsæt messing "lejet" fra indersiden af U gennem et af de store drejemonteringshuller.
  7. Placer U-beslaget med lejet på vippeservoen, der er inde i boksbeslaget, så det andet store drejemonteringshul (det uden lejet) flugter med aluminiumcirklen på vippeservoen.
  8. Brug skruer til at fastgøre U-beslaget på aluminiumscirklen på den ene side af U-beslaget.
  9. På den anden side af U-beslaget strammes en enkelt skrue gennem lejet og ind i det lille hul i boksbeslaget indeni. Dette skulle gøre det muligt for U-beslaget at rotere rundt om boksbeslaget senere, når vippeservoen aktiveres.

Trin 8: Montering af gryde og vippemontage

Montering af gryde og vippemontage
Montering af gryde og vippemontage
Montering af gryde og vippemontage
Montering af gryde og vippemontage

Den resterende kassebeslag kan skrues ned i et lille træbrætskrot for at fungere som en kamerabase som vist på billedet. Endelig er panservoen monteret inden for den resterende boksbeslag ved hjælp af mindst to møtrikker og bolte til at fastgøre servoen på beslaget - en på hver side.

Trin 9: Tråd og test pan og tilt -samlingen

Tråd og test pan og tilt -samlingen
Tråd og test pan og tilt -samlingen

For at koble servoerne i henhold til skematisk er det hurtigst at bare skære de originale hunstik fra servoerne og derefter bruge nogle kvindelige DuPont -jumperender for at få signalet og jordlinjerne knyttet til Nano -benene.

Nano har ikke nok strøm på 5V forsyningen til at drive servoerne fra USB, så en ekstra forsyning anbefales. Dette kan være alt inden for området 4,8-7,2 volt. For eksempel vil fire AA -batterier (i serie) fungere godt. En bænkforsyning eller vægvorte er også et godt valg.

Det enkle eksempel Arduino -kode vedhæftet her som PanTiltTest.ino kan bruges til at teste kontrol af de to servoer fra den serielle skærm på Arduino IDE. Indstil skærmens baudhastighed til at matche de 9600bps, der er angivet i eksempelkoden. Indtastning af vinkelværdier mellem 0 og 180 grader placerer servoerne i overensstemmelse hermed.

Endelig kan USB-kameramodulet (eller en anden sensor) monteres på U-beslaget på Pan-Tilt Assembly til brug i sporingsapplikationer.

Trin 10: Ansigtssporing med OpenCV

Image
Image
Hack planeten
Hack planeten

Et maskinesyn ansigtssporingssystem kan implementeres ved at kombinere undersystemer som vist i blokdiagrammet. SerialServoControl -skitsen til Arduino kan findes i den følgende Sparkfun -vejledning sammen med en tilhørende demonstration ved hjælp af OpenCV, Processing, en Arduino, et USB -kamera og en Pan/Tilt Assembly til at spore et menneskeligt ansigt. Demoen bruger to servoer til at flytte kameraet for at holde ansigtet centreret i videorammen, selvom brugeren bevæger sig rundt i rummet. For eksempel kode i C#, tjek GitHub -depotet for CamBot -videoen.

Trin 11: Hack the Planet

Hvis du har nydt denne Instrucable og gerne vil have en æske med elektronik og computertekniske projekter som denne leveret direkte til din postkasse hver måned, kan du slutte dig til os ved at ABONNERE HER.

Nå ud og del din succes i kommentarerne herunder eller på HackerBoxes Facebook -side. Lad os bestemt vide det, hvis du har spørgsmål eller har brug for hjælp til noget. Tak fordi du var en del af HackerBoxes. Fortsæt venligst med dine forslag og feedback. HackerBoxes er DINE kasser. Lad os lave noget godt!

Anbefalede: