Innehållsförteckning:

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

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

Video: Raspberry PI Vision Processor (SpartaCam): 8 steg (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)

Ett Raspberry PI -visionprocessorsystem för din FIRST Robotics Competition -robot

Om FÖRSTA

Från Wikipedia, den fria encyklopedin

FIRST Robotics Competition (FRC) är en internationell robotikstävling på gymnasiet. Varje år arbetar lag av gymnasieelever, tränare och mentorer under en sexveckorsperiod för att bygga robotar som väger upp till 54 kg. Roboter slutför uppgifter som att göra bollar i mål, flyga skivor till mål, innerrör på ställningar, hänga på stänger och balansera robotar på balansbalkar. Spelet, tillsammans med den uppsättning uppgifter som krävs, ändras årligen. Medan lag får en standard uppsättning delar, får de också en budget och uppmuntras att köpa eller göra specialdelar.

Årets spel (2020) Oändlig laddning. Infinite Recharge -spelet involverar två allianser med tre lag vardera, där varje lag styr en robot och utför specifika uppgifter på ett fält för att göra poäng. Spelet centreras kring ett futuristiskt stadstema som involverar två allianser bestående av tre lag som vardera tävlar om att utföra olika uppgifter, inklusive att skjuta skumbollar kallade Power Cells till höga och låga mål för att aktivera en Shield Generator, manipulera en kontrollpanel för att aktivera denna sköld, och återvänder till Shield Generator för att parkera eller klättra i slutet av matchen. Målet är att aktivera och aktivera skölden innan matchen avslutas och asteroider slår mot FIRST City, en futuristisk stad efter Star Wars.

Vad gör Raspberry PI vision processor system?

Kameran kommer att kunna skanna spelplanen och målplatser där spelbitar levereras eller måste placeras för poäng. Enheten har 2 anslutningar, ström och Ethernet.

