Собственное устройство для «интернета вещей» с MediaTek LinkIt Smart 7688 Duo

Речь пойдет о новой разработке одного из ведущих мировых производителей мобильных микропроцессоров тайваньской компании  MediaTek, о так называемом девайсе  SOM (System-On-Modules)  под названием LinkIt Smart 7688 Duo [1], и стартовом наборе для его изучения  Grove Starter Kit for LinkIt 7688 Duo [2], производства китайской компании Seeedstudio. Анонс девайсов состоялся  в январе 2016г.

Претендуя на роль мирового лидера мобильных систем, MediaTek и здесь не изменила своей политики, пытаясь создать платформу которая бы:

во-первых, объединила:

а)   пользователей Arduino IDE
в)  разработчиков приложений для мобильных платформ и веба  -  Node.js и Python
г)  пользователей OS Linux с ядром OpenWRT

во-вторых, позволила осуществить качественный прорыв в области облачных технологий «Интернет вещей» (Internet of things - IoT)  благодаря огромному  количеству периферийных устройств, созданных для разработчиков Arduino IDE и готовых программных  приложений на языке C и C++ , а также   лёгкостью интегрирования разработок на  Node.js и Python  в среду IoT.  

Ознакомимся кратко, насколько это будет возможно, с техническими возможностями  этих  устройств, описание которых изложено компанией MediaTek более чем на 100 листах [3].

LinkIt Smart 7688 Duo

По сути, данный девайс является SOMом в «квадрате». Условно его можно разделить на два устройства:

MPU  (Microprocessor  Unit )  - ядром  является чипсет MediaTek MT7688AN с 128 Мбайт оперативной памяти типа  DDR2 RAM и работающий на тактовой частоте 580 МГц.                             

MCU (Microcontroller  Unit)  -  ядром  является микроконтроллер ATmega32U4, работающий на  тактовой частотем 8 МГц.

Остановимся на более подробном описании  LinkIt Smart 7688 Duo,  как программной так и аппаратной ее части.

Программная часть

Поскольку, до выхода в свет LinkIt Smart 7688 Duo,  уже было несколько попыток объединить Arduino IDE и Linux (Arduino Yun, Intel Edison и Intel Galileo) то в OpenWrt, основываясь на предыдущий опыт, предварительно загружены  наиболее часто используемые  пакеты программного обеспечения.

Dropbear       это реализация SSH 2 для систем с ограниченным объёмом оперативной памяти, пригодная для большинства задач по защите передачи данных. В ней реализованы все основные компоненты протокола SSH 2, а также поддержка X11 и туннелирование аутентификации, для использования локальных ключей при установлении соединения с удалённого сервера.

cURL             cлужебная программа командной строки, позволяющая взаимодействовать с множеством различных серверов по множеству различных протоколов (FTP, HTTP, SCP и др.) с синтаксисом URL.

ssty                  используется для конфигурирования параметров интерфейса терминального устройства.

UVC USB camera support             ядро для поддержки драйверов USB-камер .

Python            Поддержка языка Python .

pySerial          Библиотека обеспечивающая функции последовательного доступа к портам в Python.

Node.js           Поддержка языка Node.js.

node-serialport          Библиотека для обеспечения функции последовательного доступа к   портам в JavaScript.

Bridge library           Библиотека Bridge  для  Arduino Yun’s .

libmraa           C/C++ библиотека обеспечивающая  для языков JavaScript и Python интерфейс ввода/вывода в Linux.

UPM               Эта библиотека реализует логику работы с подключенными устройствами к LinkIt Smart 7688 Duo. Работает поверх libmraa. Библиотека с открытым кодом и позволяет самостоятельно написать   драйверы устройств.  

OpenSSL       криптографическая библиотека, которая является open source реализацией двух протоколов: Secure Sockets Layer (SSL) и Transport Layer Security (TLS). Данная библиотека имеет инструменты, предназначенные для генерации приватных ключей RSA и Certificate Signing Requests (CSR-запросов), управления сертификатами и выполнения шифрования/дешифрования..

AVAHI          система, производящая анализ локальной сети на предмет выявления различных сервисов.

AVRDude      кросплатформенная свободная консольная программа, предназначенная для прошивки микроконтроллеров фирмы Atmel (в нашем случае это ATmega32U4). 

В зависимости от того, с каким программным обеспечением мы будем работать, модуль LinkIt Smart 7688 Duo  будет сконфигурирован одним из нескольких способов:

Аппаратная часть

На лицевой стороне модуле LinkIt Smart 7688 Duo расположены:

а)  сам модуль MediaTek MT7688AN;

б)  два микро USB разъема;

с)  3 кнопки сброса (MPU, MCU, Wi-Fi);

д)  3 индикатора (Power, Wi-Fi и LED(D13);

е) внутренняя chip-антенна и разъем для подключения внешней антенны обеспечивают возможность работы модуля  в беспроводных сетях Wi-Fi 802.11b/g/n  на частоте 2,4 ГГц

На обратной стороне модуле LinkIt Smart 7688 Duo  расположены:

а) микропроцессор ATmega32U4, 8МГц;

б) модуль флеш-памяти на 32 Мбайт;  

б) слот для подключения  microSD карты.

Плата обеспечивает   также поддержка   интерфейсов GPIO, I2C, I2S, SPI, UART, PWM, а два ряда штыревых разъемов позволяют оперативно устанавливать  его в оконечное оборудование.  Распиновка  модуля  LinkIt Smart 7688 Duo изображена ниже.

Инсталляция аппаратной части

Действие Кнопка Продедура 
Сброс MPU Кнопка сброса MPU Одно нажатие
Сброс MСU  Кнопка сброса MСU  Одно нажатие
Переход MCU в  режим bootloader  Кнопка сброса MСU  Два раза нажать в течение 750 мс
Переход в   режим Access Point Кнопка сброса Wi-Fi Нажать и удерживать в  течение 5 сек, после загрузки системы в модуль
Полный сброс.  Предустановка заводских настроек, переход  в режим  Access Point.   !!  Вся информация пользователей будет удалена  !! Кнопка сброса Wi-Fi Нажать и удерживать в  течение 20 сек, после загрузки системы в модуль
Запись  ядра через USB драйвер Кнопка сброса Wi-Fi Нажать и удерживать в  течение 5 сек, в момент  подачи питания  на модуль
Запись  загрузчика  через USB драйвер Кнопка сброса Wi-Fi Нажать и удерживать в  течение 20 сек, в момент подачи питания  на модуль

Grove Starter Kit for LinkIt 7688 Duo

Набор Grove Starter Kit for LinkIt 7688 Duo , внешний вид которого изображен на Рисунке 2, содержит  шилд  для  for LinkIt Smart 7688 Duo и 10 периферийных устройства для подключения к этому шилду.

Поскольку целью данной статьи  является ознакомление с новой разработкой компании  MediaTek  LinkIt Smart 7688 Duo и ее инсталляцией,   в этом разделе  мы остановимся лишь на  кратком описание  и составе набора,  в надежде, что заинтересованные    читатели найдут более подробную  информацию на сайте производителя [2].

Набор Grove Starter Kit for LinkIt 7688 Duo оформлен в виде пластикового бокса, внутри которого находятся десять периферийный устройств.

Технические характеристики  Arduino Breakout for LinkIt Smart 7688 Duo

  1. Разъемы  для установки  модуля  LinkIt Smart 7688 Duo
  2. Двенадцать  4-хконтакных разъемов  XH2.54-4     для подключения периферии
  • Шесть разъемов -  для ввода-вывода цифровых (D4-D10) данных
  • Три разъема  -   для ввода аналоговых (A0-A3) данных
  • Три разъема -   поддерживающих интерфейс  I2C для обмена данными с модулями  Grove
  1. Полностью совместимые разъемы для работы с pin  типа Arduino UNO  или  подключения   Arduino UNO совместимых шилдов:
  • Четырнадцать pin D0-D13 для ввода-вывода цифровой информации
  • Канал последовательной передачи данных pin Rx, Tx (D0, D1)
  • Шесть pin (D5, D6, D9- D11, D13) для вывода аналоговой информации в режиме широтно-импульcной модуляции (ШИМ PWM)
  • Шесть pin (A0-A5) для ввода аналоговой информации
  • pin интерфейса I2C  SDA, SCL
  • Шесть pin  ICSP  -  для организации интерфейса SPI
  • pin RST, AREF, IOREF
  • Питание  pin 5V,  3.3V, GNDUART Rx2 Tx2  - для отладки модуля   LinkIt Smart 7688 Duo
  1. USB
  2. microUSB
  3. Разъем Ethernet – для сети Ethernet

