Кафедра АППиЭ

КОНФЕРЕНЦИИ => День науки АмГУ 2024. Секция Автоматика, управление, моделирование => Тема начата: 341_Vasin от Понедельник, марта 04, 2024, 19:21:10

Название: Программирование полёта квадротора Пиксель - Вжик на Python
Отправлено: 341_Vasin от Понедельник, марта 04, 2024, 19:21:10
Тема: "Программирование полёта квадротора Пиксель - Вжик на 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:


(https://dzen.ru/lz5XeGt8f/V25TA0831/e116d0_W/WuqwobNP3XV7QcL33pm_aEsoOUJFC3E7To80Eo5UozKb60dYckdrjzxWvQgFkky-uVfy1iSnAnJFnv5uLvv_QouOtJQH_r1xfiCSxQr9Gnz-HbmChX9UT_--Bef-FbL2S44h6GZGb0o584t4hZJ9TEv1wzFXEKRFh4lZuzp-r7P6iuJn47hPd1mwENdunNwZKOoagOfqsq7PHMAxjEVmgVk7lHlC9_0IqUC6HRLXWpwqlIFBlYFlRUUpunspPt8GKWsCxId5nHbrQnOmTfxd23nYiJIFq8GO7w8icjzVlxN7WOSa8xZtKTuDOa7S91o8qibQImbRNuWma5m5ua5cN0q7w8SEGm8GiSByFN79DWhJWJqRxeohjjzcwfCuRYdCa2jVm7JnLQgbgug-ECTa3SrXIHMW0ocXtGk6aNj9zcSK-TDmJQpe5LuTIDYOPz1qqQoIkwb5YH4tnEFiP1W1wXqolTuz9z8YC2DbHPIWaA06NNADh6J2R7TZ-vtar9w3mvvgtid7PUVIEmDXnCzeCfrbicGF2WBPD19yYl0kdcCZ28XKcEcfGsshSRyABtit6wRSQFeCpnYXe4vryS9c1zjKwDYkOz0FCYLj9q9NH1hpaoqgF7kBjU0_4FDulQdBaqi1usLl71tpw0gtAfQ6DauHo3BUQidElcmpiwuubUc7m3CUdOpvVtgBkfacrN3LeFhLIHfJYU2OzJBifHcE8kq5dguQJD8Yi4FKb6D2-80IFnFhtJEkNdU5qStpPmw3KolD1kcbfjU58_BXrg-8WHkYOVD0-0OMrs6QUeyGxQEJ-zTKYdQ96UlRKB-gRPnPinVjgYagRmZ2monJKQ_PJbr5cjd1Sa52aFLChmw-H1p6aMmh5Xkjr89-oJDMJpcSWPtkeaOWLApbAcjPUGeKjzsmoBOF4uQmZcjYGTtfXzXK2SDGZTk9JFpA4aY_bj1Ze9qJckfZAHzNHHPgPNa2YkrbBysgFv-rujGa7UIHmNy5NvOwJdI1VzWIqbjr7Y932LmgBTeaf9ToE5HWzK7MGpn7mvIXeVOujRyBoC7G9ROay7XKoNXfSAhTa80wp0r9mjVAg5YjJ5eG-uppqc5N9FsoILSF-_z3m0GQ1l2PzZqK6jqiJPrDr348kUP_hmeySpiEWvLUfzl5wXq9Q6eIrNhmQiIU8SRUV2laeOqcbSQ7aoIVVtsOdTuwIPetvzyKyvio8MUK0H483TDTvWVVUAkYBZiSpT4a2fB4vVKUORy5JEJzN8JEJaTaynpYjo9lSsmRZsfbnOSK0NPWv8_P6WjpyEA3qgAffixwQe8lJuK56SR4UyefmBkDuLySlxqdahWx4VQC5sWnqanraXw8FrkaojcE2Q-2iwDAR9_OPIrLy_hR9drR3I7eIgDuVWaBC0n1qIM1rEt50OrMkcXbbco1YcJ2Y9eFdzib2kruLtRK2IFUx1mv5FgxEUZeLc55WDg6UnULID6NPABzvyTW8WtpNppD9i-JSJPqrPBm-2ypBvOydfC3J5aoy3prnbwWW7lR1USKbCd68YNmrJxuqrgLiYM320BcD85RYZxlFPG7iTbY0kUeG3vR-A3B9Vkt-qbBs2Rw9yfUWSoJ2bx8NjqL4va3qq-VCjDitd8PfdtZi-lgh4kyjg8cwPO-VNajmftHqlB2_nqpw5h-kdb5Dikn8KNH0tZ3ZOt5-xlfXmWIqCI05Uq85nnSMtdsDs-pSburwiWIMYyf_-CA3CSlY_lrZZrwBs4Y-JOKPXJnq2zYNOGS9kLUFIWZqQkKTk33i-nT5TabPzao0CJ1_38fm8vrSPKV2CGeLt8CAi0EZJB72zWqU8Y8Gyiiqq2zlGouKieR0DazRCR2uLs6-N_vlDiasQT2OD2mm_ICh89MzbnJ2qpAtxjDHY4NMtAsVwWweoqVOwLXzzkrYvu_8CWLfwp2QQGGQDf156nbmEh9j4fq6uI2VchsZikg0FTdfY05KCh587bIYAzNThIiDlRlYFkrFoqjpMzre7MKfYI2Gm-ZJoEA5INHpEUba6n7PG3GuPvQtXWJ_hWKQONk3f29CrnoaaJHOuO-34_gQEw3prOauyfaAtUcKnmwqb3xxbvdiBXiQwYitZZ2-IhYGEzP5LgI4gW3aqwFebAAhb9_vXhp6fsiRXjBvi6coIOMdJUDyao3-OL2DSj5UZhMMcQKz8i2caJWYOTnlHlZabkvf9Y5WyLk59kdpToSIEYsvj1Yq5tIQsW5w23f_nFiniblIGtLBzlgNQ-Kq6BIPgD3OCzIxQNAdYBn5YdI-AgJD290W5mj94YqTHS70dP0Xd7_OsoY6yPVmhB83JzhcW6k54IpyTb7czeu-qlzyR1R1eg-6WeCclXTVEXHSWuoSMxvp8l70dVEi942m0DyVF_ebCla-UqB5FnDDt7NUmDe1xSgq5rkSoOXrGrosOoP87XK7NjE4GPEsuQl1Vua-dl-DxWJ-ZDWY#DSD)

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

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

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

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

(https://i.postimg.cc/50D67fgd/shema.png)

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

После загрузки можно поменять язык интерфейса на английский
(https://i.postimg.cc/NM8Nnkyk/1.png)

А также необходимо выбрать LiteBee Wing во вкладке model
(https://i.postimg.cc/tg3tRCXX/2.png)

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

Ссылка для загрузки драйвера для 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.

(https://i.postimg.cc/RZxkrVdx/image.png)

Также вы можете нажать "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 градусов по часовой стрелке. Квадротор должен пройти по периметру и вернутся в изначальное положение.

(https://i.postimg.cc/J00zycFB/image.png)
Название: Re: Программирование полёта квадротора ВЖИК на Python
Отправлено: RVL от Понедельник, марта 11, 2024, 06:02:48
Добрый день! Когда появится описание конструкции коптера Вжик?
Название: Re: Программирование полёта квадротора Пиксель - Вжик на Python
Отправлено: RVL от Вторник, марта 12, 2024, 07:10:29
Спасибо! Можете сделать картинку поменьше, не помещается на экране!
Название: Re: Программирование полёта квадротора Пиксель - Вжик на Python
Отправлено: 341_Vasin от Среда, марта 13, 2024, 02:17:38
добрый день, сделал поменьше
Название: Re: Программирование полёта квадротора Пиксель - Вжик на Python
Отправлено: ran от Пятница, марта 15, 2024, 02:39:08
Здравствуйте!
Спасибо за доклад!
Неплохо было бы привести ссылку на бесплатное скачивание самого Пиксель-Вжика :)
Если серьезно, то сколько он стоит?
Название: Re: Программирование полёта квадротора Пиксель - Вжик на Python
Отправлено: 341_Vasin от Воскресенье, марта 17, 2024, 19:10:30
https://pozitiv.shop/catalog/dlya_obrazovatelnykh_uchrezhdeniy/uchebnoe_oborudovanie/uchebnoe_oborudovanie_1/konstruktor_bpla_piksel_vzhik/?ysclid=lttfi15oqf298581906

Стоимость БПЛА составляет 46 990 руб
Название: Re: Программирование полёта квадротора Пиксель - Вжик на Python
Отправлено: ran от Четверг, марта 21, 2024, 08:31:25
Спасибо