
В нашем постиндустриальном обществе в первую очередь ценятся: уровень образования, обучаемость, профессионализм и способность творческого подхода в решении задач. Так как большинство современных профессий, в той или иной мере, связано с компьютерной техникой и автоматикой, то вполне логично, что при обучении детей особое внимание необходимо уделять компьютерной грамотности. При должном подходе к обучению и интересе, со стороны ребенка, стоит обратиться к углубленному изучению информационных технологий и программированию в частности.
С каждым годом возможности компьютерной техники непрерывно растут и даже взрослому тяжело обучаться программированию, что же говорить о детях? Как их к привлечь к программированию? Давайте разбираться в этом.
У большинства людей, когда они слышат слово - программист, перед мысленным взором сразу же возникает образ быстропечатающего человека, сидящего перед экраном монитора по которому пробегает множество непонятных букв и символов. Но это только отчасти правда. Действительн��, даже не большая программа может занимать несколько десятков печатных страниц кода. Но программирование это не всегда рутина, особенно заметно на этапе обучения.
Давайте подумаем как обычно можно заинтересовать ребенка какой-либо профессией? Конечно же через игры и игрушки, соответствующие изучаемой профессии. Если для обычных профессий вполне подойдут конструкторы или наборы инструментов, то при обучении программированию без компьютера и специализированных программам практически не обойтись.
Давайте найдем специализированные программы, применяемые для обучения детей программированию.
Scratch
Одним из лучших инструментов для обучения детей и подростков программированию считается Scratch (Скретч) — визуальная событийно-ориентированная среда программирования. Он появился в 2007 году и завоевал миллионы поклонников по всему миру. Скретч специально разработан для обучения программированию. Однако в первую очередь он ориентирован на создание визуальных проектов в самом приложении. Например, интерактивных видео и игр. В части управления роботами и программирования конструкторов приложение поддерживает исключительно конструкторы Lego и micro:bit.
Однако наиболее популярной базой, для большинства роботизированных конструкторов, является Arduino и ардуино-совместимые платы. Поэтому нам нужно найти универсальную среду программирования или хотябы совместимую с Arduino платами.
Scratch for Arduino (S4A)
Scratch for Arduino, или как чаще ее называют S4A - модификация среды Скретч позволяющая работать с платами ардуино. Давайте найдем и изучим ее.
Прямых ссылок с официального сайта Скретч на нее нет. Идем в поиск. По запросу «S4A» поисковик уверено выдает нам сайт s4a.cat.

Изучение сайта наводит на мысль о его заброшенности: версия сайта 2015 года, последняя статья выложена в феврале 2016, версия программы для Windows датирована концом 2014 года.
Установка и запуск
На сайте предлагаются версии программы для:
Win OS (версия 1.6);
Mac OS (версия 1.6);
Linux (Debian) (версия 1.6);
Linux (Fedora) (версия 1.5);
Raspbian (Debian для RaspberryPi) (версия 1.5).
Архив занимает 27МБ, а после установки программа займет 53МБ дискового пространства.

Для привязки платы к программе потребуется установить Arduino IDE и загрузить на плату скетч S4AFirmware16.ino (размещен на сайте). S4A переведена на 40 языков, в том числе и на русский. Имеет простой и понятный дизайн с минимальным функционалом. Программа не имеет дополнительных библиотек с блоками управления. Однако есть библиотеки примеров, звуков и спрайтов низкого качества.
Программа работает только в онлайн режиме, то есть скетч выполняется на компьютере, а Ардуино выполняет посылаемые ей команды. Это означает, что записать программу на плату и использовать ее в автономном режиме не выйдет.
Однако, S4A не всегда корректно ведет себя при работе с неоригинальными платами.
Snap4Arduino
Если Скретч – разработка массачусетского технологического института, то Snap! (или BYOB) – это его модификация выполненная Университетом Беркли. Ключевым нововведением стало добавление в программу возможности создания пользовательских блоков. Это позволило разработать сообществом множество библиотек для управления различными модулями и платами.
По запросу «Snap4Arduino» и нам выдает ссылку на сайт snap4arduino.rocks.

Этот сайт выглядит свежее. Однако здесь язык сайта также только английский, но найти ссылки на скачивание программы, примеры и форум сообщества не составляет сложности.
Актуальная версия программы на сайте 6.2 от 09.01.2020.
К установке предлагаются версии для:
Windows (32-bit и 64-bit);
Mac OSX (64-bit);;
GNU/Linux (32-bit и 64-bit);
портативная версия для Windows;
плагин для Chrome и Chromium.
Мобильная версия для Android представлена «сырым» дистрибутивом и его разработка временно приостановлена.
Установка и запуск
Установка не примечательна и заострять внимание на ней нет смысла. Дистрибутив для 64-битной версии Windows «весит» 163МБ до установки и 350МБ – после.
Для работы с программой нам понадобится плата с встроенной прошивкой от Firmata. Если такой нет, то придётся воспользоваться Arduino IDE для загрузки прошивки в плату. Для этого скачиваем и устанавливаем программу с официального сайта www.arduino.cc. По окончании установки подключаемся выбрав в соответствующем меню тип платы и порт.

Далее открываем вкладку «Library Manager» или проходим в меню Tools – Manage Libraries… Набираем в поиске Firmata и устанавливаем библиотеку «Firmata by Firmata Developers».

Теперь во вкладке «Уроки» находим нужный скетч: File → Examples → Firmata → StandardFirmata

Открывшийся скетч загружаем в нашу Arduino-плату и по окончанию установки открываем установленный ранее Snap4Arduino. Выбираем вкладку "Arduino", кликаем по кнопке "Подключится к Arduino" и выбираем порт. Если все прошло успешно, то вы увидите соответствующие уведомления.

Для проверки работоспособности пишем простую программу мерцания встроенным светодиодом, расположенном на 13 пине нашей платы.

Нажимаем на зеленый флажок и наблюдаем работу скетча.

Все отлично работает.
К особенностям работы с Snap4Arduino можно отнести:
поддержка работы платы только в online-режиме;
возможность замедления работы выполнения скетча, что позволяет отследить работу программы и выявить наличие ошибок;
возможность сохранения скетча как в облаке, так и на ПК;
возможность копирования как одного, так и нескольких блоков скетча;
есть несколько примеров программ для работы с сенсорами и графикой.
Также в программу включено множество библиотек с блоками для:
итерационных и композиционных вычислений;
работы со списками, текстом, музыкой и координатами;
работы с базами данных, диаграммами и анимацией;
частотными распределениями, веб-сервисами (https) и другие.
К сожалению программа не имеет офлайн режима, дополнительные блоки не русифицированы, а графический интерфейс давно не обновлялся и выглядит скудно. Меню программы не интуитивно и часть настроек не ясна.
Однако множество учебников, примеров и иной обучающей информации делают Snap4Arduino достаточно привлекательной платформой. При этом программа поддерживает работу с платами SP8266 и NodeMCU, а также Picaxe, micro:bit, Lego WeDo, Boost и ряд других конструкторов.
Программа вполне подойдет для дистанционного управления ардуино-совместимыми роботами, конструкторами и собственными проектами на их базе.
МакеBlock
Заглянем на официальный сайт mBlock.

Сайт производит более приятное впечатление. Отличный дизайн в спокойном детском стиле. Присутствует анимация. Отдельно стоит отметить возможность выбора языка сайта. Доступны английский, китайский и японский языки.
Здесь также найти вкладки «Download» и «Community» не затруднительно.

Установка и запуск
Авторы предлагают к установке следующие варианты дистрибутивов:
Win OS (для версий Windows 7 - Windows 10 (64-bit);
Mac OS (версия 10.12 и старше);
веб-версия (для работы с ней требуется предварительная установка драйвера mLink);
версия для Chromebooks;
Windows XP;
для мобильных устройств (для Android 6.0 и выше (только ARM) и iOS 10.0 и выше).
Последняя версия программы для Windows - 5.3.5 от 18.06.2021 занимает 250МБ, а после установки - 888МБ.
При установке программы нам предлагают установить драйвер, для поддержки плат на базе контроллеров CH340/CH341.

mBlock предлагает набор библиотек для почти 150 видов плат, конструкторов и роботов. По умолчанию установлено расширение для приставки CyberPi, но можно ее удалить и добавить ту или иную плату из множества доступных.
В программе доступны к выбору один из 27 языков, в том числе и русский. Многие, наиболее популярные, библиотеки полностью переведены на русский. Остальные - на английском и китайском языках.
Ключевой особенностью mBlock является возможность работать с платами в двух режимах: онлайн – «Жить» и офлайн – «Загрузить в». Для работы в онлайн-режиме программе требуется установки прошивки (скетча) на плату, однако эта процедура выполняется без необходимости установки Arduino IDE.
Подключаем плату к компьютеру через USB кабель. Выбираем порт. При этом появляется желтая кнопка: «Обновление». После нажатия которой нам предлагается обновить прошивку на плате, т.е. загрузить на нее управляющий скетч.

После загрузки скетча повторно подключаем нашу плату и проверяем ее работу.
В режиме «Жить» пишем простую программу мерцания встроенным на плате светодиодом. Затем нажимаем кнопку «Загрузить», внизу экрана, и любуемся результатом.
Особенности работы с mBlock:
отличный дизайн;
отсутствие необходимости установки Arduino IDE;
возможность копирования нескольких блоков скетча (выбранного и последующих за ним);
возможность программирования как блоками, так и в классическом виде;
возможность просмотра составленной блоками программы в формате языка С (только режим «Загрузить в»);
возможность сохранения скетча как в облаке, так и на ПК;
комментарии к блокам;
большая база примеров и расширений.
ArduBlock
Еще один представитель программ блочного программирования ArduBlock. Разработана российским инженером программистом Петровым В.Н. Программа абсолютно бесплатна, имеется сообщество в ВК, Instagramm и канал на YouTube. Автор активен: выкладывает уроки и обеспечивает поддержку.
Переходим на официальный сайт:

Сайт выполнен в традиционных цветах ардуино. Предлагается два языка на выбор: русский и английский.
Здесь же автором размещено: справка, ссылки на модули (Aliexpress) и его же учебники.
Установка и запуск
К установке предлагаются варианты дистрибутивов:
Windows 8…10;
Mac OS;
веб-версия.
Актуальная версия программы 2.0. По ссылке на WinOS версию скачивается архив на 262МБ в котором включены все необходимые программы:
Arduino IDE 1.8.5;
драйвер CH341SER, для китайских плат;
скрипт Elevate для соединения ArduBlock с Arduino IDE;
сама программа ArduBlock.
Последовательность установки описана в текстовом файле находящимся в скачиваемом архиве. Сама программа ArduBlock не требует установки и замает 400МБ дискового пространства. Взглянем на ее.

Из особенностей стоит отметить:
приятный дизайн;
простое меню;
полная русификация программы;
справка для каждого блока со схемами и маркой подключаемого модуля;
монитор порта;
отображение кода программы с возможностью его сохранения в формате *.ino.
К недостаткам:
отсутствие спрайтов и работы с графикой в программе;
отсутствие примеров;
работа с платами только в офлайн режиме;
поддержка только плат Arduino.
ВЫВОДЫ
Родоначальником всех рассмотренных нами программ является Scratch и хотя, на первый взгляд, все они достаточно похожи все же давайте составим сводную таблицу из их ключевых особенностей, а затем дадим общую оценку каждой программе.
| S4A | Snap4Arduino | mBlock | ArduBlock |
Язык сайта | Английский | Английский | Английский, китайский, японский | Русский, английский |
Язык программы (в том числе русский), шт. | 40 | 44 | 27 | 2 |
Справка по работе с программой | Английский | Английский | Английский | Русский, английский |
Необходимость установки Arduino IDE | Да | Да | - | Да |
Формат работы с платой | Прямое управление | Прямое управление | Загрузка скетча /Прямое управление | Загрузка скетча |
Возможность программирования роботов и конструкторов | Только на базе Ардуино | Да | Да | Только на базе Ардуино |
Возможность работы со спрайтами/графикой | Да | Да | Да | Нет |
Поддержка устройств: |
|
|
|
|
Хранение скетчей: | ПК | Облако / ПК | Облако / ПК | ПК |
Отображение скетча на языке С | - | - | Да | Да |
Формат файлов | *.sb, *.arduinosprite | *.xml | *.mblock, *.json, *.sb2, *.sb3 | *.ardublock, *.ino |
Функция снимка экрана | Да (*.gif) | Да (*.png) | Да (*.png) | Да (*.png) |
Пошаговое выполнение программы | Да | Да | - | - |
Копирование нескольких блоков | Да | Да | Да | - |
Комментарии | - | - | Да | Да |
Наличие примеров | Да | Да | Да | - |
Подведем итоги.
S4A – хоть и устарела, но не теряет своей актуальности. Преимуществом станет – малый размер, полный русский перевод, огромное комьюнити, множество текстовой и видео информации по программированию. Минимальный функционал достаточен для начального обучения.
Snap4Arduino – практически идентична S4A, но обладающая: большей базой библиотек, что позволяет программировать устройства на различных платформах. Спрайты и звук более высокого качества Поддерживает множество устройств, помимо ардуино.
Обе программы обладают возможностью создания визуальных проектов, и онлайн взаимодействия с платами. Однако для проектирования самостоятельно работающих проектов данные программы не подойдут. Также нет возможности представления программы с классическом текстовом виде.
mBlock больше подходит для начального обучения программированию. Связано это в первую очередь с тем, что здесь есть:
поддержка около 150 видов плат, конструкторов и роботов;
поддержка операционных систем Win, Мас, Linux, iOC и Android;
возможность онлайн и офлайн программирования конструкторов;
перевод основных библиотек и блоков на русский;
большая база фонов, спрайтов и звуков;
возможность отображения программы на языке С.
Однако стоит помнить, что при совместном использовании графики и внешней платы программу придётся делить на части и размешать их в отдельных окнах. Отдельно для устройства, персонажа и фона. При этом обеспечить связи между ними через блоки событий.
ArduBlock стоит немного в стороне от своих собратьев. Его неоспоримым преимуществом являются:
полностью русский интерфейс и справка;
простой и удобный интерфейс;
оригинальный дизайн блоков и их функционал;
возможность отображения программы на языке С и сохранения в формате *.ino;
возможность онлайн и офлайн программирования плат.
Однако отсутствие возможности создания визуальных проектов однозначно подымает возраст вхождения минимум до 10-12 лет.
Спасибо за прочтение.
Ссылки на официальные сайты программ:
Конструктор брался здесь.
