Sommario:

Telecamera posteriore per una sedia a rotelle elettrica: 10 passaggi (con immagini)
Telecamera posteriore per una sedia a rotelle elettrica: 10 passaggi (con immagini)

Video: Telecamera posteriore per una sedia a rotelle elettrica: 10 passaggi (con immagini)

Video: Telecamera posteriore per una sedia a rotelle elettrica: 10 passaggi (con immagini)
Video: L'incidente in superstrada 2024, Dicembre
Anonim
Image
Image
Parti necessarie
Parti necessarie

Mio fratello utilizza una carrozzina elettrica Invacare TDX, che è facile da manovrare in tutte le direzioni, ma a causa della visibilità limitata sul retro è difficile guidare all'indietro in spazi limitati. L'obiettivo del progetto è costruire una telecamera per la retromarcia utilizzando lo streaming IP su un telefono cellulare, che è montato vicino al suo joystick volante.

Componenti necessari:

  • alimentazione e distribuzione tramite l'alimentazione della carrozzina
  • telecamera per retromarcia e streamer video
  • supporto per cellulare per la pulsantiera.

L'alimentazione è fornita dalla carrozzina stessa, che utilizza batterie al piombo da 24V. La porta di ricarica viene utilizzata in modo improprio per collegare un convertitore di alimentazione a USB, che alimenta il Raspberry responsabile dello streaming e, se necessario, alimenta anche il telefono cellulare.

Lo streaming viene eseguito da un Raspberry Pi Zero W, che funge da punto di accesso wireless e trasmette il video a qualsiasi dispositivo connesso alla rete wireless.

Il telefono cellulare per visualizzare l'immagine è montato con un adattatore stampato in 3D sull'unità di controllo della sedia a rotelle.

Per seguire questo progetto avrai bisogno di alcune conoscenze di base di Debian/Linux, poiché la configurazione richiede un po' di lavoro manuale. Tuttavia, non è troppo difficile, quindi provaci - se non sei sicuro ci sono centinaia di tutorial su Linux che possono aiutarti.

Passaggio 1: parti necessarie

Raspberry Pi Zero W: componente principale per lo streaming video

Obiettivi grandangolari SainSmart Fish-Eye per Raspberry Pi: fotocamera grandangolare compatibile con Arduino Camera (170° FOV)

2 × Custodie in plastica: una custodia più piccola per il lampone e la fotocamera, una custodia più grande per la distribuzione dell'energia

Spina XLR: per il collegamento alla porta di ricarica della sedia a rotelle

Porta USB per auto (es. TurnRaise 12-24V 3.1A): Un convertitore da 24V a USB in un piccolo alloggiamento per auto e moto. Può essere qualsiasi cosa che utilizzi un ingresso a 24 V e fornisca un'uscita USB.

Cavi vari:

  • Cavo di alimentazione per instradare dalla porta XLR al retro della sedia a rotelle,
  • Cavo USB per alimentare Raspberry

Adattatore stampato in 3D per telefono Un adattatore stampato in 3D per l'unità di controllo della sedia a rotelle che funge da base per un supporto per telefono cellulare standard per auto:

Portacellulare da auto: un portacellulare che può essere fissato a una superficie piana (es. un portacellulare da cruscotto). Ne ho usato uno di Hama, un produttore tedesco.

Passaggio 2: configurazione della fotocamera Raspberry

Configurazione della fotocamera Raspberry
Configurazione della fotocamera Raspberry

Installa Raspbian da https://www.raspberrypi.org/downloads/raspbian/ seguendo le istruzioni da

Installa tutti gli aggiornamenti eseguendo i seguenti due comandi da un terminale:

sudo apt-get update

sudo apt-get dist-upgrade

Spegni, collega la fotocamera. Ricomincia il lampone.

Nel pannello Raspberry Setup abilita la fotocamera e abilita l'accesso SSH al raspberry. La fotocamera sainsmart funziona come la fotocamera Pi ufficiale, puoi seguire le istruzioni che trovi qui: https://www.raspberrypi.org/learning/addons-guide… Purtroppo non hai ancora finito. Abbiamo bisogno di un driver v4l per la raspi-cam, che non è abilitato di default. Per prima cosa dovresti eseguire un aggiornamento del firmware del tuo raspberry per ottenere l'ultimo firmware e driver del kernel - esegui quanto segue in un terminale:

sudo raspi-update

Ora devi caricare il driver del kernel v4l digitando in un terminale:

sudo modprobe bcm2835-v4l2

Se ha funzionato senza messaggi di errore, ora dovresti avere un dispositivo /dev/video0, controlla con

ls - l /dev/vid*

Se ha funzionato, aggiungi bcm2835-v4l2 a /etc/modules per abilitare il modulo ad ogni avvio.

Puoi verificare che la fotocamera funzioni con il comando:

raspistill -o cam.jpg

Passaggio 3: installa V4l2rtspserver

Installa V4l2rtspserver
Installa V4l2rtspserver

Per prima cosa, devi installare cmake, poiché compileremo noi stessi il programma di streaming video:

sudo apt-get install cmake

Per lo streaming utilizziamo v4l2rtspserver in quanto ha mostrato la latenza più bassa nelle nostre prove. Puoi ottenere il codice da

Installalo con:

git clone

cd h264v4l2rtspserver

cmq.

fare installare

Tutto dovrebbe finire senza errori e puoi testarlo ora avviando il server di streaming da un terminale:

v4l2rtspserver -W 352 -H 288 -F 10 /dev/video0

Connettiti con VLC su un computer nella stessa rete al raspberry: rtsp://:8554/unicast per verificare se lo streaming funziona.

Crea uno script chiamato launcher.sh nella tua home directory usando il tuo editor preferito (che dovrebbe essere vi):

!#/bin/bashsleep 20 v4l2rtspserver -W 352 -H 288 -F 10 /dev/video0

Il comando di sospensione è necessario per consentire al driver video di essere pronto. Probabilmente può essere impostato a meno di 20 secondi….

Aggiungi questo script al tuo crontab con "crontab -e" e aggiungendo:

@reboot sh /home/pi/bbt/launcher.sh >/home/pi/logs/cronlog 2>&1

Questo dovrebbe avviare automaticamente lo streaming ad ogni avvio.

Alternative per lo streaming:

Ci sono un paio di alternative da utilizzare per lo streaming video, ho provato motion e vlc. Motion è uno strumento per webcam che rileva il movimento, quindi esegue un'analisi aggiuntiva dell'immagine sulle immagini e probabilmente è un po' più lento del semplice streaming.

VLC funziona immediatamente senza ulteriori compilazioni:

cvlc v4l2:///dev/video0 --v4l2-width 320 --v4l2-height 200 --v4l2-chroma h264 --sout '#standard{access=http, mux=ts, dst=0.0.0.0:12345} '

Questo comando trasmette un video codificato h264 tramite http sulla porta 12345. La latenza è di circa 2 secondi nella nostra configurazione di test.

Passaggio 4: configurare il Raspberry come punto di accesso WiFi: parte 1 - Hostapd

Configurare il Raspberry come punto di accesso WiFi: parte 1 - Hostapd
Configurare il Raspberry come punto di accesso WiFi: parte 1 - Hostapd

Questo passaggio imposta il tuo Raspberry come Access Point. Dopo questo, non sei più connesso alla tua rete ma il Raspberry apre la propria rete WiFi. In caso di errori, devi avere accesso al Raspberry con una tastiera e un display, quindi fallo prima di seppellire il lampone in un alloggiamento da qualche parte…

Sto seguendo il metodo descritto qui:

Installa hostapd e dnsmasq:

sudo apt-get install dnsmasq hostapd

Disabilita dhcp sull'interfaccia wlan0 aggiungendo la seguente riga a /etc/dhcpd.conf (preferibilmente in alto)

nega interfacce wlan0

Configurare un IP statico per l'interfaccia wlan0 modificando /etc/network/interfaces per includere quanto segue:

allow-hotplug wlan0 iface wlan0 inet indirizzo statico 172.24.1.1 netmask 255.255.255.0 rete 172.24.1.0 broadcast 172.24.1.255

Riavvia il demone dhcp con sudo service dhcpcd restarte quindi ricarica la configurazione wlan0 con

sudo ifdown wlan0; sudo ifup wlan0

Salva il file hostapd.conf allegato in /etc/hostapd/hostapd.conf (dopo aver controllato i contenuti e adattato ai tuoi gusti - dovresti almeno cambiare l'SSID e la passphrase con qualcosa di più sicuro).

Ora puoi verificare se funziona eseguendo:

sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf

Dovresti essere in grado di connetterti alla nuova rete, ma non otterrai ancora un indirizzo IP. Ferma hostapd premendo CTRL-C. Abilita l'avvio automatico di hostapd modificando /etc/default/hostapd e aggiungendo la posizione del file di configurazione cambiando la riga corrispondente in

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Passaggio 5: configurare il Raspberry come punto di accesso WiFi: parte 2 - Dnsmasq

Configura il Raspberry come punto di accesso WiFi: Parte 2 - Dnsmasq
Configura il Raspberry come punto di accesso WiFi: Parte 2 - Dnsmasq

Sposta la configurazione dnsmasq fornita in un file di backup (poiché contiene molti commenti, puoi comunque utilizzarla come riferimento):

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

Quindi crea un nuovo /etc/dnsmasq.conf con il seguente contenuto:

server=8.8.8.8 # Inoltra richieste DNS a Google DNS domain-necessario # Non inoltrare nomi brevi bogus-priv # Non inoltrare mai indirizzi negli spazi degli indirizzi non instradati. dhcp-range=172.24.1.50, 172.24.1.150, 12h # Assegna indirizzi IP tra 172.24.1.50 e 172.24.1.150 con un periodo di locazione di 12 ore

Associare il servizio dnsmasq a un indirizzo specifico porta ad alcuni problemi nella nostra installazione, quindi lo lasciamo funzionare su tutte le interfacce. Poiché il Raspberry Pi Zero W ha solo il WiFi, questo non è un problema a meno che non colleghi un'interfaccia Ethernet USB… (in questo caso avresti anche un server DHCP su questa interfaccia, quindi questo potrebbe rovinare la rete a cui ti connetti con un cavo).

Non è necessario eseguire ulteriori passaggi per eseguire dnsmasq all'avvio, si avvia automaticamente. Tuttavia dovresti testare tutto prima di fare un riavvio avviando entrambi i servizi manualmente e controlla che puoi connetterti al WiFi e ottenere un indirizzo IP (puoi anche dire al tuo cellulare che questo WiFi non ha internet e che questo va bene):

sudo service hostapd start sudo service dnsmasq start

Passaggio 6: Controlla il software

Controlla il software
Controlla il software

Ora che hai configurato tutto è il momento di fare un breve controllo (prima che tutto sia più difficile da accedere). Riavvia il lampone.

Connettiti al WiFi se il lampone con il tuo cellulare. Connetti un client di streaming video (es. VLC che esiste per tutti i sistemi operativi) allo stream del raspberry selezionando "Network stream" e collegandoti a rtsp://:8554/unicast (è l'IP del tuo dispositivo, se non lo hai fatto cambiarlo è 172.24.1.1).

Dovresti vedere alcuni video in diretta dalla fotocamera ora… (Ho avuto alcuni problemi con VLC per Android, ma VLC per iOS ha funzionato senza problemi - non ho approfondito ulteriormente la versione di Android poiché mio fratello utilizza iOS).

Passaggio 7: creazione dell'alimentatore

Fare l'alimentatore
Fare l'alimentatore
Fare l'alimentatore
Fare l'alimentatore
Fare l'alimentatore
Fare l'alimentatore

Il controllo invacare utilizza quello che sembra essere uno standard per le sedie a rotelle elettriche. Il connettore è un connettore XLR standard utilizzato per i microfoni. Il pin 1 è positivo, il pin 2 è negativo. Invacare ha due pin aggiuntivi per la comunicazione, ma non abbiamo intenzione di scherzare con questi…

Collega il connettore XLR all'alimentatore USB e inserisci tutto in una scatola. Per alimentare il cavo alla scatola, un passante è una buona idea. Assicurarsi che il cavo sia sufficientemente lungo da essere instradato dal modulo di controllo della carrozzina allo schienale dove si collegherà la scatola di alimentazione. È possibile instradare i cavi seguendo i cavi del modulo di controllo per assicurarsi che non siano impigliati in una parte mobile.

Passaggio 8: costruire la scatola per la fotocamera

Costruire la scatola per la fotocamera
Costruire la scatola per la fotocamera
Costruire la scatola per la fotocamera
Costruire la scatola per la fotocamera
Costruire la scatola per la fotocamera
Costruire la scatola per la fotocamera
Costruire la scatola per la fotocamera
Costruire la scatola per la fotocamera

Costruisci una scatola che si adatti al lampone pi e alla fotocamera. La scatola ha bisogno di un foro sul lato per far passare il cavo di alimentazione USB e un foro per la fotocamera che sia abbastanza grande da non ostruire la vista. Ho montato la telecamera con un angolo di circa 45° in modo che sia rivolta verso il basso per poter vedere le ruote posteriori della sedia a rotelle. Ho usato una scatola di plastica standard in cui ho praticato dei buchi, ma puoi anche stampare in 3D una versione più elaborata (forse per la versione 2)

Passaggio 9: crea il supporto del telefono

Crea il supporto del telefono
Crea il supporto del telefono
Crea il supporto del telefono
Crea il supporto del telefono
Crea il supporto del telefono
Crea il supporto del telefono

Per collegare il cellulare alla sedia a rotelle ho stampato in 3D una piastra adattatrice che si trova qui: https://www.thingiverse.com/thing:2742683 (è allegato anche il file STL). È collegato all'unità di controllo della sedia a rotelle. Su questa piastra puoi incollare qualsiasi supporto per telefono da auto, che puoi acquistare a buon mercato ovunque.

Passaggio 10: assemblare tutto e provarlo

Assembla tutto e provalo
Assembla tutto e provalo
Assembla tutto e provalo
Assembla tutto e provalo
Assembla tutto e provalo
Assembla tutto e provalo

Ora è il momento di assemblare tutto:

Fissare la scatola della telecamera da qualche parte sul retro della sedia a rotelle dove la visuale non sia ostruita e la telecamera sia puntata all'indietro. Attacca la scatola dell'alimentatore da qualche parte sul retro dove non è d'intralcio. Collega il cavo USB dal Raspberry all'alimentatore. Collegare l'alimentatore con la spina XLR alla porta di ricarica sull'unità di controllo della carrozzina. Tutto dovrebbe iniziare ora.

Installa VLC sul tuo cellulare (se non l'hai ancora fatto…) e connettiti al Raspberry tramite rtsp://:8554/unicast

Ora dovresti vedere l'immagine della fotocamera sul tuo cellulare:-)

Posizionare il supporto per cellulare sull'unità di controllo della carrozzina e fissarvi il telefono. E questo è tutto, hai finito!

Concorso Raspberry Pi 2017
Concorso Raspberry Pi 2017
Concorso Raspberry Pi 2017
Concorso Raspberry Pi 2017

Secondo Premio al Concorso Raspberry Pi 2017

Consigliato: