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 Plotter» (его можно найти в меню «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-решений.
Комментарии (14)
daggert
17.06.2016 09:55>Вышесказанное делает Arduino 101 отличным выбором для тех, кто только начинает осваивать разработку устройств на базе микроконтроллеров.
Вообще мимо. Для чего разрабатывать на платформе, чипы для которой доступны только компаниям и чувствую что в партиях от тысяч штук? Ту-же атмегу32 я могу заказать на ибее в количестве ~100 штук не связываясь с представительством поставщика.
Вот в который раз убеждаюсь что в Интеле сидят странные маркетологи, которые интересный товар не умеют позиционировать.SvetlanaGEm
17.06.2016 15:37Плата продается на Чип и дип. Стоимость от 3150 руб. http://www.chipdip.ru/product/genuino-101/
SvetlanaGEm
17.06.2016 15:43И что касается Quark — продаются от 1ой штуки, например, у одного из дистрибьюторов Intel — mouser.com
daggert
17.06.2016 20:28+1Про что я и говорил: Маркетологи странные. Я гуглил про данный МК сразу после вашего поста и не нашел где купить.
С доступностью я промазал, признаю ошибку, можно заказать от одной штуки, хотя возможность купить на ибее для меня была-бы более лучшей, нежели левый магазин.
netmans
17.06.2016 12:234 тысячи рублей? За эти деньги можно на али купить мешок ардуино-клонов с мешком датчиков.
ds6328
17.06.2016 12:24Судя по сайту arduino.cc
Microcontroller Intel Curie
Operating Voltage 3.3V (5V tolerant I/O)
Input Voltage (recommended) 7-12V
Input Voltage (limit) 7-20V
Digital I/O Pins 14 (of which 4 provide PWM output)
PWM Digital I/O Pins 4
Analog Input Pins 6
DC Current per I/O Pin 20 mA
Flash Memory 196 kB
SRAM 24 kB
Clock Speed 32MHz
Features Bluetooth LE, 6-axis accelerometer/gyro
Length 68.6 mm
Width 53.4 mm
Замечая разницу видим, что размер флеш-память отличается на 188 kB. PWM пинов на 2 меньше, чем у Arduino UNO.
unhega
17.06.2016 12:24Формфактор типа как у ESP (когда плату можно припаять без штырьков к макетке) выглядел бы лучше чем текущий монстр, который невозможно нигде использовать.
И да, чем он принципиально лучше STM32?
ef_end_y
17.06.2016 13:30+1«А что так тоже можно было»? Если бы знал, наклепал бы стопицот статей про ардуино — пока делал сегвей, с сотню задач решил посложнее хеллоуворда. Но, видимо, все дело в запасах фуа-гра, которых у меня нет
abrakada
17.06.2016 13:38+1Любопытная плата, конечно. Давно собираюсь купить для экспериментов. Вообще последние пару лет тренд у многих производителей делать устройство все-в-одном. В дополнение вот для интересующихся анонс ардуины на ARM nrf52832
KonstantinSoloviov
Чё за хрень? «Hello world» на ардуино?
Я отказываюсь понимать по каким принципам делятся темы между хабром и гиктаймсом.
Это реально блог Intel? Может кто-то увел аккаунт пока серый гигант спал?
Tiamon
Ну да мы уже поняли, что всё в Интел очень круто. Но вот потянуло и…
нужно было остановится или написать действительно, что то интересное
DarkByte
Наверное тут нужно просто порадоваться за то, что у них есть такая крутая отладочная плата и они смогли залить в неё тестовые примеры кода. Но могли бы хотя бы поподробнее про сам МК рассказать, а не про то, как заливать скетчи в ардуино.