Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017)

Материал из 0x1.tv

revid: 186062\ntimestamp: '2021-09-04T12:20:21Z'\ncontentmodel: wikitext\n---\n== Аннотация ==\n;Докладчик:
Евгений Синельников.jpg
Евгений Синельников\n
\nСовременные робототехнические конструкторы требуют специальные средства разработки.\n\nПодобные средства разработки позволяют снизить порог вхождения при программировании автономных робототехнических устройств, оснащённых датчиками и\nисполнительными механизмами, то есть роботов. На текущий момент возможности свободного программного обеспечения в\nобласти образовательной робототехники ограничены, а их разработка имеет свою актуальную проблематику. \n\nВ данном докладе представлен анализ возможностей и ограничений средств разработки для программирования роботов на примере подготовки\nолимпиадных задач и участия в олимпиадах по робототехнике.\n\n* Arduino templates for Robots\n
\n\n== Видео ==\n

\non youtube

Посмотрели доклад? Понравился? Напишите комментарий! Не согласны? Тем более напишите.

\n== Слайды ==\n
Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf
\n\n== Тезисы ==\n\n=== Задачи образовательной робототехники ===\nОтвет на вопрос: «Что такое робот?» — с точки зрения содержания и методики преподавания, можно свести к двум вариантам:\n\n* Робот — это автономное, программируемое, программно-аппаратное решение с набором датчиков и исполнительных механизмов;\n* Робот — это управляемый набор программно-аппаратных компонент, осуществляющий различные производственные и иные операции.\n\nВ первом случае основной упор делается на разработку и программирование автономной робототехнической модели, например, для решения олимпиадных задач, во втором — на подробное изучение функциональных возможностей отдельных программно-аппаратных компонент, представленное в иностранных образовательных заведениях, как STEM-направление[1].\n\n=== Программно-аппаратные средства ===\nДанный доклад посвящён разбору возможностей и ограничений средств разработки для программирования роботов в рамках первого подхода. При этом одну из важнейших функций играет поддержка средой разработки возможности программирования той или иной робототехнической платформы через различные проводные и беспроводные интерфейсы. \nСтандартом де-факто, в качестве такой платформы в задачах олимпиадного робототехнического программирования, на текущий момент является конструктор Lego Mindstorms EV3[2]. \nВ качестве свободной, недорогой альтернативы ему представлены различные решения на базе платформы Arduino[3], которая включает в себя открытую аппаратную платформу для различных типов микроконтроллеров и среду разработки, позволяющую выполнять прошивку этих микроконтроллеров через стандартный USB-интерфейс.\n\nВ силу открытости платформы Arduino крупные компании самостоятельно реализуют для неё поддержку своих отладочных плат — Edisson[4] от Intel, LaunchPad[5] от Texas Instruments, ESP8266[6] от 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[7] — сборка на базе 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[8] с возможностью прошивки контроллеров через плагин для браузера.\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\n\n* Discuss on Facebook \n* Discuss on VK \n
  1. U.S. Department of Education, Science, Technology, Engineering and Math: Education for Global Leadership, 2015, ed.gov
  2. Л. Ю. Овсяницкая, Д. Н. Овсяницкий, А. Д. Овсяницкий, Курс программирования робота EV3 в среде Lego Mindstorms EV3 / М.: Издательство «Перо», 2016.
  3. Arduino, Getting Started with Arduino and Genuino products, 2016, arduino.cc
  4. Stephanie Moyerman, Getting Started with Intel Edison Sensors, Actuators, Bluetooth, and Wi-Fi on the Tiny Atom-Powered Linux Module / Maker Media, Inc, 2015.
  5. Texas Instruments, Getting Started with Energia, 2016, energia.nu
  6. Neil Kolban, Kolban's Book on the ESP32 & ESP8266 / Leanpub, 2016.
  7. Ralph Hempel and David Lechner, Getting Started with ev3dev, 2016, ev3dev.org
  8. Alice Pintus, Sneak peek on the new, web-based Arduino Create, 2015, blog.arduino.cc
\n
Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017)!.jpg
\n\n

Plays:44   Comments:0 \n\n\n\n\n