Программирование Arduino с помощью ArduBloсk на примере робота, движущегося по полосе spikeal's blog / 08.01.2015 Здравствуйте! Я Аликин Александр Сергеевич, педагог дополнительного образования, веду кружки «Робототехники» и «Радиотехники» в ЦДТ г. Лабинска и хотел бы немного рассказать об упрощенном способе программирования Arduino с помощью программы «ArduBloсk». Эту программу я ввел в образовательный процесс и восхищен результатом, у детей она пользуется особым спросом, особенно при написании простейших программ или для создания какого то начального этапа сложных программ. ArduBloсk является графической средой программирования, т. е. все действия выполняются с нарисованными картинками с подписанными действиями на русском языке, что в разы упрощает изучение платформы Arduino. Дети уже со 2-го класса с легкостью осваивают работу с Arduino благодаря этой программе. Да, кто-то может сказать, что еще существует Scratch и он тоже очень простая графическая среда для программирования Arduino. Но Scratch не прошивает Arduino, а всего лишь управляет им по средствам USB кабеля, т. е. получается Arduino зависим от компьютера и не может работать автономно. При создании собственных проектов, автономность для Arduino - это главное, особенно при создании роботизированных устройств.Даже всеми известные роботы LEGO, такие как NXT или EV3, нашим ученикам уже не так интересны с появлением в программировании Arduino программы ArduBloсk. Еще Arduino намного дешевле любых конструкторов LEGO и многие компоненты можно просто взять от старой бытовой электронной техники. Программа ArduBloсk поможет в работе не только начинающим, но и активным пользователям платформы Arduino. Итак, что же такое ArduBloсk? Как я уже говорил, это графическая среда программирования и практически полностью переведена на русский язык. Но в ArduBloсk изюминка ни только это, а то, что написанную нами программу ArduBloсk конвертирует в код Arduino IDE. Эта программа встраивается в среду программирования Arduino IDE, т. е. это плагин. Ниже приведен пример мигающего светодиода и конвертированной программы в Arduino IDE. Вся работа с программой очень проста, и разобраться в ней сможет любой школьник.В результате работы в программе можно не только программировать Arduino, но и изучать непонятные нам команды в текстовом формате Arduino IDE, ну, а если же «лень» писать стандартные команды - стоит быстрыми манипуляциями мышкой набросать простенькую программку в ArduBlok, а в Arduino IDE её отладить.Чтобы установить ArduBlok - необходимо для начала загрузить и установить Arduino IDE с официального сайта Arduino http://arduino.ru и разобраться с настройками при работе с платой Arduino UNO. Описано как это сделать на том же сайте или же http://wiki.amperka.ru либо посмотреть на просторах YouTube. Ну, а когда разобрались со всем этим, необходимо скачать ArduBlok с официального сайта - вот ссылка. Последние версии скачивать не рекомендую, для начинающих они очень сложны, а вот версия от 2013-07-12 самое то, этот файл там самый популярный. Затем, скачанный файл переименовываем в ardublock-all в папке «документы». Создаем следующие папки: Arduino > tools > ArduBlockTool > tool и в последнею кидаем скачанный и переименованный файл. ArduBlok работает на всех операционных системах, даже на Linux, проверял сам лично на XP, Win7, Win8, все примеры для Win7. Установка программы для всех систем одинакова.Ну, а если проще, я приготовил на Mail-диске 7z архив, распаковав который, найдете 2 папки. В одной - уже рабочая программа Arduino IDE, не требующая установки, а в другой папке - содержимое необходимо отправить в папку документы, вот ссылка.Для того, чтобы работать в ArduBlok, необходимо запустить Arduino IDE. После чего заходим во вкладку Инструменты и там находим пункт ArduBlok, нажимаем на него, и вот она, наша цель.Теперь давайте разберемся с интерфейсом программы. Как вы уже поняли, настроек в ней нет, а вот значков для программирования предостаточно и каждый из них несет за собой команду в текстовом формате Arduino IDE. В новых версиях значков еще больше, поэтому разобраться с ArduBlok последней версии сложно и некоторые из значков не переведены на русский.В разделе «Управление» мы найдем разнообразные циклы.В разделе «Порты» мы можем с вами управлять значениями портов, а также подключенными к ним звукоизлучателя, сервомашинки или ультразвукового датчика приближения.В разделе «Числа/Константы» мы можем с вами выбрать цифровые значения или создать переменную, а вот то, что ниже, вряд ли будете использовать.В разделе «Операторы» мы с вами найдем все необходимые операторы сравнения и вычисления.В разделе «Утилиты» в основном используются значки со временем. «TinkerKit Bloks» - это раздел для приобретенных датчиков комплекта TinkerKit. Такого комплекта у нас, конечно же, нет, но это не значит, что для других наборов значки не подойдут, а даже наоборот, ребятам очень удобно использовать такие значки, как включения светодиода или кнопка. Эти знаки используются практически во всех программах. Но у них есть особенность: при их выборе стоят неверные значки, обозначающие порты, поэтому их необходимо удалить и подставить значок из раздела «числа/константы» самый верхний в списке.«DF Robot» - этот раздел используется при наличии указанных в нем датчиков, они иногда встречаются. И наш сегодняшний пример не исключение, мы имеем «Регулируемый ИК выключатель» и «Датчик линии». «Датчик линии» отличается от того, что на картинке, так как он от фирмы Амперка. Действия их идентичны, но датчик от Амперки намного лучше, так как в нем имеется регулятор чувствительности.«Seeedstudio Grove» - датчики этого раздела мной ни разу не использовались, хотя тут только джойстики. В новых версиях этот раздел расширен.И последний раздел это «Linker Kit». Датчики, представленные в нем, мне не попадались.Хочется показать пример программы на роботе, двигающимся по полосе. Робот очень прост, как в сборке, так и в приобретении, но обо всем по порядку. Начнем с его приобретения и сборки.Вот сам набор деталей все было приобретено на сайте http://amperka.ru/. AMP-B001 Motor Shield (2 канала, 2 А) - 1шт. AMP-B017 Troyka Shield - 1шт. AMP-X053 Батарейный отсек 3×2 AA - 1шт. AMP-B018 Датчик линии цифровой - 2шт. ROB0049 Двухколёсная платформа miniQ - 1шт. SEN0019 Инфракрасный датчик препятствий - 1шт. FIT0032 Крепление для инфракрасного датчика препятствий - 1шт. A000066 Arduino Uno - 1шт. Для начала соберем колесную платформу и припаяем к двигателям провода.Затем установим стойки для крепления платы Arduino UNO, которые были взяты от старой материнской платы, ну, или иные подобные крепления.Затем крепим на эти стойки плату Arduino UNO, но один болтик прикрутить не получится - разъемы мешают. Можно, конечно, их выпаять, но это уже на ваше усмотрение.Следующим этапом крепим инфракрасный датчик препятствий на его специальное крепление. Обратите внимание, что регулятор чувствительности находится сверху, это для удобства регулировки.Теперь устанавливаем цифровые датчики линии, тут придется поискать пару болтиков и 4 гайки к ним. Две гайки устанавливаем между самой платформой и датчиком линии, а остальными фиксируем датчики. Следующим устанавливаем Motor Shield или по-другому можно назвать драйвер двигателей. В нашем случае обратите внимание на джампер. Мы не будем использовать отдельное питание для двигателей, поэтому он установлен в этом положение Нижняя часть заклеивается изолентой, это чтобы не было случайных замыканий от USB разъема Arduino UNO - на всякий случай.Сверху Motor Shield устанавливаем Troyka Shield. Он необходим для удобства соединения датчиков. Все используемые нами сенсоры цифровые, поэтому датчики линии подключены к 8 и 9 порту, как их еще называют пины, а инфракрасный датчик препятствий подключен к 12 порту. Обязательно обратите внимание, что нельзя использовать порты 4, 5, 6, 7 так как они используются Motor Shield для управлением двигателями. Я эти порты даже специально закрасил красным маркером, чтобы ученики разобрались.Если вы уже обратили внимание, мной была добавлена черная втулка, - это на всякий случай, чтобы установленный нами батарейный отсек не вылетел. И наконец, всю конструкцию мы фиксируем обычной резинкой.Подключения батарейного отсека может быть 2-х видов. Первый - подключение проводов к Troyka Shield. Также возможно подпаять штекер питания и подключать уже к самой плате Arduino UNO.Вот наш робот готов. Перед тем, как начать программировать, надо будет изучить, как все работает, а именно:-Моторы:порт 4 и 5 используются для управления одним мотором, а 6 и 7 другим скоростью вращения двигателей мы регулируя ШИМом на портах 5 и 6вперед или назад подавая сигналы на порты 4 и 7-Датчики у нас все цифровые, поэтому дают логические сигналы в виде 1 либо 0А чтобы их отрегулировать, в них предусмотрены специальные регуляторы, которые при помощи подходящей отвертки можно откалибровать.Подробности можно узнать http://wiki.amperka.ru.Ну что ж, мы, пожалуй, все просмотрели поверхностно, изучили и, конечно же, собрали робота. Теперь его необходимо запрограммировать, вот она, долгожданная программа! И программа, конвертированная в Arduino IDE:В заключение хочу сказать, что эта программа просто находка для образования, даже для самообучения. Она поможет изучить команды Arduino IDE. Но если будет более 50 значков установки (иногда меньше), она начинает «глючить». Да, действительно, это изюминка, так как постоянное программирование только на ArduBlok не обучит вас программированию в Arduino IDE. Так называемый «глюк» дает возможность задумываться и стараться запоминать команды для точной отладки программ. Желаю успехов. Да, и вот видео робота. ArduBloсk arduino АрдуБлок Ардуино образование программирование робототехника