Inhaltsverzeichnis

Hardware

Räder/Motoren

Stammen aus 2 Hoverboards Bluewheel und wurden dort mit 24V 250Watt betrieben

Brushless-Controller/Motortreiber

Da sich die Controller der Hoverboards nicht geeignet haben sind es nun 4 Xiaomi M365 Controller. Diese kommunizieren über UART mit der Steuerung.

Akkus

Im Original werden je 2 Hoverboard-Motoren von einem 4Ah 24V Lithium-Ionen-Akku gespeist. Da diese temperatur- und brandempfindlich sind werden nun vorerst vier LiFePo4 12V 20Ah Akkus, paarweise in Reihe geschalten, verwendet. Knackpunkt ist der maximal entnehmbare Strom. Dieser wurde darum in den M365 Controllern auf 5A begrenzt.

Der Roller, von dem die Controller stammen, wird mit einem 7800mAh 36V Li-ion Akku betrieben.

ESP32 P4 als UART-Multiplexer

Empfängt die Kommandos ders Steuerrechners und leitet sie an die 4 Brushless-Controller weiter. Ebenso sammelt er deren Feedback. Angeschlossen sind noch die Sensoren für Ausrichtung und Beschleunigung sowie Lidar.

Zusammen mit dem Feedback der Motortreiber werden diese Daten an die Steuerung übertragen.

Steuerung

Derzeit ein Nanopi Neo3. Über den I2C GPIO-Expander MCP23017 schaltet er die Controller der Motoren ein oder aus und kommuniziert über UART mit ihnen. Die Kamera ist über USB angeschlossen. Auf der Steuerung läuft der RTC-Server für die Kamera und der Websocket-Server für die Steuerung. Ist x Sekunden kein Client über einen Websocket verbunden so wird der Steuerrechner heruntergefahren. Dadurch wird die Verbindung zum WIO-E5 über GPIO 79 abgeschalten und der WIO-E5 schaltet nach zwei Gedenksekunden die Stromversorgung für Steuerrechner und Router aus.

Gestartete Service:

camstream

WebRTC-Stream der Kamera

websocket

Empfängt Kommandos vom Client und leitet diese an den UART-Multiplexer weiter. Empfängt das summierte Feedback der Motortreiber vom Multiplexer sowie die Beschleunigungs- und Lidarwerte. Sendet Feedback, Motorstatus, RSSI und Positionsdaten an den Client.

rssiempfang

Empfängt vom Router den RSSI-Wert der WLAN-Verbindung. Dieser wird vom Websocket an den Client gesendet.

Router GL-MT300N-V2

Der GL-MT300N-V2 sorgt für die Verbindung zum WLAN. Es wird ein Script rssi_control.sh gestartet, welches den RSSI-Wert der WLAN-Verbindung an die Steuerung sendet.

Lora E5

Lora-E5 zum ein- und ausschalten von Router und Steuerung über den WLAN-Empfangsbereich hinaus. Ein E5 hängt als Master am Server und kommuniziert mit diesem über eine serielle Schnittstelle. Er leitet die Kommandos vom Gartenknecht an den Server weiter und meldet ausbleibende Pings von diesem. Befehle des Servers an den Gartenknecht werden zwischengespeichert und beim nächsten Empfangsfenster an diesen weitergeleitet.

Der andere E5 befindet sich auf dem Gartenknecht. Alle x Minuten sendet er die Temperaturen der Akkus an den Master. Zwischen diesen gesendeten Statusmeldungen hält er y Empfangsfenster für den Empfang von Befehlen für 2 Sekunden offen.

Spannungsversorgung E5 Slave am Gartenknecht:

R-78K3.3-1.0 4.5-36VDC, output voltage is 3.3VDC

Spannungsteiler Akkuspannung: 6,81M - 237k+200k

xxTemp1 xxTemp2, xxTemp3, xxTemp4, xStatus (Power, Wifi, )

gemessen: 6,8M - 440k

PB14 orange→grün

PB9 gelb→blau Spannungsmessung Batterien

ISDT K2 Zip Ladegerät

Laden der Batterien mit Solar-Gleichstrom oder Netzspannung

EyeToy Kamera

Im Focus verstellbare USB-Kamera mit Mikrofonarray zur Richtungserkennung der Geräusche.

Software/Netzwerk

HTML, JS und CSS über https für die Website auf diesem Server,

WebSocket und RTC auf dem Nanopi Neo3

stunnel auf dem Router

Aufbau Gartenknecht

satel-vl53l8

orange5V5V
LPn connect to IOVDD with a 47 kΩ pullup resistor
braun/w NCS 32, 26, 16, 17
braunGNDGND
grünMISO33
grün/wMOSI25
blauMCLK22
blau/wPWREN21
SPI_I2C_Nconnect to IOVDD with a 47 kΩ pullup resistor

BNO085

grünMISO(SDA)33
grün/wMOSI(AD0)25
blauMCLK(SCL)22
Vin3V
GNDGND
SCLSPI SCK
SDASPI MISO
DISPI MOSI
CS to pin 13
INT to pin 14
RST to pin 27
P0 and P1to Vin

Kamera

modprobe v4l2loopback video_nr=6 card_label=OpenCV exclusive_caps=1

v4l2-ctl –list-devices

wsServer/wsServer

autofocus/autofocus

webRTC/webrtc-streamer

wsServer

Websocket für Zoom, Neigung und Drehen. Kommuniziert über Pipe mit autofocus.

autofocus

Autofocus und Ausführung der Befehle vom Websocket.

webrtc-streamer

Stellt die Website und den Stream der Kamera zur Verfügung.