Arduino

Вільна платформа апаратного та програмного забезпечення

Arduino (Ардуіно) — апаратна обчислювальна платформа для аматорського конструювання, основними компонентами якої є плата мікроконтролера з елементами вводу/виводу та середовище розробки Processing/Wiring на мові програмування, що є спрощеною підмножиною C/C++. Arduino може використовуватися як для створення автономних інтерактивних об'єктів, так і підключатися до програмного забезпечення, яке виконується на комп'ютері (наприклад: Processing, Adobe Flash, Max/MSP, Pure Data, SuperCollider). Інформація про плату (малюнок друкованої плати, специфікації елементів, програмне забезпечення) знаходяться у відкритому доступі і можуть бути використані тими, хто воліє створювати плати власноруч.

Arduino Software
Arduino IDE з прикладом простої програми.
Тип Інтегроване середовище розробки
Розробник Arduino Software
Стабільний випуск 1.8.4[1] (18 серпня 2017; 6 років тому (2017-08-18))
Платформа Мікроконтролери AVR
Операційна система крос-платформенна
Мова програмування Java
Українська мова неповна підтримка[2]
Ліцензія LGPL або GPL license
Вебсайт arduino.cc

Назва Arduino походить від бару в Івреа, Італія, де зустрічалися деякі із засновників проекту. Бар був названий на честь Ардуїн I, який був маркграфом Маршу Івреї та королем Італії з 1002 по 1014 роки.[3]

Процесорна плата Arduino Diecimila

Опис ред.

Апаратна частина ред.

Плата Arduino складається з мікроконтролера Atmel AVR, а також елементів обв’язки для програмування та інтеграції з іншими пристроями. На багатьох платах наявний лінійний стабілізатор напруги +5В або +3,3В. Тактування здійснюється на частоті 16 або 8 МГц кварцовим резонатором. У мікроконтролер записаний завантажувач (bootloader), тому зовнішній програматор не потрібен.

 
Процесорна плата Ардуіно (внизу) з платами макетування (зверху)
 
Мініатюрна процесорна плата Arduino без встановлених деталей

На концептуальному рівні усі плати програмуються через RS-232 (послідовне з’єднання), але реалізація даного способу різниться від версії до версії. Новіші плати програмуються через USB, що можливо завдяки мікросхемі конвертера USB-to-Serial FTDI FT232R. У версії платформи Arduino Uno як конвертер використовується контролер Atmega8 у SMD-корпусі. Дане рішення дозволяє програмувати конвертер таким чином, щоб платформа відразу розпізнавалася як миша, джойстик чи інший пристрій за вибором розробника зі всіма необхідними додатковими сигналами керування. У деяких варіантах, таких як Arduino Mini або неофіційній Boarduino, для програмування потрібно підключити до контролера окрему плату USB-to-Serial або кабель.

Плати Arduino дозволяють використовувати значну кількість виводів мікроконтролера як вхідні/вихідні контакти у зовнішніх схемах. Наприклад, у платі Decimila доступно 14 цифрових входів/виходів, 6 із яких можуть генерувати ШІМ сигнал, і 6 аналогових входів. Ці сигнали доступні на платі через контактні майданчики або штирові роз'єми. Також існує багато різних зовнішніх плат розширення, які називаються «shields» («щити»), які приєднуються до плати Arduino через штирові роз'єми.

Пристрої розширення ред.

Ардуіно та Ардуіно-сумісні плати спроєктовані таким чином, щоб їх можна було за необхідності розширювати, додаючи до пристрою нові компоненти («shields»). Ці плати розширень підключаються до Ардуіно за допомогою встановлених на них штирових роз'ємів. Існує ряд уніфікованих плат, що допускає конструктивно жорстке з'єднання процесорної плати та плат розширення в стопку через штирові лінійки.[4] Крім того, випускаються плати зі зменшеним (наприклад, Nano, Lilypad) і спеціальним (для задач робототехніки) форм-фактором.

зображення призначення назва, модель
1
 
HW-857
для зручного підключення відгалуджень та інших пристроїв модуль розширення для Arduino MEGA2560, HW-857
2
 
RFID-RC522
для реалізації схем безключового або безконтактного доступу, зчитування і записування інформації на носії на кшталт чіпа або картки з радіо міткою модуль безконтактного зчитування інформації, RFID-RC522
3
 
ввод інформації в цифрові входи (DI), 16 клавіш, 8-ми контактна клавіатура для введення інформації
4
 
HX1838
для бездротової передачі данних від пульта до приймача через інфрачервоне випромінювання в межах прямої видимості пульт дистанційного керування з інфрачервоним передавачем, HX1838
5
 
для виявлення магнітного поля по близу чутливого елемента (геркона) датчик магнітного поля
6
 
HC-SR501
 
для виявлення переміщення тіл в зоні дії датчик руху, HC-SR501
7
 
HW-084
 
для відстеження реальго часу в системі автоматизації годинник реального часу, DS3231

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

Сторонніми виробниками також випускаються набори електромеханічних елементів, орієнтованих на роботу спільно з платами Ардуіно (як правило, через спеціальні плати-«драйвери») — двигуни, електромагніти тощо.

У концепцію Ардуіно не входять корпусні чи монтажні деталі (окрім попередньо підібраних «комплектів» для розробки одного чи кількох пристроїв). Розробник обирає метод установки й механічного захисту процесорних плат та компонентів розширення самостійно.

Моделі ред.

Arduino [Архівовано 5 травня 2011 у Wayback Machine.] Процесор Напруга живлення Флеш-пам'ять,
КБ
EEPROM,
КБ
SRAM,
КБ
Двійкові
входи/виходи
…з
ШІМ
Аналогові
входи
USB-інтерфейс Інші
інтерфейси
Розміри,
мм
ADK [Архівовано 6 червня 2012 у Wayback Machine.] ATmega2560 5 В 256 4 8 54 14 16 ATmega8U2 [Архівовано 1 листопада 2011 у Wayback Machine.] MAX3421E
USB хост
101.6 × 53.3 
BT (Bluetooth) [Архівовано 25 травня 2012 у Wayback Machine.] ATmega328 [Архівовано 13 січня 2013 у Wayback Machine.] 5 В 32 1 2 14 4 6 Відсутній Bluegiga WT11 Bluetooth
Diecimila [Архівовано 24 лютого 2011 у Wayback Machine.] ATmega168 [Архівовано 17 січня 2012 у Wayback Machine.] 5 В 16 0.5 1 14 6 6 FTDI 68.6 × 53.3 
Due ATMEL SAM3U [Архівовано 16 жовтня 2019 у Wayback Machine.] 256 0 50 54 16 16
Duemilanove [Архівовано 17 вересня 2012 у Wayback Machine.] ATmega168/328P [Архівовано 17 січня 2012 у Wayback Machine.] 5 В 16/32 0.5/1 1/2 14 6 6 FTDI 68.6 × 53.3 
Ethernet [Архівовано 2 червня 2012 у Wayback Machine.] ATmega328 [Архівовано 13 січня 2013 у Wayback Machine.] 5 В 32 1 2 14 4 6 Відсутній Wiznet Ethernet
MicroSD
Fio [Архівовано 26 травня 2011 у Wayback Machine.] ATmega328P [Архівовано 29 січня 2012 у Wayback Machine.] 3.3 В 32 1 2 14 6 8 Відсутній 40.6 × 27.9 
Leonardo [Архівовано 4 червня 2012 у Wayback Machine.] Atmega32u4 [Архівовано 26 листопада 2011 у Wayback Machine.] 5 В 32 1 2 14 6 12 Atmega32u4 [Архівовано 26 листопада 2011 у Wayback Machine.] 68.6 × 53.3 
LilyPad [Архівовано 22 травня 2011 у Wayback Machine.] ATmega168V or ATmega328V 2.7-5.5 В 16 0.5 1 14 6 6 Відсутній 50  ⌀
Mega [Архівовано 30 березня 2009 у Wayback Machine.] ATmega1280 5 В 128 4 8 54 14 16 FTDI 101.6 × 53.3 
Mega2560 ATmega2560 5 В 256 4 8 54 14 16 ATmega8U2 [Архівовано 1 листопада 2011 у Wayback Machine.] ATmega16U2 [Архівовано 14 грудня 2010 у Wayback Machine.] 101.6 × 53.3 
Nano ATmega168 [Архівовано 17 січня 2012 у Wayback Machine.] or ATmega328 [Архівовано 13 січня 2013 у Wayback Machine.] 5 В 16/32 0.5/1 1/2 14 6 8 FTDI 43 × 18 
Pro Mini [Архівовано 10 травня 2017 у Wayback Machine.] ATmega328P [Архівовано 18 травня 2017 у Wayback Machine.] 5 В або 3.3 В 32 1 2 14 6 8 FTDI UART 33 × 18 
Uno ATmega328P [Архівовано 29 січня 2012 у Wayback Machine.] 5 В 32 1 2 14 6 6 ATmega8U2 [Архівовано 1 листопада 2011 у Wayback Machine.] ATmega16U2 [Архівовано 14 грудня 2010 у Wayback Machine.] 68.6 × 53.3 
MK-duino ATmega8 5 В [Відсутній] [RS-232]

