can.py
# Эта работа лицензирована по лицензии MIT.
# Copyright (c) 2013-2024 OpenMV LLC. All rights reserved.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Пример платы расширения CAN
#
# Этот пример демонстрирует связь по CAN между двумя камерами.
# ПРИМЕЧАНИЕ: для запуска этого примера нужны две платы расширения CAN-трансивера и кабель DB9.
import time
from machine import CAN
# ПРИМЕЧАНИЕ: установите False на принимающем узле.
TRANSMITTER = True
can = CAN(0, CAN.NORMAL, baudrate=1000000, auto_restart=True)
if TRANSMITTER:
while True:
# Отправить сообщение с id 1
can.send("Hello", 1, timeout=100, extframe=False)
time.sleep_ms(1000)
else:
# Выполняется на принимающем узле.
# Настроить фильтр для приёма сообщений с id=1 и 2
# Индекс фильтра, режим (DUAL и т. д.), FIFO (0), параметры
can.setfilter(0, CAN.DUAL, 0, [1, 2])
while True:
# Приём сообщений на FIFO 0 (доступен только один FIFO)
print(can.recv(0, timeout=10000))