Смотря на текущее разнообразие образовательной робототехники радуешься, что детям доступно огромное количество конструкторов, готовых изделий и что планка «входа» в основы программирования опустилась достаточно низко (вплоть до детского сада). Массово идет тенденция приобщения сначала к модульно-блочному программированию с переходом затем на более продвинутые языки. Но такая ситуация была не всегда.



2009-2010 года. Россия начала массово знакомиться с Arduino и Scratch. Доступная электроника и программирование начинают завоевывать умы как энтузиастов, так и преподавателей и идея все это соединить уже вовсю витала (а частично была реализована) в мировом инфопространстве.

На самом деле Scratch в релизнувшейся в это время версии 1.4 уже имел поддержку внешнего оборудования. В нем была заложена поддержка Lego WeDo (Motor blocks) и платы PicoBoard.

Но хотелось Arduino и роботов на ее основе, причем желательно работающих на базовой версии. В это же время один из японских ардуинщиков придумал как совместить платформы и выложил схематику (хотя и не всю и пришлось «додумывать») и прошивки на всеобщий доступ (но увы даже не на английском). Взяв за основу этот проект в 2010 году родился ScratchDuino (я тогда вместе с женой работал в компании ЛинуксЦентр).

Концепция «заменяемого картриджа» (не напоминает Micro:bit ?), магнитные крепления для компонентов робота и использование встроенных возможностей Scratch в части обработки сенсоров и управления моторами.





Робот изначально задумывался Lego-совместимым:



В 2011 году платформа увидела свет и (уже после ухода из проекта меня и моей жены в 2013 году) живет и развивается в текущий момент под именем РОББО.



Кто-то может возразить, что были же похожие проекты. Да, примерно в это же время начал развиваться проект S4A, но они были нацелены на программирование именно в стиле Arduino (с его цифровыми и аналоговыми выходами) из видоизмененного Scratch, тогда как моя разработка могла работать с «ванильной» версией (хотя мы также ее видоизменили, чтобы отобразить блоки именно для сенсоров от 1 до 4).

Потом появился Scratch 2.0 а с ним и начали появляться плагины как для Arduino, так и популярных роботов, а Scratch 3.0 из коробки поддерживает большое число робоплатформ.

Blockly. Если посмотреть на популярных роботов, вида MBot (который кстати вначале тоже использовал видоизмененный Scratch), то они программируются на блочном языке, но это не Scratch, а модифицированный Blockly от Google. Я не знаю, повлияло ли на его разработку моя, но точно могу сказать, что когда мы в 2013 году в Лондоне показывали разработчикам Blockly платформу Scratchduino, роботами там еще «не пахло».



Сейчас же Blockly модификации лежат в основе множества робототехнических конструкторов и учебных роботов и это уже другая история, так как за последнее время появилось (и также кануло в лету) огромное число проектов как в России, так и в мире. Но в РФ именно в Scratch-реализации и «противостоянии» Lego мы были первыми :)

Что же произошло после 2013 года. Мы с женой в 2014 году основали свой проект ПРОСТОРОБОТ (он же SIMPLEROBOT) и ушли в разработку настольных игр. Но Scratch нас не отпускает.

У нас есть интересные наработки по моделированию роботов в Scratch и его потомке Snap!
PDF файл с описанием можно скачать и использовать свободно по ссылке, а готовые проекты найти тут. Все работает и в 3 версии Scratch.

Также мы вернулись к программированию роботов на Scratch в нашей новой настольной обучающей игре «Битва Големов. Карточная лига Пароботов» и будем рады, если вы поддержите ее издание на Crowdrepublic.



Когда ты стоишь у истоков чего-то и «чувствуешь» тренды до их массового появления и радостно, что ты был первым и создал по сути рынок и грустно, что не тебе достались лавры победителя. Но могу гордо заявить, что сплав Scratch и Arduino в робототехнике РФ появился благодаря и моим стараниям.

