Среда, мая 01, 2024, 12:14:08

Новости:

SMF - Just Installed!


Последние сообщения

Страницы 1 ... 3 4 5 6 7 ... 10
41
Добрый день! Когда появится описание конструкции коптера Вжик?
42
Квадрокоптер оборудован 3-лопастными пропеллерами,
Добрый день! На нашем коптере двухлопастные пропеллеры.
APM 2.8 - это полетный контроллер, Ardupilot - это программное обеспечение. Сам коптер NONAME, его можно назвать по размерам рамы, коптер на раме F450.
43
День науки АмГУ 2024. Секция Автоматика, управление, моделирование / Проверка
Последний ответ от RVL - Понедельник, марта 04, 2024, 20:37:53
Тема доклада.

Текст
Текст



Текст
44
Тема:"Система управления квадрокоптера на основе Ardupilot APM 2.8"
Исполнитель: Шилов Николай Романович гр. 341-об
Научный руководитель: Русинов Владислав Леонидович, СКБ "Промышленная робототехника и автоматизация"

Цель: Настроить APM 2.8 на раму коптера F-450

План:
1. Введение в проект и его цели.
2. Обзор квадрокоптера APM 2.8 и его компонентов.
3. Установка и настройка оборудования:
-Установка платы APM 2.8 на квадрокоптер
-Подключение моторов, регуляторов скорости и других компонентов
-Настройка прошивки APM и загрузка параметров квадрокоптера
-Калибровка датчиков и системы стабилизации
4. Основы пилотирования квадрокоптером с использованием Ardupilot:
-Управление квадрокоптером через радиоуправление или мобильное приложение
-Использование различных режимов полета (стабилизация, удержание высоты, возврат -домой и т. д.)
-Настройка и использование дополнительных функций (облет вокруг точки, следование за объектом и т. д.).
5. Создание пользовательских миссий и автопилотирование:
-Программирование миссий с использованием Mission Planner
-Реализация автопилотирования на основе GPS и заданных координат
-Создание сложных миссий, включающих несколько точек и обход препятствий
6. Тестирование и отладка системы управления квадрокоптером:
-Выполнение тестовых полетов и анализ результатов
-Устранение возможных проблем и настройка системы управления
-Разработка рекомендаций по улучшению работы системы управления.

Введение.
Проект "Система управления квадрокоптером на основе Ardupilot APM 2.8" представляет собой разработку и реализацию системы управления беспилотным летательным аппаратом (БПЛА), а именно квадрокоптером, использующим программное обеспечение Ardupilot для обеспечения стабильности и управляемости аппарата в воздухе.
В последние годы развитие технологий БПЛА значительно ускорилось, и квадрокоптеры стали одними из самых популярных типов БПЛА благодаря своей простоте, маневренности и относительно низкой стоимости. Ardupilot представляет собой открытое программное обеспечение для управления БПЛА, которое обеспечивает автономное управление полетом, стабилизацию, навигацию и выполнение миссий.
APM 2.8 является одной из версий платформы Ardupilot, предназначенной для использования на квадрокоптерах и других БПЛА с четырьмя роторами. Эта платформа предлагает широкий спектр функций, включая автоматическое управление ориентацией, стабилизацию высоты, автопилот и возможность программирования миссий. В данном проекте будет разработана система управления квадрокоптером на базе Ardupilot APM 2.8, которая позволит пилоту управлять аппаратом в режиме реального времени, а также выполнять заранее запрограммированные миссии.

Обзор квадрокоптера APM 2.8 и его компонентов.
Квадрокоптер F450 является одним из самых популярных и функциональных дронов, используемых любителями и профессионалами в области аэрофотосъемки и других видах применения. Этот квадрокоптер оснащен мощным бесщеточный двигатель постоянного тока (Brushless DC motor), который обеспечивает высокую скорость и маневренность. Кроме того, благодаря своей модульной конструкции, F450 легко модифицируется и адаптируется под различные задачи.
Основные компоненты квадрокоптера F450:
Рама: Квадрокоптер оснащен прочной и легкой карбоновой рамой, которая обеспечивает стабильность и долговечность аппарата. Рама имеет модульную конструкцию, что позволяет легко изменять ее размер и устанавливать дополнительные компоненты.

