Sommario:

Visione posteriore del veicolo: 9 passaggi (con immagini)
Visione posteriore del veicolo: 9 passaggi (con immagini)

Video: Visione posteriore del veicolo: 9 passaggi (con immagini)

Video: Visione posteriore del veicolo: 9 passaggi (con immagini)
Video: Fiat X1/9 Silhouette: Un mostro da Salita - Davide Cironi (Dal Pollaio alla Pista Ep.9 SE02) 2024, Luglio
Anonim
Image
Image

Perché costruiamo la visione posteriore del veicolo?

La collisione di back-up è stata un grosso problema, il Centro per il controllo delle malattie degli Stati Uniti ha riferito che dal 2001 al 2003 si stima che 7, 475 bambini (2 492 all'anno) di età inferiore ai 15 anni siano stati curati per incidenti automobilistici. Circa 300 morti all'anno derivano da collisioni di riserva. Entro il 2018 tutte le auto vendute negli Stati Uniti richiederanno una telecamera di backup obbligatoria.

Come risolviamo il problema?

La maggior parte delle auto oggi sul mercato non ha ancora una telecamera di backup, che include circa la metà delle auto vendute oggi negli Stati Uniti e molto più della metà in tutto il mondo. Possiamo risolvere questo problema installando una telecamera sul retro dell'auto, sfruttando lo spazio della targa.

Walabot sarà in grado di rilevare la distanza del bersaglio più vicino al veicolo.

La fotocamera Intel RealSense R200 ci darà maggiori dettagli su ciò che viene visto, inclusa la situazione di scarsa illuminazione.

Il kit per sviluppatori Intel Joule è abbastanza potente da far funzionare le videocamere RealSense insieme a Walabot. Raspberry Pi non è abbastanza potente per eseguire una fotocamera RealSense 3D, in cui possiamo aggiungere molte più funzionalità in futuro che possono migliorare le funzionalità dell'auto. La stessa versione può essere utilizzata con Pi con una normale fotocamera USB, ma non andrà bene per la notte.

Telefono/tablet Android utilizzato per visualizzare la telecamera di backup, questo per ridurre il costo di uno schermo aggiuntivo. La versione iOS può essere costruita su richiesta.

Attraverso questi componenti, saremo in grado di costruire una visione posteriore che mostra all'utente la parte posteriore dell'auto.

Passaggio 1: raccogli l'hardware di cui hai bisogno

Installa Ubuntu su Joule e le librerie necessarie per eseguirlo
Installa Ubuntu su Joule e le librerie necessarie per eseguirlo
  1. Intel Joule
  2. Walabot Pro
  3. Fotocamera Intel R200 RealSense
  4. Telefono/tablet Android con 5.0 o versioni successive
  5. Adattatore per auto per uscita spina e adattatore CA 12VDC (questo è per la demo per accendere il Joule, la versione di produzione conterrà un meccanismo di alimentazione diverso)
  6. Hub USB per collegare fotocamera e Walabot (USB3 per fotocamera e USB2 per Walabot)
  7. Inverter di potenza plug-in diretto da CC a CA
  8. Stampante 3D generica per stampare il telaio targa personalizzato

Passaggio 2: installa Ubuntu su Joule e le librerie necessarie per eseguirlo

Dato che abbiamo deciso di seguire il percorso Linux, segui la guida https://developer.ubuntu.com/core/get-started/intel-joule per installare Ubuntu su Joule. Ubuntu ci offre una grande flessibilità per eseguire un vero sistema operativo su un chip basato su IoT.

Passaggio 3: riprodurre in streaming la videocamera RealSense

Trasmetti in streaming la videocamera RealSense
Trasmetti in streaming la videocamera RealSense
Trasmetti in streaming la videocamera RealSense
Trasmetti in streaming la videocamera RealSense

Poiché stiamo utilizzando il telefono/tablet Android per risparmiare il costo sulla distinta base, anche più accessibile agli utenti, utilizzeremo la libreria di movimento per ospitare la telecamera in modo simile alle telecamere di sicurezza. Una volta installato Ubuntu e connesso al wifi, possiamo aprire il terminale e utilizzare il seguente comando. Per prima cosa colleghiamo la fotocamera a Joule tramite la porta USB3, quindi procediamo come segue.

un. Installazione di motion su Ubuntu:

sudo apt-get updateudo apt-get install motion

B. Copia i file di configurazione:

mkdir.motion sudo cp /etc/motion/motion.conf ~/.motion/motion.conf

C. Configurando il file, per chi ha dimestichezza con ubuntu è possibile installare Sublime per facilitare la modifica del testo, altrimenti possiamo modificarlo all'interno della riga di comando.

sudo nano ~/.motion/motion.conf

D. Dopo aver collegato la fotocamera R200, possiamo modificare le seguenti righe in motion.conf

Questo per metterlo in modalità background:

# Avvia in modalità demone (sfondo) e rilascia terminale (predefinito: off) demone on

Questo serve per utilizzare la vista della telecamera di RealSense Camera.

# Videodevice da usare per catturare (default /dev/video0) # per FreeBSD il default è /dev/bktr0 videodevice /dev/video2

Modificando la larghezza e l'altezza, 1280 x 720 ha funzionato benissimo per me, ma puoi giocare con le dimensioni per vedere cosa si adatta alle tue esigenze.

# Larghezza immagine (pixel). Intervallo valido: dipendente dalla fotocamera, impostazione predefinita: larghezza 352 1280 # Altezza immagine (pixel). Intervallo valido: dipendente dalla fotocamera, predefinito: 288 altezza 720

L'ho impostato su 30, più alto è il numero, maggiore è la potenza di calcolo richiesta. Puoi giocare per vedere quale sia il punto di riferimento per questo, ma 30 ha funzionato alla grande per me.

# Numero massimo di fotogrammi da acquisire al secondo. # Intervallo valido: 2-100. Predefinito: 100 (quasi nessun limite). framerate 30

Poiché siamo sempre in streaming sull'auto, possiamo impostare una porta dedicata, usiamo 5001

################################################# ######### # Server streaming live ##################################### ####################### # Il server mini-http ascolta questa porta per le richieste (default: 0 = disabilitato) stream_port 5001 # Qualità del jpeg (in percent) immagini prodotte (predefinito: 50) stream_quality 50 # Emette fotogrammi a 1 fps quando non viene rilevato alcun movimento e aumenta alla velocità # data da stream_maxrate quando viene rilevato un movimento (predefinito: off) stream_motion off # Framerate massimo per flussi di streaming (default: 1) stream_maxrate 60 # Limita le connessioni di streaming solo a localhost (default: on) stream_localhost off

Puoi quindi eseguire ifconfig e capire l'indirizzo IP ed eseguire nel terminale, la porta sarà 5001.

movimento

Se non ci sono errori, è facile controllare la fotocamera dal tuo computer utilizzando l'ip, correggere gli errori come i problemi di autorizzazione se ce ne sono.

Una volta eseguito, possiamo aggiungerlo all'applicazione di avvio in Ubuntu.

Avvio del movimento per la fotocamera

motion.conf viene allegato nella sezione del codice, puoi controllare più impostazioni lì.

Passaggio 4: imposta Walabot

Configurazione Walabot
Configurazione Walabot
Configurazione Walabot
Configurazione Walabot
Configurazione Walabot
Configurazione Walabot
Configurazione Walabot
Configurazione Walabot

Con la telecamera in posizione, dobbiamo ancora configurare walabot, questo può rilevare la distanza tra il veicolo e l'oggetto dietro, dando una visione chiara su come dovremmo

a, scarica il file deb da

Segui le istruzioni da https://api.walabot.com/_install.html#_linuxInstall per installare l'API Walabot in modo che possa essere importata in progetti Python.

C'è un errore sul sito web nella parte in cui sta installando l'API Walabot https://walabot.com/api/_pythonapi.html#_installingwalabotapi dove si afferma

python -m pip “/usr/share/walabot/python/WalabotAPI-1.0.21.tar.gz”

dovrebbe essere

python -m pip install "/usr/share/walabot/python/WalabotAPI-1.0.21.tar.gz"

B. collegare Walabot Pro tramite USB 2, non sono riuscito a far funzionare usb3 ma usb2 funziona bene collegandosi a Linux. Poiché Joule ha solo una porta USB3, collega una porta USB2 aggiuntiva per ospitare Walabot Pro qui

C. Prova il progetto Walabot come https://github.com/Walabot-Projects/Walabot-Senso… eseguendo il seguente comando nella cartella

python SensorTargets.py

Questo dovrebbe darti un buon test per vedere se Walabot funziona correttamente, oltre a come misurare la distanza sulle cose che desideri. L'esempio di DistanceMeasure non era troppo coerente nella misurazione e zPosCm sembra essere estremamente accurato, quindi ho deciso di utilizzare zPosCM per la demo.

D. Abbiamo ancora bisogno di passare i dati al dispositivo di visualizzazione, poiché lo stiamo eseguendo su Android per ridurre il costo del materiale, possiamo usare i socket. Usiamo il seguente codice per configurare il socket e udp in python.

MYPORT = 5002 import sys, ora dal socket import * s = socket(AF_INET, SOCK_DGRAM) s.bind(('', 0)) s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)

