Arduino

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Arduino Software
Arduino Uno logo.png
Arduino IDE - v0011 Alpha.png
Arduino IDE з прикладом простої програми.
Розробник(и) Arduino Software
Стабільний випуск 1.6.6 (3 листопада 2015 рік)
Написано на Java
Операційна система крос-платформенна
Тип Інтегроване середовище розробки
Ліцензія LGPL або GPL license
Сайт http://www.arduino.cc

Commons-logo.svg Arduino Software у Вікісховищі

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

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

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

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

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

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

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

Моделі[ред.ред. код]

Arduino Процесор Напруга живлення Флеш-пам'ять,
КБ
EEPROM,
КБ
SRAM,
КБ
Двійкові
входи/виходи
…з
ШІМ
Аналогові
входи
USB-інтерфейс Інші
інтерфейси
Розміри,
мм
ADK ATmega2560 5 В 256 4 8 54 14 16 ATmega8U2 MAX3421E
USB хост
101.6 × 53.3 
BT (Bluetooth) ATmega328 5 В 32 1 2 14 4 6 Відсутній Bluegiga WT11 Bluetooth
Diecimila ATmega168 5 В 16 0.5 1 14 6 6 FTDI 68.6 × 53.3 
Due ATMEL SAM3U 256 0 50 54 16 16
Duemilanove ATmega168/328P 5 В 16/32 0.5/1 1/2 14 6 6 FTDI 68.6 × 53.3 
Ethernet ATmega328 5 В 32 1 2 14 4 6 Відсутній Wiznet Ethernet
MicroSD
Fio ATmega328P 3.3 В 32 1 2 14 6 8 Відсутній 40.6 × 27.9 
Leonardo Atmega32u4 5 В 32 1 2 14 6 12 Atmega32u4 68.6 × 53.3 
LilyPad ATmega168V or ATmega328V 2.7-5.5 В 16 0.5 1 14 6 6 Відсутній 50  ⌀
Mega ATmega1280 5 В 128 4 8 54 14 16 FTDI 101.6 × 53.3 
Mega2560 ATmega2560 5 В 256 4 8 54 14 16 ATmega8U2 ATmega16U2 101.6 × 53.3 
Nano ATmega168 or ATmega328 5 В 16/32 0.5/1 1/2 14 6 8 FTDI 43 × 18 
Uno ATmega328P 5 В 32 1 2 14 6 6 ATmega8U2 ATmega16U2 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, буде виглядати так[1]:

Інтегрований світлодіод (вивід 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-им контактом і землею, що є зручним для багатьох простих тестів[1].

Версії плат[ред.ред. код]

Примітки[ред.ред. код]