Sommario:

Processore di visione Raspberry PI (SpartaCam): 8 passaggi (con immagini)
Processore di visione Raspberry PI (SpartaCam): 8 passaggi (con immagini)

Video: Processore di visione Raspberry PI (SpartaCam): 8 passaggi (con immagini)

Video: Processore di visione Raspberry PI (SpartaCam): 8 passaggi (con immagini)
Video: Идентификация объектов и распознавание животных с помощью Raspberry Pi + OpenCV + Python 2024, Dicembre
Anonim
Processore di visione Raspberry PI (SpartaCam)
Processore di visione Raspberry PI (SpartaCam)
Processore di visione Raspberry PI (SpartaCam)
Processore di visione Raspberry PI (SpartaCam)

Un sistema di elaborazione della visione Raspberry PI per il tuo robot FIRST Robotics Competition

Informazioni su FIRST

Da Wikipedia, l'enciclopedia libera

La FIRST Robotics Competition (FRC) è una competizione internazionale di robotica per le scuole superiori. Ogni anno, squadre di studenti delle scuole superiori, allenatori e mentori lavorano per un periodo di sei settimane per costruire robot di gioco che pesano fino a 120 libbre (54 kg). I robot completano compiti come segnare le palle nelle porte, i dischi volanti nelle porte, le camere d'aria sulle rastrelliere, appendere le barre e bilanciare i robot sulle travi di equilibrio. Il gioco, insieme alla serie di compiti richiesti, cambia ogni anno. Mentre i team ricevono un set standard di parti, hanno anche un budget e sono incoraggiati ad acquistare o realizzare parti specializzate.

Gioco di quest'anno (2020) RICARICA INFINITA. Il gioco Infinite Recharge coinvolge due alleanze di tre squadre ciascuna, con ogni squadra che controlla un robot ed esegue compiti specifici su un campo per segnare punti. Il gioco è incentrato sul tema di una città futuristica che coinvolge due alleanze composte da tre squadre ciascuna in competizione per svolgere vari compiti, tra cui sparare palle di schiuma conosciute come Power Cells in obiettivi alti e bassi per attivare un generatore di scudi, manipolare un pannello di controllo per attivare questo scudo, e tornare al Generatore di Scudi per parcheggiare o arrampicarsi alla fine della partita. L'obiettivo è quello di energizzare e attivare lo scudo prima che la partita finisca e gli asteroidi colpiscano FIRST City, una città futuristica modellata su Star Wars.

Cosa fa il sistema del processore di visione Raspberry PI?

La telecamera sarà in grado di scansionare il campo di gioco e le posizioni di destinazione in cui vengono forniti i pezzi del gioco o devono essere posizionati per il punteggio. Il gruppo ha 2 connessioni, alimentazione ed Ethernet.

Gli obiettivi visivi sul campo di gioco sono delineati con nastro retroriflettente e la luce si rifletterà sull'obiettivo della fotocamera. Il Pi che esegue il codice open source di Chameleon Vision (https://chameleon-vision.readthedocs.io/en/latest/…) elaborerà la vista, la evidenzierà, aggiungerà sovrapposizioni di immagini e emetterà pitch, yaw, contour e posizione come valori di array ordinati per x e y in metri e angolo in gradi insieme ad altri dati tramite una tabella di rete. Tali informazioni verranno utilizzate nel software per controllare il nostro robot in modalità autonoma, nonché per mirare e sparare con il nostro tiratore a torretta. Altre piattaforme software possono essere eseguite sul Pi. FRC vision può essere installato se il tuo team ha già investito il tempo del software in quella piattaforma.

