Inhoudsopgave:

Achteruitrijcamera voor een elektrische rolstoel - Ajarnpa
Achteruitrijcamera voor een elektrische rolstoel - Ajarnpa

Video: Achteruitrijcamera voor een elektrische rolstoel - Ajarnpa

Video: Achteruitrijcamera voor een elektrische rolstoel - Ajarnpa
Video: Prorider SF Lichtgewicht Elektrische Rolstoel - Opvouwen En Splitsen 2024, Juli-
Anonim
Image
Image
Onderdelen nodig
Onderdelen nodig

Mijn broer gebruikt een Invacare TDX elektrische rolstoel, die gemakkelijk in alle richtingen te manoeuvreren is, maar door het beperkte zicht naar achteren moeilijk achteruit te rijden in beperkte ruimtes. Het doel van het project is om een achteruitkijkcamera te bouwen met behulp van IP-streaming naar een mobiele telefoon, die dicht bij zijn stuurjoystick is gemonteerd.

Benodigde componenten:

  • stroomvoorziening en distributie met behulp van de rolstoelen power
  • achteruitrijcamera en videostreamer
  • mobiele telefoonhouder voor het bedieningspaneel.

De stroom wordt geleverd door de rolstoel zelf, die gebruik maakt van 24V loodaccu's. De oplaadpoort wordt misbruikt om een stroomomvormer op USB aan te sluiten, die de Raspberry voedt die verantwoordelijk is voor het streamen en indien nodig ook de mobiele telefoon van stroom voorziet.

Streaming wordt gedaan door een Raspberry Pi Zero W, die dient als een draadloos toegangspunt en de video streamt naar elk apparaat dat is aangesloten op het draadloze netwerk.

De mobiele telefoon om het beeld weer te geven wordt met een 3D-geprinte adapter op de rolstoelbesturing gemonteerd.

Om dit project te volgen heb je enige basiskennis van Debian/Linux nodig, aangezien de configuratie wat handwerk vereist. Het is echter niet al te moeilijk, dus probeer het eens - als je het niet zeker weet, zijn er honderden tutorials over Linux die je kunnen helpen.

Stap 1: benodigde onderdelen

Raspberry Pi Zero W: Hoofdcomponent voor het streamen van video

SainSmart groothoek fish-eye cameralenzen voor Raspberry Pi: Arduino Camera-compatibele groothoekcamera (170° FOV)

2 × Kunststof behuizingen: Een kleinere behuizing voor de Raspberry en de camera, een grotere behuizing voor de stroomverdeling

XLR-stekker: om aan te sluiten op de oplaadpoort van de rolstoel

Auto USB-poort (bijv. TurnRaise 12-24V 3.1A): Een 24V naar USB-converter in een kleine behuizing voor auto- en motorgebruik. Kan alles zijn dat 24V-invoer gebruikt en USB-uitvoer biedt.

Diverse kabels:

  • Stroomkabel voor route van XLR-poort naar achterkant van rolstoel,
  • USB-kabel om Raspberry te voeden

3D-geprinte adapter voor telefoon Een 3D-geprinte adapter voor de rolstoelcontrole-eenheid die dient als basis voor een standaard automobiele telefoonhouder:

Automobiele telefoonhouder: Een mobiele telefoonhouder die op een vlakke ondergrond kan worden bevestigd (bijv. een dashboardtelefoonhouder). Ik gebruikte er een van Hama, een Duitse fabrikant.

Stap 2: De Raspberry-camera instellen

De Raspberry-camera instellen
De Raspberry-camera instellen

Installeer Raspbian vanaf https://www.raspberrypi.org/downloads/raspbian/ volgens de instructies van

Installeer alle updates door de volgende twee opdrachten uit te voeren vanaf een terminal:

sudo apt-get update

sudo apt-get dist-upgrade

Sluit af, sluit de camera aan. Begin opnieuw met de framboos.

Schakel in het Raspberry Setup-paneel de camera in en schakel SSH-toegang tot de Raspberry in. De sainsmart-camera werkt als de officiële Pi-camera, u kunt de instructies hier volgen: https://www.raspberrypi.org/learning/addons-guide… Helaas bent u nog niet klaar. We hebben een v4l-stuurprogramma nodig voor de raspi-cam, die niet standaard is ingeschakeld. Eerst moet je een firmware-update van je raspberry doen om de nieuwste firmware en kerneldriver te krijgen - voer het volgende uit in een terminal:

sudo raspi-update

U moet het v4l-kernelstuurprogramma nu laden door in een terminal te typen:

sudo modprobe bcm2835-v4l2

Als dit werkte zonder foutmeldingen, zou je nu een apparaat /dev/video0 moeten hebben, check met

ls - l /dev/vid*

Als dit werkte, voeg dan bcm2835-v4l2 toe aan /etc/modules om de module bij elke start in te schakelen.

U kunt controleren of de camera werkt met het commando:

raspistill -o cam.jpg

Stap 3: Installeer V4l2rtspserver

Installeer V4l2rtspserver
Installeer V4l2rtspserver

Eerst moet je cmake installeren, omdat we het videostreamingprogramma zelf zullen compileren:

sudo apt-get install cmake

Voor streaming gebruiken we v4l2rtspserver omdat deze de laagste latentie vertoonde in onze proeven. U kunt de code krijgen van

Installeer het met:

git clone

cd h264v4l2rtspserver

cmak.

laten installeren

Alles zou zonder fouten moeten eindigen en u kunt het nu testen door de streamingserver vanaf een terminal te starten:

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

Verbind met VLC op een computer in hetzelfde netwerk met de Raspberry: rtsp://:8554/unicast om te controleren of de streaming werkt.

Maak een script met de naam launcher.sh in je thuismap met je favoriete editor (die vi zou moeten zijn):

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

Het slaapcommando is nodig om het videostuurprogramma gereed te maken. Waarschijnlijk kan het worden ingesteld op minder dan 20 seconden….

Voeg dit script toe aan je crontab met "crontab -e" en voeg toe:

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

Dit zou de streaming bij elke start automatisch moeten starten.

Alternatieven voor streamen:

Er zijn een aantal alternatieven om te gebruiken voor het streamen van video, ik heb motion en vlc geprobeerd. Motion is een webcamtool die beweging detecteert, dus het voert extra beeldanalyse uit op de beelden en is waarschijnlijk iets langzamer dan alleen streamen.

VLC werkt out-of-the-box zonder extra compilaties:

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

Dit commando streamt een h264-gecodeerde video via http op poort 12345. Latency is ongeveer 2 seconden in onze testopstelling.

Stap 4: Stel de Raspberry in als WiFi-toegangspunt: deel 1 - Hostapd

De Raspberry instellen als wifi-toegangspunt: deel 1 - Hostapd
De Raspberry instellen als wifi-toegangspunt: deel 1 - Hostapd

Met deze stap stelt u uw Raspberry in als een toegangspunt. Hierna ben je niet meer verbonden met je netwerk maar opent de Raspberry zijn eigen WiFi Netwerk. In geval van fouten moet je toegang hebben tot de Raspberry met een toetsenbord en een display, dus doe dit voordat je de framboos ergens in een behuizing begraaft…

Ik volg de hier beschreven methode:

Installeer hostapd en dnsmasq:

sudo apt-get install dnsmasq hostapd

Schakel dhcp uit op de interface wlan0 door de volgende regel toe te voegen aan /etc/dhcpd.conf (bij voorkeur bovenaan)

denyinterfaces wlan0

Configureer een statisch IP-adres voor de wlan0-interface door /etc/network/interfaces te bewerken om het volgende op te nemen:

allow-hotplug wlan0 iface wlan0 inet statisch adres 172.24.1.1 netmask 255.255.255.0 netwerk 172.24.1.0 broadcast 172.24.1.255

Start de dhcp-daemon opnieuw met sudo-service dhcpcd restart en laad vervolgens de wlan0-configuratie opnieuw met

sudo ifdown wlan0; sudo ifup wlan0

Sla de bijgevoegde hostapd.conf op onder /etc/hostapd/hostapd.conf (nadat je de inhoud hebt gecontroleerd en naar wens hebt aangepast - je moet op zijn minst de SSID en de wachtwoordzin veranderen in iets veiligers).

U kunt nu controleren of het werkt door het volgende uit te voeren:

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

Je zou verbinding moeten kunnen maken met het nieuwe netwerk, maar je krijgt nog geen IP-adres. Stop hostapd door op CTRL-C te drukken. Schakel de automatische start van hostapd in door /etc/default/hostapd te bewerken en de locatie van het configuratiebestand toe te voegen door de overeenkomstige regel te wijzigen in

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

Stap 5: Stel de Raspberry in als wifi-toegangspunt: deel 2 - Dnsmasq

De Raspberry instellen als wifi-toegangspunt: deel 2 - Dnsmasq
De Raspberry instellen als wifi-toegangspunt: deel 2 - Dnsmasq

Verplaats de meegeleverde dnsmasq-configuratie naar een back-upbestand (omdat het veel opmerkingen bevat, kunt u het nog steeds als referentie gebruiken):

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

Maak dan een nieuwe /etc/dnsmasq.conf aan met de volgende inhoud:

server=8.8.8.8 # Stuur DNS-verzoeken door naar Google DNS-domein nodig # Stuur geen korte namen nep-priv door # Stuur nooit adressen door in de niet-gerouteerde adresruimten. dhcp-range=172.24.1.50, 172.24.1.150, 12h # IP-adressen toewijzen tussen 172.24.1.50 en 172.24.1.150 met een leasetijd van 12 uur

Het binden van de dnsmasq-service aan een specifiek adres leidde tot enkele problemen in onze installatie, dus laten we het gewoon op alle interfaces draaien. Aangezien de Raspberry Pi Zero W alleen WiFi heeft, is dit geen probleem, tenzij je een USB Ethernet-interface aansluit… (in dit geval zou je ook een dhcp-server op deze interface hebben, dus dit kan het netwerk waarmee je verbinding maakt via een kabel in de war brengen).

