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

В останні роки гуртки програмування і робототехніки стали вкрай популярні і доступні навіть для учнів початкової школи. І це стало можливим завдяки застосуванню графічних середовищ програмування, які, треба відзначити, активно використовуються і великими компаніями. Щоб розповісти про графічних середовищах програмування, ми вибрали три найбільш популярних з них.

Visuino

Visuino - це безкоштовна графічне середовище, що працює на базі сумісних з Arduino промислових контролерів (ПЛК) Controllino. Вона дає можливість створення складних систем автоматизації і рішень IoT (Internet of Things, інтернету речей), причому зробити це можна, просто переміщуючи і з'єднуючи візуальні блоки. Програмне середовище автоматично генерує код для промислових контролерів.

Отже, що треба зробити. Вибираємо компоненти (модулі) з панелі компонентів і переміщаємо їх в область проектування. Потім їх необхідно з'єднати і налаштувати властивості. Це робиться за допомогою інспектора об'єктів.

До плюсів Visuino відноситься великий набір компонентів для математичних і логічних функцій, сервоприводів, дисплеїв, інтернету та ін.

Коли ПЛК запрограмований, графічне середовище підказує доступний спосіб підключення до контролера. Це може бути послідовний порт, Ethernet, Wi-Fi або GSM.

Нарешті ваш проект готовий: все контролери прописані, все працює. Тепер, натиснувши на логотип Arduino, розташований на верхньої панелі, Ви змусите Visuino створити коди для Arduino і відкрити середу його розробки (Arduino IDE), через яку вже можна скомпілювати код і завантажити його в ПЛК.

Порада.Якщо встановлена ​​плата не відповідає вашому Arduino, ви можете змінити її за допомогою команди «Select Board» (Вибрати панель).

Scratch

Ця графічне середовище програмування була створена в 2003 році, коли група співробітників MIT Media Lab вирішила розробити мову програмування, доступний абсолютно для всіх. У підсумку через деякий час публіці був представлений Scratch.

Найбільше, мабуть, він схожий на Lego. По крайней мере, принцип той же: це об'єктно орієнтоване середовище, в якій програми збираються з деталей, різнокольорових і яскравих. Ці деталі можна переміщати, змінювати, змушувати взаємодіяти різним чином. Основа Scratch - блоки команд, таких як сенсори, змінні, рух, звук, оператори, зовнішність, перо, контроль та ін. Вбудований графічний редактордає можливість намалювати будь-який об'єкт. Не минуло й п'яти років з моменту створення Scratch, як виник проект Scratch для Arduino (скорочено - S4A), що дозволяє програмувати ПЛК Arduino.

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

Порада.Для новачків в Scratch існує спеціальний ресурс: https://scratch-ru.info.

ArduBloсk

Коли людина вже повністю освоїв Scratch, але ще не доріс до Wiring, на якому програмуються Arduino-сумісні плати, саме час порадити йому написаний на Java інструмент ArduBloсk. Особливо гарний він для тих, хто захоплюється робототехнікою.

У чому ж різниця? Справа в тому, що Scratch не вміє шити Arduino, він лише керує його ПЛК через USB. Таким чином, Arduino не може працювати сам по собі, адже він залежить від комп'ютера.

По суті, ArduBloсk - це проміжний етап між дитячою Scratch і цілком професійної, хоч і доступною Visuino, оскільки так само, як остання, має можливість перепрошивки Arduino-сумісних контролерів.

Порада.Не забудьте встановити на свій ПК Java-машину. Це не займе багато часу.

Отже, більше графічних середовищ - хороших і різних. Хай буде з вами Arduino.

Фото: компанії-виробники, pixabay.com

Можливо, мають рацію розробники операційних систем, які вважають користувача найлютішим ворогом і найнебезпечнішим вірусом. А, може бути, не праві, створюють вони свої творіння не для себе, а для користувачів. Словом, не знаю. Але, що точно знаю, я хочу бачити працюючу програму 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. Як вам це?

Я розповів про передісторію появи проекту FLProg. Зараз я хочу детальніше розповісти про проект та його стані на сьогоднішній день.
Основною метою проекту є включення в коло користувачів плат Arduino людей незнайомих з програмуванням. Це можливо завдяки досвіду промислового програмування, який накопичувався роками виробниками промислових контролерів.
Проект складається з двох частин. Перша частина це десктоп додаток FLProg представляє собою графічне середовище програмування плат Arduino. По-друге, це сайт FLProg.ru, за допомогою якого члени спільноти користувачів програми можуть поспілкуватися між собою, дізнатися останні новинипроекту, завантажити останню версію програми, ну і знайти необхідну інформацію по роботі з додатком.

Почнемо по порядку.
Програма FLProg дозволяє створювати прошивки для плат Arduino за допомогою графічних мов FBD і LAD, які є стандартом в області програмування промислових контролерів.

Опис мови FBD

FBD (Function Block Diagram) - графічна мова програмування стандарту МЕК 61131-3. Програма утворюється зі списку ланцюгів, які виконуються послідовно зверху вниз. При програмуванні використовуються набори бібліотечних блоків. Блок (елемент) - це підпрограма, функція або функціональний блок (І, АБО, НЕ, тригери, таймери, лічильники, блоки обробки аналогового сигналу, математичні операції і ін.). Кожна окрема ланцюг являє собою вираз, складене графічно з окремих елементів. До виходу блоку підключається наступний блок, утворюючи ланцюг. Всередині кола блоки виконуються строго в порядку їх сполуки. Результат обчислення ланцюга записується у внутрішнє змінну або подається на вихід контролера.


Опис мови LAD

Ladder Diagram (LD, LAD, РКС) - мова релейного (сходовій) логіки. Синтаксис мови зручний для заміни логічних схем, виконаних на релейного техніці. Мова орієнтований на інженерів по автоматизації, які працюють на промислових підприємствах. Забезпечує наочний інтерфейс логіки роботи контролера, який полегшує не тільки завдання власне програмування і введення в експлуатацію, але і швидкий пошук неполадок в підключається до контролера обладнанні. Програма на мові релейного логіки має наочний і інтуїтивно зрозумілий інженерам-електрикам графічний інтерфейс, який представляє логічні операції, як електричний ланцюг з замкнутими і роз'єднаними контактами. Перебіг або відсутність струму в цьому ланцюзі відповідає результату логічної операції (істина - якщо струм тече; брехня - якщо струм не тече). Основними елементами мови є контакти, які можна образно порівняти з парі контактів реле або кнопки. Пара контактів ототожнюється з логічної змінної, а стан цієї пари - зі значенням змінної. Розрізняються нормально замкнуті і нормально розімкнені контактні елементи, які можна зіставити з нормально замкнутими і нормально розімкнутими кнопками в електричних ланцюгах.


Я трохи розширив класичний функціонал цих мов, додавши функціональні блоки, що відповідають за роботу з зовнішніми пристроями. Вони є обгортками, над бібліотеками, призначеними для роботи з ними.
Проект в FLProg являє собою набір плат, на кожній, з якої зібрано закінчений модуль загальної схеми. Для зручності роботи кожна плата має найменування і коментарі. Так само кожну плату можна згорнути (для економії місця на робочій зоні, коли робота над нею закінчена), і розгорнути. Червоний індикатор в найменуванні плати вказує на те, що в схемі плати є помилки.

Вид вікна програми в режимі мови FBD

Вид вікна програми в режимі мови LAD

Схема кожної плати збирається з функціональних блоків відповідно до логіки роботи контролера. Більшість функціональних блоків мають можливість настройки, за допомогою якої їх роботу можна налаштувати відповідно до необхідних в даному конкретному випадку вимогами.

Так само для кожного функціонального блоку є розгорнутий опис, яке доступне в будь-який момент і допомагає розібратися в його роботі і налаштуванні.

При роботі з програмою користувачеві немає необхідності займатися написанням коду, контролем за використанням входів - виходів, перевіркою унікальності імен та узгодженістю типів даних. За всім цим стежить програма. Так само вона перевіряє правильність проекту цілком і вказує на наявність помилок.
Для роботи з зовнішніми пристроями створено кілька допоміжних інструментів. Це інструмент ініціалізації і установки годинника реального часу, інструменти для читання адрес пристроїв на шинах OneWire і I2C а так же інструмент для читання і збереження кодів кнопок на ІК пульті. Всі певні дані можна зберегти у вигляді файлу і в подальшому використовувати в програмі.

Список функціональних блоків існуючих на сьогоднішній день в мові FBD

базові елементи



спеціальні блоки

тригер



таймери


Лічильники


Математика



алгебра






порівняння

Com - Порт

Send
SendVariable
ReceiveVariable

перемикач


мотори

ServoMotor
StepMotor

Годинник реального часу


дисплеї

Дисплей на чіпі НD44780
Підсвічування дисплея на чіпі НD44780 I2C

рядки

додавання рядків

датчики



SD карта

Запис змінної на SD карту
Вивантаження файлу з SD карти

Конвертація типів

перетворення рядків
Перетворення Float в Integer

мікросхеми розширень

Розширювач висновків 74HC595

Операції з битами

шифратор
дешифратор
читання біта
запис біта

Різне

матрична клавіатура

Список функціональних блоків існуючих на сьогоднішній день в мові LAD

базові блоки

Контакт
котушка
Захист від брязкоту
Виділення переднього фронту

спеціальні реле

Двустабільное реле
Реле часу
Генератор
реле порівняння

алгебра

SIN
COS
TAN
ABS
MAX
MIN
SQ
SQRT
POW
RANDOM

аналогові блоки

масштабування
Математика
Лічильник
аналоговий перемикач
Перемикач багато до одного
Перемикач один до багатьох
Аналоговий вхід контролера
Аналоговий вихід контролера
Вхід аналогового зєднувача
Вихід аналогового роз'єму
швидкісний лічильник

ComPort

Передача в ComPort
Передача змінної через ComPort
Прийом змінної через ComPort

мотори

сервомотор
Кроковий двигун

Годинник реального часу

отримати дані
будильник
установка часу

дисплеї

Дисплей на чіпі HD44780
Блок управління підсвічуванням дисплея на чіпі HD4480 I2C
Блок декодування семи сегментного індикатора

рядки

додавання рядків

датчики

Ультразвуковий далекомір HC-SR04
Датчик температури і вологості DHT11 (DHT21, DHT22)
Датчик температури DS18x2x
IR Ressive
BMP-085

Вітаємо! Я Аликин Олександр Сергійович, керівник гуртка, веду гуртки «Робототехніка» і «Радіотехніка» в ЦДЮТТ р Лабинска. Хотів би трохи розповісти про спрощений спосіб програмування 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. Так званий «глюк» дає можливість замислюватися і намагатися запам'ятовувати команди для точної налагодження програм.

Бажаю успіхів.

Вітаємо! Я Аликин Олександр Сергійович, керівник гуртка, веду гуртки «Робототехніка» і «Радіотехніка» в ЦДЮТТ р Лабинска. Хотів би трохи розповісти про спрощений спосіб програмування 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. Так званий «глюк» дає можливість замислюватися і намагатися запам'ятовувати команди для точної налагодження програм.

Бажаю успіхів.

Сподобалася стаття? Поділіться з друзями!