Выбор первого конструктора часто вызывает затруднения. Особенно у людей, не владеющих базовыми навыками программирования. В помощь таким людям и разработана платформа micro:bit. В первую очередь она ориентирована на детей и взрослых начинающих освоение робототехники. Поддержкой платформы занимается компания Microsoft.
- Графические блоки;
- Язык программирования Python;
- Язык программирования JavaScript.
Программирование в виде блоков - актуально для детей и начинающих. Python и JavaScript подойдут продвинутым пользователям и позволят им раскрыть весь потенциал платформы.
Многие компании создают свои робототехнические устройства на базе micro:bit, не является исключением и компания Yahboom. Выпускаемые ей роботизированные устройства доступны в различных моделях на таких платформах как: Nvidea Jetson, Raspberry Pi, Micro:bit и Arduino. Компания Суперайс является официальным дистрибьютором компании Yahboom.
Время чтения: 13 минут |
Одним из оптимальных методов знакомства с любой платформой или конструктором является выполнение обучающих уроков. Так закрепляются не только теоретические, но и практические навыки. Мы предлагаем вам освоить пять уроков по программированию роботов Yahboom на платформе micro:bit.
В качестве «подопытного» выберем, один из лучших конструкторов в своей линейке, - Yahboom Smart Robot Car.
- Каркас, для установки сонара;
- Ультразвуковой сонар, для определения расстояний до объектов;
- Два мотор-редуктора с колесами;
- Плата расширения Yahboom;
- Плата micro:bit 2 версии.
Для взаимодействия с устройством можно воспользоваться браузером и перейти по ссылке в редактор кода, для этого Вам понадобится компьютер с выходом в интернет, или скачать приложение для Windows или Max OS: отсюда.
Создаем новый проект. Если имя проекта не будет указано, то он получит его автоматически, как Untitled.
В открывшемся окне программы выбираем вкладку «Расширения».
В поисковую строку вносим ссылку на требуемое расширение: https://github.com/lzty634158/yahboom_mbit_en. Устанавливаем его.
После установки у нас появятся дополнительные вкладки с блоками для программирования: Mbit_display, Mbit_sensor, Mbit_Input, Mbit_Music, Mbit_Motor, Mbit_Robot.
Теперь подключаем плату micro:bit, через USB кабель к компьютеру и приступаем к программированию.
Урок 1. Программируем движение робота
Давайте попробуем запрограммировать нашего робота на самое простое действие – движение вперед.
Для этого необходимо написать не сложную программу и загрузить ее на плату micro:bit.
Открываем сайт или программу MakeCode и создаем новый проект.
Вначале создадим «лицо», при помощи светодиодной матрицы.
Для этого зайдем во вкладку «Основное» и выберем блок «При начале».
Разместим его на рабочей области и добавим в него блок «Показать значок». В этом блоке выберем вид значка: «Счастливый».
Теперь при включении устройства у него на светодиодной матрице появится улыбающееся лицо.
Далее напишем программу движения.
Выбираем блок «Постоянно» из вкладки «Основные» и разместим в нем управляющий блок «CarCtrl» с флагом «Forward» из вкладки «Mbit_Robot».
Программа готова.
Теперь скачиваем файл и загружаем его на плату micro:bit. Она должна определиться как съемный диск.
Если у вас не получилось самостоятельно составить программу или она работает не корректно, то файл с программой можно скачать по прямой ссылке: Урок 1 и свериться с его структурой.
Урок 2. Управляем направлением и скоростью движения робота
Простого движения вперед недостаточно для демонстрации всех возможностей нашего конструктора. В этом уроке мы рассмотрим, как научить робота поворачиваться, а также научимся управлять скоростью его движения.
Для составления программы мы воспользуемся теми же блоками, что и в предыдущем уроке: «При начале», «Показать значок» и «Постоянно».
При помощи двух первых блоков создаем «лицо», а в третий блок добавим новые команды: «CarCtrlSpeed» и «Пауза».
Блок «CarCtrlSpeed» позволяет не только задавать направление движения, но управлять скоростью вращения двигателей. Меняя значение «speed» от 0 до 255 можно устанавливать скорость движения конструктора в широком диапазоне. Так, указав скорость «128» – наш робот поедет с 50% скоростью от максимальной, а выставив «64» – с 25%.
Резкая смена направления вращения мотор-редукторов может привести как к опрокидыванию устройства, так и повреждению самого двигателя. Поэтому не следует резко менять режим работы привода. Одним из методов защиты является добавление блока «Пауза» между выполняемыми командами. Также команду «Пауза» можно использовать для создания искусственных задержек между выполнениями любых команд. Вплоть до 5 секунд.
Составим программу, по которой наше устройство будет двигаться вперед, назад затем поворачиваться влево и вправо.
Сверить, корректность работы написанной программы можно скачав файл по прямой ссылке: Урок 2.
Урок 3. Отслеживание линии
Давайте попробуем новую игру с нашим роботом - отслеживание линии. Для этого сначала рисуем круг или другую замкнутую фигуру широким черным маркером на белой поверхности, например, на большом листе белой бумаги. Или можно просто приклеить черную ленту. Наша цель – запрограммировать устройство так, чтобы он двигался вдоль нашей линии. |
|
Принцип отслеживания реализуется двумя инфракрасными датчиками, размещенными на нижней части платы расширения. Система использует различия в отражающих характеристиках разноокрашенных поверхностей. Когда инфракрасный излучатель находится над черной линией, то на приемник сигнал не поступает, так как излучение поглощается. При расположении излучателя над белой поверхностью – инфракрасное излучение отражается от нее и попадает в приемник.
- При отсутствии черной линии под обоими датчиками – едем прямо (первое положение);
- При появлении черного цвета под правым датчиком – поворачиваем на право (второе положение);
- При появлении черного цвета под левым датчиком – поворачиваем налево (третье положение);
- В случае перекрытия черным цветом сразу двух датчиков – останавливаемся (четвертое положение).
- «Если-то-иначе» - условный оператор или оператор ветвления;
- «И» - логический оператор.
Для регистрации показаний сенсора нам нужен блок «Line_Sensor», а для управления движением робота с заданной скоростью – «CarCtrlSpeed».
Для того чтобы мы смогли прописать в программе все возможные положения – необходимо увеличить число условий в операторе ветвления «Если-то-иначе». Это осуществляется нажатием на кнопку инкрементации.
Далее добавляем в оператор ветвления, отмеченные ранее условия и необходимые к выполнению действия.
Проверить свои ошибки можно загрузив файл по ссылке: Урок 3.
Урок 4. Движение с избеганием препятствий
Помимо датчиков слежения линии, размещенных на нижней стороне платы расширения, у конструктора Yahboom Smart Robot Car, есть еще один инфракрасный датчик. Он размещен на передней части платы и его удобно использовать для программирования движения с избеганием сталкивания с препятствиями.
|
Для проведения урока необходимо построить лабиринт или замкнутую комнату из непрозрачных предметов.
Алгоритм действий робота будет следующий:
|
При составлении программы нам потребуются уже известные блоки: «Если-то-иначе», «Пауза» и «CarCtrlSpeed». Для получения сигналов с переднего ИК-сенсора нам потребуется новый блок из вкладки «Mbit_Robot» - «Avoid_Sensor».
В соответствии с описанным ранее алгоритмом составляем нашу программу.
Сверить, корректность составленной программы можно скачав файл «Избегание препятствий» по ссылке: Урок 4.
Внимание:
1. Этот эксперимент необходимо проводить в помещении, для уменьшения влияния солнечного света на инфракрасный приемник.
2. Поскольку инфракрасный датчик платы расширения использует контакт P3 (инфракрасный приемник) и контакт P9 (инфракрасный передатчик) платы micro:bit, а эти контакты также связаны с управлением светодиодной матрицей, то вовремя работы некоторые светодиоды могут мерцать.
Урок 5. Инфракрасное управление роботом
Инфракрасные сенсоры можно использовать не только для распознавания препятствий или определения цвета поверхности, но и для взаимодействия с ИК-пультом.
Если вам интересно узнать, работает ли инфракрасный передатчик при использовании пульта дистанционного управления или он неисправен, то можно воспользоваться камерой мобильного телефона. Для этого нужно навести ее на излучатель. У исправного пульта, при нажатии любых кнопок, появится небольшое мерцание передатчика.
Однако стоит помнить, что некоторые модели телефонов имеют функцию фильтрации инфракрасного света. Камерой такого смартфона вы не сможете проверить работоспособность ИК пульта.
ИК пульт уже идет в комплекте с нашим роботизированным конструктором. Зададим для каждой кнопки выполнения определенной задачи. Часть кнопок выделим на управление движением, часть – на управление RGB подсветкой. Цифровые кнопки задействуем для смены значков светодиодной матрицы.
Для взаимодействия с пультом необходимо подключить дополнительную библиотеку: YB_IR. Для этого входим во вкладку «Расширения» и в поисковой строке указываем следующую ссылку: https://github.com/lzty634158/YB_IR.
Для связи через инфракрасный порт нам потребуются блоки «Connect ir receiver» и «On … button pressed» из вкладки «Mbit_IR_V1.5».
Блок «Connect ir receiver» обеспечивает связь micro:bit с ИК-сенсором платы расширения, а функция «On … button pressed» - реакцию на нажатие определенной кнопки пульта.
Так как часть кнопок планируется задействовать на управление RGB подсветкой платы расширения, то нам потребуются команда «RGB Car Big2» из вкладки «Mbit_Robot».
Для кнопок с цифрами, командой «Показать значок», пропишем индикацию светодиодной матрицы.
Для управления движением воспользуемся уже знакомой командой - «CarCtrlSpeed».
Составляем нашу программу.
Для быстрого программирования робота-конструктора скачайте и загрузите в micro:bit код урока 5. Или сверьте его со своим.
Мы с вами рассмотрели 5 уроков по программированию робота Yahboom Smart Robot построенного на платформе Micro:bit. Данные уроки достаточно простые, и только частично раскрывают потенциал нашего конструктора. Используя дополнительные блоки математики, логики, музыки и др. можно настроить свое устройство для решения самых разнообразных задач. Все в ваших руках.
А также много-много других.
Если у вас возникают затруднения с выбором подходящего конструктора, то наши специалисты всегда готовы проконсультировать вас.
Спасибо за прочтение.