Il nostro budget era limitato quest'anno e l'acquisto di una fotocamera Limelight $ 399.00 (https://www.wcproducts.com/wcp-015) non era nelle carte. Acquistando tutte le forniture da Amazon e utilizzando la stampante 3D Spartatroniks del Team 3512, sono stato in grado di confezionare un sistema di visione personalizzato per $ 150,00. Alcuni elementi sono arrivati alla rinfusa, la creazione di un secondo coprocessore richiederebbe solo un altro Raspberry Pi, una fotocamera PI e una ventola. Con l'aiuto CAD di uno dei mentori del team (grazie Matt) l'enclosure PI è stato creato utilizzando Fusion 360.

Perché non utilizzare semplicemente un Pi con custodia economica, collegare una fotocamera USB, aggiungere una luce ad anello, installare Chameleon Vision e il gioco è fatto, giusto? Bene, volevo più potenza e meno cavi e il fattore di freschezza di un sistema personalizzato.

Un Pi 4 utilizza 3 ampere se funziona a pieno carico, ovvero se utilizza la maggior parte delle sue porte, Wi-Fi ed esegue un display. Non lo stiamo facendo sui nostri robot, ma le porte USB sul roboRIO https://www.ni.com/en-us/support/model.roborio.ht… sono valutate a 900 ma, il modulo del regolatore di tensione (VRM) 5 volt fornisce fino a 2 ampere di picco, limite di 1,5 ampere, ma è un connettore condiviso, quindi se un altro dispositivo è sul bus a 5 volt c'è la possibilità di un brownout. Il VRM fornisce anche 12 volt a 2 amp, ma usiamo entrambe le connessioni per alimentare la nostra radio utilizzando un cavo POE e una connessione a barilotto per la ridondanza. Alcuni ispettori FRC non consentiranno di collegare altro che ciò che è stampato sul VRM. Quindi 12 volt dal PDP su un interruttore da 5 amp sono dove il Pi deve essere alimentato.

12 volt vengono forniti tramite un interruttore da 5 ampere sul pannello di distribuzione dell'alimentazione (PDP), vengono convertiti a 5,15 volt utilizzando un convertitore buck da CC a CC LM2596. Il convertitore Buck fornisce 5 volt a 3 ampere e rimane in regolazione fino a 6,5 volt in ingresso. Questo bus da 5 volt fornisce quindi alimentazione a 3 sottosistemi, array di anelli LED, ventola, Raspberry Pi.

Forniture

  • 6 pezzi LM2596 Convertitore buck da CC a CC 3,0-40 V a 1,5-35 V Modulo step-down di alimentazione (6 pezzi) $ 11,25
  • Noctua NF-A4x10 5V, ventola silenziosa premium, 3 pin, versione 5V (40x10 mm, marrone) $ 13,95
  • Scheda SanDisk Ultra 32 GB microSDHC UHS-I con adattatore - 98 MB/s U1 A1 - SDSQUAR-032G-GN6MA $ 7,99
  • Modulo fotocamera Raspberry Pi V2-8 Megapixel, 1080p 428.20
  • GeeekPi Raspberry Pi 4 Dissipatore di calore, 20PCS Raspberry Pi Dissipatori di calore in alluminio con nastro adesivo termoconduttivo per Raspberry Pi 4 Modello B (La scheda Raspberry Pi non è inclusa) $ 7,99
  • Raspberry Pi 4 Modello B 2019 Quad Core 64 bit WiFi Bluetooth (4 GB) $ 61,96
  • (confezione da 200 pezzi) Transistor 2N2222, Transistor da 2N2222 a-92 NPN 40V 600mA 300MHz 625mW Foro passante 2N2222A $ 6,79
  • EDGELEC 100 pz 100 ohm Resistore 1/4w (0,25 Watt) ±1% Tolleranza Resistore fisso a film metallico $5.69 https://smile.amazon.com/gp/product/B07QKDSCSM/re… Waycreat 100PCS 5mm LED verde luci a diodi LED a emissione chiara per Lampadine ad alta intensità di illuminazione super brillante Lampade Componenti elettronici Diodi per lampade $ 6,30
  • J-B Weld Bonder plastica $5,77

Passaggio 1: prototipo 1

Prototipo 1
Prototipo 1

Primo test in confezione:

Il team aveva un Pi 3 dell'anno precedente disponibile per i test. È stata aggiunta una fotocamera pi, un circuito buck/boost DC-DC e una luce anulare Andymark.

A quel tempo non avevo considerato il Pi 4, quindi non ero preoccupato per le esigenze di alimentazione. L'alimentazione è stata fornita tramite USB dal roboRIO. La fotocamera si adatta alla custodia senza modifiche. La luce ad anello è stata incollata a caldo sul coperchio della custodia e collegata alla scheda boost. La scheda boost è stata collegata alle porte GPIO 2 e 6 per 5 volt e l'uscita è stata regolata fino a 12 volt per far funzionare l'anello. Non c'era spazio all'interno del case per la scheda boost, quindi era anche incollata a caldo all'esterno. Il software è stato installato e testato utilizzando obiettivi dell'anno di gioco 2019. Il team del software ha elogiato, quindi abbiamo ordinato un Pi 4, dissipatori di calore e una ventola. E mentre eravamo lì, la custodia è stata progettata e stampata in 3D.

Passaggio 2: prototipo 2

Prototipo 2
Prototipo 2
Prototipo 2
Prototipo 2
Prototipo 2
Prototipo 2

Le dimensioni interne dell'armadio erano OK, ma le posizioni delle porte erano sfalsate, non un punto fermo.

Questo è stato completato subito dopo la rivelazione del nuovo gioco in modo che il software potesse testare le nuove posizioni di destinazione.

Buone notizie e cattive notizie. L'emissione di luce ad anello non era adeguata quando eravamo a più di 15 piedi dall'obiettivo, quindi è tempo di ripensare all'illuminazione. Poiché erano necessarie modifiche, considero questa unità come prototipo 2.

Passaggio 3: prototipo 3

Prototipo 3
Prototipo 3
Prototipo 3
Prototipo 3

Il prototipo 2 è stato lasciato insieme in modo che il software potesse continuare a perfezionare il proprio sistema. Nel frattempo è stato trovato un altro Pi 3 e ho messo insieme un altro banco di prova. Questo aveva un Pi3, una USB lifecam 3000 saldata direttamente alla scheda, un convertitore boost e un array di diodi saldati a mano.

Ancora una buona notizia, una cattiva notizia. L'array potrebbe illuminare un bersaglio da 50 piedi di distanza, ma perderebbe il bersaglio se fuori dall'angolo maggiore di 22 gradi. Con questa informazione si potrebbe realizzare il sistema finale.

Passaggio 4: prodotto finale

Prodotto finale
Prodotto finale
Prodotto finale
Prodotto finale
Prodotto finale
Prodotto finale

Il prototipo 3 aveva 6 diodi a circa 60 gradi di distanza e rivolti direttamente in avanti.

Le modifiche finali consistevano nell'aggiungere 8 diodi distanziati di 45 gradi intorno all'obiettivo con 4 diodi rivolti in avanti e 4 diodi inclinati di 10 gradi per un campo visivo di 44 gradi. Ciò consente inoltre di montare l'armadio sia verticalmente che orizzontalmente sul robot. È stata stampata una nuova custodia con modifiche per ospitare un Pi 3 o Pi 4. La faccia della custodia è stata modificata per i singoli diodi.

I test non hanno mostrato alcun problema di prestazioni tra Pi 3 o 4, quindi le aperture dell'involucro sono state realizzate per consentire l'installazione di entrambi i Pi. I punti di montaggio posteriori sono stati rimossi così come le aperture di scarico nella parte superiore della cupola. L'utilizzo di un Pi 3 ridurrà ulteriormente i costi. Pi 3 è più fresco e consuma meno energia. Alla fine abbiamo deciso di utilizzare PI 3 per risparmiare sui costi e il team del software voleva utilizzare del codice che potesse essere eseguito sul Pi 3 che non era stato aggiornato per il Pi 4.

Importa l'STL nell'affettatrice della tua stampante 3D e il gioco è fatto. Questo file è in pollici, quindi se hai un'affettatrice come Cura, probabilmente dovrai ridimensionare la parte a %2540 per convertirla in metrica. Se disponi di Fusion 360, il file.f3d può essere modificato in base alle tue esigenze. Volevo includere un file.step ma le istruzioni non consentiranno il caricamento dei file.

Strumenti di base necessari:

  • Spelafili
  • Pinze
  • Saldatore
  • Guaina termorestringente
  • Pinza tagliafili
  • Saldatura senza piombo
  • Flusso
  • Aiutare le mani o le pinze
  • Pistola termica

Passaggio 5: cablaggio dell'array di diodi

Array di diodi di cablaggio
Array di diodi di cablaggio
Array di diodi di cablaggio
Array di diodi di cablaggio
Array di diodi di cablaggio
Array di diodi di cablaggio

Avviso di sicurezza:

SaldatoreNon toccare mai l'elemento del saldatore….400°C!(750°F)

Tenere i fili da riscaldare con pinzette o pinze.

Mantenere la spugna per la pulizia bagnata durante l'uso.

Riporre sempre il saldatore sul suo supporto quando non è in uso.

Non appoggiarlo mai sul banco da lavoro.

Spegnere l'unità e scollegarla quando non è in uso.

Saldatura, flusso e detergenti

Indossare protezioni per gli occhi.

La saldatura può "sputare".

Utilizzare saldature prive di colofonia e piombo ove possibile.

Conservare i solventi per la pulizia nei flaconi erogatori.

Lavarsi sempre le mani con acqua e sapone dopo la saldatura.

Lavorare in aree ben ventilate.

OK, mettiamoci al lavoro:

La faccia dell'involucro è stata stampata con fori per diodi a 0, 90, 180, 270 punti inclinati di 10 gradi verso l'esterno. I fori a 45, 135, 225, 315 punti sono diritti.

Posizionare tutti i diodi nella parte anteriore della custodia per verificare la dimensione del foro di 5 mm. Un adattamento stretto manterrà i diodi puntati con l'angolazione corretta. Il cavo lungo di un diodo è l'anodo, saldare un resistore da 100 ohm a ciascun diodo. I cavi di saldatura del diodo e del resistore si chiudono e lasciano un cavo lungo sull'altro lato del resistore (vedi foto). Prova ogni combo prima di andare avanti. La batteria AA e 2 puntali illumineranno debolmente il diodo e verificheranno che la polarità sia corretta.

Rimetti la combinazione diodo/resistore nella custodia e posiziona i cavi a zig-zag in modo che ogni cavo del resistore tocchi il resistore successivo per creare un anello. Saldare tutti i cavi. Mescolerei un po' di J-B Weld Plastic Bonder (https://www.amazon.com/J-B-Weld-50133-Tan-1-Pack) e applicherei la combinazione diodo/resistore con resina epossidica. Ho preso in considerazione la super colla ma non ero sicuro che il cianoacrilato avrebbe appannato la lente del diodo. L'ho fatto alla fine di tutte le mie saldature, ma vorrei averlo fatto qui per ridurre la frustrazione quando i diodi non si mantenevano in posizione durante la saldatura. La resina epossidica si monta in circa 15 minuti, quindi è un buon posto per fare una pausa.

Ora tutti i cavi del catodo possono essere saldati insieme per creare il - o l'anello di massa. Aggiungi i fili rosso e nero da 18 gauge al tuo anello a diodi. Testare l'array completato utilizzando un alimentatore da 5 volt, il caricabatterie USB funziona bene per questo.

Passaggio 6: cablaggio Buck/Boost

Cablaggio Buck/Boost
Cablaggio Buck/Boost
Cablaggio Buck/Boost
Cablaggio Buck/Boost
Cablaggio Buck/Boost
Cablaggio Buck/Boost
Cablaggio Buck/Boost
Cablaggio Buck/Boost

Prima di cablare il convertitore Buck, sarà necessario impostare la tensione di uscita. Poiché stiamo usando il PDP per fornire i 12 volt, ho collegato direttamente a una porta PDP, con fusibile a 5 ampere. Aggancia un voltmetro all'uscita della scheda e inizia a girare il potenziometro. Ci vorranno alcuni turni prima di vedere un cambiamento poiché la scheda viene testata in fabbrica a piena potenza e poi lasciata a quell'impostazione. Impostare su 5,15 volt. Stiamo impostando alcuni millivolt in alto per corrispondere a ciò che il Pi si aspetta di vedere da un caricatore USB e da qualsiasi caricamento di linea dalla ventola e dall'array di diodi. (Durante i test iniziali stavamo vedendo messaggi fastidiosi dal Pi che si lamentavano della bassa tensione del bus. Una ricerca su Internet ci ha fornito l'informazione che il Pi si aspettava più di 5,0 volt poiché la maggior parte dei caricabatterie emetteva leggermente di più e l'alimentatore tipico per un Pi è un caricatore USB.)

Quindi dobbiamo preparare il caso:

Il convertitore buck e il Pi sono fissati utilizzando 4-40 viti a macchina. #43 Drill Bit è ideale per creare fori precisi per nastrare 4-40 fili. Tenere il convertitore Pi e buck sui distanziatori, segnare e quindi forare utilizzando la punta da trapano n. 43. L'altezza dei distanziatori consente una profondità sufficiente per scavare senza passare completamente attraverso la parte posteriore. Toccare i fori con un maschio cieco 4-40. Le viti autofilettanti usate in plastica avrebbero funzionato bene qui, ma avevo a disposizione le viti 4-40, quindi era quello che ho usato. Le viti sono necessarie per consentire l'accesso alla scheda SD (non viene fornito alcun accesso esterno alla scheda con questa custodia).

Il prossimo foro da praticare è per il cavo di alimentazione. Ho scelto un punto nell'angolo in basso in modo che corresse lungo il lato del cavo Ethernet esternamente e a lato e poi sotto il Pi internamente. Ho usato un cavo schermato a 2 fili come quello che avevo a portata di mano, qualsiasi coppia di fili calibro 14 funzionerà. Se si utilizza una coppia di cavi senza guaina, mettere da 1 a 2 strati di termorestringente sul cavo nel punto in cui entra nella custodia per protezione e scarico della trazione. La dimensione del foro deve essere determinata dalla scelta del filo.

Ora puoi saldare i fili alle linee di ingresso sul convertitore DC-DC. Le connessioni sono etichettate sulla scheda. Filo rosso a in+ Filo nero a in-. Uscendo dalla scheda ho saldato 2 fili nudi corti per fungere da filo per collegare la ventola, il Pi e il transistor.

Passaggio 7: cablaggio finale e resina epossidica

Cablaggio finale e resina epossidica
Cablaggio finale e resina epossidica
Cablaggio finale e resina epossidica
Cablaggio finale e resina epossidica
Cablaggio finale e resina epossidica
Cablaggio finale e resina epossidica

Vengono effettuate solo 4 connessioni al Pi. Cavo a nastro di terra, alimentazione, controllo Led e interfaccia fotocamera.

I 3 pin utilizzati sul Pi sono 2, 6 e 12.

Taglia un filo rosso, nero e bianco a 4 pollici. Spelare l'isolamento di 3/8 di pollice su entrambe le estremità dei fili, le estremità di stagno dei cavi e i perni di stagno sul Pi.

  • Saldare il filo rosso al pin GPIO 2 scivolare da 1/2 pollice di guaina termorestringente applicare calore.
  • Saldare il filo nero al pin GPIO 6 slip 1/2 pollice di guaina termorestringente applicare calore.
  • Saldare il filo bianco al pin GPIO 12 scivolare 1/2 pollice di guaina termorestringente applicare calore.
  • Saldare il filo rosso per staccare +
  • Saldare il filo nero per staccare-
  • Aggiungere 1 pollice termoretraibile al filo bianco e saldare al resistore da 100 ohm e dal resistore alla base del transistor. Isolare con termoretraibile.
  • Transistor da emettitore a Buck -
  • Collettore di transistor sul lato del catodo dell'array di diodi
  • Array di diodi Anodo/Resistore a Buck +
  • Filo rosso della ventola per staccare +
  • Filo nero della ventola per staccare-

Ultima connessione:

Inserire il cavo di interfaccia della fotocamera. La connessione del cavo utilizza un connettore zif (forza di inserimento zero). La striscia nera sulla parte superiore del connettore deve essere sollevata, il cavo posizionato nella presa, quindi il connettore viene spinto indietro per bloccarlo in posizione. Fare attenzione a non crimpare il cavo poiché la traccia nell'isolamento potrebbe rompersi. Inoltre, il connettore deve essere inserito dritto per l'allineamento del cavo a nastro al pin.

Controlla il tuo lavoro per i fili vaganti e le macchie di saldatura, ritaglia la lunghezza in eccesso sui pali di saldatura buck.

Se sei soddisfatto del tuo lavoro, la ventola e la fotocamera possono essere posizionate con resina epossidica. Poche gocce agli angoli sono tutto ciò di cui hai bisogno.

Passaggio 8: software

Software
Software
Software
Software
Software
Software
Software
Software

Mentre la resina epossidica si indurisce, consente di inserire il software nella scheda SD. avrai bisogno di un adattatore per scheda SD da collegare al tuo computer (https://www.amazon.com/Reader-Laptop-Windows-Chrom….

Vai a:

www.raspberrypi.org/downloads/raspbian/ e scarica Raspbian Buster Lite. Per eseguire il flashing della scheda SD con raspbian avrai bisogno di un altro strumento software BalenaEtcher e può essere trovato qui, La resina epossidica dovrebbe essersi indurita abbastanza da poter installare la scheda SD e avvitare la scheda buck/boost. Prima di agganciare il coperchio, verificare che nessun filo interferisca con il coperchio e che il cavo della fotocamera non tocchi le pale della ventola. Dopo che il coperchio è a posto, soffio sulla ventola e osservo per vederlo muoversi per assicurarmi che non ci siano interferenze dai fili o dal cavo a nastro.

Tempo per l'accensione:

La prima volta che accendi avrai bisogno di un cavo hdmi, se un Pi 4 un mini cavo hdmi, una tastiera USB e un monitor hdmi insieme a una connessione Internet. Collegare a un alimentatore da 12 volt, PDP con un interruttore da 5 amp.

Dopo aver effettuato l'accesso, la prima cosa da fare è eseguire lo strumento di configurazione. Qui è dove è possibile impostare SSH insieme all'abilitazione della telecamera PI. https://www.raspberrypi.org/documentation/congur… contiene istruzioni per aiutare.

Riavvia prima di installare Chameleon Vision

Si prega di visitare il loro sito prima di utilizzare il loro software, hanno una grande quantità di informazioni. Una nota, sulla loro pagina hardware supportata, la Pi cam viene mostrata come non supportata, ma è con la loro versione più recente. La pagina web è da aggiornare.

Dalla pagina web di Chameleon vision:

Chameleon Vision può essere eseguito sulla maggior parte dei sistemi operativi disponibili per Raspberry Pi. Tuttavia, si consiglia di installare Rasbian Buster Lite, disponibile quihttps://www.raspberrypi.org/downloads/raspbian/. Segui le istruzioni per installare Raspbian su una scheda SD.

Assicurati che il Raspberry Pi sia connesso via Ethernet a Internet. Accedi al Raspberry Pi (nome utente pi e password raspberry) ed esegui i seguenti comandi nel terminale:

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

$ chmod +x install.sh

$ sudo./install.sh

$ sudo riavvia ora

Congratulazioni! Il tuo Raspberry Pi è ora configurato per eseguire Chameleon Vision! Una volta riavviato il Raspberry Pi, Chameleon Vision può essere avviato con il seguente comando:

$ sudo java -jar chameleon-vision.jar

Quando viene rilasciata una nuova versione di Chameleon Vision, aggiornala eseguendo i seguenti comandi:

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

$ chmod +x update.sh

$ sudo./update.sh

Controllo della serie di LED:

Il tuo array di LED non si accenderà senza il controllo del software

La prima robotica di quest'anno ha una regola contro le luci a led brillanti, ma le consentirà se possono essere spente e riaccese secondo necessità. Colin Gideon "SpookyWoogin", FRC 3223, ha scritto uno script Python per controllare i LED e che può essere trovato qui:

github.com/frc3223/RPi-GPIO-Flash

Questo sistema eseguirà anche la visione FRC se il tuo team ha già investito il tempo del software in quella piattaforma. Con FRC vision viene visualizzata l'intera scheda SD, quindi non è necessario scaricare raspbian. Scaricalo qui

Questo ti darà un sistema di visione in un fattore di forma interessante. In bocca al lupo per le gare!

Concorso Raspberry Pi 2020
Concorso Raspberry Pi 2020
Concorso Raspberry Pi 2020
Concorso Raspberry Pi 2020

Secondo classificato al concorso Raspberry Pi 2020

Consigliato: