Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
revid: 186062\ntimestamp: '2021-09-04T12:20:21Z'\ncontentmodel: wikitext\n---\n== Аннотация ==\n ;Докладчик: {{Speaker|Евгений Синельников}}\n <blockquote>\nСовременные Современные робототехнические конструкторы требуют специальные средства разработки.\n\nПодобные Подобные средства разработки позволяют снизить порог вхождения при программировании автономных робототехнических устройств, оснащённых датчиками и\nисполнительными исполнительными механизмами, то есть роботов. На текущий момент возможности свободного программного обеспечения в\nобласти области образовательной робототехники ограничены, а их разработка имеет свою актуальную проблематику. \n\nВ В данном докладе представлен анализ возможностей и ограничений средств разработки для программирования роботов на примере подготовки\nолимпиадных олимпиадных задач и участия в олимпиадах по робототехнике.\n\n * [https://github.com/centrit/AXRobot Arduino templates for Robots]\n </blockquote>\n\n == Видео ==\n {{vimeoembed|201654588|800|450}}\n {{youtubelink|kED4pmWRw9E}}{{letscomment}}\n == Слайды ==\n [[File:Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf|left|page=-|256px]]\n\n == Тезисы ==\n\n === Задачи образовательной робототехники ===\nОтвет Ответ на вопрос: «Что такое робот?» — с точки зрения содержания и методики преподавания, можно свести к двум вариантам:\n\n * Робот — это автономное, программируемое, программно-аппаратное решение с набором датчиков и исполнительных механизмов;\n * Робот — это управляемый набор программно-аппаратных компонент, осуществляющий различные производственные и иные операции.\n\nВ В первом случае основной упор делается на разработку и программирование автономной робототехнической модели, например, для решения олимпиадных задач, во втором — на подробное изучение функциональных возможностей отдельных программно-аппаратных компонент, представленное в иностранных образовательных заведениях, как STEM-направление<ref name="sin-8">U.S. Department of Education, ''Science, Technology, Engineering and Math: Education for Global Leadership'', 2015, [https://www.ed.gov/stem ed.gov]</ref>.\n\n === Программно-аппаратные средства ===\nДанный Данный доклад посвящён разбору возможностей и ограничений средств разработки для программирования роботов в рамках первого подхода. При этом одну из важнейших функций играет поддержка средой разработки возможности программирования той или иной робототехнической платформы через различные проводные и беспроводные интерфейсы. \nСтандартом Стандартом де-факто, в качестве такой платформы в задачах олимпиадного робототехнического программирования, на текущий момент является конструктор Lego Mindstorms EV3<ref name="sin-1">''Л. Ю. Овсяницкая, Д. Н. Овсяницкий, А. Д. Овсяницкий'', ''Курс программирования робота EV3 в среде Lego Mindstorms EV3'' / М.: Издательство «Перо», 2016.</ref>. \nВ В качестве свободной, недорогой альтернативы ему представлены различные решения на базе платформы Arduino<ref name="sin-3">Arduino, ''Getting Started with Arduino and Genuino products'', 2016, [https://www.arduino.cc/en/Guide/HomePage arduino.cc]</ref>, которая включает в себя открытую аппаратную платформу для различных типов микроконтроллеров и среду разработки, позволяющую выполнять прошивку этих микроконтроллеров через стандартный USB-интерфейс.\n\nВ В силу открытости платформы Arduino крупные компании самостоятельно реализуют для неё поддержку своих отладочных плат — Edisson<ref name="sin-6">''Stephanie Moyerman'', ''Getting Started with Intel Edison Sensors, Actuators, Bluetooth, and Wi-Fi on the Tiny Atom-Powered Linux Module'' / Maker Media, Inc, 2015.</ref> от Intel, LaunchPad<ref name="sin-7">Texas Instruments, ''Getting Started with Energia'', 2016, [http://energia.nu/guide/ energia.nu]</ref> от Texas Instruments, ESP8266<ref name="sin-4">''Neil Kolban'', ''Kolban's Book on the ESP32 & ESP8266'' / Leanpub, 2016.</ref> от Espressif и др. \nКроме Кроме того, для большинства недорогих датчиков и исполнительных механизмов, как правило, доступно множество примеров исходного кода.\n\nТаким Таким образом, одной из основных свободных альтернатив, в качестве аппаратной базы для образовательной робототехники, является именно платформа Arduino. \nТем Тем не менее, реальное применение Arduino, в качестве замены для весьма дорогостоящих Lego Mindstorms, в задачах образовательной и олимпиадной робототехники до сих пор не осуществлено, в силу следующих причин:\n\n * основной язык программирования для Arduino — C++;\n * целостная сборка готового решения на базе доступных примеров зачастую требует реализации элементов операционной системы реального времени;\n * различные аппаратные средства требуют подключения и монтажа электронных компонент через различные аппаратные интерфейсы (I2C, UART, SPI), а также реализацию протоколов для проводных и беспроводных интерфейсов (Ethernet, Wifi, Bluetooth и др.);\n * отсутствуют и требуют дополнительного программирования кнопки управления, модуль визуального отображения и вывода звука;\n * требуется отдельное подключение исполнительных механизмов через специальные силовые драйверы с повышенным напряжением, а также подключение и программирование энкодеров.\n\nС С одной стороны, такой минимализм позволяет максимально подробно изучить дополнительные модули, аппаратные интерфейсы и спецификации на протоколы, а также низкоуровневое программирование с использованием портов ввода-вывода, прерываний, аналого-цифровых преобразователей и таймеров. \nНо Но это актуально, скорее, в рамках демонстрации выполнения операций, осуществляемых роботом. \nГотовое Готовое автономное решение для олимпиадного соревнования в обозримые сроки силами школьников подготовить таким образом довольно сложно.\n\n === Средства разработки ===\nТем Тем не менее, в качестве базовой свободной среды разработки для доступных по стоимости робототехнических решений являются средства платформы Arduino.\n\nПри При этом, например, в Mindstorm, где все аппаратные модули заранее реализованы, за программную часть управления аппаратными средствами отвечает операционная система на базе Linux, базовая прошивка, включающая специализированную виртуальную машину и генератор байткода для этой виртуальной машины, реализованный в рамках проприетарной графической среды разработки, работающей под MacOS и Windows (есть вариант запустить с помощью Wine).\n\nВ В качестве альтернативы для программирования Mindstorm существует ряд дополнительных свободных проектов, загружаемых с внешней SD-карты…\n\n * EV3Dev<ref name="sin-5">''Ralph Hempel and David Lechner'', ''Getting Started with ev3dev'', 2016, [http://www.ev3dev.org/docs/getting-started/ ev3dev.org]</ref> — сборка на базе Debian (не имеет среды разработки, позволяет использовать любые языки программирования, доступные в прошивке, при подключении через SSH — shell, python, C/C++, NodeJS и др.);\n * LejOS — на базе Java (имеет плагин для среды Eclipse);\n * MonoBrick — на базе .Net/Mono (имеет плагин для среды Xamarin Studio);\n\nКроме Кроме несовместимых с базовой прошивкой свободных альтернатив существует проприетарный набор продуктов RobotC, который самостоятельно генерирует байткод для виртуальной машины из базовой прошивки, поддерживает дополнительные платформы, в частности Arduino, а также предоставляет трёхмерную среду-эмулятор для отладки программ.\n\nПодобное Подобное решение представлено в свободной, кроссплатформенной, графической среде разработки TrikStudio (первичное название qreal). \nДанная Данная среда поддерживает как собственную платформу TRIK, так и платформу Mindstorm. \nПри При этом поддержка платформы Arduino отсутствует, но имеется встроенная двухмерная среда-эмулятор для отладки программ.\n\nОдним Одним из перспективных вариантов реализации универсальной графической среды разработки является следующее поколение программной платформы ScratchX (или Scratch 2.0), выполненное на базе web-технологий (также доступная в offline-режиме через технологию Adobe Air). \nВ В этой программной платформе поддержка различных аппаратных платформ реализована в виде плагинов для браузера Chrome. \nК К сожалению, на текущий момент поддержка Linux в этом решении отсутствует.\n\nПри При этом для платформы Arduino имеется брошенный, не развивающийся, но пока работоспособный проект графического расширения Ardublock, выполненный в виде Java-плагина, реализованного на базе OpenBlocks в виде таких же блоков, как в проекте Scratch. \nНа На текущий момент это наиболее простое доступное средство графического программирования для Arduino.\n\nКроме Кроме десктопных решений для платформы Arduino реализован ряд web-эмуляторов с поддержкой различного оборудования. \nНаиболее Наиболее популярным среди них является набор 123D/circuits.io от Autodesk. \nС С недавнего времени в рамках проекта Arduino реализовано собственное web-решение Arduino Create<ref name="sin-2">''Alice Pintus'', ''Sneak peek on the new, web-based Arduino Create'', 2015, [https://blog.arduino.cc/2015/05/05/sneak-peak-arduino-create/ blog.arduino.cc]</ref> с возможностью прошивки контроллеров через плагин для браузера.\n\n === Возможности и ограничения в олимпиадных задачах ===\nПрактика Практика подготовки к решению олимпиадных задач по робототехнике даёт ряд противоречивых ограничений — сложность освоения среды разработки (включая язык программирования) и необходимость реализации нетривиальных алгоритмов (включая работу со структурами данных). \nВ В первом случае графическая среда разработки помогает снизить порог вхождения, во втором — существенно замедляет или вовсе не позволяет достаточно выразительно реализовывать алгоритмы.\n\nСоздание Создание цепочки функций со входными и выходными параметрами, работа с массивами, списками, стековыми структурами, а также строчные операции в графических средах зачастую выглядят громоздко и «нечитабельно».\n\nВ В связи с этим возможности платформы Arduino выглядят достаточно перспективно в случае генерации настроек и базового кода на основе шаблонов. \nОсобенно Особенно для средств разработки и симуляции, доступных в виде web-решений. \nТем Тем не менее, актуальность генерации кода на основе визуальных шаблонов, диаграмм и блок-схем сохраняется для олимпиадных и образовательных задач по робототехнике. \nОтсутствие Отсутствие же таких средств резко снижает возможности платформы Arduino по сравнению с платформой Mindstorm.\n\nНа На текущий момент существует целый ряд возможностей и вариантов реализовать двухступенчатую схему программирования (как в графическом, так и в текстовом виде) в рамках платформы Arduino. \nВозможно Возможно, реализацию такого решения имеет смысл выполнить в виде web-приложения.\n\n {{----}}\n\n == Примечания и отзывы ==\n <!-- <blockquote>[©]</blockquote> -->\n\n {{fblink|1850546901864989}} \n {{vklink|432}} \n <references/>\n [[File:{{#setmainimage:Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017)!.jpg}}|center|640px]]\n <!-- topub -->\n {{stats|disqus_comments=0|refresh_time=2021-08-31T16:48:06.302411|vimeo_comments=0|vimeo_plays=35|youtube_comments=0|youtube_plays=9}}\n\n [[Категория:OSEDUCONF-2017]]\n [[Категория:СПО в образовании]]\n [[Категория:Робототехника]]\n [[Категория:Arduino]] | |||
Версия 14:32, 18 октября 2025
Содержание
Аннотация
- Докладчик
- Евгений Синельников
Современные робототехнические конструкторы требуют специальные средства разработки.
Подобные средства разработки позволяют снизить порог вхождения при программировании автономных робототехнических устройств, оснащённых датчиками и исполнительными механизмами, то есть роботов. На текущий момент возможности свободного программного обеспечения в области образовательной робототехники ограничены, а их разработка имеет свою актуальную проблематику.
В данном докладе представлен анализ возможностей и ограничений средств разработки для программирования роботов на примере подготовки олимпиадных задач и участия в олимпиадах по робототехнике.
Видео
Посмотрели доклад? Понравился? Напишите комментарий! Не согласны? Тем более напишите.
Слайды
Тезисы
Задачи образовательной робототехники
Ответ на вопрос: «Что такое робот?» — с точки зрения содержания и методики преподавания, можно свести к двум вариантам:
- Робот — это автономное, программируемое, программно-аппаратное решение с набором датчиков и исполнительных механизмов;
- Робот — это управляемый набор программно-аппаратных компонент, осуществляющий различные производственные и иные операции.
В первом случае основной упор делается на разработку и программирование автономной робототехнической модели, например, для решения олимпиадных задач, во втором — на подробное изучение функциональных возможностей отдельных программно-аппаратных компонент, представленное в иностранных образовательных заведениях, как STEM-направление[1].
Программно-аппаратные средства
Данный доклад посвящён разбору возможностей и ограничений средств разработки для программирования роботов в рамках первого подхода. При этом одну из важнейших функций играет поддержка средой разработки возможности программирования той или иной робототехнической платформы через различные проводные и беспроводные интерфейсы. Стандартом де-факто, в качестве такой платформы в задачах олимпиадного робототехнического программирования, на текущий момент является конструктор Lego Mindstorms EV3[2]. В качестве свободной, недорогой альтернативы ему представлены различные решения на базе платформы Arduino[3], которая включает в себя открытую аппаратную платформу для различных типов микроконтроллеров и среду разработки, позволяющую выполнять прошивку этих микроконтроллеров через стандартный USB-интерфейс.
В силу открытости платформы Arduino крупные компании самостоятельно реализуют для неё поддержку своих отладочных плат — Edisson[4] от Intel, LaunchPad[5] от Texas Instruments, ESP8266[6] от Espressif и др. Кроме того, для большинства недорогих датчиков и исполнительных механизмов, как правило, доступно множество примеров исходного кода.
Таким образом, одной из основных свободных альтернатив, в качестве аппаратной базы для образовательной робототехники, является именно платформа Arduino. Тем не менее, реальное применение Arduino, в качестве замены для весьма дорогостоящих Lego Mindstorms, в задачах образовательной и олимпиадной робототехники до сих пор не осуществлено, в силу следующих причин:
- основной язык программирования для Arduino — C++;
- целостная сборка готового решения на базе доступных примеров зачастую требует реализации элементов операционной системы реального времени;
- различные аппаратные средства требуют подключения и монтажа электронных компонент через различные аппаратные интерфейсы (I2C, UART, SPI), а также реализацию протоколов для проводных и беспроводных интерфейсов (Ethernet, Wifi, Bluetooth и др.);
- отсутствуют и требуют дополнительного программирования кнопки управления, модуль визуального отображения и вывода звука;
- требуется отдельное подключение исполнительных механизмов через специальные силовые драйверы с повышенным напряжением, а также подключение и программирование энкодеров.
С одной стороны, такой минимализм позволяет максимально подробно изучить дополнительные модули, аппаратные интерфейсы и спецификации на протоколы, а также низкоуровневое программирование с использованием портов ввода-вывода, прерываний, аналого-цифровых преобразователей и таймеров. Но это актуально, скорее, в рамках демонстрации выполнения операций, осуществляемых роботом. Готовое автономное решение для олимпиадного соревнования в обозримые сроки силами школьников подготовить таким образом довольно сложно.
Средства разработки
Тем не менее, в качестве базовой свободной среды разработки для доступных по стоимости робототехнических решений являются средства платформы Arduino.
При этом, например, в Mindstorm, где все аппаратные модули заранее реализованы, за программную часть управления аппаратными средствами отвечает операционная система на базе Linux, базовая прошивка, включающая специализированную виртуальную машину и генератор байткода для этой виртуальной машины, реализованный в рамках проприетарной графической среды разработки, работающей под MacOS и Windows (есть вариант запустить с помощью Wine).
В качестве альтернативы для программирования Mindstorm существует ряд дополнительных свободных проектов, загружаемых с внешней SD-карты…
- EV3Dev[7] — сборка на базе Debian (не имеет среды разработки, позволяет использовать любые языки программирования, доступные в прошивке, при подключении через SSH — shell, python, C/C++, NodeJS и др.);
- LejOS — на базе Java (имеет плагин для среды Eclipse);
- MonoBrick — на базе .Net/Mono (имеет плагин для среды Xamarin Studio);
Кроме несовместимых с базовой прошивкой свободных альтернатив существует проприетарный набор продуктов RobotC, который самостоятельно генерирует байткод для виртуальной машины из базовой прошивки, поддерживает дополнительные платформы, в частности Arduino, а также предоставляет трёхмерную среду-эмулятор для отладки программ.
Подобное решение представлено в свободной, кроссплатформенной, графической среде разработки TrikStudio (первичное название qreal). Данная среда поддерживает как собственную платформу TRIK, так и платформу Mindstorm. При этом поддержка платформы Arduino отсутствует, но имеется встроенная двухмерная среда-эмулятор для отладки программ.
Одним из перспективных вариантов реализации универсальной графической среды разработки является следующее поколение программной платформы ScratchX (или Scratch 2.0), выполненное на базе web-технологий (также доступная в offline-режиме через технологию Adobe Air). В этой программной платформе поддержка различных аппаратных платформ реализована в виде плагинов для браузера Chrome. К сожалению, на текущий момент поддержка Linux в этом решении отсутствует.
При этом для платформы Arduino имеется брошенный, не развивающийся, но пока работоспособный проект графического расширения Ardublock, выполненный в виде Java-плагина, реализованного на базе OpenBlocks в виде таких же блоков, как в проекте Scratch. На текущий момент это наиболее простое доступное средство графического программирования для Arduino.
Кроме десктопных решений для платформы Arduino реализован ряд web-эмуляторов с поддержкой различного оборудования. Наиболее популярным среди них является набор 123D/circuits.io от Autodesk. С недавнего времени в рамках проекта Arduino реализовано собственное web-решение Arduino Create[8] с возможностью прошивки контроллеров через плагин для браузера.
Возможности и ограничения в олимпиадных задачах
Практика подготовки к решению олимпиадных задач по робототехнике даёт ряд противоречивых ограничений — сложность освоения среды разработки (включая язык программирования) и необходимость реализации нетривиальных алгоритмов (включая работу со структурами данных). В первом случае графическая среда разработки помогает снизить порог вхождения, во втором — существенно замедляет или вовсе не позволяет достаточно выразительно реализовывать алгоритмы.
Создание цепочки функций со входными и выходными параметрами, работа с массивами, списками, стековыми структурами, а также строчные операции в графических средах зачастую выглядят громоздко и «нечитабельно».
В связи с этим возможности платформы Arduino выглядят достаточно перспективно в случае генерации настроек и базового кода на основе шаблонов. Особенно для средств разработки и симуляции, доступных в виде web-решений. Тем не менее, актуальность генерации кода на основе визуальных шаблонов, диаграмм и блок-схем сохраняется для олимпиадных и образовательных задач по робототехнике. Отсутствие же таких средств резко снижает возможности платформы Arduino по сравнению с платформой Mindstorm.
На текущий момент существует целый ряд возможностей и вариантов реализовать двухступенчатую схему программирования (как в графическом, так и в текстовом виде) в рамках платформы Arduino. Возможно, реализацию такого решения имеет смысл выполнить в виде web-приложения.
Примечания и отзывы
- ↑ U.S. Department of Education, Science, Technology, Engineering and Math: Education for Global Leadership, 2015, ed.gov
- ↑ Л. Ю. Овсяницкая, Д. Н. Овсяницкий, А. Д. Овсяницкий, Курс программирования робота EV3 в среде Lego Mindstorms EV3 / М.: Издательство «Перо», 2016.
- ↑ Arduino, Getting Started with Arduino and Genuino products, 2016, arduino.cc
- ↑ Stephanie Moyerman, Getting Started with Intel Edison Sensors, Actuators, Bluetooth, and Wi-Fi on the Tiny Atom-Powered Linux Module / Maker Media, Inc, 2015.
- ↑ Texas Instruments, Getting Started with Energia, 2016, energia.nu
- ↑ Neil Kolban, Kolban's Book on the ESP32 & ESP8266 / Leanpub, 2016.
- ↑ Ralph Hempel and David Lechner, Getting Started with ev3dev, 2016, ev3dev.org
- ↑ Alice Pintus, Sneak peek on the new, web-based Arduino Create, 2015, blog.arduino.cc
Plays:44 Comments:0

