Експерименти з Arduino 101

Одного разу, жарким зимовим днем, у переддень Різдва, мене нестримно потягнуло зробити що-небудь цікаве. У мене був пристойний запас фуа-гра (на південно-заході Франції, де я живу, виробляють багато цього делікатесу), хороший фільм і плата Arduino 101. З неї-то я і вирішив поекспериментувати. Приєднуйтесь!


Arduino 101

Можливо, ви чули про те, що плата Arduino 101 була представленаа на виставці Maker Faire Rom 2015. Мені довелося побувати на цьому чудовому заході і побачити презентацію своїми очима.

Перше, що хочеться сказати про Arduino 101, полягає в тому, що це пристрій, незважаючи на мініатюрність і невисоку ціну, відмінно укомплектовано. А саме, в ньому встановлено 32-розрядний мікроконтролер Intel Quark, що робить його економічним. Воно має 384 Кб флеш-пам'яті, 80 Кб SRAM (для скетчів доступно 24 Кб). Arduino 101 оснащений DSP-хабом датчиків, Bluetooth LE і 6-осьовим комбінованим сенсором з акселерометром і гіроскопом. Все це – завдяки модулю Intel Curie.

Отже, експериментуючи з Arduino 101, я вирішив випробувати його можливості по роботі з цифровими і аналоговими пристроями, подивитися, що можна зробити з гіроскопічним сенсором (IMU) і модулем Bluetooth LE (BLE).

Hello World
Отже, з чого почнемо? Для початку – підключимо Arduino 101 до комп'ютера за допомогою USB-кабелю, потім завантажимо свіжу версію Arduino IDE (1.6.7. в моєму випадку) і встановимо необхідний пакет з допомогою менеджера плат.


Запуск менеджера плат


Установка пакета

Після завершення установки в меню повинна з'явитися нова плата – «Arduino 101».


Arduino 101 в меню

Перед початком роботи потрібно вказати COM-порт, з яким асоційований плата.


Вибір COM-порту

Середовище розробки встановлено, плата до комп'ютера підключено, тепер спробуємо перший приклад – «Blink».
Для запуску прикладу додаткових пристроїв на платі підключати не доведеться. У ньому використовується вбудований світлодіод, який буде мигати, якщо все піде як треба. Завантажимо приклад з відповідного меню.


Завантаження приклади з меню

Коли код відкриється в редакторі, потрібно натиснути на кнопку «Upload» (на ній намальована стрілка) для вивантаження скетчу, зібраного з неї, на платню.


Вивантаження скетчу на плату

Після натискання на кнопку відбувається компіляція коду і вивантаження на плату за USB. Якщо все зроблено вірно, через кілька секунд світлодіод на Arduino 101 почне блимати. Ви можете внести зміни в код, наприклад – змінити період мигання світлодіода. Після цього знову вивантажите його на плату та оцініть роботу зміненого варіанту.

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

У мене є Grove Starter Kit Plus, датчик я вибирав звідти, а вирішив почати з чогось простого. Наприклад – з потенціометра, який у документації Grove називається «Rotary Angle Sensor». Датчик підключимо до аналогового роз'єму, а саме, до A0, а потім, в режимі реального часу, будемо читати його показання.


Підключення потенціометра

Завантажимо приклад «AnalogReadSerial» з меню.


Завантаження прикладу

Вивантажимо скетч на плату і відкриємо монітор послідовного порту («Serial Monitor») з меню «Tools».


Показання потенціометра

Тепер у вікні монітора можна буде побачити дані з потенціометра, які змінюються при повороті його ручки.
А ось ще одна корисна можливість – побудова графіків за аналоговим даними за допомогою засобу «Serial Плоттера» (його можна знайти в меню «Tools»). Графік виводиться в режимі реального часу.


Візуалізація даних

Цифрові датчики
Бувають аналогові датчики, бувають цифрові. У документації до пристроїв можна знайти вказівки на це, а також відомості про те, як тим чи іншим датчиком користуватися.

Випробуємо простий датчик дотику з набору Grove. Підключимо його до цифрового роз'єму D2 і завантажимо приклад «DigitalReadSerial».


Підключення датчика дотику

Після завантаження скетчу на плату в моніторі послідовного порту можна буде бачити нулі та одиниці. «0» — кання ні, «1» — дотик є. Нічого іншого сюди не виводиться. Вся справа в тому, що дані надходять від двійкового цифрового датчика.


Показання датчика дотику

Гіроскопічний датчик
Так як Arduino 101 використовує модуль Intel Curie, до наших послуг – гіроскопічний датчик. У цьому експерименті на платі нічого підключати не потрібно, так як датчик вже в неї вбудований.

Відкриємо приклад «RawIMUDataSerial», вивантажимо його на плату, запустимо монітор послідовного порту і струснемо пристрій. У моніторі можна буде спостерігати за шістьма групами показників. Датчик володіє шістьма ступенями свободи, так як є комбінацією акселерометра і гіроскопа.


Необроблені дані вбудованого датчика

Ці дані можна обробляти засобами плати для того, щоб з'ясовувати, чи є переміщення, наприклад, кроками або ударами. Погляньмо на приклад «ShockDetect», який видає на монітор оброблені дані про ударах.


Аналіз показань датчика, що виконується на платі

Бажаєте прикладів? Загляньте сюди.

Bluetooth LE
Завдяки модулю Intel Curie, Arduino 101 оснащений Bluetooth LE. Користуватися Bluetooth дуже просто, зовнішні BT-передавачі не потрібні.
Завантажимо приклад «BatteryMonitor» і підключимо до аналогового роз'єму A0, наприклад, потенціометр. У скетчі беруться дані потенціометра і відправляються у вигляді повідомлення Bluetooth LE. В рамках приклад вони трактуються як рівень заряду якоїсь батареї. У Bluetooth LE є стандартні профілі, наприклад, для даних про частоті серцевих скорочень або про рівень заряду батареї. Ми будемо користуватися останнім.

При запуску прикладу плата очікує сполучення з BLE-пристроєм. Тут можна використовувати смартфон або ноутбук з підтримкою Bluetooth LE та ініціювати з нього пару з «BatteryMonitorSketch».


Початок підключення по Bluetooth

В процесі сполучення ви побачите ім'я пристрою (Genuino 101).


з'єднання з Genuino 101

Отже, пристрій підключено до ноутбука на Windows. Тепер потрібно додаток, що буде використовуватись бібліотеки BLE для читання даних, які генерує скетч, емулюючи датчик заряду батареї. Я встановив програму «Newbit BLE Tool» з Windows App Store. Потім вибрав BLE-пристрій і службу з ID «*180f*». Такий ID означає, що ми підключаємося до датчика заряду батареї (список з прикладами ідентифікаторів служб можна бачити в лівій частині вікна).


Вибір служби

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


Свідчення датчика, отримані через з'єднання Bluetooth

Висновки
Arduino 101, який ще називають Genuino 101, легко використовувати, чого цілком можна очікувати від Arduino-сумісного пристрою. Писати скетчі для нього можна з допомогою IDE Arduino, до нього підходять набори датчиків і інших модулів для Arduino. Крім того, варто пам'ятати про те, що Arduino – це не тільки пристрій і середовище розробки, але й співтовариство ентузіастів, які охоче діляться знаннями й досвідом.

Крім стандартних для плат Arduino можливостей, Arduino 101 володіє дуже цікавими вбудованими модулями Bluetooth LE і комбінацією з гіроскопа і акселерометра.

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

Якщо прототип, побудований на Arduino 101, працює правильно, значить, керуючись тими ж ідеями, можна створити власний продукт, використовуючи платформу Intel Curie. Пристрій на цій платформі буде оснащений тим же мікроконтролером, буде володіти тими ж комунікаційними можливостями, що і Arduino 101. Як результат, завдяки Arduino 101 ми отримуємо простий, швидкий і дешевий спосіб пройти шлях від прототипів до серійного виробництва IoT-рішень.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.