Інтернет Windows Android

Супер-швидкий старт з Ардуіно: береш і робиш. Завантажуємо перший скетч в Arduino

В даному проекті я хочу показати, як залити скетч в Arduino за допомогою звичайного пристрою на базі операційної системи Android. Це пристрій може бути корисно для стаціонарно встановлених плат Arduino, наприклад, таких, як контролери освітлення ...

Крок 1: Матеріали та інструменти

матеріали:

Кабель USB-A - USB-B
Кабель USB-Host (OTG-кабель)
Arduino
1 світлодіод (для тестування)
Android пристрій, Версія ОС Android 4.0.0+ (або c підтримкою режиму host)

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

ArduinoDroid або ArduinoCommander, які можна завантажити з магазину Google Play

Крок 2: Кабель USB-Host

Кабель USB-Host в основному аналогічний кабелю USB, Але в роз'ємі micro USB встановлені інші резистори. Внутрішні резистори дозволяють Android пристрою активувати режим USB-Host. У цьому режимі ви також можете використовувати USB-флешки або інші пристрої з підтримкою usb інтерфейсу. Це дуже корисна функція, І тепер можна підключати навіть usb-принтер.

Проблема полягає в тому, що після підключення USB пристрою, воно буде отримувати живлення від ведучого (host) пристрої, тим самим розряджаючи його акумуляторну батарею.

Крок 3: З'єднання

Цей дуже простий крок і не вимагає особливої \u200b\u200bуваги. Просто вставте кабель USB-A - USB-B в USB роз'єм типу мама Host кабелю. Потім вставте USB-B роз'єм в Arduino, а Micro USB в Android пристрій.

Крок 4: Включення Arduino

Всі з'єднання повинні бути виконані як на фотографії. Далі можна включити ваш Arduino і завантажити в нього останній скачаний код. На своєму Arduino я використовував Blink скетч. Якщо Arduino не запускається, тоді перевірте правильність з'єднань.

Крок 5: Додатки

Тепер Arduino вже готовий до завантаження коду, але ваше Android пристрій поки немає ...

Давайте змінимо цю ситуацію!

На даний момент існує два додатки, які дозволяють працювати з нашим Arduino через режим Host.

Для їх завантаження перейдіть на сайт Play Store, Потім в рядку пошуку введіть "Arduino". Далі клацніть на "Apps", після цього будуть відображатися тільки додатки. Нам потрібно два додатки: "ArduinoDroid" і "ArduinoCommander". Встановіть їх, потім запустіть "ArduinoDroid". Ця програма має оновити IDE, на що знадобиться деякий час. Додаток "ArduinoCommander" буде потрібно далі.

Примітка: Обидві програми використовувати одночасно необов'язково, просто я хочу показати роботу обох!

Крок 6: ArduinoCommander, автор програми Антон Смирнов

Ну, що ж, почнемо з додатка "ArduinoCommander". Його розробив Антон Смирнов для версії Andorid 2.2 або вище.

Цей додаток призначений для роботи з Arduino з допомогою Android пристрою. З його допомогою ви зможете легко змінити стан висновків (безпосередньо встановити високий або низький стан), завантажити скетчі або вважати показання на аналогових висновках в режимі осцилографа.

З даним додатком легко розібратися, навіть якщо управління нестандартне. Воно автоматично визначає Arduino і функціонує дуже стабільно.

Однак деякі функції не працюють. Сподіваюся, в подальших версіях додатка ці баги будуть виправлені. Завантаження скетчу пройшла успішно!

ставлю даному додатку 4.0 з 5 зірочок.

Тепер давайте коротко розглянемо підключення до Arduino.

Крок 7: Частина 1

Інші опції включають:
Ethernet
Bluetooth
USB-extras

Крок 8: Частина 2

Тепер клацніть на "Autodetect". Android пристрій почне автоматичний пошук Arduino, потім покаже його на екрані. А зараз виберемо наш Arduino (просто клацнемо на ньому).

Крок 9: Частина 3

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

Крок 10: ArduinoDroid

Тепер перейдемо до розгляду іншої програми, яка дозволяє завантажувати скетчі в ваш Arduino. Ця програма називається "ArduinoDroid" і працює для версії Android 4.2.2 або вище. Автор цієї програми також Антон Смирнов!

Вступ

Вітаю Вас, читачі нашого ресурсу. Сьогодні ми поговоримо про один контролері з серії Arduino, а саме про Arduino Pro Mini. Це маленький, компактний контролер, який має всі переваги Arduino, але при цьому дуже компактний, можна сказати найменший з усіх існуючих Arduino контролерів на даний момент. Багатьох так само привертає і ціна його Китайський копій, а коштують вони від одного до двох доларів за штуку (місцями і того менше), що так само змушує задуматися про його придбання. Але існує і одна проблема, його не так-то вже й просто прошити, особливо китайські копії, Які оснащують процесором Atmel ATmega168P, якими колись не оснащуються офіційні контролери Arduino Pro Mini і як наслідок Arduino IDE відмовляється їх прошивати, повідомляючи про неправильну сигнатуре процесора.

Ось про це ми сьогодні і поговоримо. Як прошити, що для цього потрібно, ну і як змусити Arduino IDE працювати з китайськими копіями.

Що для цього потрібно?

Arduino Pro Mini дуже компактний, а компактність вимагає жертв і жертва це - USB інтерфейс який повністю викосили в даному контролері тобто підключити Pro Mini до комп'ютера безпосередньо у вас не вийде і як наслідок для цього знадобиться або спеціальний перехідник USB в TTL або інший контролер Arduino.

  • Перший спосіб. Прошиваємо через адаптер USB в TTL - потрібен сам адаптер в кількості однієї штуки.
  • Другий спосіб. Прошиваємо через Arduino UNO - потрібна Arduino UNO, але не проста, а в класичному виконанні, це та Arduino, в якій процесор виконаний в DIP корпусі і вставлений в чорний роз'єм.
  • Третій спосіб. Прошиваємо через SPI інтерфейс - потрібна будь-яка Arduino: UNO, Nano, Mega, Leonardo - не важливо, головне щоб був USB роз'єм для підключення до ПК.

Перший спосіб. Прошиваємо через адаптер USB в TTL

Першим і самим простим способом завантажити свій скетч в Arduino Pro Mini - це придбати спеціальний адаптер USB в TTL або як його називають UART перехідник. Як правило, цей перехідник це і є та частина, яку вирізали з Arduino Nano, перетворивши її в Arduino Pro Mini. Вартість подібних перехідників копійчана, а вибір і того більше. Китайці наштопалі їх стільки, що очі розбігатися який з них вибрати. При цьому ціна цього девайса не більше одного вічно зеленого. Після того як ви з'єднаєте Pro Mini і UART перехідник проводами або шлейфом, залишається тільки увіткнути його (перехідник) в ПК, встановити драйвер (не для всіх перехідників вони потрібні) і на цьому власне все. Ваш ПК визначить перехідник як черговий COM-порт, який з'являється при підключенні будь-Arduino до ПК. Вибираєте його, плату, з якої будете працювати (Arduino Pro Mini) і спокійно завантажуєте свій скетч.

Єдиним нюансом в даних перехідниках, є наявність або відсутність контактів RST або DTR. Рекомендую купувати перехідники, на яких ці контакти є. Вони значно спрощують життя і роблять процес прошивки безпроблемним. Якщо ж ви купили вже перехідник, на якому подібних контактів немає, то при кожному завантаженні скетчу в Arduino вам доведеться натискати на кнопку Reset, що не завжди виходить зробити вчасно, і це вносить свої незручності.

Підключення перехідник ви можете подивитися по таблиці нижче:

Другий спосіб. Прошиваємо через Arduino UNO

Для цього способу нам знадобитися класична Arduino UNO. Класична це та, в якій корпус мікросхеми виконаний в DIP корпусі і вставлений в спеціальний роз'єм. Ось цю мікросхему нам треба акуратно підчепити викруткою. Тут важливо не зламати процесор, піддягайте акуратно, не погнувши ноги.

Arduino UNO. Процесор виконаний в DIP корпусі.

Акуратно піддягаємо і витягуємо процесор викруткою.

Після того як ми витягли процесор з Arduino UNO ми по суті отримали той самий перехідник USB в TTL, залишилося тільки з'єднати проводами наш новий перехідник і Arduino Pro Mini за наступною схемою:

Arduino UNO (без процесора)
Arduino Pro Mini
RX
RX
TX
TX
GND
GND
5V
VCC
RST
RST

Після того як ви з'єднали дві Arduino воєдино, можна приступати до прошивці Arduino Pro Mini. Підключаємо Arduino UNO по USB до ПК. Вибираємо в налаштуваннях Arduino IDE COM-порт, вказуємо, що ми тепер працюємо не з Arduino UNO, а з Arduino Pro Mini і все, заливаємо наші скетчі. Спосіб досить цікавий, якщо ви не боїтеся зіпсувати Arduino і поруч не виявилося перехідника USB в TTL.

Третій спосіб. Прошиваємо через SPI інтерфейс

Третім і найбільш незручним способом завантажити свій скетч в Arduino Pro Mini це прошити його за допомогою ICSP інтерфейсу. Даний інтерфейс присутній на більшості плат Arduino. Основні контакти даного інтерфейсу виведені на порти з 10 по 13, а так само виведені окремо у вигляді шести контактної колодки з підписом ICSP. Розташовується колодка, як правило, в центральній правій частині Arduino.

Прошивка Arduino Pro Mini в цьому випадку ділитися на два етапи:

  1. Прошивка плати Arduino як ISP програматора.

Насамперед ми повинні підготувати наш майбутній програматор. Візьмемо для прикладу всю тугіше Arduino UNO. Далі крок за кроком:

  1. Запускаємо Arduino IDE.
  2. Файл - Приклади - 11.ArduinoISP - ArduinoISP.
  3. Інструменти - Плата - Arduino UNO.
  4. Інструменти - Порт - Вибираємо COM-порт.
  5. Компілюємо і заливаєш в Arduino UNO.
Arduino UNO (ISP)
Arduino Pro Mini
5V
VCC
GND
GND
10
RST
11 (MOSI)
11 (MOSI)
12 (MISO)
12 (MISO)
13 (SCK)
13 (SCK)

Тепер знову відкриваємо Arduino IDE. Відкриваємо в ній скетч який ви хочете залити в Pro Mini і виконуєте наступні дії:

2. Інструменти - Плата - Arduino Pro Or Pro Mini
3. Інструменти - Процесор - ATmega168 (5V, 16 MHz)
4. Інструменти - Порт - Вибираєте порт
5. Інструменти - Программатор - Arduino as ISP
6. Скетч - Завантажити через програматор

Як бачите завантажувати скетч в цьому режимі треба через спеціальне меню "Завантажити через програматор", а не через кнопку "Завантажити" на головній формі Arduino IDE. В цьому і пов'язане все незручність. Якщо ви натиснете кнопку "Завантажити" як це робите зазвичай, то ви заллєте скетч в Arduino UNO, а не Arduino Pro Mini, що затре там скетч програматора. Так само в цьому режимі недоступний клас Serial, тобто налагоджувати свій скетч обмінюючись повідомленнями по COM-порту у вас так само не вийде. Ну і ще одна ложка дьогтю в тому, що після даної перепрошивки, в більшості випадків, перепрошити Arduino Pro Mini через перехідник у вас так само більше не вийти. Виправляється це заливкою нового bootloader-а через меню "Інструменти" - "Записати Завантажувач".

Додаємо китайський Pro Mini в Arduino IDE

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

Avrdude: Expected signature for ATmega168 is 1E 94 06 Double check chip, or use -F to override this check. Знайдений неправильний мікроконтролер. Ви вказали правильну плату в меню Інструменти -\u003e Плата?

Виправляється це легко:

  • Для початку необхідно відкрити папку в якій розташована Arduino IDE.
  • Потім переходимо в наступну папку "Папка з Arduino IDE \\ hardware \\ arduino \\ avr \\".
  • Шукаємо там файл "boards.txt" і відкриваємо його в текстовому редакторі.
  • Шукаємо в файлі наступний рядок "pro.menu.cpu.16MHzatmega168.build.mcu \u003d atmega168".
  • І замінюємо її на "pro.menu.cpu.16MHzatmega168.build.mcu \u003d atmega168p".
  • Перезапускаємо Arduino IDE і на цьому все.
  • Якщо у вас наприклад 328 процесор то робимо все так же, тільки шукаємо рядок з цифрами 328.

висновок

У даній статті я привів аж три варіанти завантаження скетчів в Arduino Pro Mini. Особисто я використовую другий. Мені він більше подобатися.

Що будете використовувати ви - вибирати вам. Залиште в коментарі який варіант ви віддаєте перевагу.

Успіхів вам і удачі.

Будь ласка, включіть javascript для роботи коментарів.

Завантаженість першого скетчу, це стан захоплення не залишає тривалий час. Описати то що ти відчуваєш в момент удачі дуже складно, особливо якщо ти не коли раніше не мав справи з програмованої радіоелектронікою. В голові крутяться думки, ідеї, і хочеться швидше дізнатися на що ж ще здатний цей шматок текстоліту і набір радіодеталей! Якщо ви пройшли етап Arduino uno R3 CH340G підключення та налаштування. до комп'ютера, ми можемо приступити до наступних дій.

Перший скетч зовсім не обов'язково шукати на просторах інтернету або писати самому. Arduino IDE має набір попередньо встановлених бібліотек і прикладів, які ви можете використовувати в своїх проектах при подальшій роботі з контролером. Для початку відкриємо Arduino IDE і переходимо на вкладку Файл у верхньому меню вікна, далі наводимо покажчик миші на пункт Приклади. Прикладів скетчів багато, але я пропоную зупинити вибір на скетчі Blink в категорії прикладів Basics. Скетч дуже простий і не вимагає будь-яких додаткових елементів для своєї демонстрації.

вибравши даний приклад у нас відкривається нове вікно середовища розробки Arduino з готовим для завантаження кодом прошивки контролера. Виглядає це так.

Давайте трохи розберемо що несе в собі цей скетч. З 1 по 23 Сточки ми бачимо текст сірого кольору. Цей текст несе інформаційний характер і описує користувачеві деякі параметри роботи даного скетчу, також автор цього скетчу може залишити контактну інформацію про себе. Ці рядки закоментовані і при прошивці контролера вони не завантажуються в нього. Закоментувати текст можна двома способами. Перший спосіб буде зручний якщо потрібно приховати від завантажувача кілька рядків, в такому випадку використовується знак / * на початку коментарів, * / в кінці коментарів, як в першій і двадцять третьому рядку. Другий спосіб більше підходить для опису частини коду або будь-якої функції, для цього використовується // текст або код потрапив за подвійний слеш // в межах одного рядка буде приховано від завантаження в контроллер, що ми можемо спостерігати в іншій частині коду. До речі, якщо ви надалі плануєте писати скетчі самі то, вважається хорошим тоном залишати опис параметрів роботи скетчу і коментарів до функцій. З опису яке залишив нам автор зрозуміло наступне, що цей скетч змушує вбудований в плату контролера світлодіод і прив'язаний до 13 цифровому піну, моргати з частотою в 1000 мілісекунд.

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

