Indholdsfortegnelse:

Raspberry PI Vision Processor (SpartaCam): 8 trin (med billeder)
Raspberry PI Vision Processor (SpartaCam): 8 trin (med billeder)

Video: Raspberry PI Vision Processor (SpartaCam): 8 trin (med billeder)

Video: Raspberry PI Vision Processor (SpartaCam): 8 trin (med billeder)
Video: Raspberry Pi Robot Arm With Computer Vision + Image Processing Pics 2024, Juli
Anonim
Raspberry PI Vision Processor (SpartaCam)
Raspberry PI Vision Processor (SpartaCam)
Raspberry PI Vision Processor (SpartaCam)
Raspberry PI Vision Processor (SpartaCam)

Et Raspberry PI vision processor system til din FIRST Robotics Competition robot

Om FØRSTE

Fra Wikipedia, den gratis encyklopædi

FIRST Robotics Competition (FRC) er en international high school robotics -konkurrence. Hvert år arbejder hold af gymnasieelever, trænere og mentorer i løbet af en seks ugers periode med at bygge spil-robotter, der vejer op til 120 kg (54 kg). Robotter udfører opgaver som at score bolde i mål, flyve skiver til mål, inderrør på stativer, hænge på stænger og afbalancere robotter på balancebjælker. Spillet, sammen med det nødvendige sæt opgaver, ændres årligt. Mens teams får et standard sæt dele, får de også et budget og opfordres til at købe eller lave specialiserede dele.

Årets spil (2020) UENDELIG OPLADNING. Infinite Recharge -spillet involverer to alliancer på tre hold hver, hvor hvert hold styrer en robot og udfører specifikke opgaver på et felt for at score point. Spillet er centreret omkring et futuristisk bytema, der involverer to alliancer bestående af tre hold, der hver konkurrerer om at udføre forskellige opgaver, herunder at skyde skumkugler kendt som Power Cells til høje og lave mål for at aktivere en Shield Generator, manipulere et kontrolpanel for at aktivere dette skjold, og vender tilbage til Shield Generator for at parkere eller klatre i slutningen af kampen. Målet er at aktivere og aktivere skjoldet, inden kampen slutter og asteroider rammer FIRST City, en futuristisk by efter Star Wars.

Hvad gør Raspberry PI vision processor system?

Kameraet vil kunne scanne spillefeltet og målplaceringer, hvor spilstykker leveres eller skal placeres til scoring. Enheden har 2 forbindelser, strøm og Ethernet.

Visionsmålene på spillefeltet er skitseret med retroreflekterende tape, og lys vil reflektere tilbage til kameralinsen. Pi'en, der kører open source-kode fra Chameleon Vision (https://chameleon-vision.readthedocs.io/en/latest/…) behandler visningen, fremhæver den, tilføjer billedoverlejringer og outputhøjde, yaw, kontur og position som array -værdier sorteret efter x og y i meter og vinkel i grader sammen med andre data via en netværkstabel. Disse oplysninger vil blive brugt i software til at styre vores robot i autonom tilstand samt sigte og affyre vores tårnet skydespil. Andre softwareplatforme kan køres på Pi. FRC vision kan installeres, hvis dit team allerede har investeret softwaretiden i denne platform.

