Визуальное программирование для детей. Выбираем платформу обучения
В нашем постиндустриальном обществе в первую очередь ценятся: уровень образования, обучаемость, профессионализм и способность творческого подхода в решении задач. Так как большинство современных профессий, в той или иной мере, связано с компьютерной техникой и автоматикой, то вполне логично, что при обучении детей особое внимание необходимо уделять компьютерной грамотности. При должном подходе к обучению и интересе, со стороны ребенка, стоит обратиться к углубленному изучению информационных технологий и программированию в частности.
С каждым годом возможности компьютерной техники непрерывно растут и даже взрослому тяжело обучаться программированию, что же говорить о детях? Как их к привлечь к программированию? Давайте разбираться в этом.
У большинства людей, когда они слышат слово — программист, перед мысленным взором сразу же возникает образ быстропечатающего человека, сидящего перед экраном монитора по которому пробегает множество непонятных букв и символов. Но это только отчасти правда. Действительно, даже не большая программа может занимать несколько десятков печатных страниц кода. Но программирование это не всегда рутина, особенно заметно на этапе обучения.
Давайте подумаем как обычно можно заинтересовать ребенка какой-либо профессией? Конечно же через игры и игрушки, соответствующие изучаемой профессии. Если для обычных профессий вполне подойдут конструкторы или наборы инструментов, то при обучении программированию без компьютера и специализированных программам практически не обойтись.
Давайте найдем специализированные программы, применяемые для обучения детей программированию.
Scratch
Одним из лучших инструментов для обучения детей и подростков программированию считается Scratch (Скретч) — визуальная событийно-ориентированная среда программирования. Он появился в 2007 году и завоевал миллионы поклонников по всему миру. Скретч специально разработан для обучения программированию. Однако в первую очередь он ориентирован на создание визуальных проектов в самом приложении. Например, интерактивных видео и игр. В части управления роботами и программирования конструкторов приложение поддерживает исключительно конструкторы Lego и micro: bit.
Однако наиболее популярной базой, для большинства роботизированных конструкторов, является Arduino и ардуино-совместимые платы. Поэтому нам нужно найти универсальную среду программирования или хотябы совместимую с Arduino платами.
Scratch for Arduino (S4A)
Scratch for Arduino, или как чаще ее называют S4A — модификация среды Скретч позволяющая работать с платами ардуино. Давайте найдем и изучим ее.
Прямых ссылок с официального сайта Скретч на нее нет. Идем в поиск. По запросу «S4A» поисковик уверено выдает нам сайт s4a.cat.
Официальная страница Scratch for Arduino (S4A).
Изучение сайта наводит на мысль о его заброшенности: версия сайта 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МБ дискового пространства.
Интерфейс программы Scratch for Arduino (S4A).
Для привязки платы к программе потребуется установить Arduino IDE и загрузить на плату скетч S4AFirmware16.ino (размещен на сайте). S4A переведена на 40 языков, в том числе и на русский. Имеет простой и понятный дизайн с минимальным функционалом. Программа не имеет дополнительных библиотек с блоками управления. Однако есть библиотеки примеров, звуков и спрайтов низкого качества.
Программа работает только в онлайн режиме, то есть скетч выполняется на компьютере, а Ардуино выполняет посылаемые ей команды. Это означает, что записать программу на плату и использовать ее в автономном режиме не выйдет.
Однако, S4A не всегда корректно ведет себя при работе с неоригинальными платами.
Snap4Arduino
Если Скретч — разработка массачусетского технологического института, то Snap! (или BYOB) — это его модификация выполненная Университетом Беркли. Ключевым нововведением стало добавление в программу возможности создания пользовательских блоков. Это позволило разработать сообществом множество библиотек для управления различными модулями и платами.
По запросу «Snap4Arduino» и нам выдает ссылку на сайт snap4arduino.rocks.
Официальная страница Snap4Arduino.
Этот сайт выглядит свежее. Однако здесь язык сайта также только английский, но найти ссылки на скачивание программы, примеры и форум сообщества не составляет сложности.
Актуальная версия программы на сайте 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. По окончании установки подключаемся выбрав в соответствующем меню тип платы и порт.
Окно выбора типа платы и порта подключения. Программа Arduino IDE.
Далее открываем вкладку «Library Manager» или проходим в меню Tools — Manage Libraries… Набираем в поиске Firmata и устанавливаем библиотеку «Firmata by Firmata Developers».
Вкладка Library Manager. Программа Arduino IDE.
Теперь во вкладке «Уроки» находим нужный скетч: File → Examples → Firmata → StandardFirmata
Выбор скетча во вкладке «Уроки». Программа Arduino IDE.
Открывшийся скетч загружаем в нашу Arduino-плату и по окончанию установки открываем установленный ранее Snap4Arduino. Выбираем вкладку «Arduino», кликаем по кнопке «Подключится к Arduino» и выбираем порт. Если все прошло успешно, то вы увидите соответствующие уведомления.
Информационные окна. Программа Snap4Arduino.
Для проверки работоспособности пишем простую программу мерцания встроенным светодиодом, расположенном на 13 пине нашей платы.
Интерфейс программы Snap4Arduino.
Нажимаем на зеленый флажок и наблюдаем работу скетча.
Работа скетча на плате Arduino UNO.
Все отлично работает.
К особенностям работы с Snap4Arduino можно отнести:
поддержка работы платы только в online-режиме;
возможность замедления работы выполнения скетча, что позволяет отследить работу программы и выявить наличие ошибок;
возможность сохранения скетча как в облаке, так и на ПК;
возможность копирования как одного, так и нескольких блоков скетча;
есть несколько примеров программ для работы с сенсорами и графикой.
Также в программу включено множество библиотек с блоками для:
итерационных и композиционных вычислений;
работы со списками, текстом, музыкой и координатами;
работы с базами данных, диаграммами и анимацией;
частотными распределениями, веб-сервисами (https) и другие.
К сожалению программа не имеет офлайн режима, дополнительные блоки не русифицированы, а графический интерфейс давно не обновлялся и выглядит скудно. Меню программы не интуитивно и часть настроек не ясна.
Однако множество учебников, примеров и иной обучающей информации делают Snap4Arduino достаточно привлекательной платформой. При этом программа поддерживает работу с платами SP8266 и NodeMCU, а также Picaxe, micro: bit, Lego WeDo, Boost и ряд других конструкторов.
Программа вполне подойдет для дистанционного управления ардуино-совместимыми роботами, конструкторами и собственными проектами на их базе.
МакеBlock
Заглянем на официальный сайт mBlock.
Официальная страница МакеBlock (mBlock)
Сайт производит более приятное впечатление. Отличный дизайн в спокойном детском стиле. Присутствует анимация. Отдельно стоит отметить возможность выбора языка сайта. Доступны английский, китайский и японский языки.
Здесь также найти вкладки «Download» и «Community» не затруднительно.
Страница со ссылками на дистрибутивы программы mBlock.
Установка и запуск
Авторы предлагают к установке следующие варианты дистрибутивов:
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.
mBlock предлагает набор библиотек для почти 150 видов плат, конструкторов и роботов. По умолчанию установлено расширение для приставки CyberPi, но можно ее удалить и добавить ту или иную плату из множества доступных.
В программе доступны к выбору один из 27 языков, в том числе и русский. Многие, наиболее популярные, библиотеки полностью переведены на русский. Остальные — на английском и китайском языках.
Ключевой особенностью mBlock является возможность работать с платами в двух режимах: онлайн — «Жить» и офлайн — «Загрузить в». Для работы в онлайн-режиме программе требуется установки прошивки (скетча) на плату, однако эта процедура выполняется без необходимости установки Arduino IDE.
Подключаем плату к компьютеру через USB кабель. Выбираем порт. При этом появляется желтая кнопка: «Обновление». После нажатия которой нам предлагается обновить прошивку на плате, т.е. загрузить на нее управляющий скетч.
Информационные окна программы mBlock.
После загрузки скетча повторно подключаем нашу плату и проверяем ее работу.
В режиме «Жить» пишем простую программу мерцания встроенным на плате светодиодом. Затем нажимаем кнопку «Загрузить», внизу экрана, и любуемся результатом.
Особенности работы с mBlock:
отличный дизайн;
отсутствие необходимости установки Arduino IDE;
возможность копирования нескольких блоков скетча (выбранного и последующих за ним);
возможность программирования как блоками, так и в классическом виде;
возможность просмотра составленной блоками программы в формате языка С (только режим «Загрузить в»);
возможность сохранения скетча как в облаке, так и на ПК;
комментарии к блокам;
большая база примеров и расширений.
ArduBlock
Еще один представитель программ блочного программирования ArduBlock. Разработана российским инженером программистом Петровым В.Н. Программа абсолютно бесплатна, имеется сообщество в ВК, Instagramm и канал на YouTube. Автор активен: выкладывает уроки и обеспечивает поддержку.
Переходим на официальный сайт:
Официальная страница ArduBlock.
Сайт выполнен в традиционных цветах ардуино. Предлагается два языка на выбор: русский и английский.
Здесь же автором размещено: справка, ссылки на модули (Aliexpress) и его же учебники.
Установка и запуск
К установке предлагаются варианты дистрибутивов:
Windows 8…10;
Mac OS;
веб-версия.
Актуальная версия программы 2.0. По ссылке на WinOS версию скачивается архив на 262МБ в котором включены все необходимые программы:
Arduino IDE 1.8.5;
драйвер CH341SER, для китайских плат;
скрипт Elevate для соединения ArduBlock с Arduino IDE;
сама программа ArduBlock.
Последовательность установки описана в текстовом файле находящимся в скачиваемом архиве. Сама программа ArduBlock не требует установки и замает 400МБ дискового пространства. Взглянем на ее.
Интерфейс программы ArduBlock.
Из особенностей стоит отметить:
приятный дизайн;
простое меню;
полная русификация программы;
справка для каждого блока со схемами и маркой подключаемого модуля;
монитор порта;
отображение кода программы с возможностью его сохранения в формате *.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 лет.
Спасибо за прочтение.
Ссылки на официальные сайты программ:
Конструктор брался здесь.