Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

в 6:33, , рубрики: ArduBloсk, arduino, начинающие программисты, начинающим, образование, Программирование, программирование микроконтроллеров, робототехника, Электроника для начинающих

Здравствуйте! Я Аликин Александр Сергеевич, педагог дополнительного образования, веду кружки «Робототехника» и «Радиотехника» в ЦДЮТТ г. Лабинска. Хотел бы немного рассказать об упрощенном способе программирования Arduino с помощью программы «ArduBloсk».

image

Эту программу я ввел в образовательный процесс и восхищен результатом, у детей она пользуется особым спросом, особенно при написании простейших программ или для создания какого-то начального этапа сложных программ. 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. Вся работа с программой очень проста и разобраться в ней сможет любой школьник.

image

В результате работы на программе можно не только программировать Arduino, но и изучать непонятные нам команды в текстовом формате Arduino IDE, ну а если же «лень» писать стандартные команды — стоит быстрыми манипуляциями мышкой набросать простенькую программку в ArduBlok, а в Arduino IDE её отладить.

Чтобы установить ArduBlok, необходимо для начала загрузить и установить Arduino IDE с официального сайта Arduino и разобраться с настройками при работе с платой Arduino UNO. Как это сделать описано на том же сайте или же на Амперке, либо посмотреть на просторах YouTube. Ну, а когда со всем этим разобрались, необходимо скачать ArduBlok с официального сайта, вот ссылка. Последние версии скачивать не рекомендую, для начинающих они очень сложны, а вот версия от 2013-07-12 — самое то, этот файл там самый популярный.

Затем, скачанный файл переименовываем в ardublock-all и в папке «документы». Создаем следующие папки: Arduino > tools > ArduBlockTool > tool и в последнею кидаем скачанный и переименованный файл. ArduBlok работает на всех операционных системах, даже на Linux, проверял сам лично на XP, Win7, Win8, все примеры для Win7. Установка программы для всех систем одинакова.

image

Ну, а если проще, я приготовил на Mail-диске 7z архив, распаковав который найдете 2 папки. В одной уже рабочая программа Arduino IDE, а в другой папке содержимое необходимо отправить в папку документы.

Для того, чтобы работать в ArduBlok, необходимо запустить Arduino IDE. После чего заходим во вкладку Инструменты и там находим пункт ArduBlok, нажимаем на него — и вот она, цель наша.

image

Теперь давайте разберемся с интерфейсом программы. Как вы уже поняли, настроек в ней нет, а вот значков для программирования предостаточно и каждый из них несет за собой команду в текстовом формате Arduino IDE. В новых версиях значков еще больше, поэтому разобраться с ArduBlok последней версии сложно и некоторые из значков не переведены на русский.

image

В разделе «Управление» мы найдем разнообразные циклы.

image

В разделе «Порты» мы можем с вами управлять значениями портов, а также подключенными к ним звукоизлучателя, сервомашинки или ультразвукового датчика приближения.

image

В разделе «Числа/Константы» мы можем с вами выбрать цифровые значения или создать переменную, а вот то что ниже вряд ли будите использовать.

image

В разделе «Операторы» мы с вами найдем все необходимые операторы сравнения и вычисления.

image

В разделе «Утилиты» в основном используются значки со временем.

image

«TinkerKit Bloks»- это раздел для приобретенных датчиков комплекта TinkerKit. Такого комплекта у нас, конечно же, нет, но это не значит, что для других наборов значки не подойдут, даже наоборот — ребятам очень удобно использовать такие значки, как включения светодиода или кнопка. Эти знаки используются практически во всех программах. Но у них есть особенность — при их выборе стоят неверные значки обозначающие порты, поэтому их необходимо удалить и подставить значок из раздела «числа/константы» самый верхний в списке.

Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

«DF Robot» — этот раздел используется при наличии указанных в нем датчиков, они иногда встречаются. И наш сегодняшний пример — не исключение, мы имеем «Регулируемый ИК выключатель» и «Датчик линии». «Датчик линии» отличается от того, что на картинке, так как он от фирмы Амперка. Действия их идентичны, но датчик от Амперки намного лучше, так как в нем имеется регулятор чувствительности.

Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

«Seeedstudio Grove» — датчики этого раздела мной ни разу не использовались, хотя тут только джойстики. В новых версиях этот раздел расширен.

Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

И последний раздел это «Linker Kit». Датчики, представленные в нем, мне не попадались.

Хочется показать пример программы на роботе, двигающемся по полосе. Робот очень прост, как в сборке, так и в приобретении, но обо всем по порядку. Начнем с его приобретения и сборки.

Вот сам набор деталей все было приобретено на сайте Амперка.

Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

  1. AMP-B001 Motor Shield (2 канала, 2 А) 1 890 руб
  2. AMP-B017 Troyka Shield 1 690 руб
  3. AMP-X053 Батарейный отсек 3×2 AA 1 60 руб
  4. AMP-B018 Датчик линии цифровой 2 580 руб
  5. ROB0049 Двухколёсная платформа miniQ 1 1890 руб
  6. SEN0019 Инфракрасный датчик препятствий 1 390 руб
  7. FIT0032 Крепление для инфракрасного датчика препятствий 1 90 руб
  8. A000066 Arduino Uno 1 1150 руб

Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

Для начала соберем колесную платформу и припаяем к двигателям провода.

Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

Затем установим стойки, для крепления платы Arduino UNO, которые были взяты от старой материнской платы ну или иные подобные крепления.

Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

Затем крепим на эти стойки плату Arduino UNO, но один болтик прикрутить не получиться — разъемы мешают. Можно, конечно, их выпаять, но это уже на ваше усмотрение.

Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

Следующим крепим инфракрасный датчик препятствий на его специальное крепление. Обратите внимание, что регулятор чувствительности находиться сверху, это для удобства регулировки.

Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

Теперь устанавливаем цифровые датчики линии, тут придется поискать пару болтиков и 4 гайки к ним Две гайки устанавливаем между самой платформой и датчиком линии, а остальными фиксируем датчики.

Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

Следующим устанавливаем Motor Shield или по другому можно назвать драйвер двигателей. В нашем случае обратите внимание на джампер. Мы не будем использовать отдельное питание для двигателей, поэтому он установлен в этом положение. Нижняя часть заклеивается изолентой, это чтобы не было случайных замыканий от USB разъема Arduino UNO, это на всякий случай.

Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

Сверху Motor Shield устанавливаем Troyka Shield. Он необходим для удобства соединения датчиков. Все используемые нами сенсоры цифровые, поэтому датчики линии подключены к 8 и 9 порту, как их еще называют пины, а инфракрасный датчик препятствий подключен к 12 порту. Обязательно обратите внимание, что нельзя использовать порты 4, 5, 6, 7 так как оны используются Motor Shield для управлением двигателями. Я эти порты даже специально закрасил красным маркером, чтобы ученики разобрались.

Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

Если вы уже обратили внимание, мной была добавлена черная втулка, это на всякий случай, чтобы установленный нами батарейный отсек не вылетел. И наконец, всю конструкцию мы фиксируем обычной резинкой.

Подключения батарейного отсека может быть 2-х видов. Первый подключение проводов к Troyka Shield. Также возможно подпаять штекер питания и подключать уже к самой плате Arduino UNO.

Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

Вот наш робот готов. Перед тем как начать программировать, надо будет изучить, как все работает, а именно:
— Моторы:
Порт 4 и 5 используются для управления одним мотором, а 6 и 7 другим;
Скоростью вращения двигателей мы регулируя ШИМом на портах 5 и 6;
Вперед или назад, подавая сигналы на порты 4 и 7.
— Датчики:
У нас все цифровые, поэтому дают логические сигналы в виде 1 либо 0;
А что бы их отрегулировать, в них предусмотрены специальные регуляторы а при помощи подходящей отвертки их можно откалибровать.

Подробности можно узнать на Амперке. Почему тут? Потому что там очень много информации по работе с Arduino.

Ну что ж, мы, пожалуй, все просмотрели поверхностно, изучили и конечно же собрали робота. Теперь его необходимо запрограммировать, вот она — долгожданная программа!

Программирование Arduino с помощью ArduBloсk на примере робота движущегося по полосе

И программа конвертированная в Arduino IDE:

void setup()
{
pinMode( 8 , INPUT);
pinMode( 12 , INPUT);
pinMode( 9 , INPUT);
pinMode( 4 , OUTPUT);
pinMode( 7 , OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}

void loop()
{
if (digitalRead( 12))
{
if (digitalRead( 8))
{
if (digitalRead( 9))
{
digitalWrite( 4 , HIGH );
analogWrite(5, 255);
analogWrite(6, 255);
digitalWrite( 7 , HIGH );
}
else
{
digitalWrite( 4 , HIGH );
analogWrite(5, 255);
analogWrite(6, 50);
digitalWrite( 7 , LOW );
}
}
else
{
if (digitalRead( 9))
{
digitalWrite( 4 , LOW );
analogWrite(5, 50);
analogWrite(6, 255);
digitalWrite( 7 , HIGH );
}
else
{
digitalWrite( 4 , HIGH );
analogWrite(5, 255);
analogWrite(6, 255);
digitalWrite( 7 , HIGH );
}
}
}
else
{
digitalWrite( 4 , HIGH );
analogWrite(5, 0);
analogWrite(6, 0);
digitalWrite( 7 , HIGH );
}
}

В заключении хочу сказать, эта программа просто находка для образования, даже для самообучения она поможет изучить команды Arduino IDE. Самая главная изюминка — это то, что более 50 значков установки, она начинает «глючить». Да, действительно, это изюминка, так как постоянное программирование только на ArduBlok не обучит вас программированию в Arduino IDE. Так называемый «глюк» дает возможность задумываться и стараться запоминать команды для точной отладки программ.

Желаю успехов.

Автор: AleksanderAl

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js