Уроки программирования для роботов-конструкторов Yahboom на базе Micro:bit

Уроки программирования для роботов-конструкторов Yahboom на базе Micro:bit

Уроки по программированию роботов Yahboom от Суперайс

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

Преимуществом micro:bit является возможность использовать три способа программирования на выбор, используя:
  • Графические блоки;
  • Язык программирования Python;
  • Язык программирования JavaScript.

Программирование в виде блоков - актуально для детей и начинающих. Python и JavaScript подойдут продвинутым пользователям и позволят им раскрыть весь потенциал платформы.

Многие компании создают свои робототехнические устройства на базе micro:bit, не является исключением и компания Yahboom. Выпускаемые ей роботизированные устройства доступны в различных моделях на таких платформах как: Nvidea Jetson, Raspberry Pi, Micro:bit и Arduino. Компания Суперайс является официальным дистрибьютором компании Yahboom.

Время чтения: 13 минут

Описание


Одним из оптимальных методов знакомства с любой платформой или конструктором является выполнение обучающих уроков. Так закрепляются не только теоретические, но и практические навыки. Мы предлагаем вам освоить пять уроков по программированию роботов Yahboom на платформе micro:bit.

В качестве «подопытного» выберем, один из лучших конструкторов в своей линейке, - Yahboom Smart Robot Car.

Робот-конструктор Smart Robot Car Yahboom на базе micro:bit

Робот-конструктор Smart Robot Car Yahboom на базе micro:bit

Состав конструктора:
  • Каркас, для установки сонара;
  • Ультразвуковой сонар, для определения расстояний до объектов;
  • Два мотор-редуктора с колесами;
  • Плата расширения Yahboom;
  • Плата micro:bit 2 версии.

Подготовка

Для взаимодействия с устройством можно воспользоваться браузером и перейти по ссылке в редактор кода, для этого Вам понадобится компьютер с выходом в интернет, или скачать приложение для Windows или Max OS: отсюда.

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

Окно создания нового проекта

Окно создания нового проекта

В открывшемся окне программы выбираем вкладку «Расширения».

Расположение вкладки «Расширения»

Расположение вкладки «Расширения»

В поисковую строку вносим ссылку на требуемое расширение: https://github.com/lzty634158/yahboom_mbit_en. Устанавливаем его.

Выбор расширения Mbit для конструкторов Yahboom

Выбор расширения Mbit для конструкторов Yahboom

После установки у нас появятся дополнительные вкладки с блоками для программирования: Mbit_display, Mbit_sensor, Mbit_Input, Mbit_Music, Mbit_Motor, Mbit_Robot.

Дополнительные вкладки с блоками библиотеки Mbit для устройств Yahboom

Дополнительные вкладки с блоками библиотеки Mbit для устройств Yahboom

Теперь подключаем плату micro:bit, через USB кабель к компьютеру и приступаем к программированию.

Урок 1. Программируем движение робота

Давайте попробуем запрограммировать нашего робота на самое простое действие – движение вперед.

Для этого необходимо написать не сложную программу и загрузить ее на плату micro:bit.

Открываем сайт или программу MakeCode и создаем новый проект.

Вначале создадим «лицо», при помощи светодиодной матрицы.

Для этого зайдем во вкладку «Основное» и выберем блок «При начале».

Разместим его на рабочей области и добавим в него блок «Показать значок». В этом блоке выберем вид значка: «Счастливый».

Теперь при включении устройства у него на светодиодной матрице появится улыбающееся лицо.

Процедура создания «лица» робота-конструктора

Процедура создания «лица» робота-конструктора

Далее напишем программу движения.

Выбираем блок «Постоянно» из вкладки «Основные» и разместим в нем управляющий блок «CarCtrl» с флагом «Forward» из вкладки «Mbit_Robot».

Листинг программы «Робот - вперед»

Листинг программы «Робот - вперед»

Программа готова.
Теперь скачиваем файл и загружаем его на плату micro:bit. Она должна определиться как съемный диск.

Указания по загрузке прошивке в плату micro:bit

Указания по загрузке прошивке в плату 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.

Выбор библиотеки YB_IR для роботов Yahboom

Выбор библиотеки YB_IR для роботов Yahboom

Для связи через инфракрасный порт нам потребуются блоки «Connect ir receiver» и «On … button pressed» из вкладки «Mbit_IR_V1.5».

Вкладка «Mbit_IR_V1.5» и её содержимое

Вкладка «Mbit_IR_V1.5» и её содержимое

Блок «Connect ir receiver» обеспечивает связь micro:bit с ИК-сенсором платы расширения, а функция «On … button pressed» - реакцию на нажатие определенной кнопки пульта.

Так как часть кнопок планируется задействовать на управление RGB подсветкой платы расширения, то нам потребуются команда «RGB Car Big2» из вкладки «Mbit_Robot».

Расположение блока управляющего RGB подсветкой

Расположение блока управляющего RGB подсветкой

Для кнопок с цифрами, командой «Показать значок», пропишем индикацию светодиодной матрицы.

Для управления движением воспользуемся уже знакомой командой - «CarCtrlSpeed».

Составляем нашу программу.

Код подключения и программирование управления RGB подсветкой

Код подключения и программирование управления RGB подсветкой

Программирование управления движением робота

Программирование управления движением робота

Программирование индикации светодиодной матрицы

Программирование индикации светодиодной матрицы

Для быстрого программирования робота-конструктора скачайте и загрузите в micro:bit код урока 5. Или сверьте его со своим.

Заключение

Мы с вами рассмотрели 5 уроков по программированию робота Yahboom Smart Robot построенного на платформе Micro:bit. Данные уроки достаточно простые, и только частично раскрывают потенциал нашего конструктора. Используя дополнительные блоки математики, логики, музыки и др. можно настроить свое устройство для решения самых разнообразных задач. Все в ваших руках.


У нас доступен широкий выбор роботов-конструкторов различающихся функционалом и конструкцией. Наибольший интерес представляют такие устройства, как:
  1. Yahboom Tiny:bit - робот-машина;
  2. Yahboom Smart Robot;
  3. Yahboom HelloBot Basic version Lift and Clip pack 3 in 1;
  4. Yahboom Biped:bit - шагающий робот;
  5. Yahboom Building:bit Super Kit 16 in 1.

А также много-много других.

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

Спасибо за прочтение.



Количество показов: 521
21.01.2022

Возврат к списку