Пример: полёт по квадрату¶
Здесь представлен пример создания простой программы для полёта коптера по квадрату 1 на 1 метр в локальной системе позиционирования.
Для создания новой программы откройте вкладку «Проект» и затем нажмите кнопку «Новый».
Первым и обязательным блоком программы следует установить блок «Предвзлётная подготовка» из вкладки «События»
![https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/preflight.png](https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/preflight.png)
Далее включим световую индикацию, сведетельствующую об окончании предвзлётной подготовки. Для этого перетащим блок «Поменять цвет всех светодиодов на плате» из вкладки «Модули» под предыдущий блок.
![https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/change_leds1.png](https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/change_leds1.png)
Выберем красный свет для сигнализации об окончании подготовки, для этого из блока математика перетащим 3 блока-цифры «0» в «Красный», «Зелёный» и «Синий» поля блока «Поменять цвет всех светодиодов на плате».
Для красного цвета укажем значение 255, для остальных цветов оставим 0, так плата зажжёт красный цвет на максимальную яркость.
![https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/change_leds2.png](https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/change_leds2.png)
Теперь установим событие взлёта, чтобы «Пионер» взлетел в воздух.
Для этого перетащим блок «Взлёт» из вкладки «События».
Далее дублируем блок «Поменять цвет всех светодиодов на плате» нажатием правой кнопки мыши, затем «Дублировать», вставим его под блок «Взлёт» и поменяем цвет зелёный цвет на 255, а красный на 0.
Таким образом, плата зажжёт зелёные светодиоды на максимальную яркость после завершения взлёта.
![https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/takeoff.png](https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/takeoff.png)
После взлёта «Пионер» должен пролететь метр вперёд, для этого воспользуемся блоком «Лететь в локальные координаты» из вкладки «Полёт»
Чтобы пролететь метр вперёд, укажем 1 блоком математики в поле Y блока полёта, в поле X укажем 0.
![https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/kord.png](https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/kord.png)
Высота при полёте по квадрату не должна измениться, поэтому в качестве координаты Z необходимо указать текущую координату.
Для этого получим массив текущих координат с помощью блока «Координаты в системе навигации» из вкладки «Датчики». Данный массив содержит в себе 3 числа (x,y,z), поэтому возьмём последний элемент массива с помощью блока «в списке взять #» из вкладки «Массивы». В качестве списка вставляем блок координат, в качестве номера выбираем «Последний»
Запишем получившийся блок в поле Z координаты в блок полёта.
В поле Время напишем 3, так «Пионер» пролетит метр вперёд за 3 секунды.
Подсказка
Если в поле время указать 0, то «Пионер» будет лететь в заданную точку с максимальной скоростью
Получаем следующую программу:
![https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/square1.png](https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/square1.png)
Теперь продублируем блок полёта 3 раза. Для полёта по квадрату коптер должен пролететь в 4 точки по очереди: 1 метр вперёд, 1 метр право, 1 метр назад, 1 метр влево или (0, 1, z), (1, 1, z), (1, 0, z), (0, 0, z)
Поменяем координаты для трёх новых блоков соотвественно.
![https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/square2.png](https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/square2.png)
После выполнения данной программы коптер пролетит квадрат и вернётся в место после взлёта, теперь необходимо совершить посадку.
Для этого используем блок «Посадка» из вкладки «События».
![https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/landing.png](https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/landing.png)
Готово, программа создана! Теперь сохраним её, нажав кнопку «Сохранить» во вкладке «Проект» в левой верхней части экрана.
Введите имя программы, например fly_square и нажмите «Ок».
![https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/save.png](https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/save.png)
Важно
Перед запуском программы, убедитесь, что ROS система запущена.
О том, как запустить ROS систему, можно прочитать в Начало работы в Bricks
Для запуска программы нажмите кнопку «Вжух» и наблюдайте за результатом.
Полный вид программы:
![https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/full.png](https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/programming/max_programming/bricks/square/full.png)