Комментарии (11)


  1. nckma
    30.09.2019 10:23

    Подскажите пожалуйста, а где можно взять описание протоколов взаимодействия скратча 3 с роботами? Я когда-то интересовался скратчем еще 1.4 и тот протокол я как-то расколол, но и там все было не очень хорошо — только один мотор и было направление вращения и мощность. Чтобы двумя моторами управлять приходилось всячески исхитряться.
    Далее уже у скретча 2 столкнулся с тем, что протоколы в основном закрытые, типа WeDo и т.д. Расколоть наверное можно если бы был хоть один робот в наличии.
    Пытался найти описание протокола хоть одной платформы чтобы сделать своего совместимого робота, но что-то не нашел.


    1. rstepanov
      30.09.2019 10:38

      Зачем там что-то расковыривать?  mBot на чистом C++ программируется, библиотеки все открыты, если нужен — могу своего продать.


      1. nckma
        30.09.2019 11:26

        Честно говоря я уже запутался в разных версиях Scratch, Makeblock, Blockly и прочих программах, которые похожи как близнецы братья, но у каждого свои нюансы. Вообще это все похоже на зоопарк несовместимых решений. Это еще со скратча 1.4 пошло, который никаких моторов вообще не поддерживал, но была кака-то сборка от японца, который добавил один мотор.
        Вот к примеру упомянутый Вами mBot — он для чего именно, для какой программы и для какой именно платформы?
        На гитхабе нашел только вот это github.com/Makeblock-official/mBot
        Но куда это применять и с чем сопрягать?


        1. rstepanov
          30.09.2019 11:36

          Вот это по ссылке с гитхаба, что вы нашли, заливается во все mBot на заводе с помощью Arduino IDE и позволяет роботу реагировать на команды вот этого приложения: play.google.com/store/apps/details?id=cc.makeblock.makeblock&hl=en_US

          Если хотите писать свой код — два варианта, либо взять за основу «дефолтное» приложение и переписать логику, либо (вариант для детей) — ide.makeblock.com/#. Оффлайн вариант тоже есть, тут ссылка чтобы скачать: www.mblock.cc/en-us


        1. akdengi Автор
          30.09.2019 11:40

          В Scratch это работает по принципу: скратч-плагин посылает через порт (обычно виртуальный COM) команды на Арудину. А на ней скетчем ловим и отрабатываем.


        1. akdengi Автор
          30.09.2019 11:46

          Можно вот этот код поковырять
          github.com/robboworld/robboscratch


    1. akdengi Автор
      30.09.2019 11:01

      Так как я сейчас увы уже отошел от разработки железок, могу посоветовать отсюда начать: scratch.mit.edu/discuss/48

      Можно поковырять к примеру как сделан этот плагин robotical.io/blog/article/8/Marty%20Scratch%203%20Extension%20-%20beta


      1. nckma
        30.09.2019 11:31

        Спасибо, посмотрю.


  1. shperkh
    30.09.2019 14:01

    Так как тут увжаемые программисты начали поливать визуальный подход к программированию роботов с точки зрения «зачем делать просто, когда можно научить сразу сложно и по-настоящему», вставлю свои пять копеек.
    Появление Scratch в 2007 году перевернуло представление о преподавании программирования для детей. Прежде всего тем, что понизился входной уровень, программировать стали совсем малыши ( в Америке — трудные подростки в клубах).
    Педагогическая модель Scratch, основанная на идеях Пейперта, позволила на базе Scratch создать немало методик и педагогических инструментов.
    Распространение Scratch на управление роботом, по сути, вдыхала новую жизнь в идеи Пейперта о «киберчерепашке».
    Собственно, появившаяся ScratchDuino и было такой реинкарнацией киберчерепашки.
    Мне, на самом деле очень жаль, что развитие ScratchDuino пошло по пути робототехники — РОББО позиционировался как робототехнический конструктор, обучающий программировать роботов (что является некоторой натяжкой, ибо роботом ScratcDuino, естественно, является, но в очень урезанном варианте), вместо того, чтобы пойти в сторону программирования — программирования мультиагентных систем, в сторону дифференцильной геометрии черепашки и т.п.
    И мне лично очень жаль, что в какой-то момент из разработки были исключены педагоги.
    Впрочем, то, что получилось (я имею в виду современный проект РОББО) — один из лучших образовательных проектов в этой области


  1. scratch_book
    30.09.2019 16:44

    А мне сейчас micro:bit нравится. Скоро к своим курсам по детскому программированию codim.online добавлю курс по программированию роботов на микробите.


    1. akdengi Автор
      30.09.2019 16:45

      Но первый все равно я сделал картридж с микроконтроллером ;) А потом уже Micro:Bit. Мне тоже он нравится, только вот все не возьмусь приобрести и поиграться.