Visionsmålen på spelplanen är skisserade med retroreflekterande tejp och ljus reflekteras tillbaka till kameralinsen. Pi som kör öppen källkod från Chameleon Vision (https://chameleon-vision.readthedocs.io/en/latest/…) kommer att bearbeta vyn, markera den, lägga till bildöverlagringar och utmatningshöjd, yaw, kontur och position som matrisvärden ordnade med x och y i meter och vinkel i grader tillsammans med andra data via en nätverkstabell. Den informationen kommer att användas i mjukvara för att styra vår robot i autonomt läge samt rikta och skjuta vår revolverade skjutare. Andra mjukvaruplattformar kan köras på Pi. FRC -vision kan installeras om ditt team redan har investerat programvarutiden i den plattformen.

Vår budget var snäv i år och att köpa en Limelight $ 399,00 (https://www.wcproducts.com/wcp-015) kamera fanns inte i korten. Genom att köpa alla leveranser från Amazon och använda Team 3512 Spartatroniks 3D -skrivare kunde jag paketera ett anpassat visionssystem för $ 150,00. Vissa objekt kom i bulk, bygga upp en andra co-processor skulle bara kräva en annan Raspberry Pi, PI kamera och fläkt. Med CAD -hjälp från ett av teamens mentorer (tack Matt) skapades PI -höljet med Fusion 360.

Varför inte bara använda en Pi med billigt hölje, koppla in en USB -kamera, lägga till ett ringljus, installera Chameleon vision och du är klar, eller hur? Tja, jag ville ha mer ström och mindre kablar och kylfaktorn för ett anpassat system.

En Pi 4 använder 3 ampere om den körs fullt ut, det är om den använder de flesta av dess portar och wifi och kör en bildskärm. Vi gör inte det på våra robotar, men USB-portarna på roboRIO https://www.ni.com/en-us/support/model.roborio.ht… är klassade till 900 ma, spänningsregulatorn modulär (VRM) 5 volt levererar upp till 2 ampere topp, 1,5 ampere gräns, men det är en delad kontakt så om en annan enhet finns på 5 volt bussen finns det en risk för en brownout. VRM levererar också 12 volt vid 2 ampere, men vi använder båda anslutningarna för att driva vår radio med en POE -kabel och en fatanslutning för redundans. Vissa FRC -inspektörer tillåter inte att annat än det som står tryckt på VRM kopplas in där. Så 12 volt från PDP på en 5 ampars brytare är där Pi måste drivas.

12 volt levereras via en 5 amp brytare på kraftdistributionspanelen (PDP), omvandlas till 5,15 volt med en LM2596 DC till DC Buck Converter. Buck -omvandlaren levererar 5 volt vid 3 ampere och håller sig i reglering ner till 6,5 volt ingång. Denna 5 volts buss ger sedan ström till 3 delsystem, LED -ringsystem, fläkt, Raspberry Pi.

Tillbehör

  • 6-pack LM2596 DC till DC Buck Converter 3.0-40V till 1.5-35V strömförsörjningsmodul (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 kylfläns, 20PCS Raspberry Pi aluminium kylflänsar med termiskt ledande tejp för Raspberry Pi 4 Model B (Raspberry Pi Board ingår inte) $ 7,99
  • Raspberry Pi 4 Model B 2019 Quad Core 64 Bit WiFi Bluetooth (4GB) $ 61,96
  • (Förpackning med 200 delar) 2N2222 Transistor, 2N2222 till-92 Transistor NPN 40V 600mA 300MHz 625mW Genomgående hål 2N2222A $ 6,79
  • EDGELEC 100st 100 ohm Resistor 1/4w (0,25 Watt) ± 1% Tolerans Metal Film Fixed Resistor $ 5,69 https://smile.amazon.com/gp/product/B07QKDSCSM/re… Waycreat 100PCS 5mm gröna LED -dioder Klarstrålande lysdioder för Högintensitet Superljusbelysning Glödlampor Elektronik Komponenter Lampdioder $ 6,30
  • J-B Weld Plastic Bonder $ 5,77 $

Steg 1: Prototyp 1

Prototyp 1
Prototyp 1

Första testet i förpackningen:

Teamet hade en Pi 3 från föregående år som var tillgänglig för testning. En pi-kamera, en DC-DC buck/boost-krets och ett Andymark-ringljus har lagts till.

Vid den här tiden hade jag inte tänkt på Pi 4 så jag var inte orolig för strömbehov. Ström levererades via USB från roboRIO. Kameran passar i fodralet utan modifiering. Ringljuset var varmt limmat på fodralets lock och anslutet till boostkortet. Boostkortet ansluts till GPIO -portarna 2 och 6 för 5 volt och utgången justerades upp till 12 volt för att köra ringen. Det fanns inget utrymme inuti fodralet för boostkortet så det var också varmt limt på utsidan. Programvara installerades och testades med hjälp av mål från spelåret 2019. Programvaruteamet gav tummen upp så vi beställde en Pi 4, kylflänsar och en fläkt. Och medan de var på väg var höljet designat och 3D -tryckt.

Steg 2: Prototyp 2

Prototyp 2
Prototyp 2
Prototyp 2
Prototyp 2
Prototyp 2
Prototyp 2

Kapslingens inre mått var OK, men hamnplatserna förskjutits, inte en utställningsstopp.

Detta slutfördes strax efter att det nya spelet avslöjade så att programvara kunde testa mot de nya målplatserna.

Goda nyheter och dåliga nyheter. Ringljusutgången var inte tillräcklig när vi var större än 15 fot från målet så dags att tänka om belysning. Eftersom förändringar behövdes anser jag att denna enhet är prototyp 2.

Steg 3: Prototyp 3

Prototyp 3
Prototyp 3
Prototyp 3
Prototyp 3

Prototyp 2 lämnades ihop så att programvara kunde fortsätta att förfina deras system. Samtidigt hittades ytterligare en Pi 3 och jag kullade ihop ytterligare en testbädd. Detta hade en Pi3, en USB lifecam 3000 direktlödd på brädet, en boost -omvandlare och handlödd diodmatris.

Återigen goda nyheter, dåliga nyheter. Matrisen kan tända ett mål från 50+fot bort, men skulle förlora målet om avstängningsvinkel större än 22 grader. Med denna information kan det slutliga systemet göras.

Steg 4: Slutprodukt

Slutprodukt
Slutprodukt
Slutprodukt
Slutprodukt
Slutprodukt
Slutprodukt

Prototyp 3 hade 6 dioder med cirka 60 graders mellanrum och vända direkt framåt.

De sista ändringarna var att lägga till 8 dioder med 45 graders mellanrum runt linsen med 4 dioder vända framåt och 4 dioder kantade ut 10 grader vilket ger ett synfält på 44 grader. Detta gör också att höljet kan monteras antingen vertikalt eller horisontellt på roboten. Ett nytt hölje trycktes med ändringar för att rymma en Pi 3 eller Pi 4. Ytan på höljet modifierades för de enskilda dioderna.

Testning visade inga prestandaproblem mellan antingen Pi 3 eller 4 så att höljesöppningarna gjordes för att tillåta att antingen Pi installerades. De bakre fästpunkterna avlägsnades liksom avgasöppningarna på toppen av kupolen. Att använda en Pi 3 kommer att sänka kostnaden ytterligare. Pi 3 går svalare och använder mindre ström. Till slut bestämde vi oss för att använda PI 3 för kostnadsbesparingar och programvaruteamet ville använda någon kod som skulle köras på Pi 3 som inte hade uppdaterats för Pi 4.

Importera STL till din 3D -skrivare och skynda dig. Den här filen är i tum, så om du har en skärare som Cura, måste du förmodligen skala delen till %2540 för att konvertera den till metrisk. Om du har Fusion 360 kan.f3d -filen ändras efter dina egna behov. Jag ville inkludera en.step -fil men instruktioner tillåter inte att filer laddas upp.

Grundläggande verktyg som behövs:

  • Wire strippers
  • Tång
  • Lödkolv
  • Krympslang
  • Avbitartång
  • Blyfritt löd
  • Flöde
  • Hjälpande händer eller tång
  • Värmepistol

Steg 5: Ledningsdiodmatris

Ledningsdiodmatris
Ledningsdiodmatris
Ledningsdiodmatris
Ledningsdiodmatris
Ledningsdiodmatris
Ledningsdiodmatris

Säkerhetsmeddelande:

Lödkolv Rör aldrig vid lödkolvens element …. 400 ° C (750 ° F)

Håll trådarna som ska värmas upp med pincett eller klämmor.

Håll rengöringssvampen våt under användning.

Sätt alltid tillbaka lödkolven till dess stativ när den inte används.

Lägg aldrig den på arbetsbänken.

Stäng av enheten och dra ur kontakten när den inte används.

Lödning, flussmedel och rengöringsmedel

Använd ögonskydd.

Lödet kan "spotta".

Använd såväl hartsfria som blyfria lödare.

Förvara rengöringsmedel i doseringsflaskor.

Tvätta alltid händerna med tvål och vatten efter lödning.

Arbeta i välventilerade utrymmen.

OK, låt oss jobba:

Höljesytan trycktes med diodhål vid 0, 90, 180, 270 punkter är kantade vid 10 grader ut. Hål på 45, 135, 225, 315 punkter är raka.

Placera alla dioder i höljesytan för att verifiera 5 mm hålstorlek. En tät passform kommer att hålla dioderna pekande i rätt vinkel. Den långa ledningen på en diod är anoden, löd ett 100 ohm motstånd till varje diod. Lödkablar på dioden och motståndet stängs och lämnar en lång ledning på andra sidan motståndet (se bilder). Testa varje kombination innan du går vidare. AA -batteri och 2 testledningar tänder dimman dämpat och verifierar att du har rätt polaritet.

Sätt tillbaka diod/motståndskombinationen i höljet och placera ledningarna i ett sicksackmönster så att varje motståndsledning vidrör nästa motstånd för att skapa en ring. Löd alla ledningar. Jag skulle blanda lite J-B Weld Plastic Bonder (https://www.amazon.com/J-B-Weld-50133-Tan-1-Pack) och epoxi dioden/motståndskombinationen på plats. Jag övervägde superlim men var osäker på om cyanoakrylatet skulle dimma diodlinsen. Jag gjorde detta i slutet av all min lödning men önskar att jag hade gjort det här för att minska frustrationen när dioder inte skulle hålla på plats under lödning. Epoxin ställer upp på cirka 15 minuter så ett bra ställe att ta en paus.

Nu kan alla katodledare lödas ihop för att skapa - eller markringen. Lägg till 18 gauge röda och svarta ledningar till din diodring. Testa den färdiga matrisen med en 5 volt strömförsörjning, USB -laddare fungerar bra för detta.

Steg 6: Buck/Boost Wiring

Buck/Boost -ledningar
Buck/Boost -ledningar
Buck/Boost -kablar
Buck/Boost -kablar
Buck/Boost -ledningar
Buck/Boost -ledningar
Buck/Boost -ledningar
Buck/Boost -ledningar

Innan vi kopplar in Buck -omvandlaren måste vi ställa in utspänningen. Eftersom vi använder PDP: n för att leverera de 12 volt kopplade jag direkt till en PDP -port, smält vid 5 ampere. Kläm fast en voltmeter på kortets utgång och börja vrida potentiometern. Det kommer att ta ganska många varv innan du ser en förändring eftersom kortet är fabrikstestat till full effekt och sedan lämnas vid den inställningen. Satt till 5,15 volt. Vi sätter några millivolt högt för att matcha vad Pi förväntar sig att se från en USB -laddare och eventuell laddning från fläkt och diodmatris. (Under första testet såg vi störande meddelanden från Pi som klagade över låg busspänning. En internetsökning gav oss informationen om att Pi förväntade sig mer än 5,0 volt eftersom de flesta laddare släckte något mer och den typiska strömförsörjningen för en Pi är en USB -laddare.)

Därefter måste vi förbereda ärendet:

Buck-omvandlaren och Pi hålls fast med 4-40 maskinskruvar. #43 Borr är idealisk för att skapa exakta hål för tejpning av 4-40 trådar. Håll Pi och buck -omvandlaren till avstånden, markera sedan borra med borrborr #43. Höjden på avstånden ger tillräckligt med djup för att dilla utan att gå helt genom ryggen. Knacka på hålen med en 4-40 blindkran. Självtejpande skruvar som används i plast skulle fungera bra här, men jag hade 4-40 skruvarna tillgängliga, så det var vad jag använde. Skruvar behövs för att ge åtkomst till SD -kortet (ingen extern åtkomst till kortet tillhandahålls med detta hölje).

Nästa hål att borra är för din strömkabel. Jag valde en punkt i det nedre hörnet så att den skulle gå längs sidan av Ethernet -kabeln externt och till sidan av och sedan under Pi internt. Jag använde en skärmad 2 -trådskabel som dess vad jag hade till hands, alla 14 gauge trådpar fungerar. Om du använder ett trådmantlat par, lägg 1 till 2 lager värmekrymp på tråden där den kommer in i ditt hölje för skydd och dragavlastning. Hålstorlek bestäms av ditt trådval.

Nu kan du löda trådarna till ingångsledningarna på DC-DC-omvandlaren. Anslutningarna är märkta på tavlan. Röd tråd till in+ Svart tråd till in-. När jag kom ut ur brädet lödde jag 2 korta trådar för att fungera som trådstolpe för att binda in fläkten, Pi och transistorn.

Steg 7: Slutlig ledning och epoxi

Slutlig ledning och epoxi
Slutlig ledning och epoxi
Slutlig ledning och epoxi
Slutlig ledning och epoxi
Slutlig ledning och epoxi
Slutlig ledning och epoxi

Endast 4 anslutningar görs till Pi. Jord, ström, LED -kontroll och bandgränssnittskabel.

De tre stiften som används på Pi är 2, 6 och 12.

Klipp en röd, svart och vit tråd till 4 tum. Ta bort 3/8 tum av isoleringen på båda ändarna av trådarna, tennändarna på trådarna och tennpinnarna på Pi.

  • Löd röd tråd till GPIO pin 2 slip 1/2 tum av värmekrympslang applicera värme.
  • Löd svart tråd till GPIO stift 6 slip 1/2 tum av värmekrympslang applicera värme.
  • Löd vit tråd till GPIO pin 12 slip 1/2 tum av värmekrympslang applicera värme.
  • Löd röd tråd för att rycka ut+
  • Löd svarta trådar att bocka ut-
  • Lägg till 1 tum värmekrympning till vit tråd och löd till 100 ohm motstånd och från motstånd till transistor bas. Isolera med värmekrympning.
  • Transistorsändare till Buck -
  • Transistorsamlare till katodsidan av diodmatrisen
  • Diodmatris Anod/motstånd till Buck +
  • Fläkt röd tråd att rycka ut+
  • Fläkt svart tråd att bocka ut-

Senaste anslutningen:

Skjut in kamerans gränssnittskabel. Kabelanslutningen använder en zif -kontakt (Zero insertion force). Den svarta remsan på kontaktens ovansida måste lyftas upp, kabeln placeras i uttaget och sedan trycks kontakten ned igen för att låsa den på plats. Var försiktig så att inte kabeln krymper eftersom spåret i isoleringen kan gå sönder. Dessutom måste kontakten sättas in rakt för att bandkabeln ska stämma in.

Kontrollera ditt arbete för lösa trådtrådar och lödkulor, klipp tillbaka eventuell överlängd på bocklödstolparna.

Om du är nöjd med ditt arbete kan fläkten och kameran epoxas på plats. Några droppar i hörnen är allt du behöver.

Steg 8: Programvara

programvara
programvara
programvara
programvara
programvara
programvara
programvara
programvara

Medan epoxin härdar kan du få programvara till SD -kortet. du behöver en SD-kortadapter för att ansluta till din dator (https://www.amazon.com/Reader-Laptops-Windows-Chrom….

Gå till:

www.raspberrypi.org/downloads/raspbian/ och ladda ner Raspbian Buster Lite. För att flasha SD -kortet med raspbian behöver du ett annat programverktyg BalenaEtcher och det finns här, Epoxin borde ha härdat tillräckligt nu så att du kan installera SD -kortet och skruva ner buck/boost -kortet. Innan du sätter på locket, kontrollera att inga kablar stör locket och kamerakabeln inte vidrör fläktbladen. När locket är på plats blåser jag på fläkten och ser hur den rör sig för att säkerställa att det inte blir störningar från ledningar eller bandkabeln.

Dags att starta:

Första gången du startar behöver du en hdmi -kabel, om en Pi 4 en mini hdmi -kabel, usb -tangentbord och hdmi -skärm tillsammans med en internetanslutning. Koppla till en 12 volt strömförsörjning, PDP med en 5 amp brytare.

Efter att du har loggat in är det första du ska göra att köra konfigurationsverktyget. Det är här SSH kan ställas in tillsammans med aktivering av PI -kameran. https://www.raspberrypi.org/documentation/configur… har instruktioner att hjälpa.

Starta om innan du installerar Chameleon Vision

Besök deras webbplats innan du använder deras programvara, de har en mängd information. En anmärkning, på deras hårdvarusida som stöds visas Pi -kameran som inte stöds, men det är med deras senaste version. Webbsidan behöver uppdateras.

Från Chameleon vision webbsida:

Chameleon Vision kan köras på de flesta operativsystem som finns tillgängliga för Raspberry Pi. Det rekommenderas dock att du installerar Rasbian Buster Lite, tillgänglig här https://www.raspberrypi.org/downloads/raspbian/. Följ instruktionerna för att installera Raspbian på ett SD -kort.

Se till att Raspberry Pi är ansluten via Internet till Internet. Logga in på Raspberry Pi (användarnamn pi och lösenord raspberry) och kör följande kommandon i terminalen:

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

$ chmod +x install.sh

$ sudo./install.sh

$ sudo starta om nu

Grattis! Din Raspberry Pi är nu inställd för att köra Chameleon Vision! När Raspberry Pi har startat om kan Chameleon Vision startas med följande kommando:

$ sudo java -jar kameleont -vision.jar

När en ny version av Chameleon Vision släpps, uppdatera den genom att köra följande kommandon:

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

$ chmod +x update.sh

$ sudo./update.sh

LED Array -kontroll:

Din LED -array tänds inte utan mjukvarukontroll

Den första robotiken i år har en regel mot starka LED -lampor, men tillåter dem om de kan slås av och på efter behov. Colin Gideon "SpookyWoogin", FRC 3223, skrev ett Python -skript för att styra lysdioderna och det finns här:

github.com/frc3223/RPi-GPIO-Flash

Detta system kommer också att köra FRC -vision om ditt team redan har investerat programvarutiden i den plattformen. Med FRC vision är hela SD -kortet avbildat så du behöver inte ladda ner raspbian. Få det här

Detta ger dig ett visionssystem i en cool formfaktor. Lycka till på tävlingarna!

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

Tvåa i Raspberry Pi Contest 2020

Rekommenderad: