Программирование Arduino с помощью ArduBloсk (скачать). Программируем Arduino с помощью Scratch и mBlock Графический язык программирования для arduino

Новости 10.09.2020
Новости

28 09.2016

Вы задумывались облегчить себе жизнь в быту? Чтобы были вещи, которые решали бы за вас повседневные, рутинные задачи. Умное устройство, которое бы осуществляло полезную функцию, например поливало огород, убирало комнату, переносило груз. Эти задачи может решать . Но просто купить её будет недостаточно. Любому промышленному логическому контроллеру или микросхеме нужен “мозг”, чтобы выполнять определённую последовательность действий. Для свершений операций в нашем случае подойдёт язык программирования ардуино.

Из этой статьи вы узнаете:

Приветствую вас, друзья! Для тех, кто меня не знает — меня зовут Гридин Семён. Вы можете прочитать обо мне . Сегодняшняя статья будет посвящена двум основным программам, без которых не будет у нас дальнейшего движения и взаимопонимания.

Общее описание языков программирования

Как я и писал выше, рассматривать мы с вами будем две популярные среды разработки. По аналогии с , можно разделить на графический редактор и “умный блокнот”. Это программы Arduino IDE и FLprog.

Основой среды разработки является Processing/Wiring — это обычный C++, дополненный функциями и различными библиотеками. Существует несколько версий для операционных систем windows, Mac OS и Linux.

В чём их принципиальное различие?? Arduino IDE — это среда разработки, в которой описывается код программы. А FLprog похож на CFC CoDeSyS, позволяющий рисовать диаграммы. Какая среда лучше? Обе хороши и удобны по своему, но если хотите заниматься контроллерами серьёзно, лучше всего изучить языки, похожие на СИ. Их главный плюс в гибкости и неограниченности алгоритма. Мне очень нравится Arduino IDE.

Описание Arduino IDE

Дистрибутив можно скачать на официальном сайте . Скачиваем архив, он занимает чуть более 100 мб. Установка стандартная, как и все приложения для Windows. Драйвера для всех типов плат должны быть установлены в пакете. И вот каким образом выглядит рабочее окно программы.

Среда разработки Arduino состоит из:

  • редактора программного кода;
  • области сообщений;
  • окна вывода текста;
  • панели инструментов с кнопками часто используемых команд;
  • нескольких меню

Настройки Arduino IDE

Программа, написанная в среде разработки Arduino, называется скетчем . Скетч пишется в текстовом редакторе, который имеет цветовую подсветку создаваемого программного кода. Пример простенькой программы на картинке ниже.

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

Многие библиотеки снабжаются примерами, расположенными в папке example. Выбор библиотеки в меню приведет к добавлению в исходный код строчки:

Arduino

#include

#include

Это директива — некая инструкция, заголовочный файл с описанием объектов, функций, и констант библиотеки. Многие функции уже разработаны для большинства типовых задач. Поверьте, это облегчает жизнь программисту.

После того как мы подключили электронную плату к компьютеру. Мы осуществляем следующие настройки — выбираем плату Arduino и Com-порт по которому будем соединяться.

Arduino

void setup() { // initialize digital pin 13 as an output. pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000);

void setup () {

// initialize digital pin 13 as an output.

pinMode (13 , OUTPUT ) ;

void loop () {

digitalWrite (13 , HIGH ) ;

delay (1000 ) ;

digitalWrite (13 , LOW ) ;

delay (1000 ) ;

Так, кстати говоря, удобно проверять работоспособность платы, пришедшей с магазина. Быстро и легко.

Есть ещё одна удобная вещь. Называется она Монитор последовательного порта (Serial Monitor ). Отображает данные, посылаемые в платформу Arduino. Я обычно смотрю, какие сигналы выдают мне различные датчики, подключённые к плате.

Подключение библиотек

Существуют разные способы для добавления пользовательских функции. Подключить библиотеки можно тремя способами:

  1. С помощью Library Manager
  2. С помощью импорта в виде файла.zip
  3. Установка вручную.

1. С помощью Library Manager. В рабочем окне программы выбираем вкладку Скетч. После этого нажимаем на кнопку Подключить библиотеку. Перед нами откроется менеджер библиотек. В окне будут отображаться уже установленные файлы с подписью installed, и те, которые можно установить.

2.С помощью импорта в виде файла.zip. Часто в просторах интернета можно встретить запакованные в архивы файлы библиотек с расширением zip. В нём содержится заголовочный файл.h и файл кода.cpp. При установке не нужно распаковывать архив. Достаточно в меню Скетч — Подключить библиотеку — Add .ZIP library

3.Установка вручную. Сначала закрываем программу Arduino IDE. Наш архив мы сначала распаковываем. И файлы с расширением.h и.cpp переносим в папку с тем же названием, как и архив. Закидываем папку в корневой каталог.

Мои документы\Arduino\libraries

Описание FLPprog

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

Я наблюдаю за проектом достаточно давно. Ребята развиваются, постоянно добавляют новый функционал и изменяют старый. Я вижу в этой среде перспективы. Так как она выполняет две важные функции: простоту и удобство использования .

Попробуем с вами создать простенький проект. Будем переключать 13 выход на светодиод.

Создаём новый проект. В верхнем окне добавляем нужное количество входов и выходов, задаём имя и присваиваем физический вход или выход платы.

Вытаскиваем нужные нам элементы из дерева объектов нужные нам элементы на холст редактирования. В нашем случае можно использовать простой RS-триггер для включения и выключения.

После создания алгоритма, кликнем на кнопочку компилировать, программа даёт готовый скетч на IDE.

Мы с вами рассмотрели возможности и удобства программ для разработки алгоритмов на контроллере серии Arduino. Есть ещё программы, которые позволяют создавать структурные диаграммы и визуальные картинки. Но я рекомендую использовать текстовый редактор, потому что потом вам будет проще. Скажите, а какая среда вам удобнее всего и почему??

22 сентября я участвовал в Краснодаре на семинаре “Сенсорные панельные контроллеры ОВЕН СПК”. Проводили конференцию в фешенебельном и красивом отеле “Бристоль”. Было очень интересно и круто.

В первой части семинара нам рассказывали о возможностях и преимуществах продукции компании ОВЕН. После был кофе-брейк с пончиками. Я понабрал кучу всего, и пончиков, и печенья, и конфет, так как был очень голодным.=)

Во второй части семинара после обеда нам презентовали . Много чего рассказали про Web — визуализацию. Эта тенденция начинает набирать обороты. Ну конечно, управлять оборудованием через любой интернет — браузер. Это реально круто. Вот кстати говоря само оборудование в чемоданчике.

Я в ближайшем будущем опубликую серию статей по CoDeSyS 3.5. Так что, если кому интересно подписывайтесь или просто заходите в гости. Буду всегда рад!!!

Кстати чуть не забыл, следующая статья будет о к электронной плате Arduino. Будет интересно, не пропустите.

До встречи, в следующих статьях.

С уважением, Гридин Семён.

Возможно, правы разработчики операционных систем, считающие пользователя злейшим врагом и самым опасным вирусом. А, может быть, не правы, создают они свои творения не для себя, а для пользователей. Словом, не знаю. Но, что точно знаю, я хочу видеть работающую программу S4A не только в Windows, но в Linux, и не только в дистрибутиве Debian.

Начинаю я этот процесс с загрузки версии для Debian на сайте разработчиков: http://seaside.citilab.eu/scratch/arduino . Все загружаемые файлы располагаются по завершении загрузки в папке «Загрузка» или «Downloads». Архивированные файлы, предназначенные для Linux, распаковываются менеджером архивов. Скачанный мной в openSUSE файл имеет расширение deb, но, используя Ark, тот самый менеджер архивов, его можно распаковать. В openSUSE с графическим менеджером KDE 4 для этого достаточно щёлкнуть правой клавишей мышки по файлу и выбрать пункт выпадающего меню «Распаковать во вложенную папку». В итоге появляется папка с именем S4A.

Заглянем в неё.

Рис. 5.1. Содержимое скачанной папки S4A

Два файла с расширением tar.gz подлежат дальнейшей разархивации.

Рис. 5.2. Выпадающее меню работы с архивированными файлами

В результате рядом с архивами появляется ряд файлов и папка, озаглавленная «usr». Из опыта работы с Linux я знаю, что в этой папке могут находиться файлы, которые при установке размещаются по адресу /usr корневой файловой системы. Если открыть эту папку, то,

Глава 5. Arduino, визуальное программирование

действительно, в ней можно увидеть еще три папки.

Эти три папки соответствуют разделам, которые можно увидеть, если открыть в файловом менеджере раздел «Корневая папка» в директории /usr.

Рис. 5.4. Разделы директории usr файловой системы

Содержимое, скачанное ранее, папок bin, lib и share, как я полагаю, следует разместить в папки, отмеченные выше. Но, конечно, простому пользователю менять что-то в файловой системе никто не позволит. Поэтому в разделе основного меню «Система» находим пункт «Файловый менеджер», открывающий новое подменю, где есть «Менеджер файлов (с правами администратора)». Этот менеджер позволит перенести все нужные файлы в операционную систему. Ничего не выдумывая, открывая параллельно папки в двух проводниках, просто последовательно открывать нужные (они все названы) папки до появления файлов, а файлы копировать.

Глава 5. Arduino, визуальное программирование

Рис. 5.5. Перенос файлов программы в openSUSE

Особенно внимательно следует отнестись к папке share, поскольку она имеет много вложенных папок, и соответствующие папки следует отыскивать в файловой системе.

Завершив копирование, можно попытаться отыскать программу в основном меню. И, впрямь, на закладке «Приложения» в разделе «Разработка» (у меня ещё один раздел «Другие программы») появляется программа S4A. И её даже можно запустить. Но она после нескольких движений мышкой начинает виснуть...

В терминале, а в openSUSE есть терминал с правами суперпользователя; от имени суперпользователя, предварительно подключив модуль Arduino, запускаем программу. И она работает. Теперь её можно запустить обычным образом.

В других дистрибутивах Linux операции схоже с теми, что описаны выше, отличия не столь значительны. Хотя в Fedora 14 я просто сменил пользователя, войдя в систему под root, что делать, конечно, не следует, но так было проще всё разместить в нужных местах.

Установив программу в Linux, посмотрим, а для чего мы её устанавливали?

Во-первых, программа работает с модулем, показывая, что происходит на аналоговых и цифровых входах модуля. Что уже неплохо. Но не это главное. Главное, во-вторых - программа позволяет собирать программу, а не кодировать на языке Arduino.

Когда программа начинает работать, в левом окне есть ряд элементов, которые можно, подцепив мышкой, перенести в среднее окно - рабочее «сборочное» поле. Перенесём так элемент, который называется Start.

Глава 5. Arduino, визуальное программирование

Рис. 5.6. Перенос нужных программных элементов

Теперь, нажав клавишу с надписью «контроль» в окошке чуть выше, получим ряд новых элементов.

Рис. 5.7. Список элементов в группе «Контроль»

Среди этих элементов выберем элемент «всегда», который перенесём к уже имеющемуся элементу, и добавим так, чтобы верхний вырез вошёл в выступ.

Глава 5. Arduino, визуальное программирование

Рис. 5.8. Добавление элементов в программу

Вернёмся к набору элементов, с которого начинали, нажав на клавишу «движение», и выберем элемент «digital 13 on», который перенесём и положим внутрь предыдущего.

Рис. 5.9. Команда включения цифрового вывода

Из набора элементов «контроль» возьмём элемент «ждать 1 секунду», который вставим внутрь элемента «всегда» под элемент «digital 13 on». Чтобы ускорить этот процесс, вставим элемент ожидания ещё раз, вернёмся к элементам движения и добавим элемент «digital 13 off» между двумя элементами ожидания.

Рис. 5.10. Программа Blink в графическом виде

Вам эта конструкция ничего не напоминает? Когда мы начинали описывать первую программу обычным языком, мы так и записывали её.

Дважды щёлкните по элементу «start» левой клавишей мышки и посмотрите на модуль Arduino

Молчавший до сих пор светодиод на выводе 13 исправно мигает раз в секунду.

Мы собрали программу, запустили её и заставили работать модуль согласно этой программе. И мы не написали ни строчки кода. Именно по этой причине я предпочитаю различать программирование и написание программного кода.

Глава 5. Arduino, визуальное программирование

Но, может быть, это работает ранее загруженная программа, а не нами собранная?

Остановим работу программы, вновь дважды щёлкнув мышкой по элементу «start». Щёлкнем левой клавишей по единичке элемента «ждать 1 секунду».

Рис. 5.11. Изменение параметров программных элементов

Впечатаем цифру 5 (как на нижнем элементе). Запустим программу... и убедимся, ничего мы не перепутали, светодиод мигает с интервалом раз в 5 секунд!

Мы не проверяли работу цифрового входа в «живом» виде. Не пора ли это сделать?

Соберём программу в S4A. Первые «кирпичики» те же, что и в предыдущей программе. Далее... нам понадобится выполнить условие: если кнопка нажата, включить светодиод, иначе выключить. Такой элемент есть - это «если... или...». В его верхней части есть «гнездо», куда можно вставить нужное нам условие «цифровой вход...».

Рис. 5.12. Добавление условия в элемент if ветвления программы

Осталось добавить действия, чтобы получить нужный вид программы.

Рис. 5.13. Окончательное формирование программы

Если сравнивать её с программой, написанной на языке Arduino, то можно сказать, что отличия только те, что были внесены сознательно: когда кнопка отпущена, светодиод не горит, когда нажата, светодиод загорается.

Глава 5. Arduino, визуальное программирование

Пора перейти к проверке. Но прежде небольшое предупреждение.

На схеме, приведённой в примерах, кнопка соединяется с выводом +5 В. Я бы советовал включить её несколько иначе.

Особенно, если вы проверяете все «на весу». При случайной ошибке может получиться так, как было у меня, из модуля пойдёт дымок, который очень подпортит настроение. А самый правильный путь - использовать макетную плату с переходными разъёмами (для Arduino Nano, думаю, найдётся подходящая панелька под микросхему).

Проверив правильность соединений на макетной плате, подключив к ней модуль Arduino, можно включить его в разъём USB компьютера и запустить программу S4A. Обратите внимание - когда вы между цифровым входом и землёй включили резистор 10 кОм, показания (в правом окошке программы) перестали случайным образом меняться между «false, ложно» и «true, истинно». Запускаем нашу программу двойным щелчком по элементу «start», добавим, зайдя в раздел основного меню «Редактировать», пошаговое выполнение.

Рис. 5.14. Добавление пошагового выполнения в отладочную процедуру

Можно ещё в пункте «установить единичный шаг...» выбрать скорость выполнения. И теперь, пока кнопка не нажата, мы видим, что светодиод не горит, а программа выполняется только в той части, где это задано.

Глава 5. Arduino, визуальное программирование

Рис. 5.15. Выполнение программы в режиме отладки

В правом верхнем окошке можно видеть состояние входа Digital1 - false. Вход на земле, на входе низкий логический уровень, а это, с точки зрения программы, состояние «ложно». Нажмём кнопку.

Рис. 5.16. Работа программы при нажатой кнопке

Изменилось состояние входа «true», горит светодиод, и программа входит в ту часть, где условие выполнено.

Если обратить внимание на оранжевые элементы в разделе «контроль», то видно, многие из

Глава 5. Arduino, визуальное программирование

них имеют «гнёзда» для вставки условий.

Условия могут быть разными. Выше мы использовали в качестве условия изменение состояния цифрового входа. Но это могут быть и другие условия.

Рис. 5.17. Гнёзда для добавления условий в элементах контроля

И ещё - обратите внимание на чёрные стрелочки «вниз» рядом со многими элементами.

Нажимаем эту стрелочку с помощью мышки...

Рис. 5.18. Стрелка, открывающая список возможных сенсоров

И получаем возможность менять, например, как в этом случае используемый вход. В других случаях меняется, скажем, выходной вывод или аналоговый вход. У нас большой выбор возможностей для экспериментов с модулем Arduino. Впрочем, отчего с модулем? Мы вправе использовать несколько модулей. Достаточно, не скажу, что это единственный способ, перейти на закладку «костюмы», щёлкнуть правой клавишей мышки по существующему «костюму» и выбрать раздел «переключиться к новому объекту».

Появится ещё один модуль Arduino. Если у вас он есть, если вы его подключили к USB порту, то можно, думаю, с ним тоже работать.

Глава 5. Arduino, визуальное программирование

Рис. 5.19. Добавление второго модуля Arduino

И последнее замечание. Всё, что мы делаем в программе S4A, мы делаем, используя язык программирования Scratch. Как вам это?

Начав статью с обзора существующих средств разработки программ для нашедших широкое применение в профессиональ­ных и любительских разработках микроконтроллерных модулей Arduino , автор подробно рассказывает об одной из них - FLProg , предназначенной для пользователей, специализирующихся в электротехнике и электронике, но не владеющих языками про­граммирования. Все предписанные программе действия изоб­ражают в этой системе наглядными и привычными для таких спе­циалистов условными графическими обозначениями.

Официальную среду разработки про­грамм для модулей Arduino предла­гают пользователям под названием Arduino IDE (рис. 1 ).

Программирова­ние в ней происходит на языке ProcesSing/Wiring - диалекте языка С (скорее, C++). Среда представляет собой, по сути, обычный текстовый редактор с возможностью трансляции текста про­граммы в машинные коды и их загрузки в микроконтроллер модуля. Альтерна­тива Arduino IDE - предназначенная для микроконтроллеров семейства AVR ин­тегрированная среда AVR Studio (рис. 2 ). Она служит для разработки и отладки программ на языке ассемблера, но к ней можно подключить и компилятор языка С. В 2006 г. она сменила название на Atmel Studio.

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

FBD (Function Block Diagram) - гра­фический язык программирования стандарта МЭК 61131-3. Программа представляет собой список цепей, за­полняемый последовательно сверху вниз. Цепи образуют из библиотечных блоков. Блок (элемент) - это подпро­грамма, функция или функциональный блок (И, ИЛИ, НЕ, триггер, таймер, счёт­чик, блок обработки аналогового сигна­ла, математическая операция и т. д).

Каждую цепь составляют из отдель­ных блоков, подключая на экране ком­пьютера к выходу каждого блока вход следующего. Внутри цепи программа выполняет блоки строго в порядке их соединения. Результат, полученный на выходе последнего блока цепи, про­грамма записывает во внутреннюю пе­ременную или подаёт на выход контрол­лера. Пример визуального представле­ния программы на языке FBD показан на рис. 7 .

LAD (Ladder Diagram) - язык релей­ной (лестничной) логики, известный также под названиями LD и РКС.

Синтаксис этого языка удобен для опи­сания логических узлов, выполненных на релейной технике. Язык ориентиро­ван на специалистов по автоматике, ра­ботающих на промышленных предприя­тиях. Он обеспечивает наглядное ото­бражение логики работы контроллера, облегчающее не только собственно про­граммирование и ввод системы в эксплуатацию, но и быстрый поиск неполадок в подключаемом к конт­роллеру оборудовании. Программа на языке ре­лейной логики имеет на­глядный и интуитивно по­нятный инженеру-электрику вид, представляя логические операции в виде электрических цепей с замкнутыми и разомкнутыми контактами. Протекание или отсутствие тока в такой цепи соответствует результату логи­ческой операции (ток течёт - истина, ток не течёт - ложь). Пример схемы на языке LAD представлен на рис. 8 .

Основные элементы языка LAD - контакты, которые можно уподобить контактным парам реле или кнопок. Контактная пара отождествляется с логиче­ской переменной, а состояние этой пары - со значением пе­ременной. Различают нормаль­но замкнутые и нормально ра­зомкнутые контактные элемен­ты. Их можно сопоставить с нормально замкнутыми и нор­мально разомкнутыми кнопка­ми в электрических цепях.

Такой подход оказался очень удобным для лёгко­го вхождения инженеров-электриков в разработку систем автомати­ки. Разрабатывая проекты установок, они могут легко привязать их функ­ционирование к ал­горитмам работы контроллера. При обслуживании уста­новок на объекте очень важно, чтобы обслуживающий персонал мог легко проверить работу системы, найти и устранить проблему, не вызывая при этом по каждому пустяку программиста из «центра». Сегодня с помощью подобных средств разработки создают почти все системы промышленной автоматики.

Построенная на этих представлениях система разработки программ FLProg работает с микроконтроллерными модулями Arduino. Эти модули очень удобны для быстрой разработки и от­ладки устройств, что важно не только радиолюбителям, но и весьма полезно, например, в школьных кружках и в учеб­ных лабораториях. Одно из преиму­ществ - не требуется программатор. Достаточно подключить модуль Arduino к компьютеру и загрузить подготовлен­ную программу непосредственно из среды разработки.

В настоящее время существует бога­тый выбор как различных вариантов микроконтроллерных модулей Arduino (рис. 9 ), так и дополняющих их моду­лей, например, датчиков и исполнитель­ных устройств. Кроме того, в Интернете (например, на сайте http://robocraft.ru/ ) можно найти огромное число готовых проектов на основе этих модулей и адаптировать их под свои нужды.

В настоящее время система FLProg работает со следующими версиями мо­дулей: Arduino Diecimila, Arduino Duemila-nove, Arduino Leonardo, Arduino Lilypad, Arduino Mega 2560, Arduino Micro, Arduino Mini, Arduino Nano (ATmega168), Arduino Nano (ATmega328), Arduino Pro Mini, Arduino Pro (ATmega168), Arduino Pro (ATmega328), Arduino UNO. Недавно в списке появилась и плата Intel Galileo gen2. В дальнейшем предполагается пополнение и этого списка, возможно, и добавление модулей, основанных на микроконтроллерах STM.

Для создания FLProg был использован опыт программистов фирм Siemens, ABB, Schneider Electric и наработки в их средах программирования. При этом был не­сколько расширен классический функ­ционал языков для работы с промыш­ленными контроллерами путём добавле­ния функциональных блоков, отвечающих за работу с внешними устройствами. Программа работает на компьютерах под управлением ОС Windows и Linux.

Пользовательский интерфейс FLProg устроен так, что проект представляет собой набор виртуальных плат, на каж­дой из которых собран законченный модуль разрабатываемой системы. Каждая плата имеет наименование и снабжена комментариями. Для эконо­мии места в рабочей зоне её можно свернуть, если работа над ней законче­на, а при необходимости вновь развер­нуть и внести коррективы.

Красный индикатор у наименования платы на рис. 10 указывает на то, что в её схеме обнаружены ошибки. После ис­правления ошибок индикатор станет зелёным. Стрелка рядом с комментарием предназначена для свёртки изображения.

Правое окно рабочей области (рис. 11 ) отведено для библиотеки элементов. Добавить компонент в проект можно простым перетаскиванием, а двойной щелчок покажет информацию об эле­менте программы. Перечень блоков, предусмотренных в программе, их опи­сание и помощь по работе с програм­мой можно найти на интернет-странице . На интернет-странице имеется перечень периферийного оборудова­ния, поддерживаемого программой. Эти списки постоянно пополняются.

По мере развития программы плани­руется организация обмена информа­цией по Bluetooth, радиоканалу и интерфейсу RS-485, работа с трехосе­вым гироскопом, люксметром и други­ми датчиками. В дальнейших планах есть разработка SCADA-системы для доступа к системам, разработанным с помощью среды FLProg, с персональ­ного компьютера или мобильного уст­ройства.

Разработанную «принципиальную схему» FLProg переводит на язык Processing/Wiring. По завершении компи­ляции автоматически открывается про­грамма Arduino IDE с загруженным скет­чем проекта. В Arduino IDE необходимо указать COM-порт компьютера, к кото­рому подключён микроконтроллерный модуль, выбрать тип модуля и загрузить программу в его микроконтроллер.

Среду программирования FLProg можно адаптировать к программируе­мым логическим контроллерам, отли­чающимся от модулей Arduino, что поз­волит применять для работы с ними российское программное обеспечение.

ЛИТЕРАТУРА

  1. Создание Help-а для программы FLProg. - URL http://flprogwiki.ru/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5Help-%DO%BO%D0%B4%D0%BB%D1%8F_%D0%8F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8BFLProg (23.06 15).
  2. Применяемое в проекте оборудование. - URL

Здравствуйте! Я Аликин Александр Сергеевич, педагог дополнительного образования, веду кружки «Робототехника» и «Радиотехника» в ЦДЮТТ г. Лабинска. Хотел бы немного рассказать об упрощенном способе программирования 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 и разобраться с настройками при работе с платой Arduino UNO. Как это сделать описано на том же сайте или же на Амперке , либо посмотреть на просторах 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». Датчики, представленные в нем, мне не попадались.

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

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

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

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

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

И программа конвертированная в 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. Так называемый «глюк» дает возможность задумываться и стараться запоминать команды для точной отладки программ.

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

Ardublock


Графический Язык Программирования для Arduino

Руководство по использованию Ardublock Kit Ver 1.0

Что такое Ardublock

Ardublock это графический язык программирования для Arduino, предназначенный для непрограммистов и простой в использовании.

(напоминаем что программа в среде разработки Arduino IDE называется скетч)

Установка
Скачайте архив ardublock-all.jar
Откройте “Arduino IDE/Menu /Arduino/ Preferences”, там вы найдете строку “Sketchbook location”

3. Создайте папку “tools/ArduBlockTool/tool ” внутри папки “Arduino” в строке
“Sketch location” и скопируйте архив “ardublock-all.jar” в папку “tool”.

Если имя пользователя “abu,”

На Mac, /Users/abu/Documents/Arduino/tools/ArduBlockTool/tool/ardublock-all.jar

На Linux, /home/abu/sketchbook/tools/ArduBlockTool/tool/ardublock-all.jar

На Windows, C:\Users\abu\Documents\Arduino

4 Перезапустите Arduino IDE и у Вас должен появиться пункт “ArduBlock” в меню “Tool ”.

Обращайте внимание на написание названий папок прописными и строчными буквами.


Использование

Блоки ArduBlock разделены на несколько категорий.

Control
Блоки категории “Control” это управляющие блоки.

Цифры, константы и Переменные

Operators

Utilities

Эти блоки являются функциями, которые обычно используются в скетчах.

Bricks

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

Pin

Эти блоки действуют как виртуальные контакты на плате Arduino.

Как программировать

1. Компиляция должна завершиться успешно. Если порт, указанный в среде Arduino или сама плата не обнаружены, то появляется окно с сообщением об ошибке.

2. Графические блоки с разъемами одинаковой формы можно соединить друг с другом.

Соединение устанавливается просто, для этого нужно перетащить один блок к тому, с которым Вы хотите его соединить.

3. Как только будет нажата кнопка “upload”, ArduBlock автоматически сгенерирует код Arduino который потом будет загружен на плату Arduino (при этом в окне скетчей среды разработки Arduino появится текст программы, полученной в ходе компиляции).

Как запустить программу

Простой вывод

1 Пример 1 — Здравствуй Мир (Hello World!)

1.1 Аппаратное подключение

Arduino подключается к выводу 13.

1.2 Функционирование

Светодиод будет мигать 1 раз в секунду.

1.3 Скетч

1.4 Загрузить

Примечание
Вы можете загрузить файл abp напрямую - все описанные здесь примеры можно скачать вместе с файлом описания среды Ardublock (на английском языке) в виде файлов графических скетчей с расширением abp.

Файл abp можно загрузить нажатием на кнопку «load».


После чего нужно указать скачанный файл и нажать кнопку «open».

2 Пример 2 — Сигнал тревоги

2.1 Аппаратное подключение


Digital Blue LED Light Module подключается к выводу 12.

2.2 Функционирование

Красный светодиод и синий светодиод будут загораться по очереди, как полицейская сирена. Эффект будет еще лучше, если вы накроете их полупрозрачной крышкой, или тканью.

2.3 Скетч

2.4 Загрузить

Простой ввод

3 Включает светодиод при нажатии кнопки

3.1 Аппаратное подключение

Digital White LED Light Module подключается к выводу 13.

3.2 Функционирование

Если нажата кнопка, загорается светодиод.

3.3 Скетч


3.4 Загрузить

4 Азбука Морзе

4.1 Аппаратное подключение

Digital RED LED Light Module подключается к выводу 13.
Digital Buzzer Module подключается к выводу 12.
Digital Push Button подключается к выводу 8.

4.2 Функционирование

Когда нажата кнопка, красный светодиод загорается и слышен звук. Период звучания похож на азбуку Морзе.

4.3 Скетч

4.4 Загрузить

Аналоговый ввод и вывод

5 Датчик вращения

5.1 Аппаратные установки

Analog Rotation Sensor V1 подключается к выводу A0.

5.2 Функционирование

В этой программе можно узнать значение угла поворота.
Когда Вы загрузите программу, Вы сможете переключиться на arduino IDE, нажмите на иконку монитора. Окна последовательного монитора покажут Вам угол поворота в значениях от 0 до 1023.

5.3 Скетч

5.4 Загрузить

6 Погасающий свет

6.1 Аппаратные установки

Digital White LED Light Module подключается к выводу 11.

6.2 Функционирование

Эта программа покажет вам как свет загорается и медленно угасает.

6.3 Скетч

6.4 Загрузить

7 Измерение шума 1

7.1 Аппаратные установки

Digital White LED Light Module подключается к выводу11.

7.2 Функционирование

Этот детектор может измерить уровень окружающего шума, светодиод будет светится сильнее, если звук громче.

7.3 Скетч


7.4 Загрузить

8 Измерение шума 2

8.1 Аппаратные установки

Digital White LED Light Module подключается к выводу 11.
Analog Sound Sensor подключается к выводу A0.

8.2 Функционирование

Этот детектор может измерить уровень окружающего шума, светодиод будет мигать быстрее, если звук громче.

8.3 Скетч


8.4 Загрузить



Рекомендуем почитать

Наверх