Характеристики периферийных устройств  

1.    Grove - Gas Sensor     
Сенсор MQ-2 наличия газа  – имеет аналоговый выход, определяет наличие газов: пропан, метан, н-бутан,  водород

2.    Grove - Light Sensor      
Сенсор освещенности – имеет аналоговый выход

3.    Relay
Модуль реле –предназначен для коммутации силовых сигналов 220В/10А,  имеет один цифровой вход и два контакта коммутации NO и NC.

4.    Temperature & Humidity Sensor
Сенсор влажности и температуры – интерфейс обмена I2C передает значения температуры и  влажности окружающей среды.  

5.    OLED Display 1.12"
OLED  дисплей  1.12 дюйма, 128х64 пикселей  – интерфейс обмена I2C

6.    Инфракрасный  передатчик

7.    Инфракрасный  приемник


8.    Инфракрасный  пульт управления.

9 . Grove - Touch Sensor
Сенсор касания

9.    Grove – Encoder
Энкодер

ИНСТАЛЛЯЦИЯ

Теперь определимся, чего мы хотим от Linkit 7768 Duo:

  1. Беспроводное подключение PC к Linkit 7768 Duo для написания и отладки программ;
  2. Сбор и визуализация информации с датчиков, подключенных к  MCU ATmega32U4Б, с помощью программ, написанных в среде Arduino IDE;     
  3. Передача этих данных в MPU  Linkit 7768 Duo;
  4. Визуализация этих данных с помощью   Phyton  на удаленном PC.

Приступаем к инсталляции.

Для этого нам  необходимо инсталлировать несколько программ: Adruino IDE  и  Python, Putty (для подключения к Linkit 7768 Duo по протоколу SSH) и  Far (для обеспечения   работы  с файловой системой  OpenWRT по протоколу SCP ).

Инсталлируем Arduino IDE

Для начала устанавливаем  программную оболочку Arduino IDE:

  1. Заходим по ссылке  https://www.arduino.cc/en/Main/Software скачиваем ,  устанавливаем и запускаем  последнюю версию оболочки Arduino IDE.
  2.  Заходим в  Меню ->  Файл -> Настройки

В открывшемся окне в поле «Дополнительные ссылки для Менеждера плат» вставляем ссылку:

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

3) Далее  

Меню ->  Скетч -> Подключить Библиотеку à Управлять Библиотеками

В окне находим « Linkit  Smart 7688 Duo….»  и нажимаем Установить

4) Теперь  выбираем нашу плату  Меню -> Инструменты -> Плата -> Linkit 7768 Duo

На этом программная установка Arduino IDE для платы Linkit 7768 Duo закончена.

Инсталлируем  LinkIt Smart 7688 Duo

  1. Устанавливаем  LinkIt Smart 7688 Duo в  Arduino Breakout for LinkIt Smart 7688 Duo.   Подаем от PC  питание на плату  Breakout  через разъем microUSB.
  2.  Изначально LinkIt Smart 7688 Duo установлен производителем в режим AP (Access Point Mode)  и сам выступает в виде роутера, и выдает:

SSID:    LinkIt_Smart_7688_XXXXX  
mDNSHostname:    mylinkit.local

  1. При просмотре  списка Wi-Fi сетей на нашем PC увидим сеть от LinkIt Smart 7688 Duo и подключаемся к ней под паролем, установленным производителем.

 

  1. В открывшемся окне устанавливаем  LinkIt Smart 7688 Duo в Station Mode сохраняем изменения и выходим. После этого наш  LinkIt Smart 7688 Duo получает IP адрес от роутера и переходит в режим Station Mode как изображено ниже.

 

  1. Следующий этап -  необходимо узнать IP-адрес LinkIt Smart 7688 Duo, полученный от роутера (Wi-Fi AP). Для этого  заходим  cmd ->  ipconfig  и находим IP-адрес своего PC по строчке IPv4-адрес -  192.168.100.108    

Если роутер хороший, то он покажет, какие IP-адреса и каким устройствам он раздал. В противном случае надо командой ping перебрать все IP-адреса от 192.168.100.000  до   192.168.100.255, чтобы узнать IP- адреса LinkIt Smart 7688 Duo. 

В нашем случае это адрес 192.168.100.001.

Инсталлируем  PuTTY  и  устанавливаем протокол SSH

Заходим по ссылке  http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Скачиваем PuTTY.exe

Запускаем, устанавливаем IP-адрес 192.168.100.001, Port 22, Протокол SSH и далее -> Open.

Вводим

Логин:  root

Пароль:  *******

Инсталлируем  Far и  устанавливаем протокол SCP

  1. Заходим по ссылке  http://www.farmanager.com/download.php?l=ru    и устанавливаем Far.exe
  2. Заходим  Menu -> Plugin -> NetBox и устанавливаем:
  1. File protocol :       SCP
  2. Host Name:          192.168.100.001
  3. Port Nambe:         22
  4. User Name:           *****
  5. Password:              *****   

3. Нажимаем ОК,  и  с  этого момента наш  LinkIt Smart 7688 Duo по сети Wi-Fi подключен к нашему PC запуска и редактирования программ.

НАЧАЛО РАБОТЫ

1.    Подключаем  Grove - Light Sensor   - сенсор освещенности к pin A0
2.    Пишем скетч на Arduino IDE

void setup()
{     
    Serial.begin (9600);                                                //  инициализируем  обмен  между  MCU   Arduino IDE
    Serial1.begin(57600);                                            //  инициализируем  обмен  между   MСU   и  MPU
}

void loop()
 {
     int sensorValue = analogRead(A0);               // читаем показания сенсора освещенности подключенного к   pin A0:
     float voltage = sensorValue * (5.0 / 1023.0);   //Конвертируем значения АЦП в вольты (0 - 1023) ~ (0 - 5V)  
     Serial.print (voltage);                                            // выводим значения сенсора на мо итор Arduino IDE
     Serial.println("  volt ADC");                                
   Serial1.println(voltage);                                        // передаем данные в MPU OpenWRT
   Serial1.println(" volt  !");                                      // выводим их на монитор
    delay(200);
}
3.    Пишем программу на Phyton
# works with awn_t2.ino

import serial
import time  

s = None  

def my_setup():   
    global s   
    # open serial COM port to /dev/ttyS0, which maps to UART0(D0/D1)   
    # the baudrate is set to 57600 and should be the same as the one   
    # specified in the Arduino sketch uploaded to ATmega32U4.
    s = serial.Serial("/dev/ttyS0", 57600);  

def my_loop():  
    # read string from the Arduino sketch on ATmega32U4.   
    # the sketch will turn on the LED attached to D13 on the board   
    my_line = s.readline()
    print my_line;
    print "*-1-********";

if __name__ == '__main__':   
    my_setup();   
    while True:    
        my_loop();
4.    Запускаем программы и наблюдаем изменение освещенности сенсора на мониторе последовательного порта в  Arduino IDE и  Phyton.

ЗАКЛЮЧЕНИЕ

В заключении хочется  сказать, что модуль LinkIt Smart 7688 Duo   в программной и аппаратной части  может соответствовать самым взыскательным требованиям.

По составу набора  Grove Starter Kit for LinkIt 7688 Duo не идеален, но хорош для старта. Конечно, специалисту тут хотелось бы видеть мотор-драйверы  (http://www.seeedstudio.com/wiki/Motor_Shield) и сами моторы, но и без них есть чем заняться. 

И, наконец, по ценовому диапазону – данные девайсы вне всякой конкуренции.

ССЫЛКИ

1. LinkIt Smart 7688 Duo

http://www.seeedstudio.com/depot/LinkIt-Smart-7688-Duo-p-2574.html

2. Grove Starter Kit for LinkIt 7688 Duo

http://www.seeedstudio.com/depot/Grove-Starter-Kit-for-LinkIt-7688-Duo-p-2551.html

3. MediaTek_LinkIt_Smart_7688_Developers_Guide_V1.1

Arduino Breakout for LinkIt Smart 7688 Duo

http://www.seeedstudio.com/depot/Arduino-Breakout-for-LinkIt-Smart-7688-Duo-p-2576.html

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 3
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Аватар пользователя Al

"...от 192.168.100.000  до   192.168.100.255..." - ping 192.168.100.000? Точно?

Аватар пользователя mental

КВ удивили. Бывают же и нормальные статьи.

+1
Аватар пользователя savely

;) +1