Программируемые роботы для образовательных целей: 3 проекта по разработке ПО и прошивки

Школа заказчика учит детей программированию с помощью роботов. Мы выполнили 3 проекта, включавших разработку прошивки и программного обеспечения для роботов Lego Mindstorms EV3 и Makeblock Me Auriga.
Заказчиком выступил стартап, работающий в сфере образования. Компания учит детей 9-14 лет программировать на Python с помощью роботов – Lego Mindstorms EV3, Vex и Makeblock Me Auriga.

Запрос

Заказчик искал партнера, который мог бы разработать для него программное обеспечение. Стартапу требовалось улучшить используемое им ПО для роботов, упростить процесс обучения и разработать портал для учеников, выступающий в качестве интерфейса для взаимодействия с роботами.

Решение

КЕДР Solutions оказала заказчику целый ряд услуг. Мы написали прошивку для роботов Makeblock Me Auriga. Разработали облачную OTA-систему для выполнения кода на роботах Lego Mindstorms EV3. Наконец, мы разработали систему управления учебными курсами для помощи администрации школы.
Светодиодная лента, устанавливаемая на гриф гитары и предназначенная для обучения - КЕДР Solutions
Части различных обучающих роботов
Выполненные работы

  • Написали прошивку для роботов Makeblock Me Auriga
  • Разработали плагин для Google Chrome для работы с Makeblock
  • Разработали облачную OTA-систему, используя сервисы AWS, для исполнения кода на роботах Lego Mindstorms EV3
  • Сверстали вебсайт на HTML5 и CSS3, который интегрируется с Google Maps, YouTube и LeadSquared
              Использованные технологии
              • Оба робота (Lego EV3 и Makeblock Me Auriga) программируются на Python.
              • В качестве интерфейса для визуального программирования в текущем веб-портале мы использовали Google Blockly.
              • Мы создали специализированную сборку Linux для робота Lego EV3.
              • Облачная OTA-система для связи с роботом Lego EV3 использует Wi-Fi.
              • Для хостинга и распределения нагрузки использовали сервисы Amazon Web Services (AWS) и контейнеры Docker.
              • Некоторые утилиты были написаны на C/C++.
              • Для выполнения Python-скриптов на роботах Me Auriga использовался Raspberry Pi.

                              Итоги

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

                              Проект 1: Написание прошивки для роботов Makeblock Me Auriga

                              Запрос

                              Для обучения школа заказчика использовала Google Blockly – браузерный графический редактор для программирования. В нем можно создавать приложения без написания кода, а соединяя разные блоки. С помощью специальной программы код Blockly можно перевести на язык Python. На роботе Lego Mindstorms EV3, который использовала школа, был установлен специальный сервис, позволяющий исполнять код на Python.

                              Заказчик хотел разработать такую же систему для роботов Makeblock Me Auriga.

                              Решение

                              Оказалось, что роботы Makeblock не могут исполнять код на Python, поскольку они выполнены на базе Arduino: у этого компьютера довольно слабый микроконтроллер с прошивкой на чистом C/C++. Мы предложили подключить робота к Raspberry Pi, на котором установлена ОС Linux, что позволяет ему исполнять Python-скрипты. Тогда Python мог бы передавать команды на последовательный порт робота через устройство Me Shield.

                              Однако это решение было не очень удобным, потому что к роботу пришлось бы подключать плату Raspberry. Мы решили упростить систему. Python-скрипты можно исполнять на персональном компьютере, а затем передавать команды роботу по беспроводному последовательному интерфейсу (2.4G Wireless Serial). Нам потребовались только Bluetooth-донгл, подключенный к ПК, и беспроводной модуль, подключенный к роботу. Они обеспечивают связь между программным обеспечением mBlock и роботом Makeblock.
                              Светодиодная лента, устанавливаемая на гриф гитары и предназначенная для обучения - КЕДР Solutions
                              Язык на базе Google Blockly для программирования роботов

                              Итоги

                              Мы разработали прошивку для роботов Makeblock Me Auriga. Она позволяет роботу исполнять команды, передаваемые по Bluetooth-донглу с браузера Chrome с помощью специального плагина. В результате ученики могут писать программы во фреймворке Blockly, комбинируя визуальное и текстовое программирование, и исполнять их на роботе.

                              Проект 2: Облачная OTA-система для роботов Lego Mindstorms EV3

                              Запрос

                              Чтобы робот выполнил какую-либо программу, ребенок должен написать команды на своем компьютере, а затем подключить к нему робота через USB-кабель. Это не очень удобно, поскольку преподаватель работает с группой учеников и должен следить за работой каждого из них.

                              Решение

                              КЕДР Solutions предложила решить проблему подключения роботов к ПК с помощью беспроводной связи. Мы доработали библиотеку робота EV3, использовав стандарт OTA для передачи и приема кода по беспроводной системе связи. Наше облачное OTA-решение на базе AWS позволяет преподавателям эффективно работать с учениками, роботами и учебными программами.
                              Светодиодная лента, устанавливаемая на гриф гитары и предназначенная для обучения - КЕДР Solutions
                              Тестирование программного обеспечения робота

                              Итоги

                              КЕДР Solutions разработала облачную OTA-систему, которая позволяет множеству учеников писать код и запускать его на роботах Lego Mindstorms EV3. Вот как она работает:

                              1. Во фреймворке Blockly ученик пишет код, который переводится на язык Python.
                              2. Когда он кликает по иконке «Выполнить», код передается по Wi-Fi на сервер OTA-системы.
                              3. Затем сервер передает код роботу, который назначен данному ученику.
                              4. Робот выполняет запрограммированное действие: едет, стреляет, ползает, ходит, вращается и т.п.
                              5. Робот передает обновленные данные о состоянии обратно на сервер.
                              6. Эта информация доводится до преподавателя. Чтобы ему было легче проверять результаты работы, каждому роботу присвоен уникальный номер.

                              Проект 3: Система управления учебными курсами

                              Запрос

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

                              Решение

                              Мы разработали программное обеспечение, которое интегрируется с системой управления взаимоотношениями с клиентами LeadSquared. Оно облегчает руководство учебным процессом. После оплаты курса, информация об этом передается в OTA-систему, а ученику становятся доступны соответствующие учебные материалы.

                              Наша команда выполнила разработку фронтенда и бэкенда системы управления курсами. Для создания, развертывания и запуска приложения мы использовали контейнеры Docker. Такая архитектура позволяет легко справляться с дополнительной нагрузкой и масштабировать систему – нужно лишь добавить новые контейнеры.
                              Светодиодная лента, устанавливаемая на гриф гитары и предназначенная для обучения - КЕДР Solutions
                              Робот Makeblock Me Auriga

                              Итоги

                              Созданная нами браузерная система управления учебными курсами позволяет администрации:

                              • Добавлять и удалять профили учеников;
                              • Создавать курсы и задания;
                              • Следить за выполнением заданий;
                              • Просматривать историю изменений.

                              Кроме того, благодаря интеграции с облачной OTA-системой это решение упрощает ученикам выполнение заданий и исполнение кода на роботах.
                              Добавлена поддержка
                              Роботов MakeBlock

                              Поддерживает
                              30+ модулей
                              Добавлены новые блоки Blockly
                              30+ блоков

                              КЕДР Solutions обновили и улучшили ПО для наших роботов, что, в свою очередь, повысило качество обучения детей программированию. Кроме того, команда нашла более простой способ подключать роботов к ПК. Ключом к успеху компании стала ее способность доработать ПО под нужды нашей школы.
                              Начальник учебно-методического отдела школы заказчика