1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/neuq-intelligent-desert-robot-pyb-controller_robot

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

PYB差速主控底盘开源工程

Проект представляет собой

Это двухколёсная тележка с дифференциальным приводом или робот-платформа, основанная на PYB в качестве однокристального микроконтроллера.

Система хорошо подходит для систем управления двухколёсным дифференциальным приводом. В систему уже интегрированы такие датчики, как одометр и IMU, а также разработана функция последовательной связи с узлом ROS, что делает её подходящей для использования в качестве нижнего узла робота ROS.

Сопровождающие:

  • Гао Хунчжи
  • Ли Цзяло
  • Го Хэ

История версий

pyb-controller-v3.4 2021/4/25

  • Значительно улучшен код, добавлены комментарии к параметрам, чтобы различать настраиваемые и системные параметры по умолчанию.
  • Интегрировал модуль mpu9250 в driver_flag для выполнения, только считывает 9-осевые значения IMU в однокристальном микроконтроллере, но не отправляет их на верхний узел по умолчанию.
  • По умолчанию установил кодировщик как оптический кодировщик, если требуется замена, необходимо изменить параметры PID в main.py и параметры робота и кодировщика в encoder.py.

pyb-controller-v3.3 2021/4/15

  • Добавлена коммуникационная связь Micropython и анонимного рабочего места для реализации задач связи и управления, которые могут реализовать функцию отображения параметров двигателя в реальном времени и настройки PID.
  • Оптимизирован код для повышения эффективности выполнения кода, удалён ненужный OLED (можно добавить самостоятельно).

pyb-controller-v3.2 2021/3/24

  • Улучшена связь между верхним и нижним узлами ROS.

pyb-controller-v3.1 2021/3/1

  • Добавлен USB-порт, который настроен как режим USB_VCP, так что однокристальный микроконтроллер может напрямую взаимодействовать с верхним узлом через USB-порт.

pyb-controller-v3.0 2021/2/20

  • После добавления обратной связи PID для двигателя добавлена линейная коррекция, поскольку параметры были плохо настроены, используется этот метод.

Архитектура проекта

Структура кода

  • main.py
  • motor.py
  • encoder.py
  • pid.py
  • oled.py
  • ps2.py
  • serial.py
  • imu.py
  • mpu9250.py

Аппаратные средства

  1. PYB(STM32F405)* 1

  2. Тележка с кодированным двигателем (кодированный двигатель * 2 + L298N * 1) * 1

  3. Джойстик PS2 * 1

  4. Модуль привода двухколёсного кодированного двигателя * 1

  5. Общий модуль питания * 1

  6. mpu9250(9 осей) модуль датчика * 1

Схема подключения

Внешний контакт Левый контакт PYB Правый контакт PYB Внешний контакт
encoderMA_A Y1(TIM8 CH1)
encoderMA_B Y2(TIM8 CH2)
PWMA Y3(TIM4 CH3)
PWMB Y4(TIM4 CH4)
AIN1 Y5 Y12 \
AIN2 Y6 Y11 \
\ Y7 (IIC2 SDA)Y10 SDA(OLED)
\ Y8 (IIC2 SCL)Y19 SCL(OLED)
SCL(mpu9250) X9(IIC1 SCL) X8 \
SDL(mpu9250) X10(IIC1 SDA) X7 \
BIN1 X11 X6 \
BIN2 X12 \
(UART2 RX)X4 TX(USB-TTL)
(UART2 TX)X3 RX(USB-TTL)
X2 encoderMB_B(TIM5 CH2)
X1 encoderMB_A(TIM5 CH1)
--- --- --- --- --- --- ---
X18 X19 X20 X21 X22
DAT(PS2) CMD(PS2) CS(PS2) CLK(PS2) \

Приложение

  1. STM32 имеет кодированные функции таймера: 1, 2, 3, 4, 5, 8, эти несколько таймеров CH1, CH2 можно использовать для измерения скорости кодировщика AB, CH1N и другие каналы с N не могут использоваться для измерения скорости кодировщика. Таймеры 6 и 7 являются базовыми периодическими, используются только для синхронизации и подсчёта функций, без таких специальных функций, как PWM.
  2. Встроенный акселерометр — MMA7660, это трёхмерный датчик ориентации/обнаружения движения от NXP, который представляет собой трёхмерный акселерометр без трехосного гироскопа, такого как mpu6050 шестиосный модуль датчика, то есть трёхосный акселерометр + трёхосный гироскоп. Диапазон измерения этого акселерометра составляет ±1,5 г, он использует интерфейс связи I2C, при использовании встроенного акселерометра нельзя использовать контакты X9 и X10, иначе акселерометр не сможет нормально работать, и наоборот.
  3. Этот однокристальный микроконтроллер имеет мало контактов, он не подходит для управления четырёхколёсными транспортными средствами, вам необходимо приобрести PLUS версию с большим количеством обычных портов ввода-вывода.
  4. Коммуникационный протокол верхнего и нижнего узлов ROS использует кортежи в качестве основного формата связи, отправляющей и принимающей сторонам нужно только выполнять операции кодирования и декодирования, чтобы напрямую использовать его, что удобно и быстро.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

На основе PYB в качестве микроконтроллера для двухколёсного транспортного средства с дифференциальным приводом или шасси робота. Расширить Свернуть
Python
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/neuq-intelligent-desert-robot-pyb-controller_robot.git
git@gitlife.ru:oschina-mirror/neuq-intelligent-desert-robot-pyb-controller_robot.git
oschina-mirror
neuq-intelligent-desert-robot-pyb-controller_robot
neuq-intelligent-desert-robot-pyb-controller_robot
pyb-controller-v3.4