Програмне забезпечення ред.

Інтегроване середовище розробки Arduino це багатоплатформовий додаток на Java, що включає в себе редактор коду, компілятор і модуль передачі прошивки в плату. Середовище розробки засноване на мові програмування Processing та спроектоване для програмування новачками, не знайомими близько з розробкою програмного забезпечення. Мова програмування аналогічна мові Wiring. Загалом, це C++, доповнений деякими бібліотеками. Програми обробляються за допомогою препроцесора, а потім компілюються за допомогою AVR-GCC.

Програми Arduino пишуться на мові програмування C або C++. Середовище розробки Arduino поставляється разом із бібліотекою програм «Wiring» (бере початок від проекту Wiring, який дозволяє робити багато стандартних операцій вводу/виводу набагато простіше). Користувачам необхідно визначити лише дві функції для того, щоб створити програму, яка буде працювати за принципом циклічного виконання:

  • setup(): функція виконується лише раз при старті програми і дозволяє задати початкові параметри
  • loop(): функція виконується періодично, доки плата не буде вимкнена

Типова найпростіша програма для мікроконтролера, яка посилає команду блимати світловому діоду в середовищі Arduino, буде виглядати так[5]:

 
Інтегрований світлодіод (вивід 13 LED)
#define LED_PIN 13

void setup () {
  pinMode (LED_PIN, OUTPUT); // Ввімкнути контакт 13 для цифрового виводу
}

void loop () {
  digitalWrite (LED_PIN, HIGH); // Ввімкнути світлодіод
  delay (1000); // Зачекати одну секунду (1000 мілісекунд)
  digitalWrite (LED_PIN, LOW); // Вимкнути світлодіод
  delay (1000); // Зачекати одну секунду
}

У прикладі програми використовується конструктивна особливість більшості плат Arduino, які мають вбудований світлодіод з резистором навантаження, підключений між 13-м контактом і землею, що є зручним для багатьох простих тестів[5].

 
Інтерфейс програми проектування апаратного забезпечення Fritzing

Версії плат ред.

  • Arduino Uno (R3)
  • Arduino Nano
  • Arduino Micro
  • Arduino Due
  • LilyPad Arduino Board
  • Arduino Bluetooth
  • Arduino Diecimila
  • RedBoard Arduino Board
  • Arduino Mega (R3) Board
  • Arduino Leonardo Board
  • Arduino Robot
  • Arduino Esplora
  • Arduino Pro Mic
  • Arduino Ethernet
  • Arduino Zero
  • Fastest Arduino Board

Системи проектування ред.

Розробка апаратного забезпечення на базі Arduino може виконуватись в середовищі Fritzing.

Див. також ред.

Примітки ред.

  1. Arduino Software Release Notes. Архів оригіналу за 2 лютого 2020. Процитовано 31 січня 2017.
  2. Інтерфейс користувача оболонки Arduino перекладено українською мовою не цілком, довідка по системі існує лише англійською мовою
  3. Justin Lahart (27 листопада 2009). Taking an Open-Source Approach to Hardware. The Wall Street Journal. Архів оригіналу за 20 грудня 2014. Процитовано 7 вересня 2014.
  4. https://commons.wikimedia.org/wiki/File:HW-857.jpg

Посилання ред.

Arduino Guides [Архівовано 17 січня 2021 у Wayback Machine.]