U hoeft geen extra stappen te doen om dnsmasq uit te voeren bij het opstarten, het start automatisch. U moet echter alles testen voordat u opnieuw opstart door beide services handmatig te starten en te controleren of u verbinding kunt maken met WiFi en een IP-adres kunt krijgen (u kunt ook uw mobiele telefoon vertellen dat deze WiFi geen internet heeft en dat dit in orde is):

sudo-service hostapd start sudo-service dnsmasq start

Stap 6: Controleer de software

Controleer de software
Controleer de software

Nu je alles hebt geconfigureerd is het tijd om een korte controle uit te voeren (voordat alles moeilijker toegankelijk is). Start de framboos opnieuw op.

Maak verbinding met de WiFi als de Raspberry met uw mobiele telefoon. Sluit een streaming video-client (bijv. VLC die voor alle besturingssystemen bestaat) aan op de stream van de raspberry door "Network stream" te selecteren en verbinding te maken met rtsp://:8554/unicast (is het IP-adres van uw apparaat, als u dat niet hebt gedaan) verander het, het is 172.24.1.1).

Je zou nu wat live video van de camera moeten zien… (ik had wat problemen met VLC voor Android, maar VLC voor iOS werkte probleemloos - ik heb de Android-versie niet verder onderzocht omdat mijn broer iOS gebruikt).

Stap 7: De voeding maken

De voeding maken
De voeding maken
De voeding maken
De voeding maken
De voeding maken
De voeding maken

De invacare-bediening maakt gebruik van wat een standaard lijkt te zijn voor elektrische rolstoelen. De connector is een standaard XLR-connector zoals gebruikt voor microfoons. Pin 1 is positief, Pin 2 negatief. Invacare heeft twee extra pinnen voor communicatie, maar daar gaan we niet mee rommelen…

Sluit de XLR-connector aan op de USB-stroomadapter en plaats alles in een doos. Om de kabel naar de box te voeren is een doorvoer een goed idee. Zorg ervoor dat de kabel lang genoeg is om van de rolstoelbedieningsmodule naar de rugleuning te worden geleid waar u de voedingskast gaat bevestigen. U kunt de kabels langs de kabels van de regelmodule leiden om ervoor te zorgen dat ze nergens vast komen te zitten in een bewegend onderdeel.

Stap 8: De doos voor de camera bouwen

De doos voor de camera bouwen
De doos voor de camera bouwen
De doos voor de camera bouwen
De doos voor de camera bouwen
De doos voor de camera bouwen
De doos voor de camera bouwen
De doos voor de camera bouwen
De doos voor de camera bouwen

Bouw een doos die past bij de Raspberry Pi en de camera. De doos heeft een opening aan de zijkant nodig om de USB-voedingskabel door te leiden en een opening voor de camera die groot genoeg is om het zicht niet te belemmeren. Ik heb de camera in een hoek van ongeveer 45° gemonteerd, zodat deze naar beneden wijst om de achterwielen van de rolstoel te kunnen zien. Ik gebruikte een standaard plastic doos waarin ik wat gaten heb gesneden, maar je kunt ook een mooiere versie 3D printen (misschien voor versie 2)

Stap 9: Maak de telefoonhouder

Maak de telefoonhouder
Maak de telefoonhouder
Maak de telefoonhouder
Maak de telefoonhouder
Maak de telefoonhouder
Maak de telefoonhouder

Om de mobiele telefoon aan de rolstoel te bevestigen heb ik een adapterplaat 3d geprint die je hier kunt vinden: https://www.thingiverse.com/thing:2742683 (het STL-bestand is ook bijgevoegd). Deze is bevestigd aan de rolstoelbesturing. Op deze plaat kun je elke autotelefoonhouder plakken, die je overal goedkoop kunt krijgen.

Stap 10: Monteer alles en probeer het uit

Alles in elkaar zetten en uitproberen
Alles in elkaar zetten en uitproberen
Alles in elkaar zetten en uitproberen
Alles in elkaar zetten en uitproberen
Alles in elkaar zetten en uitproberen
Alles in elkaar zetten en uitproberen

Nu is het tijd om alles in elkaar te zetten:

Bevestig de camerabox ergens aan de achterkant van de rolstoel waar het zicht niet belemmerd wordt en de camera naar achteren gericht is. Bevestig het voedingskastje ergens aan de achterkant waar het niet in de weg zit. Sluit de USB-kabel van de Raspberry aan op de powerbox. Sluit de powerbox met de XLR-stekker aan op de oplaadpoort op de rolstoelbesturing. Alles zou nu moeten opstarten.

Installeer VLC op je mobiele telefoon (als je het nog niet hebt gedaan…) en maak verbinding met de Raspberry via rtsp://:8554/unicast

Je zou nu het camerabeeld op je mobiele telefoon moeten zien:-)

Plaats de gsm-houder op de rolstoelbediening en zet de telefoon erop vast. En dit is het, je bent klaar!

Raspberry Pi-wedstrijd 2017
Raspberry Pi-wedstrijd 2017
Raspberry Pi-wedstrijd 2017
Raspberry Pi-wedstrijd 2017

Tweede prijs in de Raspberry Pi-wedstrijd 2017

Aanbevolen: