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

OSCHINA-MIRROR/Matreshka15-USV-STM32F103-part

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

Проект-UAS-STM32

Программа для нижележащего устройства STM32 для беспилотных судов/автомобилей, совместима с программами верхнего уровня Raspberry Pi, NVIDIA Jetson Nano и другими.

Основные особенности:

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

Также учтены пунктуация и согласование слов.### Системная архитектура:

  • STM32 использует операционную систему типа фреймворк, что позволяет вызывать задачи с различной частотой. Преимуществом такого подхода является повышение гибкости системы и снижение её зависимости. Аналогичные решения используются многими производителями автопилотов, такими как Crazyflie.
  • В проекте нижележащего устройства можно выбрать компиляцию, достаточно изменить одно макроопределение, чтобы система автоматически выбрала нужные датчики. Это особенно полезно при работе с двумя типами устройств для измерения угловой скорости и ориентации — GY901 и MPU6050 + HMC5883.
  • Датчики автоматически проверяются при включении питания, а также автоматически калибруются, обеспечивая высокую точность данных.
  • Модуль GPS использует передовые протоколы UBX, автоматически конфигурируется до включения питания и выводит необходимые данные, отсеивая ненужные, что значительно повышает скорость обработки данных.### Системное ядро:
  • Внутренние буферы данных между верхним и нижним уровнями используют передовые циклические буферы, что значительно снижает потерю пакетов при быстрой передаче данных и увеличивает скорость обработки данных.
  • STM32 использует конечные автоматы состояний, позволяющие использовать радиоуправление для перехода между различными режимами и выполнения различных действий. Это повышает гибкость системы.
  • Используется передовая методика Madgwick для вычисления ориентации с помощью градиентного спуска, которая значительно снижает количество итераций по сравнению с методом фильтра Калмана. При использовании этой методики требуется всего лишь 10 Гц для получения точных данных о положении.
  • Методика Madgwick для градиентного спуска используется для вычисления ориентации. Этот алгоритм имеет преимущество в том, что требует меньшего количества итераций и более низкой частоты выборки датчиков, что компенсирует недостатки фильтра Калмана, таких как потребление процессора. Поскольку нижнее устройство использует серию STM32F1 с максимальной частотой 72 МГц, одновременное использование методики вычисления ориентации и управления становится затруднительным. Градиентный спуск представляет собой широко применяемый алгоритм машинного обучения, который обычно используется для решения задач оптимизации.Таким образом, "спуск" в данном контексте может быть понят как процесс постепенного уменьшения ошибки между рассчитанной и реальной ориентацией.

Модуль GPS, поскольку он требует постоянного приема большого объёма данных, серьёзно занимает время микроконтроллера на выполнение других задач, поэтому был внедрён DMA. Кроме того, в проекте предусмотрена возможность выбора между DMA и прерываниями для компиляции, что повышает эффективность и гибкость.### Расширение функциональности:

  • Настройка модели средства (автомобиль или морское судно) позволяет оптимально использовать данные GPS, которые будут адаптированы в зависимости от выбранной модели.Если вам нужны дополнительные детали или корректировки, пожалуйста, сообщите мне! * Можно экспортировать маршруты движения непосредственно в Google Maps

Использование сенсоров

  • Для GPS используется модуль Ublox M8 (есть версия с встроенным магнитом HMC5883)
  • Для определения ориентации используется MPU6050
  • Управление осуществляется с помощью WFR07/WFT07 (подключение см. два изображения в текущей директории)
  • Описание электродвигателей:
    • Первые два колеса поворачиваются с помощью серво (тип сервы и подключение см. изображение "servo_cables.png" в текущей директории)
    • Два последних колеса приводятся в движение отдельными двигателями (скорость двигателей регулируется PID контроллером так, чтобы они работали примерно одинаково)
    • В случае изменения конструкции автомобиля удалите старый скрипт и создайте новый, используя аналогичные методы определения функций

Инструкция по использованию

  1. Скачайте этот файл в папку
  2. Откройте Keil5, скомпилируйте и загрузите в STM32
  3. Согласно таблице "STM32 ресурсы использования.xlsx", выполните соединение соответствующих сенсоров Это всё. Кроме того, если нет подключения к компьютеру, управление будет осуществляться только через радио; при наличии подключения к компьютеру можно использовать функции точечной навигации и сбора данных.

Примечания* Модель STM32 — ZET6, поскольку используется таймер 8, требуется модель с большим объемом памяти.

Важно! Все журналы разработки нижнего уровня и руководства хранятся по следующему адресу

  • Руководство по использованию сенсоров и алгоритмы для разработки беспилотного судна
  • Журнал разработки содержит подробные записи проекта от начала до успешного завершения тестирования. Из-за отказа от старого алгоритма декомпозиции ориентации и перехода к новому, ранние объяснения относительно ориентации могут служить только справочной информацией. * Часть протокола связи вырезана и находится в этой директории. То есть: общая структура и протокол связи. docx

Файловые форматы:

  • Каталог Peripherals содержит код внешних устройств STM32. Папка Software хранит части кода программной составляющей STM32, такие как алгоритмы PID и т. д.
  • Файл CONFIGURATION.h используется для установки параметров, условной компиляции и т. д.
  • Файл initialize.c содержит код, который выполняется при инициализации STM32.

Функционал (в сочетании с верхним уровнем управления)

  • Голосовое оповещение о состоянии соединения GPS, работе аппарата и т. д. (необходимо подключить небольшую аудиосистему к верхнему уровню управления).
  • Управление с помощью радиоуправляемого устройства.
  • Получение координат GPS: в то время как устройство управляет с помощью радиоуправляемого устройства, верхний уровень управления в фоновом режиме записывает текущие координаты GPS.
  • Ввод координат GPS для автономного навигирования. (метод ввода координат может быть через Google Earth или использование ранее полученных координат GPS).

Сообщение от разработчика

  • Если вас интересует совместная работа над проектом, свяжитесь с автором.
  • E-mail:8523429@qq.com

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

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

Введение

Программа для беспилотных судов/беспилотных транспортных средств на базе STM32 может использоваться совместно с программой для Raspberry Pi или отдельно. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/Matreshka15-USV-STM32F103-part.git
git@api.gitlife.ru:oschina-mirror/Matreshka15-USV-STM32F103-part.git
oschina-mirror
Matreshka15-USV-STM32F103-part
Matreshka15-USV-STM32F103-part
master