Примеры Scratch программ

Вывод кодов клавиатуры.zuza

Программа предназначена для демонстрации возможностей работы в терминале (отслеживание нажатий клавиш и вывод сообщений), без подключения пульта управления Жужа Nano к компьютеру:

Код программы на Scratch

Scratch - код для выполнения программы преобразуется в код Python:

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

1 Полёт по кнопкам.zuza

Программа позволяет управлять дроном Жужа Nano с помощью клавиш клавиатуры:

  • клавиши вверх, вниз, вправо, влево, +, - - управление дроном по 3-м осям;

  • B - привязка (bind) дрона к пульту. Нужно выполнять в начале каждого полёта

  • С - чувствительность стиков;

  • F - Flip (кувырок);

  • H - Headless mode (безголовый режим);

  • L - взлёт / посадка

Scratch - код преобразуется в код Python:

В начале программы инициализируются переменные, создаётся пустой класс force_terminate для возможности принудительного завершения программы, а также импортируется класс ZuzaNanoRC для управления дроном:

Основной цикл программы реализован через цикл обработки исключений (try). Первым делом проверяется связь с пультом дрона. Если связь не установлена - программа прерывается, с помощью генерации исключительной ситуации (raise force_terminate):

Инициализируется переменная gain - размер отклонения стиков контроллера от центрального положения (30 - это максимальное значение):

Запускается основной цикл программы: в зависимости от нажатой клавиши происходит нажатие кнопок или установка значений стиков:

после того как стики установлены - их значения отправляются в контроллер дрона (Controller.SendSticks()). Далее после паузы в 0.3 секунды - стики устанавливаются в исходное положение, и снова отправляются в контроллер дрона. С помощью размера отклонения стиков (переменная gain) и времени паузы на отклонение (time.sleep(0.3)) можно управлять плавностью реакции дрона.

В конце каждого цикла при генерации python-кода автоматически добавляется проверка на принудительное завершение программы if self.flag_terminate: raise force_terminate() Это позволяет прервать программу в терминале в любой момент с помощью зарезервированной комбинации клавиш Ctrl+C.

Успешных Вам полётов!

Last updated

Was this helpful?