Пропеллеры: Квадрокоптер оборудован 2-лопастными пропеллерами, которые создают подъемную силу и позволяют аппарату летать. Пропеллеры имеют специальную конструкцию, которая снижает уровень шума и вибрации во время полета.

Readytosky 2212 920KV бесколлекторный мотор: F450 оснащен четырьмя мощными бесколлекторными двигателями постоянного тока, которые обеспечивают высокую скорость и тягу. Двигатели имеют большой рабочий ресурс и позволяют квадрокоптеру выполнять сложные маневры и полеты на большой высоте.
Характеристики мотора:
-Производитель : Readytosky
-Модель: 2212
-Обороты: 920 оборотов на Вольт
-Напряжение: 7-12В
-Вал: 7.7мм со срезами
-Гайка лопастная: М6
-Крепеж: М3
-Диаметр: 28мм
-Высота: 39мм
-Масса: 55г


Регуляторы скорости simonk30A: Регуляторы скорости управляют работой двигателей и обеспечивают стабильность полета квадрокоптера. Они имеют высокую точность и надежность, что гарантирует плавность полета и безопасность.
Это оборудование с прошивкой SimonK обеспечивает идеальное решение для многороторного использования:
Конструкция с 100% N-FET высокой эффективностью.
Характеристики:
-Рабочий ток: 30 ампер
-Максимальный ток: 40 ампер (до 10 секунд)
-Тип аккумулятора: Li-Po - 2S-4S NiCd/NiMH - 5-12 банок
-Длина: 43 мм
-Ширина: 25 мм
-Высота: 11 мм
-Настройка посредством передатчика или специального программатора. Модель MT30A-OPTO-V1 компании MayTech - это новое поколение бессенсорных регуляторов для бесколлекторных моторов, в основе которых лежит самый современный микропроцессор. Технические характеристики и качество работы устройства соответствуют ведущим мировым брендам. Благодаря тому, что провода регулятора достаточно длинные и не имеют разъемов, вы можете легко адаптировать его для любых своих нужд.Краткий обзор регулятора:
-На данном регуляторе установлена прошивка «Simon K» - оптимальный вариант для установки на квадрокоптеры и мультикоптеры
-Очень низкое внутреннее сопротивление.
-Плавное и точное линейное управление оборотами
-Защита при включении: исключена случайная работа двигателя при включении модели


Аккумулятор Build Power Li-Po 11.1v 4200mah 30C: F450 использует литий-полимерный аккумулятор, который обеспечивает длительное время полета и высокую мощность. Аккумулятор имеет встроенную систему защиты от перегрева, перегрузки и короткого замыкания.


Контроллер полета Ardupilot: Контроллер полета является сердцем квадрокоптера и отвечает за управление полетом. Полетный контроллер ArduPilot Mega является полноценным решением БПЛА (Беспилотного Летающего аппарата UAV), который позволяет помимо радиоуправляемого дистанционного пилотирования - автоматическое управление по заранее созданому маршруту, т.е. полет по точкам, а так же обладает возможностью двухсторонней передачей телеметрических данных с борта на наземную станцию (телефон, планшет, ноутбук, DIY) и ведение журнала во встроенную память.
Он основан на автопилоте APM 2.8, разрабатываемым сообществом DIY Drones и базирующийся на open-source проекте, позволяющий превратить любой аппарат в автономное средство и эффективно использовать его не только в развлекательных целях, но и для выполнение профессиональных проектов.




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

Аппаратура управления квадрокоптером: Аппаратура Радиоуправления (она же Аппаратура РУ, transmitter, пульт, аппа, джойстик) - устройство, преобразующее положения стиков (gimbals)/тумблеров (switches) в команды для коптера. Положение стиков отправляются на радиопередатчик (transmitter, tx, в аппаратуре), преобразующий сигналы в команды определенного протокола передачи данных. Команды передаются коптеру "по воздуху" на определенной частоте (обычно 900 МГЦ или 2.4 ГГЦ). На борту коптера команды принимает радиоприемник (receiver, rx) и отправляет их на полетный контроллер (flight controller, FC) для исполнения.
В данном проекте используется аппаратура FLSKY: flysky FS-i6 - это доступная 6-канальная радиосистема с частотой 2,4 ГГц, а также очень простая установка для вашего радиоуправляемого автомобиля. Цифровая система со скачкообразной перестройкой частоты обеспечивает сильный и надежный сигнал 2,4 ГГц, поэтому будьте уверены, что вы всегда будете под контролем. В комплект входит 6-канальный мини-ресивер, который подходит для большинства автомобилей. Эргономичный внешний вид передатчика позволит вам комфортно лежать в руках даже после долгих треков.