Il seguente comando trasmetterà i dati all'aggiornamento

s.sendto(str(targets[0].zPosCm), ('255.255.255.255', MYPORT))

e. Al termine, possiamo configurarlo nell'applicazione di avvio

F. Walabot è ora configurato e trasferisce i dati tramite UDP, il codice Python completo può essere visualizzato nell'area degli allegati del codice. Lo screenshot qui sotto è la stampa di come dovrebbe apparire quando non c'è area. Il codice è allegato nella sezione codice.

Passaggio 5: creazione di hotspot Wi-Fi da Joule

Creazione di hotspot Wi-Fi da Joule
Creazione di hotspot Wi-Fi da Joule

Stiamo creando il nostro hotspot Wi-Fi per il dispositivo Android tramite il quale trasferire i dati. L'uso del seguente comando all'avvio lo configurerà automaticamente. Questo viene utilizzato per Ubuntu 16.04 o versioni successive, poiché viene utilizzato. Lo collegheremo automaticamente tramite l'app Android nel passaggio successivo. Utilizzare questo comando nelle applicazioni di avvio.

dispositivo nmcli hotspot wifi con-name veicolo-retrovisione ssid veicolo-retrovisione banda bg password safedriving

All'interno del file python di walabot, lo aggiorneremo anche dove invieremo un messaggio udp ai dispositivi collegati tramite hotspot privato. Questo per garantire che nessun pacchetto venga perso.

