Щоб підключити до комп'ютера Arduino Leonardo або Micro. вам знадобиться USB-кабель з роз'ємом Micro-B. Завдяки цьому з'єднанню плату можна буде і живити, і програмувати, і передавати на неї (і від неї) дані. Щоб програмувати Leonardo. вам потрібно буде запустити IDE Arduino. а потім відкрити меню Інструменти> Плата (Tools> Board) і вибрати там пункт Arduino Leonardo або Arduino Micro.
Відмінності від Arduino Uno
В цілому програмування і використання Arduino Leonardo виконується так само, як і на інших платах Arduino. Втім, ряд важливих відмінностей все ж таки присутня.
Один і той же процесор для скетчів і USB-комунікації
Моделі Leonardo і Micro відрізняються від інших плат Arduino тим, що використовують один і той же мікроконтролер як для запуску скетчів, так і для USB -комунікації з комп'ютером. У моделі Uno і інших плат під ці функції відведені різні мікроконтролери - це значить, що яким би не був стан головного мікроконтролера, з USB-з'єднання нічого не трапиться. Однак якщо об'єднати ці функції в одному процесорі, це додає комунікації з комп'ютером деякої гнучкості. Крім того, з усуненням одного процесора знижується і вартість плати.
Перезапис списку портів при скиданні
У цих плат немає окремого чіпа для обробки послідовної комунікації, а це значить, що послідовний порт - віртуальний. По суті, це програмна функція, яка працює і на ОС. і на самій платі. Точно так же, як ваш комп'ютер, який створює екземпляр драйвера послідовного порту, коли ви підключаєте Arduino. Leonardo / Micro створює подібний екземпляр, коли запускається її завантажувач. В результаті ОС комп'ютера бачить плату як екземпляр USB -Драйвера Connected Device Class (CDC).
Це означає що кожен раз, коли ви скидаєте плату, USB-з'єднання обривається і встановлюється заново. Плата зникає зі списку послідовних портів, а сам список буде перезаписано. Якщо у якоїсь програми буде відкрито з'єднання з Leonardo. то це з'єднання буде втрачено. Для порівняння - у Arduino Uno при скиданні головного процесора (ATmega328P) USB-з'єднання не закривається (тому що обробляється допоміжним процесором - Atmega8U2 або ATmega16U2). Ця відмінність вносить деякі корективи в установку драйверів, завантаження скетчів і комунікацію, але про це нижче.
Ні скидання при відкритті послідовного порту
На відміну від Arduino Uno. Leonardo / Micro НЕ перезапустить скетч, якщо ви відкриєте на комп'ютері послідовний порт. Це означає, що ви не побачите даних, які плата вже відправила комп'ютера, включаючи, наприклад, більшу частину даних, які були надіслані до функції setup ().
Ця зміна говорить про те, що якщо ви використовуєте функції print (). println () або write () (з бібліотеки Serial), то при відкритті «Монітор порту» вони не з'являться. Щоб виправити це, після виклику функції Serial.begin () потрібно поставити перевірку того, чи відкритий послідовний порт. Приблизно так:
Serial. begin # 40; 9600 # 41; ;
// нічого не робимо, поки не відкриється послідовний порт:
while # 40 ;. Serial # 41; ;
Емуляція миші і клавіатури
USB-комунікація і послідовна комунікація відокремлені один від одного
Деякі контакти виконують інші функції
Установка драйверів на Leonardo і Micro
- Коли Leonardo / Micro буде підключена до Mac в найперший раз, запуститься програма Keyboard Setup Assistant. Для Leonardo нічого налаштовувати не потрібно, тому цей діалог можна спокійно закрити, клікнувши на червону кнопку в лівій верхній частині вікна.
Нижче - інструкції для Windows 7. Втім, для Windows XP вони теж працюють, але з тією поправкою, що діалогові вікна будуть трохи відрізнятися.
- Підключіть плату і почекайте, поки Windows почне процес установки драйвера. Якщо програма встановлення не запускається автоматично, пройдіть до «Менеджеру пристроїв» (кнопка «Пуск»> «Панель управління»> «Система і безпека»> «Система»), знайдіть запис Arduino Leonardo. клікніть по ній правою кнопкою миші і виберіть пункт "Оновити драйвери. »
- На наступному екрані виберіть пункт «Виконати пошук драйверів на цьому комп'ютері» і клікніть «Далі».
- Натисніть на кнопку «Огляд. »З'явиться ще одне діалогове вікно, Ви повинні зайти в ньому до папки з IDE Arduino. яку ви тільки що завантажили. Виберіть папку drivers і натисніть ОК. а потім «Далі».
- Ви отримаєте повідомлення про те, що встановлюється ПЗ не перевірялося на сумісність з Windows. Натисніть на «Все одно продовжити».
- Через деякий час це вікно повідомить, що майстер закінчив установку ПО для Arduino Leonardo. Натисніть кнопку «Закрити».
Для Ubuntu 10.0.4 драйвера встановлювати не потрібно.
Завантаження коду на Leonardo і Micro
В цілому завантаження коду на Leonardo і Micro здійснюється так само, як на Uno і інші Arduino. Натисніть на кнопку «Завантаження» в IDE Arduino і ваш скетч буде автоматично завантажений на плату, а потім запущений. Це працює приблизно так - IDE Arduino ініціює скидання плати, запускаючи завантажувач, який відповідальний за отримання, зберігання і запуск нового скетчу.
Але порт віртуальний, тому після скидання плати він пропаде, і з цієї причини IDE Arduino виконує синхронізацію завантаження трохи інакше, ніж для Uno і інших Arduino. Зокрема, після ініціації авто-скидання Leonardo / Micro (за допомогою послідовного порту, обраного в меню Інструменти> Порт) IDE Arduino чекатиме появи нового віртуального (CDC) послідовного / COM-порту - того, який, на його думку, являє завантажувач . Після цього IDE Arduino виконає завантаження скетчу на знову з'явився порт.
Ця зміна впливає на те, як слід користуватися ручної кнопкою скидання, якщо з якоїсь причини не буде працювати автоматичне скидання. На Leonardo / Micro це робиться в такий спосіб: затисніть кнопку скидання, а потім клацніть на кнопку "Завантаження" в IDE Arduino. Відпускати кнопку скидання можна лише тоді, коли в статусному панелі IDE Arduino з'явиться повідомлення «Завантажуємо. »Після того, як ви зробите ці дії, запуститься завантажувач і створить на комп'ютері новий віртуальний (CDC) послідовний порт. IDE Arduino побачить цей порт і виконає завантаження через нього. Знову ж таки, все це необхідно лише в тому випадку, якщо у вас не працює нормальна процедура завантаження (тобто просте натискання на кнопку «Завантаження» в IDE Arduino).
Примітка: Автоматичний скидання ініціюється, коли комп'ютер відкриває послідовний порт на швидкості 1200 бод. а потім закриває його. Але це не спрацює, якщо щось буде заважати USB -комунікації плати. Наприклад, відключення переривань.
Рекомендації до програмування на Leonardo і Micro
Невелике попередження щодо використання бібліотек для USB-мишок і USB-клавіатур
Поради щодо використання «Монітор порту»
Оскільки в Leonardo послідовна комунікація йде лише через один процесор, то буфер послідовного порту на комп'ютері переповнюється швидше, ніж при використанні Uno або старіших моделей Arduino.
Таким чином, якщо послідовна комунікація буде вестися безперервно, наприклад, за допомогою такого коду.
void loop # 40; # 41; # 123;
int sensorReading = analogRead # 40; A0 # 41; ;
Serial. println # 40; sensorReading # 41; ;
# 125;
то ефективність роботи «Монітор порту» в IDE Arduino може істотно знизитися, тому що він буде намагатися встигати за процесом передачі даних. Якщо ви зустрілися з цією проблемою, додайте в цикл коротку затримку, щоб буфер заповнювався не так швидко. Досить навіть мілісекунди.
void loop # 40; # 41; # 123;
int sensorReading = analogRead # 40; A0 # 41; ;
Serial. println # 40; sensorReading # 41; ;
delay # 40; 1 # 41; ;
# 125;
Програми, що використовують рідні бібліотеки, а не RXTX -бібліотеки, зчитують буфер швидше, тому ця проблема, швидше за все, буде зустрічатися лише в тому ПО, де використовується RXTX -комунікації - в «Моніторі порту» IDE Arduino. Processing і т.д.