Після натискання кнопки починається процес компіляції коду та перевірки його на наявність помилок. Якщо завантаження коду проходить вдало, то про це нас інформує рядок стану завантаження.

І на контролері ми можемо спостерігати як світлодіод промаркірований латинською буквою L починає моргати із заданою частотою.

Для більшого розуміння роботи цього скетчу, давайте трохи відредагуємо код і подивимося що змінилося. Переходимо на 34 рядок коду і змінимо час паузи, delay (1000); змінимо на delay (10000);.

В результаті цих маніпуляцій програма роботи нашого контролера змінилася. І зараз світлодіод на контролері спалахує не на 1 секунду як це було при завантаженні вихідного коду, А на 10 секунд. Зараз ми програмно вказали в 33 рядку включити світлодіод і цей світлодіод буде горіти до тих пір поки щодо нього не надійде іншої команди. Тому в 34 рядку ми ставимо паузу в 10 секунд а в 35 рядку гасимо світлодіод. Має вийти щось на зразок нижче представленого зображення.

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

скетч - це програма, написана для платформи Arduino і має певну структуру.

Для початку розглянемо в простий, абстрактній манері як працює ваша плата з програмної точки зору. Arduino, по суті, є терморегулятори (розведенням ніжок мікроконтролера на зручні для використання входи / виходи - Піни) мікроконтролера Atmega. Як ви помітили, різні плати містять різні контролери і, відповідно, мають різну конфігурацію пинов. На заводі було встановлено на плату arduino hex-прошивку (bootloader), яка стартує при включенні і передає управління скетчу, написаному і залитому користувачем.

Cтруктура скетчів:

Скетч обов'язково містить 2 функції: функцію setupі функцію loop.

Прошивка Arduino при включенні викликає функцію setup. Функція setup викликається лише раз, при кожному запуску плати. Це місце ідеально підходить для ініціалізації (завдання початкових значень) змінних, установки режимів пинов (введення / виведення), завдання відповідності підключених датчиків / сервоприводів / іншого з пинами. Після виконання функції setup йде циклічний виклик функції loop (тобто відразу після виходу з функції setup, виконується функція loop, після виходу з неї, вона ж викликається знову. Процес триває поки харчування не буде відключено.)

Для закріплення розглянемо найпростіший скетч на миготіння світлодіодом (такий собі класичний Hello World для Arduino). Слово void перед назвою функції, говорить нам про те, що функція не повертає ніяких значень (повертає "void" - "порожнечу"). Структуру, поняття і призначення функцій ми розглянемо в наступних статтях.

void setup () { // Встановимо 13-пін, як висновок pinMode (13, OUTPUT); ) void loop () (DigitalWrite (13, HIGH); // запалюємо світлодіод delay (1000); // чекаємо секунду digitalWrite (13, LOW); // вимикаємо світлодіод delay (1000); // чекаємо секунду)

Як вже повинно бути ясно, при включенні плати, буде викликана функція setup, в якій 13 пін буде встановлений як висновок. Далі циклічно буде викликатися функція loop.

Розглянемо процес заливки скетчу на arduino. Весь процес розглянемо для середовища Arduino IDE. В інших середовищах кроки аналогічні, і ми не вважаємо, що вимагають окремого розгляду. Для початку відкриваємо середу і копіюємо наш скетч.

Натискаємо кнопку "Залити"

Як ми бачимо, відбувається компіляція нашої програми. Компіляція - це процес перетворення програмного коду з мови верхнього рівня, в бінарний код, Який буде виконувати мікроконтролер. Якщо скетч написаний без синтаксичних помилок, Він успішно буде скомпільовано і залитий на arduino.

Нам часто задають питання, чи потрібно якось очищати, прати старі скетчі перед заливкою нових. Ні не потрібно. При заливці нового скетчу від старого не залишається і сліду;)