Vores budget var stramt i år, og køb af et Limelight $ 399,00 (https://www.wcproducts.com/wcp-015) kamera lå ikke i kortene. Ved at købe alle forsyninger fra Amazon og bruge Team 3512 Spartatroniks 3D -printer kunne jeg pakke et brugerdefineret vision -system til $ 150,00. Nogle ting kom i bulk, opbygning af en anden co-processor ville kun kræve et andet Raspberry Pi, PI kamera og ventilator. Med CAD -hjælp fra et af holdene Mentorer (tak Matt) blev PI -kabinettet oprettet ved hjælp af Fusion 360.

Hvorfor ikke bare bruge en Pi med billigt kabinet, tilslutte et USB -kamera, tilføje et ringelys, installere Kamæleon vision og din færdig, right? Godt, jeg ville have mere strøm og færre kabler og kølefaktoren for et brugerdefineret system.

En Pi 4 bruger 3 ampere, hvis den kører fuldt ud, det er hvis den bruger de fleste af dens porte og wifi og kører en skærm. Det gør vi ikke på vores robotter, men USB-portene på roboRIO https://www.ni.com/en-us/support/model.roborio.ht… er vurderet til 900 ma, spændingsregulatoren modulær (VRM) 5 volt leverer op til 2 ampere, maks. 1,5 ampere, men det er et delt stik, så hvis en anden enhed er på 5 volt -bussen, er der mulighed for en blackout. VRM leverer også 12 volt ved 2 ampere, men vi bruger begge forbindelser til at drive vores radio ved hjælp af et POE -kabel og en tøndeforbindelse til redundans. Nogle FRC -inspektører tillader ikke, at andet end det, der er trykt på VRM, tilsluttes der. Så 12 volt fra PDP'en på en 5 amp Breaker er, hvor Pi skal strømforsynes.

12 volt leveres via en 5 amp breaker på strømfordelingspanelet (PDP), konverteres til 5,15 volt ved hjælp af en LM2596 DC til DC Buck Converter. Buck -omformeren leverer 5 volt ved 3 ampere og forbliver i regulering ned til 6,5 volt input. Denne 5 volt bus giver derefter strøm til 3 undersystemer, LED -ringarray, blæser, Raspberry Pi.

Forbrugsvarer

  • 6 Pack LM2596 DC til DC Buck Converter 3.0-40V til 1.5-35V Strømforsyning Step Down Module (6 Pack) $ 11.25
  • Noctua NF-A4x10 5V, Premium Quiet Fan, 3-Pin, 5V Version (40x10mm, Brown) $ 13,95
  • SanDisk Ultra 32GB microSDHC UHS-I-kort med adapter-98MB/s U1 A1-SDSQUAR-032G-GN6MA $ 7,99
  • Raspberry Pi-kameramodul V2-8 megapixel, 1080p 428,20
  • GeeekPi Raspberry Pi 4 Heatsink, 20PCS Raspberry Pi Aluminium Heatsinks med termisk ledende tape til Raspberry Pi 4 Model B (Raspberry Pi Board er ikke inkluderet) $ 7,99
  • Raspberry Pi 4 Model B 2019 Quad Core 64 Bit WiFi Bluetooth (4GB) $ 61,96
  • (Pakke med 200 dele) 2N2222 Transistor, 2N2222 til-92 Transistor NPN 40V 600mA 300MHz 625mW Gennemhul 2N2222A $ 6,79
  • EDGELEC 100stk 100 ohm Modstand 1/4w (0,25 Watt) ± 1% Tolerance Metal Film Fixed Resistor $ 5,69 https://smile.amazon.com/gp/product/B07QKDSCSM/re… Waycreat 100PCS 5mm grønne LED -dioder Klar udsender lysdioder til High Intensity Super Bright Lighting Pære Lamper Elektronik Komponenter Lampedioder $ 6,30
  • J-B Weld Plastic Bonder $ 5,77

Trin 1: Prototype 1

Prototype 1
Prototype 1

Første test i emballage:

Teamet havde en Pi 3 fra et tidligere år, der var tilgængeligt til test. Et pi-kamera, et DC-DC buck/boost-kredsløb og et Andymark-ringlys blev tilføjet.

På dette tidspunkt havde jeg ikke overvejet Pi 4, så jeg var ikke bekymret for strømbehov. Strøm blev leveret via USB fra roboRIO. Kameraet passer i etuiet uden ændringer. Ringlyset blev varmlimet på kabinetdækslet og forbundet til boostkortet. Boostkortet blev tilsluttet GPIO -portene 2 og 6 i 5 volt, og output blev justeret op til 12 volt for at køre ringen. Der var ikke plads inde i kabinettet til boostbrættet, så det var også varmlimet udvendigt. Software blev installeret og testet ved hjælp af mål fra spilåret 2019. Softwareteamet gav tommelfinger op, så vi bestilte en Pi 4, kølelegemer og en ventilator. Og mens de på vej var kabinettet designet og 3D -printet.

Trin 2: Prototype 2

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

Kapslingens interne dimensioner var OK, men havnens placeringer blev forskudt, ikke et show -stop.

Dette blev afsluttet lige efter det nye spil afslørede, så software kunne teste mod de nye målplaceringer.

Gode og dårlige nyheder. Ringlyseffekten var ikke tilstrækkelig, da vi var større end 15 fod fra målet, så tid til at nytænke belysningen. Da der var behov for ændringer, betragter jeg denne enhed som prototype 2.

Trin 3: Prototype 3

Prototype 3
Prototype 3
Prototype 3
Prototype 3

Prototype 2 blev efterladt sammen, så software kunne fortsætte med at forfine deres system. I mellemtiden blev der fundet en anden Pi 3, og jeg broste et andet testleje sammen. Dette havde en Pi3, et USB lifecam 3000 direkte loddet til brættet, en boost -konverter og håndloddet diode -array.

Igen gode nyheder, dårlige nyheder. Arrayen kunne tænde et mål fra 50+fod væk, men ville miste målet, hvis slukket vinkel var større end 22 grader. Med denne information kunne det endelige system laves.

Trin 4: Slutprodukt

Slutprodukt
Slutprodukt
Slutprodukt
Slutprodukt
Slutprodukt
Slutprodukt

Prototype 3 havde 6 dioder cirka 60 grader fra hinanden og vendt direkte fremad.

De sidste ændringer var at tilføje 8 dioder med 45 graders mellemrum rundt om linsen med 4 dioder vendt fremad og 4 dioder skråtstillet 10 grader, hvilket giver et synsfelt på 44 grader. Dette gør det også muligt at montere kabinettet enten lodret eller vandret på robotten. Et nyt kabinet blev udskrevet med ændringer for at rumme en Pi 3 eller Pi 4. Skabets overflade blev ændret til de enkelte dioder.

Testningen viste ikke nogen ydelsesproblemer mellem hverken Pi 3 eller 4, så kabinettets åbninger blev lavet til at tillade enten Pi at blive installeret. De bageste monteringspunkter blev fjernet samt udstødningsåbningerne øverst på kuplen. Brug af en Pi 3 vil yderligere reducere omkostningerne. Pi 3 kører køligere og bruger mindre strøm. Til sidst besluttede vi at bruge PI 3'er til omkostningsbesparelser, og softwareteamet ville bruge en kode, der ville køre på Pi 3, der ikke var blevet opdateret til Pi 4.

Importer STL'en til din 3D -printer -skiver, så er du væk. Denne fil er i tommer, så hvis du har en skiver som Cura, skal du sandsynligvis skalere delen til %2540 for at konvertere den til metrisk. Hvis du har Fusion 360, kan.f3d -filen ændres til dine egne behov. Jeg ville medtage en.step -fil, men instrukser tillader ikke, at filerne uploades.

Grundlæggende værktøjer nødvendige:

  • Wire strippere
  • Tang
  • Loddekolbe
  • Krympeslange
  • Trådskærere
  • Blyfrit lodning
  • Strøm
  • Hjælpende hænder eller pincet
  • Varmepistol

Trin 5: Ledningsdiode -array

Ledningsdiode Array
Ledningsdiode Array
Ledningsdiode Array
Ledningsdiode Array
Ledningsdiode Array
Ledningsdiode Array

Sikkerhedsmeddelelse:

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

Hold ledninger, der skal opvarmes med pincet eller klemmer.

Hold rengøringssvampen våd under brug.

Stil altid loddejernet tilbage på stativet, når det ikke er i brug.

Læg den aldrig på arbejdsbordet.

Sluk for enheden, og tag stikket ud, når den ikke er i brug.

Loddemiddel, flux og rengøringsmidler

Bær øjenbeskyttelse.

Loddemetal kan "spytte".

Brug kolofoniumfrie og blyfrie lodninger, når det er muligt.

Opbevar rengøringsmidler i doseringsflasker.

Vask altid dine hænder med sæbe og vand efter lodning.

Arbejde i godt ventilerede områder.

OK lad os komme på arbejde:

Indkapslingsfladen blev trykt med diodehuller ved 0, 90, 180, 270 punkter er skråtstillet ved 10 grader ud. Huller på 45, 135, 225, 315 punkter er lige.

Placer alle dioder i kabinetfladen for at kontrollere 5 mm hulstørrelse. En tæt pasning vil holde dioderne pegende i den korrekte vinkel. Den lange ledning på en diode er anoden, lod en 100 ohm modstand til hver diode. Loddekabler på dioden og modstanden lukker og efterlader en lang ledning på den anden side af modstanden (se fotos). Test hver kombination, før du går videre. AA -batteri og 2 testledninger vil dæmpe dioden svagt og kontrollere, at du har den korrekte polaritet.

Sæt diode/modstandskombinationen tilbage i kabinettet, og placer ledninger i et zig-zag-mønster, så hver modstandsledning rører ved den næste modstand for at oprette en ring. Lod alle ledninger. Jeg ville blande noget J-B svejset plastikbonder (https://www.amazon.com/J-B-Weld-50133-Tan-1-Pack) og epoxy diode/modstandskombinationen på plads. Jeg overvejede superlim, men var usikker på, om Cyanoacrylatet ville tåge diodelinsen. Jeg gjorde dette i slutningen af al min lodning, men ville ønske, at jeg havde gjort det her for at reducere frustration, når dioder ikke ville holde på plads under lodning. Epoxy sætter op på cirka 15 minutter, så et godt sted at tage en pause.

Nu kan alle katodeledningerne loddes sammen for at skabe - eller jordringen. Tilføj 18 gauge røde og sorte ledninger til din diodering. Test det færdige array ved hjælp af en 5 volt strømforsyning, USB -oplader fungerer godt til dette.

Trin 6: Buck/Boost ledninger

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

Inden ledninger i Buck -omformeren skal vi indstille udgangsspændingen. Da vi bruger PDP'en til at levere de 12 volt, som jeg kørte direkte til en PDP -port, smeltet med 5 ampere. Klip et voltmeter til boardoutput og begynd at dreje potentiometeret. Det vil tage en del omdrejninger, før du ser en ændring, da tavlen er fabrikstestet til fuld output og derefter efterlades ved den indstilling. Indstillet til 5,15 volt. Vi sætter et par millivolt højt for at matche, hvad Pi forventer at se fra en USB -oplader og enhver linieindlæsning fra ventilator og diode -array. (Under den første test så vi generende meddelelser fra Pi, der klagede over lav busspænding. En internetsøgning gav os informationen om, at Pi forventede mere end 5,0 volt, da de fleste ladere satte lidt mere ud, og den typiske strømforsyning til en Pi er en USB -oplader.)

Dernæst skal vi forberede sagen:

Bukkekonverteren og Pi holdes fast ved hjælp af 4-40 maskinskruer. #43 Bor er ideel til at skabe præcise huller til tapning af 4-40 tråde. Hold Pi og buck -konverteren til standoffs, markér derefter boret ved hjælp af boret #43. Højden på standoffs tillader nok dybde til at dille uden at gå helt igennem ryggen. Tryk på hullerne med en 4-40 blind hane. Selvbåndende skruer brugt i plast ville fungere godt her, men jeg havde de 4-40 skruer til rådighed, så det var det, jeg brugte. Skruer er nødvendige for at give adgang til SD -kortet (ingen ekstern adgang til kortet følger med dette kabinet).

Det næste hul til at bore er til dit strømkabel. Jeg valgte et punkt i nederste hjørne, så det ville køre langs siden af Ethernet -kablet eksternt og til siden af og derefter under Pi internt. Jeg brugte et afskærmet 2 -leder kabel, da det var det, jeg havde ved hånden, ethvert 14 gauge trådpar vil fungere. Hvis du bruger et trådfrit par, skal du lægge 1 til 2 lag varmekrymp på tråden, hvor den kommer ind i dit kabinet for beskyttelse og aflastning. Hulstørrelse bestemmes af dit trådvalg.

Nu kan du lodde ledningerne til inputlinjerne på DC-DC-omformeren. Forbindelserne er mærket på tavlen. Rød ledning til in+ Sort ledning til in-. Da jeg kom ud af brættet lod jeg 2 korte bare ledninger for at fungere som trådstolpe til at binde blæseren, Pi og transistor.

Trin 7: Endelig ledningsføring og epoxy

Endelig ledningsføring og epoxy
Endelig ledningsføring og epoxy
Endelig ledningsføring og epoxy
Endelig ledningsføring og epoxy
Endelig ledningsføring og epoxy
Endelig ledningsføring og epoxy

Der foretages kun 4 forbindelser til Pi. Jord, strøm, LED -kontrol og kamera -interface båndkabel.

De 3 ben bruges på Pi er 2, 6 og 12.

Klip en rød, sort og hvid ledning til 4 tommer. Fjern 3/8 tommer fra isolering i begge ender af ledninger, tinender af ledninger og tinstift på Pi.

  • Loddet rød ledning til GPIO pin 2 slip 1/2 inch varmekrympeslange anvender varme.
  • Loddet sort ledning til GPIO pin 6 slip 1/2 inch varmekrympeslange anvender varme.
  • Loddet hvid ledning til GPIO pin 12 slip 1/2 inch varmekrympeslange anvender varme.
  • Loddet rød tråd til at bukke ud+
  • Lodde sort ledning til bukke ud-
  • Tilføj 1 tommer varmekrympning til hvid ledning og lodning til 100 ohm modstand og fra modstand til transistorbase. Isoler med varmekrympning.
  • Transistoremitter til Buck -
  • Transistor -kollektor til katodesiden af dioderække
  • Diodearray Anode/modstand til Buck +
  • Ventilator rød ledning til at bukke ud+
  • Ventilator sort ledning til bukke ud-

Sidste forbindelse:

Skub kameraets interfacekabel ind. Kabelforbindelse bruger et zif -stik (nul indsættelseskraft). Den sorte strimmel på toppen af stikket skal løftes op, kablet anbringes i stikket og derefter skubbes stikket ned igen for at låse det på plads. Vær forsigtig med ikke at krympe kablet, da sporet i isoleringen kan gå i stykker. Også stik skal indsættes lige for båndkabel til pinjustering.

Kontroller dit arbejde for løse trådtråde og loddeklatter, klip eventuel overskydende længde tilbage på bukslodestolperne.

Hvis du er tilfreds med dit arbejde, kan ventilatoren og kameraet epoxes på plads. Et par dråber i hjørnerne er alt hvad du behøver.

Trin 8: Software

Software
Software
Software
Software
Software
Software
Software
Software

Mens epoxyen hærder, kan vi få software ind i SD -kortet. skal du bruge en SD-kortadapter for at tilslutte din computer (https://www.amazon.com/Reader-Laptops-Windows-Chrom….

Gå til:

www.raspberrypi.org/downloads/raspbian/ og download Raspbian Buster Lite. For at blinke SD -kortet med raspbian skal du bruge et andet softwareværktøj BalenaEtcher, og det kan findes her, Epoxyen skulle nu være hærdet nok til, at du kan installere SD -kortet og skrue buck/boost -kortet ned. Inden du klikker på dækslet, skal du kontrollere, at ingen ledninger forstyrrer dækslet og kamerakablet ikke berører ventilatorbladene. Når dækslet er på plads, blæser jeg på blæseren og ser for at se det bevæge sig for at sikre, at der ikke er forstyrrelser fra ledninger eller båndkablet.

Tid til opstart:

Første gang du tænder, skal du bruge et hdmi -kabel, hvis en Pi 4 et mini -hdmi -kabel, usb -tastatur og hdmi -skærm sammen med en internetforbindelse. Ledning til en 12 volt strømforsyning, PDP med en 5 amp bryder.

Efter at have logget ind, skal du først konfigurere værktøjet. Det er her, SSH kan indstilles sammen med aktivering af PI -kameraet. https://www.raspberrypi.org/documentation/configur… har vejledning til at hjælpe.

Genstart, før du installerer Chameleon Vision

Besøg venligst deres websted, før du bruger deres software, de har et væld af oplysninger. En note, på deres understøttede hardwareside vises Pi -cam som ikke understøttet, men det er med deres nyeste udgivelse. Websiden skal opdateres.

Fra websted for kamæleon vision:

Chameleon Vision kan køre på de fleste tilgængelige operativsystemer til Raspberry Pi. Det anbefales dog, at du installerer Rasbian Buster Lite, der findes her: //www.raspberrypi.org/downloads/raspbian/. Følg instruktionerne for at installere Raspbian på et SD -kort.

Sørg for, at Raspberry Pi er forbundet via Ethernet til internettet. Log ind på Raspberry Pi (brugernavn pi og password hindbær) og kør følgende kommandoer i terminalen:

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

$ chmod +x install.sh

$ sudo./install.sh

$ sudo genstart nu

Tillykke! Din Raspberry Pi er nu konfigureret til at køre Chameleon Vision! Når Raspberry Pi er genstartet, kan Chameleon Vision startes med følgende kommando:

$ sudo java -jar kamæleon -vision.jar

Når en ny version af Chameleon Vision frigives, skal du opdatere den ved at køre følgende kommandoer:

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

$ chmod +x update.sh

$ sudo./update.sh

LED Array kontrol:

Dit LED -array lyser ikke uden softwarekontrol

Første robotik i år har en regel mod klare LED -lys, men tillader dem, hvis de kan slukkes og tændes efter behov. Colin Gideon "SpookyWoogin", FRC 3223, skrev et Python -script til at styre LED'erne, og det kan findes her:

github.com/frc3223/RPi-GPIO-Flash

Dette system vil også køre FRC -vision, hvis dit team allerede har investeret softwaretiden i den platform. Med FRC vision er det komplette SD -kort afbildet, så du behøver ikke downloade raspbian. Få det her

Dette får dig et visionssystem i en kølig formfaktor. Held og lykke med konkurrencerne!

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

Runner Up i Raspberry Pi Contest 2020

Anbefalede: