ScratchDuino - новые горизонты с ArduBlock scar169 / 08.05.2015 Добрый день. Сегодня я несколько изменю порядок своих публикаций по использованию робоплатформы ScratchDuino и сейчас объясню почему... Дело в том, что несколько дней я обдумывал вопрос, как использовать ScratchDuino в качестве переходной платформы между модульно-визуальным программированием (Lego, Scratch) и непосредственно Arduino. Этот вопрос был озвучен при обсуждении возможностей создания УМК по роботехнике и места ScratchDuino в цепочке преподавания. Попробовал несколько вариантов и получил результат, который меня порадовал. Напомню, я совсем не специалист по роботехнике и Arduino, поэтому не удивляйтесь радости от маленьких открытий.Итак, не озвучивая неудачные эксперименты, перехожу к удачной серии. Соединяем возможности ScratchDuino и Arduino с помощью плагина ArduBlock.Для начала несколько слов о ArduBlock: специальный плагин визуального программирования для Arduino, позволяющий "собирать" программу в виде блоков (подобно Scratch, хоть и несколько сложнее в понимании работы) и имеющий очень важный плюс: возможность собранную в виде блоков программу, закачать в Arduino в виде нормального скетч-кода. Причем, после закачки в платформу, исполнение кода будет происходить автономно, т.е. не требуется непосредственное управление с компьютера по проводной или беспроводной связи!!!!!1. Где взять и как установить ArduBlockДля начала у Вас должна быть установлена собственно программа Arduino (я уже писал в первом посте о платформе), если что - ссылка на страницу загрузки.Теперь - плагин ArduBlock.Можно просто взять с основного сайта - страница загрузки.Причем, посмотрите на закачки: наиболее популярная версия от 2013-07-12, вот ее я и использовал для экспериментов. Возможно, кто-то присоединиться к исследованиям и попробует более новые версии, но по описаниям - там не полная русификация и т.д. Эта же вполне стабильно работает (на Windows точно, но и на Linux вроде как все в порядке, хотя последнее - пока по словам "очевидцев", сам не успел попробовать).Как устанавливать. - Скачиваете файл со страницы загрузки, переименовываете в ardublock-all.jar. - Затем в папке «Мои документы» создаем следующую структуру папок:...\Мои документы\Arduino\tools\ArduBlockTool\tool и уже в tool закидываем наш переименованный файл.Получается так:Все, больше ничего не требуется) Можно работать.Да, для "ленивых" сделал архив с файлом и структурой папок, можно скачать и прямо папку Arduino скопировать в Мои документы с заменой (там не заменится, там дополнится нужными элементами).2. Как запустить ArduBlockДля начала запускаем сам Arduino, заходим в меню Инструменты и там находим ArduBlock, его и выбираем.Открывается окно ArduBlock дополнительно к окну Arduino.Можем начинать программировать. Да, на всякий случай, в меню Arduino-Инструменты-Плата автоматом выбирается наш вариант Arduino Uno, а в Arduino-Инструменты-Порт можно посмотреть, к какому порту подключен робот.3. Пробуем написать программуПо использованию ArduBlock, как уже говорил, довольно много материалов в сети. Грешен, был настолько увлечен идеей привинтить плагин к ScratchDuino, что просто покопался в блоках, немного фантазии и "научного тыка" и все начало складываться. Как минимум, это свидетельствует о довольно высокой дружественности интерфейса. Поигрался с блоками, понял, как управлять моторами... Ну, и начали программировать):Для "преемственности" сформируем программу, решающую все ту же задачу с двумя световыми датчиками, реагирующими на освещение и разворачивающими робота к источнику света. Правда, несколько упростил, ну, да главное было проверить гипотезу.Световые датчики. Решил считать, что они соответствуют своим положениям в предыдущем случае, поэтому занимают порты Аналог 0 и Аналог 4 (несколько экспериментов подтвердили гипотезу). Моторные порты - 5 и 6 (опять же, можно читать мануал разработчиков платформы, но мы ж легкими путями не идем, а потому - проверка и определение))))Далее пришлось задуматься, как сравнивать данные с датчиков, нет привычных команд... Но зато есть переменные, которым можно присвоить значения с этих портов!Что получилось в итоге:В принципе там все понятно: присваиваем переменным svet1 и svet2 значения с датчиков. Далее проверяем, не падает ли на них световой поток (методом проб выяснил, что для текущего света в комнате подходит 500. В принципе, можно дополнить блоком, выводящим значения переменных, но это отдельная тема, на потом)))По прежнему (платформа та же, датчики почти одинаковые показания показывают при освещенности одинаковым светом) сравниваем поток на один и другой датчик и включаем тот или иной мотор, подавая на порты 5 и 6 сигнал 200 (тоже методом проб, 100 - медленно). Если нужной освещенности нет, подаем на моторы 0.А вот теперь самое главное!4. Как посмотреть код и залить его на платформу?Все очень просто. Для начала сохраним наше решение (кнопка Сохранить) в формате ArduBlock (это позволит потом запускать ее в модульном виде и продолжать работу с блоками).На всякий случай - наш пример в этом виде: AB1.zip ( 1.54 килобайт ) Кол-во скачиваний: 506Далее жмем кнопку Загрузить, система спрашивает, куда сохранить программу в виде скетча Arduino. и далее показывает нам код программы уже в окне Arduino, проходит компиляция, после чего скетч грузится на платформу.Далее наступает самое интересное. Во-первых - очень легко читается код и понимаешь, что здесь и где. Во-вторых, изменения можно вносить и в блочном варианте ArduBlock, но как-то сразу становится понятно, что намного проще это сделать прямо в коде, а затем нажать кнопку заливки и посмотреть, что получается. Например, после включения верхнего света в кабинете, пришлось быстро перенастроить датчики на порог в 700.Причем теперь мы можем просто сохранять файлы уже в виде скетчей. Обратите внимание - открыв файл формата ArduBlock (через плагин), мы получаем и модульную структуру, и код Arduino. Открыв скетч в Arduino - только код.Пример нашей программы уже в виде скетча: proba2motorssvet1.zip ( 554 байт ) Кол-во скачиваний: 303И, напоследок - гвоздь программы)))) Ведь мы "залили" на робота полнофункциональный скетч управления. Т.е. - отсоединяем от проводов, не включаем никаких блютусов, даже джамперы управления не трогаем. А он выполняет программу! Автономно.Да, единственный минус - теперь для обычного использования платформы со ScratchDuino надо вернуть на место ее управляющий скетч. Я на всякий случай выкладываю универсальный, хотя стоит проверять ftp-сервер разработчиков на предмет обновлений. sduino_laboratory_robot.zip ( 2.15 килобайт ) Кол-во скачиваний: 261Открываем его в Arduino и загружаем на платформу. Все, как было.В заключениеВозможно, кто-то не разделит моей радости от найденных решений))) Но для меня это открывает совершенно другой уровень использования платформы. Автономность, переход к кодированию, совершенно другой уровень работы с портами... Вот теперь я вижу место платформы в образовательном процессе)Ранее по теме:ScratchDuino. Робоплатформа на СПО. Установка ScratchDuino. Робоплатформа на СПО. Первый запуск ScratchDuino. Робоплатформа на СПО. Соединение по BluetoothScratchDuino. Робоплатформа на СПО. Датчик света ArduBlock Scratchduino arduino роботехника