Керівництво до Arduino Leonardo і Micro
Для підключення до комп'ютера Arduino Leonardo або Micro вам знадобиться USB-кабель з роз'ємом Micro-B. Такий USB-кабель служить як для передачі даних, так і для живлення плати. Щоб прошити Arduino Leonardo, в середовищі розробки Arduino IDE з меню Tools> Board необхідно вибрати пункт "Arduino Leonardo" або "Arduino Micro".
Відмінності від Arduino Uno
В цілому, порядок роботи і програмування Leonardo і Micro точно такий же, як і в інших моделях Ардуіно. Проте, існує і кілька важливих відмінностей.
Єдиний процесор - і для виконання програм, і для зв'язку з USB.
Leonardo і Micro відрізняються від інших моделей Ардуіно, перш за все, тим, що в них для виконання всіх функцій використовується один мікроконтролер - і для виконання програм, і для взаємодії з комп'ютером по інтерфейсу USB. В Arduino Uno і інших моделях для виконання цих двох функцій використовуються різні мікроконтролери, відповідно, USB-з'єднання з комп'ютером завжди залишається активним, незалежно від поточного стану головного мікроконтролера. Об'єднання обох функцій в один мікроконтролер дозволило зробити Leonardo більш гнучким у взаємодії з комп'ютером, а також зменшити його собівартість за рахунок відсутності додаткового процесора.
Перепризначення порту при скиданні плати.
У складі пристрою немає окремої мікросхеми, яка обслуговує послідовну зв'язок, тому що використовуються послідовні порти є віртуальним - як в операційній системі ПК, так і на самому пристрої. При запуску завантажувача, Leonardo / Micro автоматично створює екземпляр класу для роботи з послідовним інтерфейсом, точно так же, як комп'ютер створює екземпляр драйвера послідовного порту при підключенні Ардуіно. В системі підключена плата є екземпляром спеціального класу драйвера для роботи з USB (Connected Device Class - CDC).
Така організація призводить до того, що після перезапуску плати, USB-з'єднання з комп'ютером буде розриватися і встановлюватися знову. В системі пристрій буде зникати зі списку доступних портів, відповідно послідовні порти будуть перенумеровувати. Тому всі програми, в яких було відкрито порт Ардуіно, втратять з'єднання з пристроєм. Це одне з явних відмінностей Leonardo / Micro від Arduino Uno, в якому скидання мікроконтролера (ATmega328P) не призводить до розриву USB-з'єднання (яке підтримується додатковим процесором ATmega8U2 або ATmega16U2). Ці відмінності призводить до деяких особливостей установки драйвера, процесу прошивки і взаємодії з пристроєм, які описані нижче.
Відсутність скидання при відкритті послідовного порту.
На відміну від Arduino Uno, Arduino Leonardo і Micro НЕ перезапускають завантажений скетч при кожному відкритті послідовного порту на комп'ютері. Це означає, що комп'ютер не отримає дані, відправлені платою до відкриття в операційній системі послідовного порту (в тому числі, наприклад, дані, що відправляються в блоці setup ()).
Така зміна призводить до того, що будь-які функції для передачі послідовних даних (такі, як print (), println (), write () і ін.), Написані в блоці setup, що не будуть викликатися в момент відкриття послідовного порту. Щоб обійти цю проблему, можна програмно перевіряти статус послідовного порту після виклику функції Serial.begin (), наприклад, так:
Емуляція клавіатури і миші.
Одна з переваг використання єдиного процесора для виконання програм і USB-зв'язку - це гнучкість при взаємодії пристрою з комп'ютером. Зокрема, завдяки цьому Ардуіно може визначатися в системі не тільки, як віртуальний послідовний порт (також званий CDC), який використовується для прошивки і передачі даних (подібно Arduino Uno), але і працювати в якості HID-пристрої, емулюючи клавіатуру або мишу. Попередження про використання цього режиму див. Розділ "Правила хорошого тону при програмуванні", наведеному нижче.
Роздільне функціонування USB і UART.
В Arduino Leonardo і Micro, основний клас Serial асоційований з драйвером віртуального послідовного порту для з'єднання з комп'ютером через USB. Фізично він не з'єднаний з висновками 0 і 1, як це зроблено на платах Arduino Uno і в більш старих версіях. Для звернення до апаратного послідовного порту (висновків 0 і 1, RX і TX) використовуйте клас Serial1. (Для отримання додаткової інформації див. Довідку по класу Serial).
Відмінності в терморегулятори.
Терморегулятори Arduino Leonardo дещо відрізняється від стандартного розташування деяких висновків (особливо висновків інтерфейсів SPI і TWI). Ці відмінності докладно описані на сторінці опису пристрою.
Установка драйверів для Arduino Leonardo і Micro
- При першому підключенні Leonardo або Micro до комп'ютера Mac, автоматично запуститься програма "Keyboard Setup Assistant". Оскільки для Leonardo налаштовувати тут особливо нічого, можна просто закрити це вікно, клікнувши по червоній кнопці в лівому верхньому кутку.
Інструкції для Windows
Перелічені нижче інструкції, перш за все, відносяться до Windows 7, хоча вони також підходять і для Windows XP (лише з невеликими відмінностями в діалогових вікнах).
- Підключіть плату до комп'ютера і дочекайтеся, поки система Windows не запустить майстер установки драйверів. Якщо майстер не запустився автоматично, то вручну перейдіть до Диспетчер пристроїв (Пуск> Панель керування> Устаткування) і відшукайте в списку рядок Arduino Leonardo. Клацніть по ній правою кнопкою і виберіть пункт "Оновити драйвер".
- У вікні виберіть "Виконати пошук драйверів на цьому комп'ютері" і тисніть Далі.
- Тисніть кнопку "Огляд.". У вікні перейдіть до папки з програмним забезпеченням Ардуіно (яке ви попередньо завантажили). Виберіть папку drivers і натисніть ОК, а потім Далі.
- Виникне повідомлення про те, що встановлюється обладнання не минало тестування в Windows Logo. Тисніть на кнопку Все одно продовжити.
- Через кілька секунд з'явиться повідомлення про те, що майстер завершив установку програмного забезпечення для Arduino Leonardo. Тепер закрийте вікно.
Під Linux установка драйверів не потрібно взагалі. (Перевірено на Ubuntu 10.0.4)
Прошивка програм в Arduino Leonardo і Micro
В цілому, процес завантаження програми в Arduino Leonardo або Micro особливо нічим не відрізняється від прошивки Uno або інших моделей Ардуіно. Досить в середовищі розробки натиснути кнопку Upload, і ваша програма буде автоматично завантажена в пам'ять Ардуіно і запущена їм на виконання. У загальних рисах цей процес влаштований точно так же, як і в Arduino Uno: середа Arduino ініціює скидання плати, який призводить до запуску завантажувача, що відповідає за отримання, зберігання і запуску нового скетчу.
Однак, оскільки послідовний порт, який взаємодіє з пристроєм, є віртуальним і зникає після перезапуску плати, то середовище розробки Ардуіно дотримується дещо іншої стратегії при виборі таймингов на завантаження скетчу, на відміну від Uno і інших моделей. Зокрема, після автоматичного скидання Leonardo або Micro (через послідовний порт, обраний в меню Tools> Serial Port), середа Ардуіно очікує появи в системі нового віртуального послідовного (CDC) / COM-порту - того, який імовірно буде "прослуховувати" завантажувач. Після цього середовища здійснюється відправку скетчу на цей новостворений порт.
Якщо автоматичне скидання не спрацював, то з огляду на описаних відмінностей, використовувати фізичну кнопку скидання для прошивки Arduino Leonardo / Micro потрібно дещо по-іншому. Потримайте кнопку скидання на платі, після цього в середовищі розробки Ардуіно клікніть по кнопці Upload. Відпускайте кнопку скидання тільки після того, як в рядку стану програми з'явиться напис "Uploading.". Після цього на платі запуститься завантажувач, що призведе до створення віртуального (CDC) послідовного порту на комп'ютері. Середовище розробки побачить новий порт в системі і почне передачу прошивки через цей порт. Знову таки, ці дії необхідні, тільки якщо в ньому не спрацювала традиційна процедура прошивки (тобто після натискання однієї кнопки Upload). (Зверніть увагу, що автоматичне скидання пристрою відбувається, якщо комп'ютер відкриває послідовний порт на швидкості 1200 бод і потім закриває його; відповідно, він може не спрацювати, якщо щось в системі впливає на USB-з'єднання з платою - наприклад, відключені переривання ).
Правила гарного тону при програмуванні Arduino Leonardo і Micro
Кілька слів застереження про використання бібліотек USB Mouse і Keyboard. постійно запущені на пристрої бібліотеки Mouse або Keyboard можуть сильно ускладнити процес прошивки Ардуіно. Такі функції, як Mouse.move () і Keyboard.print () переміщають покажчик миші або постійно відправляють сигнали про натискання клавіш підключеному комп'ютера, тому вони повинні викликатися тільки тоді, коли ви готові обробляти від них події. Рекомендується використовувати якусь систему управління, що дозволяє вимикати подібну функціональність, наприклад, в залежності від положення перемикача або сигналу на виводі, стан якого ви можете контролювати. Перед використанням функцій бібліотек Mouse або Keyboard безпосередньо з комп'ютером, найкраще протестувати повертаються ними значення за допомогою функції Serial.print (). Так ви зможете переконатися в правильності відправляються значень. Детальніше див. Приклади роботи з бібліотеками Mouse і Keyboard.
Ефективне використання програми Serial Monitor: оскільки послідовні дані йдуть тільки через один процесор, Ардуіно може заповнювати приймальний буфер комп'ютера набагато швидше, ніж інші пристрої. Вам слід пам'ятати, що при циклічної відправці даних по послідовному інтерфейсу, наприклад, так:
Serial Monitor в середовищі розробки може пригальмовувати, оскільки він не буде встигати відображати надходять від Ардуіно дані. Якщо у вас виникла така ситуація, додайте невелику затримку всередину вашого циклу, щоб приймальний буфер на комп'ютері не заповнювався дуже швидко. Допоможе навіть невелика затримка в 1 мс:
Програми, що працюють з послідовним портом через рідні бібліотеки, а не через бібліотеку RXTX, як правило, зчитують дані з порту набагато швидше, тому в більшості випадків ви не зіткнетеся з цією помилкою за винятком програм, побудованих на базі функцій RXTX (в тому числі Serial Monitor, Processing та ін.).