Если вы собираетесь на SIGNAL (вы ведь идете на SIGNAL, верно? – используйте промокод BSCHOOLEY20 для скидки 20% на билет), то получите плату LinkIt ONE в составе Hackpack, который мы раздаем каждому участнику. Загляните на станцию Hackpack, и мы поможем вам настроить её.
LinkIt ONE – это отладочная плата, созданная в результате сотрудничества SeeedStudio и MediaTek. Она оснащена процессором ARM7 EJ-S™ и совместима по распиновке с Arduino. На борту имеется поддержка:
— GSM/GPRS-модуля для сотовой связи
— Wi-Fi-модуля
— GPS-модуля
— Bluetooth 2.1 / 4.0
— Поддержки AAC/MP3 с встроенными кодеками
— Слота для карт памяти SD
В комплект входят все необходимые антенны для работы радиомодулей. Вот как они выглядят:
После сборки готовое устройство выглядит так:
В этом руководстве мы не будем использовать Wi-Fi, сотовую связь или GPS, но с такой конфигурацией вы будете готовы к любым экспериментам с этими возможностями.
Теперь, когда аппаратная часть готова, давайте установим необходимое программное обеспечение для создания приложения.
Вот всё, что нужно установить для программирования LinkIt ONE:
— Arduino IDE
— Драйвер USB COM-порта MediaTek для LinkIt ONE
— SDK MediaTek LinkIt ONE
Начнем с установки Arduino IDE. Последнюю версию можно найти здесь. На момент написания этой статьи актуальной является версия 1.6.9. В Windows можно выбрать установщик, если у вас есть права администратора, или ZIP-архив, если прав нет. Если вам нужна помощь с установкой Arduino IDE, вы можете найти инструкции для своей операционной системы здесь:
— Windows
— Mac OS X
— Linux: MediaTek не поддерживает Linux. Для самых амбициозных есть руководство по установке Arduino IDE. Затем следуйте этому посту на Instructables, если хотите настроить LinkIt ONE в Linux.
Для связи с LinkIt ONE по USB необходимо установить драйвер USB COM-порта. Скачайте и установите драйвер для своей ОС по ссылкам ниже:
MediaTek рекомендует перезагрузить компьютер на этом этапе (и на нескольких других), но в моем случае это оказалось необязательным. Возможно, у вас будет иначе.
Последний шаг установки – это установка SDK MediaTek LinkIt ONE. Этот шаг выполняется полностью в Arduino IDE, так что откройте её.
В IDE откройте диалоговое окно «Настройки». В Windows оно находится в меню «Файл», на Mac – в пункте меню «Arduino». Диалоговые окна в Arduino IDE выглядят практически одинаково на Windows и Mac, поэтому в следующих скриншотах я покажу версию для Mac.
Установите поле «Дополнительные ссылки для менеджера плат» в значение `http://download.labs.mediatek.com/package_mtk_linkit_index.json` и нажмите «ОК».
В меню «Инструменты» выберите «Плата -> Менеджер плат…».
Когда откроется диалоговое окно, оно загрузит последний список совместимых плат, среди которых будет LinkIt ONE. Введите «link» в строку поиска вверху, выберите строку с «LinkIt ONE» и нажмите кнопку «Установить».
Далее обновим прошивку на плате LinkIt ONE. Переведите плату в режим «Mass Storage/Firmware Update», установив внешний переключатель в верхнее положение. Вот как это должно выглядеть:
После того как переключатель установлен правильно, подключите LinkIt ONE к компьютеру с помощью micro-USB кабеля.
В Arduino IDE выберите «Инструменты -> Плата -> LinkIt ONE».
Затем выберите «Инструменты -> Программатор -> LinkIt Firmware Updater».
Выберите «Инструменты -> Записать загрузчик», чтобы запустить инструмент прошивки LinkIt ONE.
Нажмите кнопку загрузки в инструменте прошивки:
Когда появится следующее окно, отключите USB-кабель и подключите его снова – обновление начнется автоматически.
По завершении переведите внешний переключатель обратно в нижнее положение для нормального режима работы. На этом настройка завершена. Давайте напишем первую программу для LinkIt ONE на Arduino.
В мире Arduino есть канонический пример «Hello World», который является самой простой программой для демонстрации физического вывода. Эта программа называется Blink, и при её запуске на плате Arduino встроенный светодиод, подключенный к цифровому выводу 13, начинает мигать. На LinkIt ONE этот светодиод находится здесь:
Программы для Arduino, называемые скетчами с расширением .ino, пишутся с использованием двух функций:
`setup()` и `loop()`. Функция `setup()` используется для настройки всего, что должно быть сконфигурировано до запуска основной программы. Здесь вы можете настроить входные и выходные выводы, установить сетевое подключение, инициализировать значения и т.д. Функция `loop()` – это основная программа, которая выполняется бесконечно.
Наша функция `setup()` настроит вывод 13 как выходной. Мы можем записать значение `HIGH` на этот вывод, чтобы включить светодиод, и `LOW`, чтобы выключить его. Создайте новый скетч, если вы этого ещё не сделали, и замените функцию `setup()` следующим кодом:
Функция `loop()` нашего скетча будет использовать функцию `digitalWrite` для переключения вывода 13 между `HIGH` и `LOW` с задержкой в одну секунду. Эффект будет таким: светодиод включается на одну секунду, затем выключается на одну секунду, и так повторяется, пока устройство не будет выключено. Замените функцию `loop()` в вашем скетче следующим кодом:
Мы готовы загрузить наш скетч на LinkIt ONE. В меню «Инструменты» выберите «Порт», затем выберите один из портов, заканчивающийся на «(LinkIt ONE)».
Нажмите кнопку «Загрузить», чтобы скомпилировать и загрузить скетч на плату LinkIt ONE. Если всё настроено правильно, скетч начнет выполняться на плате, и вы увидите, как светодиод мигает. Поздравляем с написанием первой программы для LinkIt ONE!
Теперь, когда ваша плата LinkIt ONE настроена и работает, дайте волю воображению и подумайте, что создать дальше. Вот несколько идей:
— Используйте GPS и сотовую связь для создания трекера автомобиля
— Приобретите датчики Grove (например, акселерометр, сенсор касания, датчик температуры и т.д.) и запрограммируйте что-то интересное с их помощью. На Amazon есть стартовый набор с множеством датчиков для экспериментов.
Мне очень интересно увидеть, что вы создадите с помощью этого устройства. Если вы идете на SIGNAL, то получите одну из таких плат. Заходите на станцию Hackpack и давайте обсудим, что вы могли бы создать. Если у вас есть вопросы или комментарии, вы можете найти меня в Twitter @brentschooley или написать мне на brent@twilio.com.