Установить/обновить

1. Подключите устройство CAN к контактам H и L платы контроллера.

2. Открываем конфигурационный файл:

sudo nano /boot/config.txt

3. Затем добавляем в него следующие строчки:

dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25,spimaxfrequency=1000000

4. Устанавливаем пакет can-utils:

sudo apt install can-utils

5. Сохраняем изменения комбинацией Ctrl+O, выходим из файла Ctrl+X, затем перезагружаем устройство:

sudo reboot

Запуск и остановка CAN

1. Запуск шины:

sudo ip link set can0 up type can bitrate 500000

где 500000 — величина битрейда

2. После запуска шины вбиваем команду:

ifconfig can0

3. Если интерфейс работает корректно, то должен поступить примерно такой ответ:

can0: flags=193<UP,RUNNING,NOARP> mtu 16
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)
RX packets 18476 bytes 147808 (144.3 KiB)
RX errors 0 dropped 28 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

4. Остановка шины:

sudo ip link set can0 down

Прослушивание шины

1. Для прослушивания сигналов, передаваемых по шине, вбейте следующую команду:

candump can0

В ответ должны поступить примерно такие сообщения:

can0 0000100F [8] 00 A5 00 00 00 00 00 00
can0 0000100F [8] 00 A5 00 00 00 00 00 00
can0 0000100F [8] 00 A5 00 00 00 00 00 00
can0 0000100F [8] 00 A5 00 00 00 00 00 00

Пример отправки команды

1. Пример команды:

cansend can0 00001010#00A5000000000000

Автозапуск при загрузке

1. Открываем конфигурационный файл:

sudo nano /etc/network/interfaces

2. Затем добавляем в него следующие строчки:

allow-hotplug can0
iface can0 can static
bitrate 250000
up /sbin/ip link set $IFACE down
up /sbin/ip link set $IFACE up txqueuelen 1000 type can bitrate 250000 sample-point 0.7 triple-sampling off restart-ms 500

Связка с NodeRed

1. Если NodeRed у вас не установлен, то перейдите по этой ссылке

2. Для установки node-red-contrib-canbus скачайте доработанную версию по этой ссылке. Оригинал версии взят с сайта GitHub

3. Распакуйте скачанный архив в директорию Linux.

4. Установите архив на устройство:

cd ~/.node-red

npm i путь_к_директории/node-red-contrib-canbus

rm -rf node_modules

npm i

5. Сохраняем изменения комбинацией Ctrl+O, выходим из файла Ctrl+X, затем перезагружаем устройство:

sudo reboot

Тестовый поток NodeRed

Импортируйте тестовый проект в NodeRed:

[{"id":"73a93f72.2489","type":"canconfig","z":0,"channel":"vcan0","bitrate":"100000"},{"id":"6e1ca89c.d417b","type":"cansend","z":"21e7592e.177786","config":"73a93f72.2489","canid":"","payload":"","x":570,"y":204,"wires":[]},{"id":"fa2cf7a7.55afe","type":"candump","z":"21e7592e.177786","name":"candump","vconfig":"73a93f72.2489","x":138,"y":104,"wires":[["f2631912.a5ca18"]]},{"id":"233b31e6.9f3d26","type":"inject","z":"21e7592e.177786","name":"","topic":"","payload":"200#abxy","payloadType":"string","repeat":"","crontab":"","once":false,"x":155,"y":203,"wires":[["7dc36d2.f427d14","fc78a840.c0006"]]},{"id":"f2631912.a5ca18","type":"debug","z":"21e7592e.177786","name":"","active":true,"console":"false","complete":"true","x":521,"y":108,"wires":[]},{"id":"3c5d3978.ef7fbe","type":"inject","z":"21e7592e.177786","name":"","topic":"","payload":"abcd","payloadType":"string","repeat":"","crontab":"","once":false,"x":149,"y":381,"wires":[["935e9142.7c2f9"]]},{"id":"935e9142.7c2f9","type":"function","z":"21e7592e.177786","name":"","func":"var msg;\nmsg.canid=129;\nreturn msg;","outputs":1,"noerr":0,"x":324,"y":384,"wires":[["7dc36d2.f427d14"]]},{"id":"1eb03187.f054de","type":"inject","z":"21e7592e.177786","name":"blank","topic":"","payload":"","payloadType":"none","repeat":"","crontab":"","once":false,"x":151,"y":288,"wires":[[]]},{"id":"7dc36d2.f427d14","type":"cansend","z":"21e7592e.177786","config":"73a93f72.2489","canid":"130","payload":"","x":575,"y":345,"wires":[]},{"id":"73fe1cf1.7d1bbc","type":"cansend","z":"21e7592e.177786","config":"73a93f72.2489","canid":"","payload":"hello","x":578,"y":274,"wires":[]},{"id":"fc78a840.c0006","type":"cansend","z":"21e7592e.177786","config":"73a93f72.2489","canid":"130","payload":"hello","x":581,"y":404,"wires":[]}]

Остались вопросы? Напишите нам в техническую поддержку и мы обязательно Вам поможем!

Написать в тех. поддержку