Возможности:
Надежная, без помех работа сигнала AFHDS 2A 2,4 ГГц.
6-канальный режим.
Для передатчика используйте только 4 батарейки типа AA.
Быстрая и очень стабильная работа.
Простая процедура привязки.

Характеристики передатчика:
Каналы: 6
Тип модели: самолет / планер / вертолет
Радиочастотный диапазон: 2,4052,475 ГГц
Полоса пропускания: 500 кГц
Группа: 142
Мощность RF: менее 20 дБм
Система 2,4G: AFHDS 2A и AFHDS
Тип кода: GFSK
Чувствительность: 1024
Предупреждение о низком напряжении: менее 4,2 В
Порт DSC: PS2; вывод: PPM
Порт зарядного устройства: нет
Длина антенны: 26 мм * 2 (двойная антенна)
Мощность: 6 В, 1,5 АА * 4
Режим отображения: трансфлективный STN положительный тип,
Матрица 128 * 64 точки VA72 * 39мм, подсветка белая.
Размер: 174 * 89 * 190 мм
Вес: 392 г
Онлайн-обновление: есть


Технические характеристики приемника:
Каналы: 6 каналов
Тип модели: самолет / планер / вертолет
Диапазон частот: 2,4-2,48 ГГц
Номер ширины ремешка: 140
Мощность передачи: не более 20 дБм
Чувствительность приема: -105 дБм
Система 2,4G: AFHDS 2A
Тип кода: GFSK
Длина антенны: 26 мм
Входная мощность: 4,0-6,5 В постоянного тока
Размер: 40 * 21 * 7 мм
Вес: 6,4 г
Цвет: черный
Интерфейс i-Bus: Нет
Интерфейс сбора данных: Нет


В целом, квадрокоптер F450 представляет собой надежное и функциональное решение для любителей и профессионалов в области аэрофотосъемки. Его модульная конструкция, мощные бесколлекторные двигатели и разнообразные аксессуары делают его идеальным выбором для тех, кто хочет получить максимум возможностей от своего квадрокоптера.






Схема подключения GPS-модуля к полетному контроллеру:




45
Тема: "Программирование полёта квадротора Пиксель - Вжик на Python"
Исполнитель: Васин Павел Алексеевич, гр. 341-об,
Научный руководитель: Русинов Владислав Леонидович, СКБ, "Промышленная робототехника и автоматизация"

План
1. Краткое введение в Python
2. Пример программы в Python
3. Описание конструкции и технических характеристик Пиксель - Вжик
4. Программирование полёта Пиксель - Вжик с помощью Python
5. Разработка расширений для Python

1. Краткое введение в Python

Python -- это язык программирования, который широко используется в интернет-приложениях, разработке программного обеспечения, науке о данных и машинном обучении.
Язык Python имеет следующие преимущества:
Разработчики могут легко читать и понимать программы на Python, поскольку язык имеет базовый синтаксис, похожий на синтаксис английского;
Python помогает разработчикам быть более продуктивными, поскольку они могут писать программы на Python, используя меньше строк кода, чем в других языках;
Python имеет большую стандартную библиотеку, содержащую многократно используемые коды практически для любой задачи. В результате разработчикам не требуется писать код с нуля;
Разработчики могут легко сочетать Python с другими популярными языками программирования: Java, C и C++;
Кроме того, в Интернете доступно множество полезных ресурсов для изучения Python. Например, вы можете легко найти видеоролики, учебные пособия, документацию и руководства для разработчиков;
Python можно переносить на различные операционные системы: Windows, macOS, Linux и Unix.

2. Пример программы в Python

Пример программы, которая выводит результат простых математических действий, написанной на Python:




3. Описание конструкции и технических характеристик Пиксель - Вжик

Квадротор Пиксель - Вжик - это программируемый дрон, разработанный для STEAM-образования ребенка от 5 до 14 лет. Благодаря мощной плате управления со встроенными датчиками, дрон умеет транслировать HD-видео, взлетать/садиться по нажатию одной кнопки, следовать по линии, а также совершать  трюки One-key 360° и Bounce Mode. Интерфейс полетного контроллера поддерживает подключение внешних электронных модулей расширения и можно дополнительно реализовать, например, автоматическую доставку грузов (комплект Electromagnet Delivery), обнаружение препятствий и их обход (модуль расширения Obstacle Avoiding), иллюминацию и звуковое сопровождение.

В приложении LitebeeGo в простой и доступной форме можно запрограммировать любые функции дрона Пиксель - Вжик: в визуальной среде Scratch алгоритмы составляются методом перетаскивания логических блоков и, если последовательность команд правильная, то всё будет работать. Так, шаг за шагом, ребенок получит первичные навыки программирования, а затем сможет легко освоить более сложное текстовое программирование в Python.

Конструкция квадротора Пиксель - Вжик



1 - Светодиодный модуль
2 - Аккумулятор
3 - Воздушный винт
4 - Электродвигатель
5 - Ножка
6 - Камера для автономного полёта
7 - Фронтальная видеокамера
8 - Блок расширения
9 - Порт подключения модуля расширения
10 - Порт подключения электродвигателя
11 - Луч

Технические характеристики:
• - размах рамы - 209ммх184ммх56мм;
• - продолжительность полёта - 10 минут;
• - дальность радиосвязи - 100 метров;
• - дальность видеосвязи - 100 метров;
• - вес - 126 грамм;
• - скоростной диапазон: - 0 - 10 км/ч;
• - допустимая скорость ветра - 5 м/сек;
• - температурный диапазон: - 20 +40С;
• - максимальная высота полёта - 100 метров;
• - высота эффективного применения - 3 м.

Функциональные характеристики:
• - автономный полет по заданной миссии;
• - автономный полет по линии (стандарт робототехнических соревнований);
• - управление с помощью радиоаппаратуры, телефона, компьютера;
• - программирование - блочное (Scratch), Python;
• - тип конструктора - блочный (совместим с системой «Лего»);
• - FPV - пилотирование;
• - сборка - модульная.

4. Программирование полёта Пиксель - Вжик с помощью Python

Для того, чтобы запрограммировать полет квадротора, необходима программа LiteBee Go. Эта программа удобна тем, что она включает в себя одновременно среды программирования Scratch и Python
Ссылка для загрузки новейшей версии LiteBee Go:
https://resource.litebee.com//softwareDownload/file/1600854514923/LiteBeeGo-V1.1.4.exe

После загрузки можно поменять язык интерфейса на английский


А также необходимо выбрать LiteBee Wing во вкладке model


Следующим шагом является установка драйвера для подключения пульта ДУ к ПК.

Ссылка для загрузки драйвера для WIN 8 - 10
https://resource.litebee.com//softwareDownload/file/1605082220159/Driver%20for%20Win%208%20or%2010.zip

Ссылка для загрузки драйвера для WIN 7
https://resource.litebee.com//softwareDownload/file/1605082210688/Driver%20for%20Win%207.zip

Ссылка для загрузки драйвера для MAC
https://resource.litebee.com//softwareDownload/file/1603780527604/Mac_OSX_VCP_Driver.zip


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

1.
Интерфейс Python показан на рисунке ниже. После открытия программного обеспечения нажмите "code mode", чтобы войти в интерфейс программирования на Python. После написания программы и подключения устройства нажмите "Run", и квадротор сможет выполнить программу на Python.



Также вы можете нажать "Save" для сохранения и "Open" для открытия файла.

2.
При программировании на Python вам необходимо использовать модуль import time для определения времени выполнения задачи.
Пример:

import time                                             # Вызов модуля "time", вводится в первую строку
flight_calibration()                                   # Калибровка
time.sleep(5)                                            # Задержка на 5 секунд
flight_takeoff()                                         # Взлет на высоту 100 см
time.sleep(10)                                          # Задержка на 10 секунд
flight_autoland()                                      # Выполнить посадку

3.
Операторы

flight_calibration()                                       # Калибровка
flight_takeOff()                                            # Взлет на высоту 100 см
flight_runAltitude(110)                                # Устанавливает высоту 110 см
flight_runDir(1, 2)                                        # Устанавливает направление полёта
                                                                     Параметр 1: 1-вперед 2-назад 3-влево 4-вправо 7-остановиться
                                                                     Параметр 2: Скорость, 1-медленная (30см/с) 2-нормальная (50 см/с) 3-быстрая (80 см/с)
flight_runMotor(1, 50)                                # Установить вращение моторов
                                                                     Параметр 1: номер мотора
                                                                     Параметр 2: скорость вращения
flight_runRotate(1, 90)                                # Поворот квадротора
                                                                     Параметр 1: 1-по часовой стрелке 2-против часовой стрелки
                                                                     Параметр 2: Угол поворота
                                                                     Примечание: после оператора необходимо использовать time.sleep(8.5), так как время поворота квадротора на 90 градусов составляет 8.5 с
flight_autoland()                                         # Выполнить посадку


Программа "Коробка", написанная на Python

import time

flight_calibration()                                       # Калибровка
time.sleep(5)
flight_takeOff()                                            # Взлет на высоту 100 см
time.sleep(2)
flight_runDir(7, 2)                                        # Устанавливает направление полёта(На месте)
time.sleep(2)

for i in range(1, 4):                                      # Цикл, выполняется 3 раза
  flight_runDir(1, 2)                                        # Устанавливает направление полёта(Вперед)
  time.sleep(2)
  flight_runDir(7, 2)
  time.sleep(2)
  flight_runRotate(1, 90)                                # Поворот квадротора(на 90 градусов по часовой стрелке)
  time.sleep(8.5)
  flight_runDir(7, 2)
  time.sleep(2)

flight_runDir(1, 2)
time.sleep(2)
flight_runDir(7, 2)
time.sleep(2)
flight_autoLand()                                         # Выполнить посадку

Данная программа позволяет выполнить полёт по коробке - в каждом углу квадротор совершает поворот на 90 градусов по часовой стрелке. Квадротор должен пройти по периметру и вернутся в изначальное положение.

47
И вот сошлись подуть кальян
Атос с Партосом,
Арамис и Д'артаньян.
Достали шпаги
И в реальном времени
Гвардейцев кардинала
За...нили.

48
Начните с конца. Как всегда, это и будет начало.
49
Исполнитель: Бендик Владимир Игоревич, гр. 041об
Научный руководитель: Русинов Владислав Леонидович, СКБ «Промышленная робототехника и автоматизация»

 Дисклеймер
 Как вы могли заметить, тема этой работы звучит "Автоматизированная система управления электрошасси". Однако вспоминая первый курс и такой предмет как Введение в профессию, я также вспоминаю такую фразу: "Любой процесс, перед тем как автоматизировать, нужно сперва механизировать". Что из себя представляется механизация электрошасси я не понимаю, как и не понимаю, чем моя система управления особо автоматизирована, кроме того, нигде не сказано, что управление будет дистанционным. Ввиду этого, мне, наверное, стоило бы назвать тему "Разработка системы дистанционного управления электрошасси", но слово "автоматизированный" имеет слишком мощную маркетинговую роль, чтобы легко от него отказаться. Кроме того, на старте работ у меня не было электрошасси без системы управления. Абсолютно всё, имеющееся на данный момент было сделано с нуля, ввиду чего тему можно было бы назвать «Проектирование и разработка электрошасси и его системы управления», но это вообще стремно звучит, так что пусть все остается как есть. На этом с дисклеймером все, приятного чтения основной части.

 Введение
 По мнению Chat GPT 4: Электрошасси - это система автомобильного шасси, в которой традиционные механические компоненты, такие как двигатель внутреннего сгорания, трансмиссия и карданный вал, заменены электромоторами и электронными системами управления. В общем то все так, но в нашем случае речь идет о разработке не автомобильного шасси, а чего-то меньше и дешевле. Электрошасси разрабатываемое в рамках данной работы пригодно для перевозки маломобильных грузов, роботов-манипуляторов и людей (если им очень хочется на нем покататься).

 «Железная» часть
 Первоначальным этапом разработки было создание рамы, выполнена она по самым новейшим технологиям из сверхтехнологичных компонентов, а именно сварена из металлических профилей. На раме были закреплены мотор-колеса и предусмотрен отсек для систем управления и батареи. Все это было визуализировано в SolidWorks.

Рисунок 1 - Визуализация электрошасси в SolidWorks.

 Теперь чуть детальнее про используемые компоненты, начнем с вышеупомянутых мотор-колес. Мотор-колеса - это электрические приводы, которые объединяют мотор и колесо в одном компактном устройстве. В современное время для них обычно применяются BLDC моторы. Они широко используются в робототехнике, автомобильной промышленности и других областях, где требуется передвижение и маневрирование. Мотор-колеса с BLDC мотором будут оптимальным приводом для электрошасси по следующим причинам высокой эффективности и надежности, а также их использование позволит полностью отказаться от механических передач.
Исходя из всех технических требований и экономический соображений были выбраны мотор-колеса используемые в гироскутерах, ниже предоставлены характеристики выбранных колес и их внешний вид (с открытой крышкой).

Таблица 1 - Характеристики выбранного мотор-колеса.



Рисунок 2 - Внешний вид выбранного мотор-колеса.

 Для мотор-колес необходим также драйвер управления. Можно было бы детально расписать требования к драйверу при его выборе и условия работы с колесами, но реальность такова, что главное условие работы драйвера - это идти в комплекте с колесом. Если оно совпало, то без сомнений совпадет и все остальное.  И вот у нас драйверы шли в комплекте с колесами в одной упаковке в виде БУ гироскутеров купленных на Авито. Внешний вид такого драйвера и информация о его разъемах представлена на рисунке ниже:

Рисунок 3 - Драйвер управления моторами

 Моторы и драйверы есть. Осталось устройство для дистанционной связи драйверов и оператора, управляющего шасси. На роль такого устройства мог бы подойти обычный Uart bluetooth module, но было найдено решение интереснее - микроконтроллер ESP32.
Обладая на борту встроенным модулем wi-fi он позволяет развернуть полноценный сервер, что позволит управлять шасси с любого устройства имеющего браузер и возможностью подключения к wi-fi сетям (в дальнейшем будем называть это устройство АРМ). Наличие 2-х аппаратных UART интерфейсов позволит организовать независимую двухстороннюю связь с двумя драйверами, а высокие вычислительные мощности смогут пригодится при расширении возможностей шасси и добавлении таких функций как: автоматическое приложение маршрута или реализация постоянной скорости вращения колес.
Итого: общая функциональная схема устройств и их связей имеет следующий вид:

Рисунок 4 - Функциональная схема электрошасси.

 Как видно, на каждом этапе управления связь двухсторонняя, за счет этого у оператора всегда будет информация о скорости вращения каждого колеса и токах в нем.
 В завершении описания «железной» части хочется сказать о том, о чем еще не было упомянуто. В электрошасси отсутствуют какие-либо классические элементы рулевого управления. Повороты и маневрирование осуществляются «танковым» способом. Так как каждое колесо независимо от других, то мы можем крутить колеса на одной стороне со скоростью отличающейся от скорости колес на другой и таким образом задавать угол поворота шасси. А можно и вовсе крутить колеса в разные стороны, чтобы поворачиваться на месте. Казалось бы, абсурдное решение на самом деле является типовым для роботов подобного типа. Так маневрирует Яндекс доставщик, роботы Амазона и другие.

Рисунок 5 - Робот Яндекс-курьер. Обратите внимание, на отсутствие каких-либо механизмов рулевого управления.

 Программная часть
 Программная часть проекта состоит из двух отдельных программ: программы управления драйверами на основе микроконтроллера STM-32 и программы для ESP-32 связывающей пилота шасси и драйвера по средствам UART интерфейса.

 Для драйвера было выбрано ПО с открытым исходным кодом Hoverboard Firmware Hack FOC опубликованным на сайте github.com автором Emanuel Feru. ПО специально разработано для драйверов аналогичных выбранным мною. Данное ПО реализует векторное управление электродвигателем и представляет широкий набор пользовательских настроек: позволяет использовать различные режимы управления, а также выбрать наиболее удобный интерфейс ввода для поставленной задачи. Детально ознакомиться с ПО можно по ссылке "https://github.com/EFeru/hoverboard-firmware-hack-FOC". Программа требует определенной настройки которая осуществляется в файле "config.h". Мною при редактировании настроек был включен UART интерфейс и задана скорость его работы. Затем программа была откомпилирована и загружена в микроконтроллер через программатор ST-Link V2 и программу STM32 ST-LINK Utility.

 Для ESP-32 программа писалась самостоятельно. Писать программу для было решено в среде Arduino IDE с установленным ядром arduino-esp32. ESP-32 обладает встроенным Bluetooth ядром, для работы с которым удобно применять официальную библиотеку BluetoothSerial.h, кроме того, для работы с UART было решено использовать программную реализацию последовательного интерфейса при помощи библиотеки SoftwareSerial.h.
Для управления драйверами им необходимо посылать 2 переменные типа int16_t, что соответствует типу short в С++. Переменные именуются uSpeed и uSteer. Первая отвечает за скорость колес и задается в пределах от -1000 до 1000, однако в целях безопасности, ограничена через дефайн: #define SPEED_MAX_TEST 300. Вторая задаёт разницу между скоростью левого и пра-вого колеса для регулирования поворота в движении. Работает это следующий образом: допустим uSpeed=200, uSteer =100, в таком случае на каждое колесо изначально подается скорость 200, затем uSteer делится пополам, для одного колеса полученное значение отнимается, для другого прибавляется. По итогу скорость одного колеса становится 150, а другого 250. Шасси начинает ехать в сторону медленного колеса. Если uSteer будет больше uSpeed, то колеса будут вращаться в разные стороны.
 
  Чтобы правильно передать эти переменные и избежать ошибок необходимо иметь стартовый фрейм передачи, а также завершающий фрейм, содержащий в себе контрольную сумму переданного сообщения. Полный код функции отсылки данных представлен на рисунке 6.

Рисунок 6 - Функция отсылки данных на драйвер передних колес.   

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

  Основной цикл программы занимается тем, что обрабатывает сообщения, поступающие по Bluetooth, в качестве посылаемого числа рассматривается чис-ловой символ от 0 до 8, каждый символ изменяет переменные uSpeed и uSteer. Внешний вид цикла приведен на рисунке 7

Рисунок 7 - Основной цикл программы

 В качестве пульта управления удобно использовать смартфон на системе Android с приложением Bluetooth Terminal. Интерфейс этого приложения, во время работы, приведен на рисунке 8.

Рисунок 8 - Интерфейс приложения Bluetooth Terminal

  Заключение
  В ходе выполнения данного проекта было разработано электрошасси с дистанционным управлением через Bluetooth. Разработанное электрошасси прошло испытания которые показали сильные и слабые стороны конструкции. Системы управления и моторы показали себя с лучшей стороны. Все работает стабильно и имеет огромные запасы мощности, в ходе испытаний программное ограничение скорости не разу не было снято с 20% от максимума. Существенными минусом конструкции оказались жестко закрепленные колеса. Отсутствие нормальной подвески не позволит нормально использовать шасси вне ровных дорог. Т.к. механизм танкового поворота теряет свою адекватную работоспособность при отсутствии контакта с трассой любого из колес.
  В дальнейшем разработанное шасси будет использовано для создания на его основе робота способного самостоятельно передвигаться по заданным координатам. Веры в ближайший успех подобного у меня не много. Но постараемся.
   Для сильно заинтересовавшихся к статье также прикреплен ПДФ файл содержащий всю пояснительную записку и листы к курсовой работе.
50

Исполнитель: Тыщенко Андрей Максимович, гр. 141об
Научный руководитель: Русинов Владислав Леонидович, СКБ «Промышленная робототехника и автоматизация»

План.
1. Краткое введение в операционную систему RTOS
2. Возможность использования RTOS в автоматизации ТП
3. Описание среды разработки Arduino IDE
3. Описание и возможности библиотеки Arduino RTOS
4. Примеры использования библиотеки для разработки программ работающих в реальном времени.
5. Моделирование работы программы в в Proteus
Страницы 1 ... 3 4 5 6 7 ... 10