Перейти к основному содержимому

Коммуникация по шине CAN

О чём этот курс

В этом курсе вы шаг за шагом разберётесь, как работает коммуникация по шине CAN и CAN-FD, научитесь подключать устройства и управлять ими с помощью Python 3 и ROS 2.

Сначала вас ждёт небольшой теоретический блок о технологиях, которые применяются в этом курсе. Он нужен не для заучивания терминов, а для того, чтобы практические задания были понятнее: почему устройства обмениваются сообщениями, зачем нужна диагностика и как низкоуровневый обмен можно связать с программами робота.

После теории начнутся практические уроки: работа с оборудованием, подключение устройств, запуск примеров, отправка и приём CAN-FD-сообщений, написание программ на Python и использование ROS 2 для обмена данными между узлами.

Чему вы научитесь

После прохождения курса вы сможете:

  • подключать и настраивать оборудование для работы с CAN-FD;
  • работать с Raspberry Pi через терминал и SSH;
  • использовать can-utils для просмотра и отправки CAN-сообщений;
  • читать CAN-FD-сообщения и понимать, где в них идентификатор, длина и данные;
  • писать простые Python-программы для отправки и приёма сообщений;
  • использовать ROS 2 для передачи данных между программными узлами;
  • проверять результат работы по сообщениям в терминале и ожидаемому поведению устройства.

Используемое программное обеспечение

Для выполнения практических заданий можно использовать компьютер с Ubuntu или Windows. Основная работа будет выполняться на Raspberry Pi, а подключение к ней чаще всего будет происходить удалённо по протоколу SSH. Поэтому операционная система на рабочем компьютере не так важна, если с неё можно открыть терминал, подключиться к Raspberry Pi и работать с файлами проекта.

На рабочем компьютере понадобится установить несколько инструментов:

  1. Arduino IDE с нужными библиотеками.
  2. Visual Studio Code.

Также в ходе курса будут использоваться инструменты, установленные на Raspberry Pi: терминал Linux, Python 3, can-utils и ROS 2.

Подробные инструкции по установке программного обеспечения — здесь.

Используемое оборудование

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

Raspberry Pi 5 с платой расширения CAN-FD
  • Модуль VBCore VB32G4 — микроконтроллерный модуль для обмена данными и управления периферией. Подготовка к работе.
Модуль VBCore VB32G4
  • Отладочная плата для модуля VBCore VB32G4 — используется для подключения модуля, питания и удобного доступа к интерфейсам. Описание и настройка.
Отладочная плата для VBCore VB32G4
  • Периферийные устройства: сервоприводы, кнопки, светодиоды и другие элементы для экспериментов.

Фокус курса

Основное внимание уделено практике. Теоретические разделы нужны для того, чтобы вы понимали, что происходит в примерах: как устройства обмениваются сообщениями, почему важны идентификаторы, как читать данные в терминале и как связать низкоуровневый обмен с программами на Python и ROS 2.

Каждый практический пример будет опираться на конкретную задачу: подключить устройство, отправить сообщение, принять ответ, проверить результат и разобраться, почему система работает именно так. Такой подход помогает не просто повторить команды, а постепенно собрать цельное понимание работы CAN-FD в робототехнической системе.

Структура практических примеров

Все примеры курса выстроены от простого к более сложному, чтобы вы могли постепенно осваивать материал:

  1. Arduino IDE + VBCore G4 — управление периферией напрямую с микроконтроллера.
  2. Python 3 + Raspberry Pi — работа с устройствами по CAN-FD без использования ROS 2.
  3. Python 3 + Raspberry Pi + ROS 2 — управление устройствами через CAN-FD с применением ROS 2.

Если каких-то знаний пока не хватает, это нормально: нужные понятия будут вводиться по мере работы с конкретными примерами.