Indholdsfortegnelse:
- Trin 1: HackerBox 0024: Indhold i kassen
- Trin 2: Computersyn
- Trin 3: Behandling og OpenCV
- Trin 4: Arduino Nano Microcontroller Platform
- Trin 5: Arduino Integrated Development Environment (IDE)
- Trin 6: Servomotorer
- Trin 7: Montering af gryde- og vippemekanisme
- Trin 8: Montering af gryde og vippemontage
- Trin 9: Tråd og test pan og tilt -samlingen
- Trin 10: Ansigtssporing med OpenCV
- Trin 11: Hack the Planet
Video: HackerBox 0024: Vision Quest: 11 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:30
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
- 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 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
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
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)
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 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
- Træk begge MG996R -servoer ud af tasken, og sæt det medfølgende tilbehør til side nu.
- 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.
- Bemærk, at der er tre beslag til pan-tilt-samlingen-to kassebeslag og en U-beslag.
- 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.
- 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.
- Hold i U-beslaget, indsæt messing "lejet" fra indersiden af U gennem et af de store drejemonteringshuller.
- 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.
- Brug skruer til at fastgøre U-beslaget på aluminiumscirklen på den ene side af U-beslaget.
- 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
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
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
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:
Persistens af Vision LED -personale: 11 trin (med billeder)
Vedholdenhed hos Vision LED -personale: Det er velkendt, at selv efter at et lys er slukket, holder det menneskelige øje " se " det i en brøkdel af et sekund. Dette er kendt som Persistence of Vision, eller POV, og det giver en mulighed for at " male " billeder ved hurtigt at flytte en strimmel
Prototype Night Vision -beskyttelsesbriller til Airsoft/Paintball: 4 trin
Prototype Night Vision -beskyttelsesbriller til Airsoft/Paintball: En kort note om Night Vision True night vision -briller (gen 1, gen2 og gen 3) fungerer typisk ved at forstærke omgivende lys, dog fungerer de nattsynsbriller, vi vil bygge her, med et andet princip. Vi bruger Pi NoIR -kameraet, som
Night Vision -beskyttelsesbriller til Google Cardboard: 10 trin (med billeder)
Night Vision -beskyttelsesbriller til Google Cardboard: Ansvarsfraskrivelse: Brugen af denne enhed er kun beregnet til underholdning, uddannelse og videnskabelig brug; ikke til spionage og/eller overvågning. &Quot; Spy gadget " funktioner blev tilføjet til appen bare for sjov og ville ikke tjene noget praktisk formål til
Micro: bit MU Vision Sensor - Objektsporing: 7 trin
Micro: bit MU Vision Sensor - Object Tracking: Så i denne instruktive vil vi begynde at programmere den smarte bil, som vi bygger i denne instruerbare, og som vi har installeret en MU vision sensor på i denne instruerbare.Vi skal programmere mikro: lidt med nogle enkle objektsporing, så det
Night Vision Camera: 16 trin (med billeder)
Night Vision Camera: Ligesom Light of Eärendil guider Frodo på mørke steder, så vil dit hjemmelavede natkamera også være dit ledestjerne. Uanset om det er ude i skoven, camping med venner, fanger det undvigende glimt af en skandinavisk trold, eller mens du er på