can.py
# Dieses Werk ist unter der MIT-Lizenz lizenziert.
# Copyright (c) 2013-2024 OpenMV LLC. Alle Rechte vorbehalten.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Beispiel für CAN-Shield
#
# Dieses Beispiel demonstriert die CAN-Kommunikation zwischen zwei Kameras.
# HINWEIS: Sie benötigen zwei CAN-Transceiver-Shields und ein DB9-Kabel, um dieses Beispiel auszuführen.
import time
from machine import CAN
# HINWEIS: Auf dem empfangenden Knoten auf False setzen.
TRANSMITTER = True
can = CAN(0, CAN.NORMAL, baudrate=1000000, auto_restart=True)
if TRANSMITTER:
while True:
# Nachricht mit ID 1 senden
can.send("Hello", 1, timeout=100, extframe=False)
time.sleep_ms(1000)
else:
# Läuft auf dem empfangenden Knoten.
# Einen Filter setzen, um Nachrichten mit id=1 und 2 zu empfangen
# Filterindex, Modus (DUAL usw.), FIFO (0), Parameter
can.setfilter(0, CAN.DUAL, 0, [1, 2])
while True:
# Nachrichten auf FIFO 0 empfangen (es gibt nur ein FIFO)
print(can.recv(0, timeout=10000))