Innholdsfortegnelse:

Raspberry PI Vision Processor (SpartaCam): 8 trinn (med bilder)
Raspberry PI Vision Processor (SpartaCam): 8 trinn (med bilder)

Video: Raspberry PI Vision Processor (SpartaCam): 8 trinn (med bilder)

Video: Raspberry PI Vision Processor (SpartaCam): 8 trinn (med bilder)
Video: Raspberry Pi Robot Arm With Computer Vision + Image Processing Pics 2024, November
Anonim
Raspberry PI Vision Processor (SpartaCam)
Raspberry PI Vision Processor (SpartaCam)
Raspberry PI Vision Processor (SpartaCam)
Raspberry PI Vision Processor (SpartaCam)

Et Raspberry PI visjon prosessorsystem for din FIRST Robotics Competition robot

Om FØRSTE

Fra Wikipedia, den gratis leksikon

FIRST Robotics Competition (FRC) er en internasjonal robotikk -konkurranse på videregående skole. Hvert år jobber elever med videregående skoleelever, trenere og mentorer i løpet av en seks ukers periode med å bygge roboter som veier opptil 54 kg. Roboter fullfører oppgaver som å score baller i mål, flyve skiver til mål, indre rør på stativer, henge på stenger og balansere roboter på balansebjelker. Spillet, sammen med det nødvendige settet med oppgaver, endres årlig. Selv om lagene får et standard sett med deler, får de også et budsjett og oppfordres til å kjøpe eller lage spesialiserte deler.

Årets kamp (2020) UENDELIG LADNING. Infinite Recharge -spillet involverer to allianser med tre lag hver, hvor hvert lag kontrollerer en robot og utfører spesifikke oppgaver på et felt for å score poeng. Spillet sentrerer rundt et futuristisk bytema som involverer to allianser bestående av tre lag som hver konkurrerer om å utføre forskjellige oppgaver, inkludert å skyte skumballer kjent som Power Cells til høye og lave mål for å aktivere en skjoldgenerator, manipulere et kontrollpanel for å aktivere dette skjoldet, og gå tilbake til Shield Generator for å parkere eller klatre på slutten av kampen. Målet er å energisere og aktivere skjoldet før kampen slutter og asteroider slår til FIRST City, en futuristisk by modellert etter Star Wars.

Hva gjør Raspberry PI visjonsprosessorsystem?

Kameraet vil kunne skanne spillefeltet og målplasseringene der spillbrikker leveres eller må plasseres for scoring. Enheten har 2 tilkoblinger, strøm og Ethernet.

Visjonsmålene på spillefeltet er skissert med retroreflekterende tape og lys reflekterer tilbake til kameralinsen. Pi som kjører åpen kildekode fra Chameleon Vision (https://chameleon-vision.readthedocs.io/en/latest/…) vil behandle visningen, markere den, legge til bildeoverlegg og utgangshøyde, gjev, kontur og posisjon som arrayverdier sortert etter x og y i meter og vinkel i grader sammen med andre data via en nettverkstabell. Denne informasjonen vil bli brukt i programvare for å kontrollere roboten vår i autonom modus, i tillegg til å sikte og skyte vår skytespill. Andre programvareplattformer kan kjøres på Pi. FRC -visjon kan installeres hvis teamet ditt allerede har investert programvaretiden i den plattformen.

Budsjettet vårt var stramt i år, og å kjøpe et Limelight $ 399,00 (https://www.wcproducts.com/wcp-015) kamera var ikke i kortene. Ved å kjøpe alle rekvisita fra Amazon og bruke Team 3512 Spartatroniks 3D -skriver, kunne jeg pakke et tilpasset visjonssystem for $ 150,00. Noen varer kom i bulk, og det ville bare kreve en annen Raspberry Pi, PI-kamera og vifte å bygge opp en annen co-prosessor. Med CAD -hjelp fra et av teamene Mentors (takk Matt) ble PI -skapet opprettet ved hjelp av Fusion 360.

Hvorfor ikke bare bruke en Pi med billig kabinett, koble til et USB -kamera, legge til et ringelys, installere kameleonsyn og det er gjort, ikke sant? Vel, jeg ønsket mer strøm og mindre kabler og kjølefaktoren til et tilpasset system.

En Pi 4 bruker 3 ampere hvis den kjører full boring, det er hvis den bruker de fleste portene, og wifi og kjører en skjerm. Vi gjør ikke det på robotene våre, men USB-portene på roboRIO https://www.ni.com/en-us/support/model.roborio.ht… er vurdert til 900 ma, spenningsregulatoren modulær (VRM) 5 volt forsyninger opp til 2 ampere topp, 1,5 ampere grense, men det er en delt kontakt, så hvis en annen enhet er på 5 volt bussen er det en mulighet for brownout. VRM leverer også 12 volt ved 2 ampere, men vi bruker begge tilkoblingene for å drive radioen vår med en POE -kabel og en fatforbindelse for redundans. Noen FRC -inspektører vil ikke tillate at annet enn det som er trykt på VRM kobles til der. Så 12 volt fra PDP på en 5 amp Breaker er der Pi må drives.

12 volt leveres via en 5 amp bryter på strømfordelingspanelet (PDP), konverteres til 5,15 volt ved bruk av en LM2596 DC til DC Buck Converter. Buck -omformeren leverer 5 volt ved 3 ampere og holder seg i regulering ned til 6,5 volt inngang. Denne 5 volts bussen gir deretter strøm til 3 delsystemer, LED -ringarray, vifte, bringebær Pi.

Rekvisita

  • 6-pakning LM2596 DC til DC Buck Converter 3.0-40V til 1.5-35V strømforsyning Trinn ned-modul (6 pakker) $ 11.25
  • Noctua NF-A4x10 5V, Premium Quiet Fan, 3-pins, 5V-versjon (40x10mm, brun) $ 13,95
  • SanDisk Ultra 32GB microSDHC UHS-I-kort med adapter-98MB/s U1 A1-SDSQUAR-032G-GN6MA $ 7,99
  • Raspberry Pi Camera Module V2-8 Megapixel, 1080p 428.20
  • GeeekPi Raspberry Pi 4 Heatsink, 20PCS Raspberry Pi Aluminium Heatsinks med termisk ledende tape for Raspberry Pi 4 Model B (Raspberry Pi Board er ikke inkludert) $ 7,99
  • Raspberry Pi 4 Model B 2019 Quad Core 64 Bit WiFi Bluetooth (4GB) $ 61,96
  • (Pakke med 200 deler) 2N2222 Transistor, 2N2222 til-92 Transistor NPN 40V 600mA 300MHz 625mW Gjennom hull 2N2222A $ 6,79
  • EDGELEC 100pcs 100 ohm Resistor 1/4w (0,25 Watt) ± 1% Toleranse Metal Film Fixed Resistor $ 5,69 https://smile.amazon.com/gp/product/B07QKDSCSM/re… Waycreat 100PCS 5mm grønne LED -diodelamper Klarstrålende lysdioder for Høy intensitet Super Bright Lighting pære lamper Elektronikkomponenter Lampedioder $ 6,30
  • J-B Weld Plastic Bonder $ 5,77

Trinn 1: Prototype 1

Prototype 1
Prototype 1

Første test i emballasje:

Teamet hadde en Pi 3 fra året før som var tilgjengelig for testing. Et pi-kamera, en DC-DC buck/boost-krets og et Andymark-ringlys ble lagt til.

På dette tidspunktet hadde jeg ikke vurdert Pi 4, så jeg var ikke bekymret for strømbehov. Strøm ble levert via USB fra roboRIO. Kameraet passer i etuiet uten endringer. Ringlyset ble varmlimt på etuiet og dekslet til boostplaten. Boostkortet koblet til GPIO -portene 2 og 6 for 5 volt og utgangen ble justert opp til 12 volt for å kjøre ringen. Det var ikke plass inne i saken for boostbrettet, så det var også varmt limt på utsiden. Programvare ble installert og testet ved hjelp av mål fra spillåret 2019. Programvareteamet ga tommelen opp, så vi bestilte en Pi 4, kjøleribber og en vifte. Og mens de vi på veien var kabinettet designet og 3D -trykt.

Trinn 2: Prototype 2

Prototype 2
Prototype 2
Prototype 2
Prototype 2
Prototype 2
Prototype 2

Innvendige dimensjoner på kabinettet var OK, men havnesteder ble forskjøvet, ikke en utstillingsstopper.

Dette ble fullført like etter at det nye spillet avslørte slik at programvare kunne teste mot de nye målstedene.

Gode nyheter og dårlige nyheter. Ringlyset var ikke tilstrekkelig da vi var større enn 15 fot fra målet, så det var på tide å revurdere belysningen. Siden det var behov for endringer, anser jeg denne enheten som prototype 2.

Trinn 3: Prototype 3

Prototype 3
Prototype 3
Prototype 3
Prototype 3

Prototype 2 ble igjen slik at programvare kunne fortsette å forfine systemet. I mellomtiden ble en annen Pi 3 funnet, og jeg brøste sammen en annen test seng. Dette hadde en Pi3, en USB lifecam 3000 direkte loddet til brettet, en boost -omformer og håndloddet diode -array.

Igjen gode nyheter, dårlige nyheter. Matrisen kan lyse opp et mål fra 50+fot unna, men vil miste målet hvis avvinkelen er større enn 22 grader. Med denne informasjonen kan det endelige systemet lages.

Trinn 4: Sluttprodukt

Sluttprodukt
Sluttprodukt
Sluttprodukt
Sluttprodukt
Sluttprodukt
Sluttprodukt

Prototype 3 hadde 6 dioder omtrent 60 grader fra hverandre og vendt rett frem.

De endelige endringene var å legge til 8 dioder med 45 graders mellomrom rundt linsen med 4 dioder vendt fremover og 4 dioder skrå ut 10 grader, noe som gir et synsfelt på 44 grader. Dette gjør det også mulig å montere kabinettet enten vertikalt eller horisontalt på roboten. Et nytt kabinett ble skrevet ut med endringer for å imøtekomme en Pi 3 eller Pi 4. Forsiden av kabinettet ble endret for de enkelte dioder.

Testing viste ingen ytelsesproblemer mellom verken Pi 3 eller 4, så kabinettåpningene ble laget for å tillate at enten Pi ble installert. De bakre festepunktene ble fjernet, så vel som eksosåpningene på toppen av kuppelen. Å bruke en Pi 3 vil ytterligere redusere kostnadene. Pi 3 går kjøligere og bruker mindre strøm. Til slutt bestemte vi oss for å bruke PI 3 -er for kostnadsbesparelser, og programvareteamet ønsket å bruke noen kode som skulle kjøre på Pi 3 som ikke hadde blitt oppdatert for Pi 4.

Importer STL til 3D -skriveren din, så er du i gang. Denne filen er i tommer, så hvis du har en skiver som Cura, må du sannsynligvis skalere delen til %2540 for å konvertere den til metrisk. Hvis du har Fusion 360, kan.f3d -filen endres til dine egne behov. Jeg ønsket å inkludere en.step -fil, men instrukser tillater ikke at filene lastes opp.

Grunnleggende verktøy som trengs:

  • Wire strippere
  • Tang
  • Loddejern
  • Krympeslange
  • Avbitertang
  • Blyfritt loddetinn
  • Flux
  • Hjelpende hender eller tang
  • Varmepistol

Trinn 5: Kabeldiode -matrise

Kabeldiode Array
Kabeldiode Array
Kabeldiode Array
Kabeldiode Array
Kabeldiode Array
Kabeldiode Array

Sikkerhetsmerknad:

Loddejern Berør aldri elementet i loddejernet …. 400 ° C!

Hold ledninger som skal varmes opp med pinsett eller klemmer.

Hold rengjøringssvampen våt under bruk.

Sett alltid loddejernet tilbake på stativet når det ikke er i bruk.

Legg den aldri ned på arbeidsbenken.

Slå av enheten og trekk ut kontakten når den ikke er i bruk.

Lodding, fluss og rengjøringsmidler

Bruk øyebeskyttelse.

Loddetinn kan "spytte".

Bruk kolofoniumfrie og blyfrie loddere der det er mulig.

Behold rengjøringsmidlene i doseringsflasker.

Vask alltid hendene med såpe og vann etter lodding.

Arbeid i godt ventilerte områder.

OK, la oss komme på jobb:

Kapslingsflaten ble trykt med diodehull på 0, 90, 180, 270 punkter er skråstilt ved 10 grader ut. Hull på 45, 135, 225, 315 poeng er rette.

Plasser alle dioder i kabinettflaten for å bekrefte 5 mm hullstørrelse. En tett passform vil holde dioder pekende i riktig vinkel. Den lange ledningen på en diode er anoden, lodd en 100 ohm motstand til hver diode. Loddeledninger til dioden og motstanden lukkes og lar en lang ledning ligge på den andre siden av motstanden (se bilder). Test hver kombinasjon før du går videre. AA -batteri og 2 testledninger lyser svakt i dioden og bekrefter at du har riktig polaritet.

Sett diode/motstandskombinationen tilbake i kabinettet og posisjonsledninger i et sikksakk-mønster, slik at hver motstandsledning berører den neste motstanden for å lage en ring. Lodd alle ledninger. Jeg ville blande litt J-B sveiset plastbonder (https://www.amazon.com/J-B-Weld-50133-Tan-1-Pack) og epoksy kombinasjonen av diode/motstand på plass. Jeg vurderte superlim, men var usikker på om cyanoakrylatet ville tåke diodelinsen. Jeg gjorde dette på slutten av all lodding, men skulle ønske jeg hadde gjort det her for å redusere frustrasjon når dioder ikke ville holde seg på plass under lodding. Epoxy setter seg opp på omtrent 15 minutter, så et bra sted å ta en pause.

Nå kan alle katodeledningene loddes sammen for å lage - eller jordingsringen. Legg til 18 gauge røde og svarte ledninger til dioderingen. Test det ferdige arrayet med en 5 volt strømforsyning, USB -lader fungerer bra for dette.

Trinn 6: Buck/Boost Wiring

Buck/Boost ledninger
Buck/Boost ledninger
Buck/Boost ledninger
Buck/Boost ledninger
Buck/Boost ledninger
Buck/Boost ledninger
Buck/Boost ledninger
Buck/Boost ledninger

Før vi kobler til Buck -omformeren, må vi angi utgangsspenningen. Siden vi bruker PDP for å levere de 12 voltene jeg koblet direkte til en PDP -port, smeltet med 5 ampere. Fest et voltmeter til tavleutgangen og begynn å dreie potensiometeret. Det vil ta ganske mange svinger før du ser en endring ettersom brettet er fabrikk testet til full effekt og deretter forlatt ved den innstillingen. Sett til 5,15 volt. Vi setter noen millivolt høyt for å matche det Pi forventer å se fra en USB -lader og eventuell linjelastning fra vifte og diode -array. (Under den første testen så vi plagsomme meldinger fra Pi som klaget over lav busspenning. Et internettsøk ga oss informasjonen om at Pi ventet mer enn 5,0 volt da de fleste ladere slo ut litt mer og den typiske strømforsyningen for en Pi er en USB -lader.)

Deretter må vi forberede saken:

Buck-omformeren og Pi holdes inne ved hjelp av 4-40 maskinskruer. #43 Drill Bit er ideell for å lage presise hull for taping av 4-40 tråder. Hold Pi og buck -omformeren til avstandene, merk deretter og bruk boret #43. Høyden på avstandene gir nok dybde til å dille uten å gå helt gjennom ryggen. Bank på hullene med en 4-40 blindkran. Selvbåndende skruer brukt i plast ville fungert bra her, men jeg hadde de 4-40 skruene tilgjengelig, så det var det jeg brukte. Skruer er nødvendig for å gi tilgang til SD -kortet (ingen ekstern tilgang til kortet følger med dette kabinettet).

Det neste hullet du skal bore er for strømkabelen. Jeg plukket et punkt i det nederste hjørnet, slik at det ville gå langs siden av Ethernet -kabelen eksternt og til siden av og deretter under Pi internt. Jeg brukte en skjermet 2 -leders kabel som det jeg hadde for hånden, et hvilket som helst 14 gauge trådpar vil fungere. Hvis du bruker et trådfritt par, legg 1 til 2 lag med varmekrymping på ledningen der den kommer inn i kabinettet for beskyttelse og strekkavlastning. Hullstørrelse bestemmes av ditt trådvalg.

Nå kan du lodde ledningene til inngangslinjene på DC-DC-omformeren. Tilkoblingene er merket på tavlen. Rød ledning til in+ Svart ledning til in-. Når jeg kom ut av brettet loddet jeg 2 korte bare ledninger for å fungere som trådstolpe for å knytte viften, Pi og transistoren.

Trinn 7: Sluttledninger og epoksy

Sluttledninger og epoksy
Sluttledninger og epoksy
Sluttledninger og epoksy
Sluttledninger og epoksy
Sluttledninger og epoksy
Sluttledninger og epoksy

Bare 4 tilkoblinger er gjort til Pi. Jord, strøm, LED kontroll og kamera grensesnitt båndkabel.

De 3 pinnene som brukes på Pi er 2, 6 og 12.

Klipp en rød, svart og hvit ledning til 4 tommer. Fjern 3/8 tommer av isolasjonen på begge ender av ledninger, tinnender av ledninger og tinnpinner på Pi.

  • Loddet rød ledning til GPIO pin 2 slip 1/2 inch of heat shrink tubing apply heat.
  • Lodd svart ledning til GPIO pin 6 slip 1/2 tommers varmekrympeslange påfør varme.
  • Loddet hvitt ledning til GPIO pin 12 slip 1/2 inch av varmekrympeslange påfører varme.
  • Lodd rød ledning for å bukke ut+
  • Lodd svart ledning for å bukke ut-
  • Tilsett 1 tommers varmekrymping til hvit ledning og loddetinn til 100 ohm motstand og fra motstand til transistorbase. Isolere med varmekrymping.
  • Transistorsender til Buck -
  • Transistorkollektor til katodesiden av diodesystemet
  • Diodearray Anode/motstand mot Buck +
  • Vift rød ledning for å stikke ut+
  • Vifte svart ledning for å slippe ut-

Siste tilkobling:

Skyv inn kamera -grensesnittkabelen. Kabeltilkoblingen bruker en zif -kontakt (null innsettingskraft). Den svarte stripen på toppen av kontakten må løftes opp, kabelen plasseres i kontakten og deretter skyves kontakten ned igjen for å låse den på plass. Vær forsiktig så du ikke krymper kabelen, da sporet i isolasjonen kan bryte. Også kontakten må settes inn rett for båndkabelen til justering av tappene.

Kontroller arbeidet ditt for løse trådtråder og loddeskiver, klipp tilbake eventuell overflødig lengde på loddetinnene.

Hvis du er fornøyd med arbeidet ditt, kan viften og kameraet epokses på plass. Noen få dråper i hjørnene er alt du trenger.

Trinn 8: Programvare

Programvare
Programvare
Programvare
Programvare
Programvare
Programvare
Programvare
Programvare

Mens epoksyen herder kan du få programvare inn i SD -kortet. du trenger en SD-kortadapter for å koble til datamaskinen din (https://www.amazon.com/Reader-Laptops-Windows-Chrom….

Gå til:

www.raspberrypi.org/downloads/raspbian/ og last ned Raspbian Buster Lite. For å blinke SD -kortet med raspbian trenger du et annet programvareverktøy BalenaEtcher, og det finnes her, Epoksyen burde ha herdet nok nå til at du kan installere SD -kortet og skru ned bukk/boost -kortet. Før du klikker på dekselet, må du kontrollere at ingen ledninger forstyrrer dekselet og kamerakabelen ikke berører viftebladene. Etter at dekselet er på plass blåser jeg på viften og ser for å se at den beveger seg for å sikre at det ikke er forstyrrelser fra ledninger eller båndkabelen.

På tide å slå på:

Første gang du starter, trenger du en hdmi -kabel, hvis en Pi 4 en mini hdmi -kabel, usb -tastatur og hdmi -skjerm sammen med en internettforbindelse. Koble til en 12 volt strømforsyning, PDP med en 5 amp bryter.

Etter at du har logget inn, er det første du må gjøre å kjøre konfigurasjonsverktøyet. Det er her SSH kan settes sammen med aktivering av PI -kameraet. https://www.raspberrypi.org/documentation/configur… har instruksjoner for å hjelpe.

Start på nytt før du installerer Chameleon Vision

Besøk nettstedet deres før du bruker programvaren, de har et vell av informasjon. Ett notat, på den støttede maskinvaresiden vises Pi -kameraet som ikke støttet, men det er med deres nyeste utgivelse. Nettsiden må oppdateres.

Fra nettstedet Chameleon vision:

Chameleon Vision kan kjøres på de fleste operativsystemer som er tilgjengelige for Raspberry Pi. Det anbefales imidlertid at du installerer Rasbian Buster Lite, tilgjengelig her: //www.raspberrypi.org/downloads/raspbian/. Følg instruksjonene for å installere Raspbian på et SD -kort.

Sørg for at Raspberry Pi er koblet til Internett via Ethernet. Logg deg på Raspberry Pi (brukernavn pi og passord bringebær) og kjør følgende kommandoer i terminalen:

$ wget https://git.io/JeDUk -O install.sh

$ chmod +x install.sh

$ sudo./install.sh

$ sudo start på nytt nå

Gratulerer! Din Raspberry Pi er nå konfigurert for å kjøre Chameleon Vision! Når Raspberry Pi har startet på nytt, kan Chameleon Vision startes med følgende kommando:

$ sudo java -jar kameleon -vision.jar

Når en ny versjon av Chameleon Vision er utgitt, oppdaterer du den ved å kjøre følgende kommandoer:

$ wget https://git.io/JeDUL -O update.sh

$ chmod +x update.sh

$ sudo./update.sh

LED Array -kontroll:

LED -matrisen lyser ikke uten programvarekontroll

Første robotikk i år har en regel mot sterke LED -lys, men tillater dem hvis de kan slås av og på etter behov. Colin Gideon "SpookyWoogin", FRC 3223, skrev et Python -skript for å kontrollere lysdiodene, og det finner du her:

github.com/frc3223/RPi-GPIO-Flash

Dette systemet vil også kjøre FRC -visjon hvis teamet ditt allerede har investert programvaretiden i den plattformen. Med FRC vision er det komplette SD -kortet avbildet, så du trenger ikke å laste ned raspbian. Få den her

Dette vil gi deg et visjonssystem i en kul formfaktor. Lykke til på konkurransene!

Raspberry Pi Contest 2020
Raspberry Pi Contest 2020
Raspberry Pi Contest 2020
Raspberry Pi Contest 2020

Runner Up i Raspberry Pi Contest 2020

Anbefalt: