Электронный компонент:IoT-плата LinkIt Smart 7688 Duo

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

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


IoT-плата LinkIt Smart 7688 Duo[1]

LinkIt Smart 7688 Duo – это компактная микроконтроллерная IoT-плата с открытым кодом на базе микропроцессора MT7688 (техническая документация) и микроконтроллера ATmega32u4. Она совместима со скетчами для Arduino Yun и работает на операционной системе OpenWrt Linux. Как пишут разработчики, эта плата специально разработана, чтобы прототипировать IoT-устройств для проектов в области «умного» дома и офиса. Кроме того, плата оснащена flash-памятью и RAM-памятью, что позволяет эффективно обрабатывать видео. Программы для LinkIt Smart 7688 Duo можно писать при помощи языков программирования Python и C, а также платформы Node.js.

Примечания:

  • Эта статья описывает лишь азы работы с LinkIt Smart 7688 Duo. Более полное руководство смотрите по этой ссылке
  • Одновременно может быть главным только один микроконтроллер – либо MT7688AN, либо ATmega32u4

Купить IoT-плату LinkIt Smart 7688 Duo можно по этой ссылке.

Особенности

  • Процессор на архитектуре MIPS (580 МГц)
  • WiFi 802.11 b/g/n (2.4 ГГц; 1T1R, т.е. одна передающая и одна приемная антенны)
  • Контакты и интерфейсы – GPIO, I2C, I2S, SPI, SPIS, UART, ШИМ и Ethernet
  • Память – 32 Мб (flash) и 128 Мб (DDR2 RAM)
  • Функция USB-хоста
  • Слот для карты MicroSD
  • Поддержка API Arduino (благодаря процессору ATmega32u4)

Области применения

Характеристики

  • Микропроцессор
    • ЧипсетMT7688AN
    • ЯдроMIPS24KEc
    • Тактовая частота – 580 МГц
    • Рабочее напряжение – 3,3 вольта
  • Микроконтроллер
  • Память
  • GPIO-контакты
    • Количество – 3 шт. (MT7688AN) и 24 шт. (ATmega32u4)
    • Напряжение – 3,3 вольта
  • ШИМ-контакты
    • Количество – 8 шт. (ATmega32u4)
    • Напряжение – 3,3 вольта
    • Максимальное разрешение – 16 бит (можно поменять)
  • Контакты аналогово-цифрового преобразователя (АЦП)
    • Количество – 12 шт. (ATmega32u4)
    • Разрешение – 10 бит
  • Контакты, поддерживающие внешние прерывания
    • Количество – 8 шт.
  • Контакты SPI/SPIS
    • Количество – 4 шт. (S0, S1, S2, S3)
    • Максимальная частота – 4 МГц
  • Контакты I2C
    • Количество – 2 шт. (D2, D3)
    • Скорость – 400 кГц
  • Контакты UART Lite
    • Количество интерфейсов – 2 шт. (один на ATmega32u4 и один на MT7688AN)
    • Количество контактов – 4 шт. (P8 и P9 на MT7688AN; D0 и D1 на ATmega32u4)
  • Контакты для функции USB-хоста
    • Количество – 2 шт. (P6, P7)
    • Тип коннектораMicro-AB
  • Коммуникация
    • WiFi – 802.11 b/g/n (2,4 ГГц, 1T1R)
    • Ethernet – 1 порт, 10/100 FE PHY
    • Количество контактов – 4 шт. (P2, P3, P4, P5)
  • Внешняя памятьSD-карта типа Micro SD/SDXC
  • Размеры – 60,8 мм х 26 мм

Расположение компонентов



Чтобы избежать неправильной эксплуатации, обратите внимание на следующие рекомендации:

  • Используйте качественный адаптер, способный выдавать стабильное питание
  • Входящее напряжение не должно превышать 5,5 вольт
  • Волна напряжения должна быть в пределах ±100 мВ (милливольт) от номинального напряжения

С чего начать

В печатном руководстве описаны два способа настройки LinkIt Smart 7688 Duo. Здесь будет рассказываться только о продвинутом способе (для которого используется адаптер USB-Serial), который может показаться несколько сложнее. Но в долгосрочной перспективе вы лишь выиграете.

Необходимые материалы

Инструкция для Windows

1. Установите PuTTy. Это системная консоль, которая для доступа к операционной системе LinkIt Smart 7688 Duo использует протокол SSH (сокр. от «secure socket shell»).

2. Установите службы печати Bonjour (для Windows 7, Windows 8, Windows 10).

3. Установите драйвер. Если вы используете USB-кабель на базе чипа FTDI, то загрузите и установите вот этот драйвер. Если у вас возникли проблемы с последней версией драйвера, попробуйте установить более старую версию.

4. Теперь подключите к UART-контактам LinkIt Smart 7688 Duo кабель USB-Serial согласно этой таблице:

Контакт на адаптере USB-Serial Контакт на LinkIt Smart 7688 Duo
RX Контакт 8
TX Контакт 9
GND Контакт GND

5. Откройте «Диспетчер устройств» и запомните номер COM-порта. Это может быть, например, порт COM12 как на скриншоте ниже. На вашем компьютере этот номер может быть другим.

6. Запустите PuTTy, откройте настройки и введите следующие данные: в поле Serial line – номер COM-порта, подсмотренный в «Диспетчере устройств», в поле Speed57600, в секции Connection type – точку в пункте Serial. В завершение нажмите на кнопку Open. На скриншоте ниже все эти элементы обведены красным цветом:

7. Чтобы выйти из PuTTy, кликните на иконку закрытия в правом верхнем углу окна.

Инструкция для Mac

1. Установите драйвер, если нужно. Посмотрите на сайте производителя кабеля, есть ли там требования и инструкции для установки драйвера на Mac.

2. Подключите один конец кабеля к ПК/ноутбуку, а другой – к LinkIt Smart 7688 Duo.

3. Откройте терминал.

4. Впишите в терминале ls /dev/cu*. В результате в терминале должен появиться список устройств. Ищите что-то вроде «cu.usbserial-XXXXXXXX», где «XXXXXXXX» – это, как правило, случайный идентификатор. Это название для устройства, подключенного к последовательному порту и обеспечивающего доступ к системной консоли. Список устройств будет выглядеть примерно так:

$ls /dev/cu*
/dev/cu.Bluetooth-Incoming-Port
/dev/cu.Bluetooth-Modem
/dev/cu.pablop-WirelessiAP
/dev/cu.usbserial-A6YMCQBR

5. Воспользуйтесь утилитой screen, чтобы подключиться к последовательному порту и задать скорость передачи данных на 57600. Это скорость, на которой системная консоль работает по умолчанию. Команда должна выглядеть примерно так:

$screen /dev/cu.usbserial-XXXXXXXX 57600

6. Это должно подключить вас к системной консоли. Нажмите  ↵ Enter  в терминале, чтобы появился запрос на ввод данных. От будет отличаться от того, что обычно появляется в терминале OS X, потому что это не стандартный запрос, а запрос на ввод данных для LinkIt Smart 7688 Duo.

Выглядит он следующим образом:

root@myLinkIt:/#

Готово! Теперь вы можете вносить изменения в систему LinkIt Smart 7688 через консоль.

Инструкция для Linux

1. Установите драйвер, если нужно. Загляните на сайт производителя кабеля и поищите там требования к драйверу на Linux и инструкцию для его установки.

2. Подключите один конец кабеля к ПК/ноутбуку, а другой – к LinkIt Smart 7688 Duo.

3. Откройте терминал.

4. Впишите в терминале ls /dev/ttyUSB*. В результате терминал должен показать список устройств. Ищите что-то вроде «cu.usbserial-XXXXXXXX», где «XXXXXXXX» – это, как правило, случайный идентификатор. Это устройство, подключенное к последовательному порту и обеспечивающее доступ к консоли. Результат должен выглядеть примерно так:

$ls /dev/ttyUSB*
/dev/ttyUSB0

5. Воспользуйтесь утилитой screen, чтобы подключиться к последовательному порту и выставьте скорость на 57600. Дело в том, что скорость передачи данных по умолчанию у системной консоли составляет как раз 57600. Ваша команда должна выглядеть примерно так:

$sudo screen /dev/ttyUSB0 57600

6. Это должно подключить вас к системной консоли. Нажмите  ↵ Enter  в терминале, чтобы появился запрос на ввод данных. Он будет не похож на тот, что обычно появляется в терминале – этот запрос на ввод данных для LinkIt Smart 7688 Duo. Выглядит он следующим образом:

root@myLinkIt:/#

Готово! Теперь вы можете вносить изменения в систему LinkIt Smart 7688 Duo через эту консоль.

Тестовый проект: Мигание светодиодом

Эта глава рассказывает, как создать простой проект для мигания светодиодом на плате LinkIt Smart 7688 Duo.

Необходимые материалы

Инструкция

1. Запитайте плату при помощи кабеля MicroUSB (подключать его нужно к USB-порту для питания, а не к USB-порту, через который реализуется функция USB-хоста).

2. Запустите PuTTy и подключитесь к системе при помощи адаптера USB-Serial (подробнее об этом шаге читайте выше, в главе «С чего начать»).

3. Впишите python /IoT/examples/blink-gpio44.py и нажмите  ↵ Enter , чтобы запустить программу «Blink».

Примечание: Обратите внимание, что после слова python должен стоять один пробел. Если его не поставить, программа просто не будет найдена.

4. Спустя 2 секунды на LinkIt должен начать мигать светодиод для WiFi.

5. В системной консоли впишите  Ctrl + C , чтобы завершить работу программы.

Подключение к интернету (переключение в режим станции)

Плата LinkIt Smart 7688 Duo может работать в двух разных WiFi-режимах – точки доступа и станции. Инструкция ниже показывает, как переключить плату LinkIt Smart 7688 Duo в режим станции (т.е. в режим, когда она будет подключаться к другим точкам доступа и через них получать доступ в интернет).

1. Запитайте плату при помощи кабеля MicroUSB.

2. Откройте на компьютере меню WiFi и подключитесь к точке доступа под названием «LinkIt_Smart_7688_XXXXXX». Фрагмент «XXXXXX» – это идентификатор устройства; у разных устройств он разный.

3. Откройте в браузере ссылку «mylinkit.local/» или «192.168.100.1», задайте пароль для root-пользователя и зарегистрируйтесь. Затем кликните по кнопке Network в правом верхнем углу экрана.

4. Выберите пункт Station mode, кликните на кнопку Refresh и нажмите справа на иконку со стрелочкой – это откроет список доступных точек доступа. Выберите нужную точку доступа и введите пароль, если нужно. Наконец, нажмите на кнопку Configure & Restart и подождите 30 секунд, пока LinkIt Smart 7688 Duo переключится в режим станции.

5. Запустите PuTTy и подключитесь к системе при помощи адаптера USB-Serial (подробнее об этом шаге читайте выше, в главе «С чего начать»).

6. Впишите ifconfig и найдите IP-адрес вроде того, что показан на скриншоте ниже:

Примечание: Плата останется в режиме станции даже после перезагрузки системы. Чтобы переключиться обратно в режим точки доступа, нажмите на кнопку сброса WiFi и не отпускайте ее как минимум 5 секунд. Далее перезагрузите систему при помощи команды reboot.

7. Откройте в браузере новую вкладку и впишите туда IP-адрес, найденный в 6 шаге. Затем залогиньтесь в веб-интерфейсе, чтобы получить доступ к настройкам системы.

8. Теперь оба устройства – LinkIt Smart 7688 Duo и компьютер-хост – подключены к интернету. Впишите в консоли ping mediatek.com. В результате вы должны получить примерно следующее:

Готово! Теперь вы можете настраивать систему LinkIt Smart 7688 Duo через интернет.

Установка IDE Arduino и сопутствующего ПО

Плата LinkIt Smart 7688 Duo имеет функции, совместимые с Arduino, что позволяет использовать для проекта скетчи Arduino и тем самым ускорить его разработку. Эта глава рассказывает, как установить IDE Arduino и настроить ее для работы с LinkIt Smart 7688 Duo.

Загрузка и установка IDE Arduino

Скачать последнюю версию среды разработки IDE Arduino можно по этой ссылке. Скачав, установите ее на свой ПК.

Установка аддона для LinkIt Smart 7688 Duo

Теперь нам нужно настроить IDE Arduino

таким образом, чтобы с ее помощью можно было загружать прошивку на плату LinkIt Smart 7688 Duo. Для этого мы при помощи «Менеджера библиотек» установим в IDE Arduino аддон, созданный сторонними разработчиками.

Итак, вам нужно проделать следующие действия:

1. Откройте IDE Arduino, кликните на Файл > Настройки (File > Preferences), в открывшемся окне найдите поле «Дополнительные ссылки для Менеджера плат», а затем вставьте в него вот эту ссылку:

http://download.labs.mediatek.com/package_mtk_linkit_smart_7688_test_index.json

2. Убедитесь, что ваш ПК подключен к интернету. Загрузите отсюда ZIP-архив «LinkIt», распакуйте его и скопируйте распакованные файлы в папку «packages», которая находится там же, где и файл «Preferences.txt». Чтобы открыть эту папку, кликните по ссылке, которая обведена на скриншоте ниже красным цветом:

3. Кликните в IDE Arduino на Инструменты > Плата > Менеджер плат... (Tools > Board > Boards Manager...).

4. В открывшемся окне «Менеджер плат» должен быть пункт под названием вроде «LinkIt Smart 7688 Duo». Это и есть аддон для платы LinkIt Smart 7688 Duo, установите его. Затем выберите в меню Инструменты > Порт (Tools > Port) пункт COMxx (LinkIt Smart 7688 Duo).

Готово! Аддон для платы LinkIt Smart 7688 установлен.

Установка драйвера для COM-порта

Установив аддон, подключите LinkIt Smart 7688 Duo к ПК. В результате в «Диспетчере устройств» должен появиться COM-порт со следующими идентификаторами:

Далее вам нужно установить драйверы (порядок установки зависит от ОС).

Действия для Windows 10

На Windows 10 драйверы устанавливать не нужно. Впрочем, вам все же нужно будет выполнить несколько действий для того, чтобы Windows 10 распознала плату. Подключите LinkIt Smart 7688 Duo к ПК на Windows 10, а затем быстро два раза (с интервалом в пределах 700 мс) нажмите на кнопку сброса микроконтроллера ATmega32u4 (где она находится, смотрите на схеме в разделе «Расположение компонентов»). ОС должна распознать LinkIt Smart 7688 Duo как USB Serial Device (COM5), хотя в вашем случае это может быть не «5», а другая цифра. Все эти действия нужно проделать лишь при самом первом подключении LinkIt Smart 7688 Duo к ПК.

Действия для Windows 8

Эта ОС может заблокировать установку драйвера. О том, как отключить проверку подписи драйверов (т.е. Driver Signature Enforcement) в Windows 8, читайте тут. Отключив проверку подписи драйверов, следуйте инструкции для Windows 7 (см. ниже).

Действия для Windows 7

Во-первых, вам нужен драйвер для COM-порта (это файл формата *.inf). Его можно либо скачать отсюда, либо найти по этому маршруту: «.../Arduino15/packages/LinkIt/hardware/avr/0.1.5/driver/linkit_smart_7688.inf». Папка «Arduino15» в этом пути – это место, где находится файл «preferences.txt». Чтобы узнать, где находится эта папка, кликните в IDE Arduino по Файл > Настройки (File > Preferences) и кликните на ссылку в самом низу окна (она обведена красным на скриншоте ниже).

Кликните правой кнопкой мыши по файлу «linkit_smart_7688.inf» и выберите пункт «Установить». Появится окно предупреждения системы безопасности, выберите в нем вариант «Все равно установить этот драйвер» (на скриншоте ниже это «Install this driver software anyway»). Это должно завершить установку драйвера.

Действия для Ubuntu Linux

Для этой ОС все должно работать без установки драйвера. Плата LinkIt Smart 7688 Duo должна находиться в папке /dev и монтирована как ttyUSB0. Впрочем, вместо «0» может быть какая-то другая цифра.

Действия для OS X

Для этой ОС тоже не нужна установка драйвера. Плата LinkIt Smart 7688 Duo монтируется как последовательное устройство under/dev/tty.usbmodem1413. Вместо «1413» может быть какая-то другая цифра.

Демо-проекты

Примечание: Чтобы избежать нехватки памяти при разработке «родных» программ, среду разработки «родной» программы нужно установить не в среде LinkIt Smart 7688, а в более производительной среде – среде компьютера-хоста. Этот метод позволяет кросс-компилировать исполняемый файл для LinkIt Smart 7688. Таблица ниже показывает совместимость между языками программирования для LinkIt Smart 7688 и средами на компьютере-хосте, а также инструменты для написания программ и их назначение.

Язык программирования Инструменты и библиотеки Назначение программ Поддерживаемые среды на компьютере-хосте
C/C++ Пакет инструментов для кросс-компиляции Системные программы OS X, Linux
Python Среда выполнения Python на LinkIt Smart 7688 Прототипирование, сеть, IoT-программы OS X, Linux, Windows
Node.js Среда выполнения Node.js на LinkIt Smart 7688 Прототипирование, сеть, IoT-программы OS X, Linux, Windows

Привет, мир! (Python)

1. Воспользуйтесь FileZilla (если вы не знаете, как работать с этой программой, то вот руководство). В поле Host впишите IP-адрес, который нашли в 6 шаге главы «Подключение к интернету (переключение в режим станции)». Значения для полей Username и Password – это, соответственно, логин и пароль, заданные вами в той же главе.

2. Откройте текстовый редактор, скопируйте и вставьте в него строчку, показанную ниже, и сохраните файл как «helloworld.py».

print "Hello World!"

3. Скопируйте файл «helloworld.py» в систему LinkIt Smart 7688 Duo, поместив его в папку «root».

4.Запустите PuTTy и подключитесь к системе при помощи адаптера USB-Serial.

5. Поменяйте рабочую директорию на «/root» и введите в консоли python helloworld.py, чтобы запустить файл.

В консоли должна отобразиться надпись «Hello World!»

Переключение светодиода (Arduino и Python)

Микроконтроллерная (ATmega32u4) часть этого проекта написана в виде скетча Arduino. В данном примере скетч просто прослушивает команду, идущую от микропроцессора (MT7688AN; Linux), и переключает встроенный светодиод согласно присланной команде.

Сначала загружаем скетч на Arduino-микроконтроллер (ATmega32u4):

1. Во-первых, подключите LinkIt Smart 7688 Duo к ПК, откройте IDE Arduino и вставьте в него следующий код:

void setup() {
    Serial.begin(115200);  //  открываем последовательную коммуникацию                
                           //  на последовательном USB-порте
                           //  (который подключен к ПК)

    Serial1.begin(57600);  //  открываем внутреннюю последовательную 
                           //  коммуникацию c MT7688AN

    //  инициализируем контакт, к которому подключен светодиод,
    //  и выставляем его в режим вывода данных:
    pinMode(13, OUTPUT);
}
void loop() {
    int c = Serial1.read(); // считываем данные с MT7688
    if (c != -1) {
        switch(c) {
        case '0':  //  получив «0», выключаем D13
            digitalWrite(13, 0);
            break;
        case '1':  //  получив «1», включаем D13
            digitalWrite(13, 1);
            break;
        }
    }
}

2. Кликните в IDE Arduino на Инструменты > Порт (Tools > Port) и выберите правильный COM-порт (чтобы узнать, какой именно – посмотрите в «Диспетчере устройств»).

3. Загрузите скетч на плату. Учтите, что после загрузки светодиод мигать не будет – для этого нужно будет также записать программу на Linux-процессор платы (о том, как это сделать, читайте ниже).

Теперь загружаем программу на Linux-процессор (MT7688AN):

1. Откройте текстовый редактор (любой на ваш выбор), создайте в нем новый файл (типа Python), скопируйте в него код ниже и сохраните:

import serial
import time
s = None
def setup():
    global s
# Открываем последовательный COM-порт для устройства /dev/ttyS0, 
# которое использует интерфейс UART0(D0/D1).
# Скорость передачи данных нужно выставить на 57600. Она должна быть
# такой же, как и в Arduino-скетче, загруженном на ATmega32u4.
s = serial.Serial("/dev/ttyS0", 57600)
def loop():
# Отправляем «1» Arduino-скетчу на ATmega32U4. В результате
# на плате должен включиться светодиод, подключенный к D13.
s.write("1")
time.sleep(1)
# Отправляем «0», чтобы выключить светодиод.
s.write("0")
time.sleep(1)
if __name__ == '__main__':
setup()
while True:
loop()

2. Откройте системную консоль и запустите эту Python-программу. Она выполняет очень простую задачу – отправляет значение «0» или «1» на порт /dev/ttyS0, который привязан к интерфейсу Serial1 на Arduino-микроконтроллере. Arduino-скетч (который мы ранее загрузили на ATmega32u4) получит строчку с этим значением, а затем согласно этому значению включит или выключит светодиод на плате.

Разобравшись с тем, как это работает, попробуйте поэкспериментировать с Arduino-скетчем. Модифицируйте его таким образом, чтобы с его помощью можно было управлять устройствами, работающими при помощи ШИМ и I2C. Для этого также понадобится модифицировать командные сообщения между Arduino-скетчем и Linux-программой. Если вы планируете использовать большое количество периферийных устройств, имеет смысл воспользоваться сторонними библиотеками, реализующими коммуникационный протокол вроде Firmata.

Полезные ссылки

См.также

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