Материал: 10176245_831175obrazovat

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

мах, включая Lego Mindstorms EV3 и BrickPi на базе Raspberry Pi. Для работы можно использовать большое количество языков программи-

рования: Python, JavaScript, Java, Go, C, C++, Ruby и т.д.

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

Рассмотрим возможности использования языка Python для программирования EV3. Python - это язык, который подходит для программирования, поскольку он имеет простой синтаксис и позволяет использовать расширенные функции.

Программирование робота EV3 на языке Python осуществляется при помощи ev3dev с новой средой исполнения Pybricks MicroPython

ибиблиотекой, которая включает в себя нужные для управления роботом и датчиками функции.

Например, управление цветом. Для того, чтобы изменить цвет индикатора состояния модуля используется функция: brick.light(Color)

Вскобках указывается параметр Color: BLACK, BLUE, GREEN, YELLOW, RED, WHITE, BROWN, ORANGE, PURPLE. Чтобы вы-

ключить свет у индикатора состояния модуля выбирается параметр Color.BLACK или None. В таблице 2 приведено сравнение управления индикатором состояния, который загорается оранжевым цветом в

Python и EV3-G.

Управление звуком в Python осуществляется с помощью трех функций. Первая отвечает за сигнал: brick.sound.beep(frequency, duration, volume)

Впараметрах указываются:

frequency – частота сигнала в Герцах (по умолчанию 500);

duration – продолжительность сигнала в миллисекундах (по умолчанию 100);

volume – громкость сигнала в процентах (по умолчанию 30).

86

Таблица 2. Сравнение управления индикатором состояния в Python и EV3-G

Вторая функция воспроизводит звуковой сигнал несколько раз с короткой паузой между ними: brick.sound.beeps(numbers)

Параметр numbers должен быть целым числом и указывает количество сигналов.

Третья функция воспроизводит звуковой файл: brick.sound.file(file_name, volume)

Параметр file_name отвечает за путь к файлу, включая расширение. Звуковой файл должен находится в каталоге с проектом. Для воспроизведения стандартных звуковых файлов LEGO, в параметрах функции указывается название этого файла (табл. 3).

Таблица 3. Сравнение управления звуком в Python и EV3-G

Аналогично осуществляется управление выводом информации на экран, управление датчиками и двигателями.

87

Таким образом можно сформулировать несколько основных шагов, которые необходимо предпринять для создания любой программы. Данный перечень шагов может быть рассмотрен более детально для получения лучшего результата.

Первым шагом является наблюдение, чтобы иметь возможность описать ситуацию словами. Это описание будет затем переведено в алгоритм.

Следует отметить все элементы, которые участвуют в решении проблем. Желательно составить список всех переменных, которые будут использоваться, и всех альтернатив, с которыми придется столкнуться алгоритму. Анализ всех вариантов позволит сделать программу более защищенной от ошибок.

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

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

На третьем этапе создания кода необходимо определиться с языком программирования на котором будет развиваться программа. Алгоритм предыдущего этапа упрощает этот процесс, поскольку речь идет о переводе графического алгоритма на конкретные инструкции определенного языка.

Как уже упоминалось выше, существует множество вариантов выбора языка программирования, каждый из которых имеет свои преимущества и недостатки. Можно применить такие языки как C, C++, java, Pyton, Arduino, Scratch и т.д.

88

Контрольные вопросы и задания

1.Что послужило началом развития робототехники?

2.Кто и когда впервые ввел термин робототехника?

3.Перечислите основные законы робототехники.

4.По каким признакам можно классифицировать роботов?

5.Охарактеризуйте основные системы робота.

6.Каковы, на Ваш взгляд, причины широкого распространения робототехнических конструкторов фирмы Lego®?

7.Какие языки можно использовать для программирования Lego Mindstorms?

8.В чем, на Ваш взгляд, состоят преимущества и недостатки применения робототехнических конструкторов из металлических деталей в области образовательной робототехники?

9.Каковы возможности применения аппаратной платформы Arduino в образовательном процессе?

10.В чем, на Ваш взгляд, состоят преимущества и недостатки визуальных и текстовых способов программирования?

Практические задания

1.Сконструируйте модели механических передач и механизмов, используя детали конструкторов Lego

1.Зубчатые цилиндрические передачи

2.Зубчатые передачи с «паразитными» колесами

3.Зубчатые конические передачи

4.Червячные передачи

5.Реечные передачи

6.Планетарные передачи

7.Фрикционные передачи

8.Ременные передачи

9.Цепные передачи

10.Редукторы

11.Мультипликаторы

89

12.Дифференциалы

13.Кривошипно-шатунные механизмы

14.Эксцентриковые механизмы

15.Кулачковые механизмы

16.Шарнирно-рычажные механизмы

17.Механизм Чебышева

18.Механизм Уатта

19.Механизм Саррюса

20.Механизм Липкина-Посселье

2.Сконструируйте и запрограммируйте робота для выполнения следующих задач (платформа на выбор)

1.Напишите программу для поворота робота на месте на 90°;

на 180°; на 270°; на 360°.

2.Напишите программу для движения робота по траектории квадрат.

3.Напишите программу для движения робота прямолинейно вперед на 5 оборотов двигателя. Развернуться на 360°. Проехать на 980° оборотов двигателя.

4.Напишите программу для движения робота по прямой на расстояние 10 см; 15 см; 20 см и возврата на линию старта.

5.Подготовьте робота с датчиком касания в передней части.

Запрограммируйте робота таким образом, чтобы он двигался вперёд и назад при нажатии кнопки датчика касания.

Запрограммируйте робота таким образом, чтобы он двигался вперёд, а при нажатии кнопки датчика касания крутился на месте.

Движение до препятствия. Используя датчик касания, напишите программу, позволяющую роботу доехать препятствия и остановиться.

90