- Raspberry Pi (getestet mit 4B und 2B unter Ubuntu)
- CAN-Bus Adapter SBC-CAN01 von joy-it
- Verkabelung entsprechend der Anleitung
- SPI-Kommunikation aktivieren
sudo raspi-config
Interface Options > SPI > Yes
- Kernel konfigruieren
- Kernelversion identifizieren für weitere Schritte:
uname -r
6.6.51+rpt-rpi-v7 >> Kernel-Version: 6.6.51
- boot-Konfiguration anpassen:
Im Bereich [all] folgende Zeilen hinzufügen:
sudo nano /boot/firmware/config.txt
- Kernel > 4.4x
dtparam=spi=on dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25 dtoverlay=sp1-1cs
- Kernel < 4.4.x
dtparam=spi=on dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25 dtoverlay=sp1-bcm2835-overlay
- Kernel > 4.4x
- Raspberry neustarten:
sudo reboot
- Kernelversion identifizieren für weitere Schritte:
- SOCKETCAN-Treiber laden (nicht persitent, automatisches Laden wird später eingerichtet)
sudo modprobe can
sudo modprobe can_raw
- CAN-Interface aktivieren:
sudo ip link set can0 up type can bitrate 50000
- Kommunikation testen durch Lesen der CAN-Kommunikation:
sudo apt-get install can-utils -y
candump can0
can0 701 [1] 05 can0 201 [8] CB 03 EE 01 00 00 00 00 ...
- Treiber
sudo nano /etc/modules-load.d/can.conf
can can_raw
- CAN-Interface
sudo systemctl start systemd-networkd
sudo systemctl enable systemd-networkd
sudo nano /etc/systemd/network/80-can.network
[Match] Name=can0 [CAN] BitRate=50K RestartSec=100ms
sudo systemctl restart systemd-networkd
Mithilfe der uvrdump-Executable (Release-Tab) können sämtliche Ein- und Ausgänge eines UVR1611 eingelesen werden.
./uvr2json --help
Usage of uvr2json:
-client int
Client-ID [1...254] - (default 16)
-interface string
Name des CAN-Bus Netzwerkinterface - (default "can0")
-output string
Pfad für Ausgabedatei - (default "daten.json")
-server_ids string
Kommagetrennte Liste von Knoten-IDs der abzufragenden UVR: 1,2,3,... - (default "1")
-v Ausführliche Ausgaben erzeugen - default(false)
Nur erforderlich, falls der Quellcode angepasst werden soll.
Bei Verwendung eines Standard-Raspian Betriebssystems kann die kompillierte Version im Release-Tab verwendet werden.
sudo apt update && sudo apt install golang -y && go version
git clone https://github.com/KNGP14/uvr && cd uvr
go get github.com/brutella/can
go get github.com/brutella/canopen
Das kompillieren erfolgt aus dem Root-Verzeichnis des Projektes heraus, der Ordner mit der Makefile
-Datei.
make build-uvr2json-arm
Der Quellcode für uvr2json ist geforked von brutella und verwendet dessen Bilbiotheken can und canopen für die Kommunikation über den CAN-Bus.