Примеры на Arduino
Перед вами примеры программ для работы с различными датчиками, моторами и интерфейсами передачи данных.
Все примеры доступны в репозитории: https://github.com/VBCores/VBCoreG4_examples/tree/main
Чтобы корректно повторить примеры и настроить пины, рекомендуется заранее прочитать pinout и документацию для каждого используемого драйвера и модуля.
BASIC
Простейшие примеры программ взаимодействия VBCore с периферией.
| Пример | Описание |
|---|---|
| Blink | Мигание светодиодом |
| DAC_example | Работа с ЦАП (цифро-аналоговое преобразование) |
| ADC_voltage_measure | Пример работы с АЦП. В данном примере показано чтение аналогового сигнала с пина PC0. |
| BTN_with_Serial | Работа с пользовательской кнопкой и Serial |
| Timer_example | Использование таймера |
| Timer_with_Serial_and_BTN | Мигание светодиодом с частотой из Serial |
| I2C_scanner | Поиск устройств на шине I2C |
| BNO_example | Чтение IMU BNO по I2C |
| AS5047P_SPI_example | Чтение энкодера AS5047P по SPI |
| AS5600_I2C_example | Чтение энкодера AS5600 по I2C |
| DIP_Switch_Reading | Работа с DIP‑переключателем |
| EEPROM_Basic | Базовая работа с EEPROM |
| VB_EEPROM_example | EEPROM через библиотеку VB_EEPROM |
CAN / CAN-FD / Cyphal
Примеры программ для работы с CAN, CAN-FD и Cyphal CAN.
Чтобы работать с Cyphal CAN, скачайте библиотеку libcxxcanard и скопируйте в свою папку Arduino/Libraries. Перед написанием примера с Cyphal настоятельно рекомендуем прочитать документацию к регламентированным типам данных. Это существенно облегчит вам понимание особенностей типов и их адресации
| Пример | Описание |
|---|---|
| Classic_CAN | Передача и приём сообщений CAN |
| CAN_FD | Передача и приём CAN-FD |
| Cyphal_send_angle | Отправка угла по Cyphal |
| Cyphal_send_array | Отправка массива по Cyphal |
| Cyphal_send_heartbeat | Отправка и получение heartbeat |
| Cyphal_send_string | Отправка строки |
| Cyphal_send_angular_vel_and_angle | Отправка угла и угловой скорости |
| Cyphal_recv_angular_vel | Приём угловой скорости |
DC Driver
Примеры работы с DC‑драйвером и DC‑моторами.
Перед тем, как приступить к работе с DC двигателем, необходимо сначала ознакомиться со схемой к DC драйверу. Обратите внимание для чего предназначены IN1, IN2, Vref, SLEEPn. ПИН PB3(SLEEPn) необходимо выставить в HIGH (что это за пин см в документации к драйверу) в функции setup(). Чтобы задать частоту ШИМа используйте функцию analogWriteFrequency(), по умолчанию она равна килогерцу (1000 Гц).
Обратите внимание на Vref - пин PA4(см в документации к драйверу). Это защита от перегрузки по току, пин Analog OCP(Over-Current Protection) reference input, то есть аналоговый вход, куда подается опорное (пороговое) напряжение. Этот вход задаёт «уровень срабатывания» защиты: чем выше напряжение — тем выше допустимый ток; чем ниже — тем раньше сработает защита.
Чтобы посчитать Vref, используйте формулу (она есть в документации к драйверу Allegro): Ipeak = Vref / (10 * Rsense) В нашей документации к драйверу указано, что Rsense = 0.01
У нас также сказано, что на PA4 стоит делитель 1:2, поэтому: Vref = 2 * 10 * Ipeak * Rsense
Если вы столкнетесь с тем, что мотор не вращается (или во время вращения на какое-то время останавливается, особенно при большой разнице между подаваемыми напряжениями), то скорее всего неверно установлен Vref
Для каждого мотора пиковый ток указан в документации, исходя из него рассчитывайте Vref
| Пример | Описание |
|---|---|
| Check_encoder | Проверка энкодера мотора |
| PWM | Управление DC мотором по ШИМ |
| EncoderAB_Read | Чтение AB‑энкодера |
| EncoderABZ_Read | Чтение ABZ‑энкодера |
| Get_velocity | Получение скорости мотора |
| Get_ang_vel_from_encoder | Угол и скорость по энкодеру |
| Get_ang_from_encoderABZ | Угол по ABZ‑энкодеру |
BLDC Driver
Примеры работы с BLDC‑драйвером и BLDC‑моторами (SimpleFOC).
| Пример | Описание |
|---|---|
| Find_number_of_pole_pairs | Определение числа пар полюсов |
| Velocity_control | Управление скоростью |
| Torque_voltage_control | Управление моментом (по напряжению) |
Stepper Driver
Примеры работы с драйвером шагового двигателя.
| Пример | Описание |
|---|---|
| Control_by_SPI | Управление шаговым двигателем по SPI |
| Control_by_tmcLib | Управление через библиотеку TMCStepper |
Other Examples
Примеры совместного использования драйверов моторов и CAN / Cyphal.
| Пример | Описание |
|---|---|
| CanFD_with_dc_motor_ctrl | Управление DC мотором по CAN-FD |
| Cyphal_with_dc_motor_ctrl | Управление DC мотором по Cyphal |
| Cyphal_with_bldc_velocity_control | Управление BLDC мотором по Cyphal |