[Перевод] Подробности о платформе Genuino 101

Если вы занимаетесь разработкой для интернета вещей, очень важно выбрать платформу, которая наилучшим образом соответствовала бы нуждам проекта. Для того, чтобы это сделать, нужно знать о возможностях и особенностях различных платформ. Сегодня мы раскроем некоторые важные подробности о плате Genuino 101. Сначала сравним её с Arduino UNO, задав, таким образом, отправную точку для анализа возможностей Genuino 101. А затем подробнее рассмотрим особенности Genuino 101.

Сравнение Genuino 101 и Arduino UNO


В Arduino UNO применяется модуль Atmel ATmega328P, Genuino 101 использует экономичный модуль Intel Curie с Intel Quark SE SoC. UNO питается от 5 В, а Genuino 101 — от 3.3 В, хотя устройство нормально переносит напряжение 5 В на разъёмах ввода-вывода. В Genuino 101 имеется встроенный модуль Bluetooth Low Energy и 6-осевой комбинированный датчик с акселерометром и гироскопом. У Arduino UNO таких встроенных компонентов нет. Платы обеих платформ аналогичны по размерам и схеме расположения выводов.

9a0135581ded45bbaa8668fec7fe6f4e.jpg
Платы Genuino 101 и Arduino UNO

В таблице ниже приведено сопоставление ключевых характеристик рассматриваемых платформ.

Характеристика
Genuino 101
Arduino UNO
Микроконтроллер
Intel Curie 
Atmel ATmega328P*
Рабочее напряжение
3.3 В (цепи ввода-вывода толерантны к 5 В)
5 В
Тактовая частота процессора
32 Мгц
Кварцевый генератор на 16 МГц
Архитектура
Intel Quark SE SoC, 32 бита
8 бит
Флэш-память
196 Кб
32 Кб
SRAM
24 Кб
2 Кб
EEPROM
1 Кб
1 Кб
Операционная система
ОС реального времени с открытым исходным кодом
Нет
Тактовая частота
32 МГц
16 МГц
Особенности
Интегрированный хаб датчиков на цифровом сигнальном процессоре (DSP) с 6-осевым комбинированным датчиком с акселерометром и гироскопом Integrated digital signal
Используется в роли цифрового сигнального процессора (DSP)
Bluetooth
Bluetooth Low Energy
Нет
Цифровые контакты ввода-вывода
14 цифровых контактов ввода-вывода
14 цифровых контактов ввода-вывода
Аналоговые контакты ввода-вывода
6 аналоговых входов
6 аналоговых входов
USB-разъём
USB-разъём, используемый для обмена данными по протоколу последовательного порта и загрузки скетчей.
USB-разъём, используемый для обмена данными по протоколу последовательного порта и загрузки скетчей.
Разъём ICSP с сигнальными линиями SPI
Поддерживается
Поддерживается
Интерфейс I2C
Выделенные контакты I2C
Выделенные контакты I2C (Arduino UNO rev3)
Перезагрузка
Кнопка перезагрузки
Кнопка перезагрузки
Размеры (Длина x Ширина)
68.6 мм x 53.4 мм
68.6 мм x 53.4 мм


Подробности о Genuino 101


Микропроцессоры


SoC Intel Quark SE содержит одноядерный x86-процессор Intel Quark с тактовой частотой 32 МГц и процессор Argonaut RISC Core (ARC) EM с такой же частотой. Эти два процессора работают параллельно, используя общую память. ARC-процессор в некоторых материалах называют цифровым сигнальным процессором (digital signal processor, DSP) хаба датчиков. В теории, DSP может работать, потребляя минимальное количество энергии, собирая и обрабатывая показания датчиков. А x86-процессор в это время находится в экономичном режиме ожидания. Такой сценарий идеально подходит для приложений, которые должны работать постоянно. Однако, эта возможность пока не доступна на уровне программного обеспечения.

Когда вы загружаете в систему скетч Arduino, он исполняется на ARC-процессоре. Однако, скетч компилируется с помощью набора инструментальных средств Intel и ARC-процессор, при необходимости, взаимодействует с x86-процессоров через статические буферы сообщений. Для того, чтобы с этим всем поэкспериментировать, можете воспользоваться библиотеками ядра с открытым кодом для Genuino 101.

Операционная система реального времени


Замечательная программная возможность Genuino 101 заключается в том, что на нём можно запустить ОС реального времени (Real-Time Operating System, RTOS). Intel работает над SDK, который будет включать в себя набор инструментов разработчика, библиотеки, документацию и примеры кода, предназначенные для того, чтобы позволить разработчикам создавать IoT-приложения с использованием модуля Intel Curie. Этот SDK, основанный на Zephyr Project, будет совместим с платформой Genuino 101 и выйдет в ближайшее время. Если вы хотите одним из первых узнать о выходе этого SDK, загляните на эту страницу.

Zephyr Project — это маленькая RTOS для сферы IoT с открытым кодом. Она поддерживает коммуникационные протоколы, оптимизированные для экономичных устройств с небольшим размером памяти, позволяет пользоваться Bluetooth, Bluetooth LE, Wi-Fi и другими технологиями связи. Эта ОС поддерживает низкий уровень использования памяти и исполнение задач с приоритетами. Кроме того, она предельно эффективна с точки зрения энергопотребления. RTOS включает в себя мощные средства разработки и надёжные подсистемы работы с аппаратным обеспечением. Среди инструментов разработчика можно отметить собственный набор инструментальных средств и оптимизированный компилятор.

Bluetooth Low Energy


Genuino 101 содержит встроенный модуль Bluetooth Low Energy (эту технологию ещё называют Bluetooth LE, BLE и Bluetooth Smart). Это даёт плате возможность обмениваться данными с различными устройствами, такими, как компьютеры, смартфоны, планшеты, без использования подключаемого Bluetooth LE-модуля. Это, кроме прочего, означает низкий уровень потребления энергии при обмене данными. Если вам интересно узнать подробности о работе с Bluetooth LE-модулем, взгляните на пример кода CurieBLE.

Дополнительные библиотеки


Библиотеки для Arduino — это коллекции блоков кода, которые предоставляют дополнительный функционал для использования в скетчах. Библиотеки для Genuino 101 упрощают задачи по работе с Bluetooth LE, датчиками, таймерами. А именно, речь идёт о следующих библиотеках:

  • Curie BLE позволяет подключать плату к другим устройствам, используя модуль Bluetooth LE;
  • Curie IMU даёт возможность работать со встроенным 6-осевым акселерометром и гироскопом;
  • Curie TimerOne позволяет работать с таймером.


Акселерометр и гироскоп


Акселерометр и гироскоп, как уже было сказано, встроены в Genuino 101. Акселерометры используют, в основном, для измерения ускорения и угла наклона. Гироскопы применяют для измерения угловой скорости и ориентации в пространстве. Подобные датчики дают возможность точно определять перемещения объектов и их положение в пространстве. Эти возможности позволяют, при разработке носимых устройств, вывести на новый уровень взаимодействие с пользователями.

Один из способов применения акселерометра — реализация на его основе шагомера. Когда плата Genuino 101 совершает перемещение в пространстве, происходящее анализируется, и, если параметры перемещения соответствуют определённым критериям, оно воспринимается как шаг. Определение шага основано на значительных измерениях скорости по осям X Y и Z в сравнении с состоянием покоя. Тут можно найти код примера, реализующего шагомер.

Так же, как и для Arduino UNO, программы для Genuino 101 можно писать с помощью IDE Arduino. Вот материал, где детально разобрано начало работы с Genuino 101. Для того, чтобы увидеть, как работает приложение, реализующее шагомер на Genuino 101, загрузите в IDE соответствующий пример кода.

fb185f5f735a9f405f896ff5333e9b7f.png


Загрузка примера реализации шагомера в Arduino IDE

Далее, нужно выгрузить скетч на Genuino 101.

4f5589f655a24df196d5783076fac3a2.png


Выгрузка скетча на Genuino 101

Теперь подвигайте плату, имитируя «шаги», и посмотрите на монитор последовательного порта.

a72a8b8bc8b445d688e3d0aea48e1489.png


Шагомер в действии

Как видно, система подсчитывает шаги и выводит их на экран.

Линии ввода-вывода и прерывания


И Genuino 101, и Arduino UNO, имеют по 20 контактов ввода-вывода. Но у Genuino 101 больше выводов, которым можно назначать прерывания. Arduino UNO может вызывать прерывания на цифровых выводах 2 и 3, в то время, как Genuino 101 — на всех выводах. Внешние прерывания, которые вызваны некими событиями, можно принимать на всех выводах. Прерывания на всех выводах могут вызываться на низких или высоких значениях сигналов, на переднем или заднем фронте сигнала, однако, вызов прерывания при изменении значения на входе поддерживается лишь на выходах 2, 5, 7, 8, 10, 11, 12, и 13.

Выводы


Мы рассказали об основных возможностях Genuino 101. Эта платформа способна стать основой множества IoT-разработок. Существуют дополнительные компоненты, например — в наборе Grove Starter Kit Plus, которые позволяют сделать на базе Genuino 101 почти всё, что угодно. Не стоит забывать и о том, что тот, кто работает с Genuino 101 может пользоваться огромнейшим опытом, накопленным Arduino-разработчиками.

Для того, чтобы заказать плату, загляните сюда, а приступить к экспериментам и увидеть в деле замечательные возможности Intel Curie можно, руководствуясь этим материалом.

© Geektimes