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

Автор 341_Vasin, Понедельник, марта 04, 2024, 19:21:10

« предыдущая тема - следующая тема »
Вниз

341_Vasin

Понедельник, марта 04, 2024, 19:21:10 Последнее редактирование: Понедельник, апреля 01, 2024, 19:46:56 от 341_Vasin
Тема: "Программирование полёта квадротора Пиксель - Вжик на 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 градусов по часовой стрелке. Квадротор должен пройти по периметру и вернутся в изначальное положение.


RVL

Добрый день! Когда появится описание конструкции коптера Вжик?

RVL

Спасибо! Можете сделать картинку поменьше, не помещается на экране!

341_Vasin

добрый день, сделал поменьше

ran

Здравствуйте!
Спасибо за доклад!
Неплохо было бы привести ссылку на бесплатное скачивание самого Пиксель-Вжика :)
Если серьезно, то сколько он стоит?


ran


Вверх