Arduino:Знакомство с Arduino/Знакомство с Arduino/Genuino 101

Материал из Онлайн справочника
Версия от 12:30, 8 июля 2023; EducationBot (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Знакомство с Arduino/Genuino 101[1]

Модель Arduino/Genuino 101 – это обучающе-развивающая плата, оснащенная модулем Intel Curie. Она, как заявляют разработчики, совмещает в себе низкое энергопотребление и высокую производительность (благодаря модулю от Intel), а также простоту использования (благодаря, собственно, Arduino). Кроме того, модель оснащена функцией Bluetooth Low Energy и 6-осевым акселерометром/гироскопом, благодаря чему она хорошо подходит для проектов в области интернета вещей. Более подробно об Arduino/Genuino 101 (включая технические характеристики и документацию) можно прочесть на этой странице.

Быстрый старт

Перед тем, как начать работать с 101, на IDE Arduino нужно установить ядро Intel Curie, и делается это при помощи «Менеджера плат». Чтобы открыть его, кликните Инструменты > Плата > Менеджер плат... (Tools > Board > Boards Manager...), а затем найдите там Intel Curie Boards. Более подробно читайте в статье об установке на IDE Arduino дополнительных ядер.

Подключите 101 к компьютеру при помощи стандартного (A-разъем к B-разъему) USB-кабеля. В ответ на это действие на плате должен загореться зеленый светодиод (с надписью «ON»).

Чтобы загрузить скетч, откройте в IDE Arduino меню Инструменты > Плата (Tools > Board) и выберите там пункт «Arduino/Genuino 101». После этого выберите нужный порт в меню Инструменты > Порт (Tools > Port).

Работая с Arduino/Genuino 101, пожалуйста, имейте в виду следующее:

  • Вам понадобится IDE Arduino версией не ниже 1.6.7
  • После того, как скетч будет загружен на плату, перед его выполнением будет задержка в несколько секунд. Более подробно об этом читайте ниже, в разделе «Процедура загрузки»

Отличия между 101 и Uno

Хотя Arduino 101 имеет те же периферийные компоненты и коннекторы, что и Arduino Uno, процессор ATmega328 уступил место Intel Curie. Это значит, что плата теперь оснащена двумя ядрами – x86 (Quark) и ARC (Argonaut RISC Core). Кроме того, 101 работает на 3,3 вольтах вместо 5 вольт, а также оснащена функцией Bluetooth Low Energy и встроенным 6-осевым гироскопом/акселератором.

Библиотеки для Bluetooth, акселерометра/гироскопа и часов реального времени

Все встроенные периферийные компоненты 101 имеют собственные библиотеки, а именно:

  • CurieBLE (чтобы управлять модулем Bluetooth Low Energy)
  • CurieMU (чтобы управлять 6-осевым акселерометром/гироскопом)
  • CurieRTC (чтобы управлять модулем часов реального времени)

Чтобы лучше вникнуть в то, как их использовать, можно попробовать скетчи-примеры (они идут в комплекте с этими библиотеками) и руководства, которые можно найти в самом последнем разделе этой статьи. Все три библиотеки устанавливаются автоматически вместе с ядром Curie.

Управление напряжением

Микроконтроллер на 101 работает на 3,3 вольтах, причем все его I/O контакты защищены от 5-вольтового перенапряжения. Это значит, что выходные сигналы будут в диапазоне от 0 до 3,3 вольт, но при этом на контакты платы все же можно подавать 5-вольтовое напряжение без риска ее повредить. Однако если дать более 5 вольт, это приведет к порче платы.

Последовательные порты на 101

Модель 101 имеет несколько средств для коммуникации с компьютером и другими микроконтроллерами. USB-коннектор отображается как виртуальный последовательный порт, которым можно управлять при помощи считывания и записи через объект Serial. В то же время контакты 0 и 1 отображаются как аппаратный последовательный порт, а управляются через объект Serial1.

Открытие/закрытие последовательного USB-порта на скорости, отличной от 1200 бит/сек, не выполнит сброса 101. Чтобы иметь возможность использовать монитор порта и видеть, что скетч делает с самого начала, в него – точнее, в секцию setup() – нужно добавить следующую строчку:

while (!Serial) ;

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

Если нажать на 101 кнопку Reset, это сбросит и микроконтроллер, и USB-коммуникацию. Кроме того, если в это время будет отрыт монитор порта, для возобновления соединения его нужно будет закрыть и снова открыть. Благодаря библиотеке SoftwareSerial можно выполнить последовательную коммуникацию с любым цифровым контактом 101 на скорости до 57600 бит/сек.

Процедура загрузки

После того, как скетч будет загружен на плату, перед его выполнением будет задержка в несколько секунд. Это также происходит при включении питания и нажатии на кнопку RESET M. Кроме того, в это время не может быть открыт монитор порта, поэтому пользователь должен будет подождать 10 секунд – перед тем, как будет запущена последовательная коммуникация. Чтобы не пропустить важную информацию, идущую перед открытием монитора порта, в блок setup() можно вписать ту же сточку кода:

while (!Serial) ;

С ее помощью скетч перед тем, как запуститься, будет ждать открытия монитора порта.

Только для Linux. Некоторым дистрибутивам для выполнения загрузки необходима определенная настройка. После установки ядра выполните внутри оболочки команду

sudo ~/.arduino15/packages/Intel/tools/sketchUploader/1.6.4+1.14/scripts/create_dfu_udev_rule. Благодаря этому вы получите разрешение на загрузку.

Драйверы

Если у вас Windows, то для коммуникации с платой вам надо будет установить драйверы. Они устанавливаются автоматически вместе с установкой ядра.

На MacOSX и Linux драйверы устанавливать не нужно.

Более подробно об Arduino/Genuino 101 читайте на странице с аппаратным описанием.

Обучение

Ниже – несколько примеров того, что можно создать на базе Arduino/Genuino 101, плюс соответствующие руководства:

Примечание: Чтобы защитить плату и добиться ее максимальной производительности, используйте пластиковый корпус (они выпускаются сторонними производителями). Для того, чтобы закрепить плату в корпусе, используйте шурупы, диаметр головки которых не превышает 6,35 мм. Если вы тестируете плату на незаземленной металлической поверхности, между платой и этой поверхностью должно быть расстояние не менее 10 мм – чтобы плата сохранила функции беспроводной связи.


См.также

Внешние ссылки