out = os.popen('ip neigh').read().splitlines()for i, line in enumerate(out, start=1): ip = line.split(' ')[0] s.sendto(str (target[0].zPosCm), (ip, MYPORT))

Passaggio 6: creazione di Android come schermo di visualizzazione

Costruire Android come schermo di visualizzazione
Costruire Android come schermo di visualizzazione

L'app Android è progettata per la visualizzazione del dispositivo, principalmente perché riduce la distinta base, altrimenti uno schermo separato può essere costoso e difficile da installare. Per quanto riguarda questo progetto possiamo utilizzare telefono/tablet Android.

Android si concentra su 3 parti che abbiamo fatto in precedenza,

  • Connettiti all'hotspot wifi creato tramite dispositivo IoT (Intel Joule)
  • Trasmetti in streaming la videocamera RealSense tramite movimento tramite Wi-Fi
  • Misurazione della distanza dal target Walabot tramite udp

Dopo aver impostato tutto e installato l'app Android (open source qui), sarai in grado di vedere la fotocamera funzionare insieme a walabot

Passaggio 7: testare tutto

Image
Image
Testare tutto
Testare tutto
Testare tutto
Testare tutto

Ora che tutto funziona, dovremmo avere una configurazione di base di tutti i componenti collegati. Quando avviamo la scheda Joule, l'hotspot dovrebbe essere configurato automaticamente, l'app motion e walabot si avvierà insieme ad essa e quando accendiamo la nostra app Android dovremmo essere in grado di eseguire lo streaming dalla fotocamera. Ciò significa che la tastiera/il mouse e il monitor non sono più necessari per il funzionamento del dispositivo IoT. Se si verificano problemi in questo momento, come librerie non installate correttamente, dovremmo risolverlo prima di procedere al passaggio successivo.

La stampa 3D dell'involucro che può contenere la fotocamera è molto importante.

Nella costruzione dell'hardware, dovremmo avere la nostra custodia stampata in 3D personalizzata pronta per la fotocamera. Poiché questo è un prototipo, può allentarsi un po ', ma quando costruiamo un portatarga personalizzato ci aspettiamo che tutti i componenti siano all'interno del supporto.

Passaggio 8: test su un'auto reale

Image
Image
Test su una vera auto
Test su una vera auto
Test su una vera auto
Test su una vera auto

Ora che abbiamo fatto funzionare tutto, potremo testarlo su un'auto vera. Poiché si tratta di un prototipo, le cose possono essere un po' ruvide, utilizziamo del nastro adesivo per alcuni componenti.

Per alimentare il Joule IoT Kit, abbiamo utilizzato un inverter di alimentazione plug-in diretto da CC a CA, quindi abbiamo semplicemente collegato una lunga presa di corrente al bagagliaio.

Avremo la parte anteriore e la parte posteriore. Questo è solo un prototipo in questo momento, la prossima versione integrerebbe i chip all'interno del portatarga.

E per la parte anteriore, possiamo utilizzare un supporto per telefono o semplicemente nastro adesivo Tablet Android.

Passaggio 9: usalo nel mondo

Usalo nel mondo
Usalo nel mondo

Utilizzando questo strumento, possiamo eseguire il backup dell'auto in modo sicuro su altre auto e in grado di monitorare i pedoni. Puoi guardare il video dimostrativo all'inizio. L'obiettivo del progetto è incoraggiare pratiche di guida più sicure.

Puoi controllare il progetto da

Consigliato: