Речь пойдет о новой разработке одного из ведущих мировых производителей мобильных микропроцессоров тайваньской компании 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
- Разъемы для установки модуля LinkIt Smart 7688 Duo
- Двенадцать 4-хконтакных разъемов XH2.54-4 для подключения периферии
- Шесть разъемов - для ввода-вывода цифровых (D4-D10) данных
- Три разъема - для ввода аналоговых (A0-A3) данных
- Три разъема - поддерживающих интерфейс I2C для обмена данными с модулями Grove
- Полностью совместимые разъемы для работы с 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
- USB
- microUSB
- Разъем 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:
- Беспроводное подключение PC к Linkit 7768 Duo для написания и отладки программ;
- Сбор и визуализация информации с датчиков, подключенных к MCU ATmega32U4Б, с помощью программ, написанных в среде Arduino IDE;
- Передача этих данных в MPU Linkit 7768 Duo;
- Визуализация этих данных с помощью Phyton на удаленном PC.
Приступаем к инсталляции.
Для этого нам необходимо инсталлировать несколько программ: Adruino IDE и Python, Putty (для подключения к Linkit 7768 Duo по протоколу SSH) и Far (для обеспечения работы с файловой системой OpenWRT по протоколу SCP ).
Инсталлируем Arduino IDE
Для начала устанавливаем программную оболочку Arduino IDE:
- Заходим по ссылке https://www.arduino.cc/en/Main/Software скачиваем , устанавливаем и запускаем последнюю версию оболочки Arduino IDE.
- Заходим в Меню -> Файл -> Настройки
В открывшемся окне в поле «Дополнительные ссылки для Менеждера плат» вставляем ссылку:
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
- Устанавливаем LinkIt Smart 7688 Duo в Arduino Breakout for LinkIt Smart 7688 Duo. Подаем от PC питание на плату Breakout через разъем microUSB.
- Изначально LinkIt Smart 7688 Duo установлен производителем в режим AP (Access Point Mode) и сам выступает в виде роутера, и выдает:
SSID: LinkIt_Smart_7688_XXXXX
mDNSHostname: mylinkit.local
- При просмотре списка Wi-Fi сетей на нашем PC увидим сеть от LinkIt Smart 7688 Duo и подключаемся к ней под паролем, установленным производителем.
- В открывшемся окне устанавливаем LinkIt Smart 7688 Duo в Station Mode сохраняем изменения и выходим. После этого наш LinkIt Smart 7688 Duo получает IP адрес от роутера и переходит в режим Station Mode как изображено ниже.
- Следующий этап - необходимо узнать 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
- Заходим по ссылке http://www.farmanager.com/download.php?l=ru и устанавливаем Far.exe
- Заходим Menu -> Plugin -> NetBox и устанавливаем:
- File protocol : SCP
- Host Name: 192.168.100.001
- Port Nambe: 22
- User Name: *****
- 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) и сами моторы, но и без них есть чем заняться.
И, наконец, по ценовому диапазону – данные девайсы вне всякой конкуренции.
ССЫЛКИ
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
Комментарии
"...от 192.168.100.000 до 192.168.100.255..." - ping 192.168.100.000? Точно?
КВ удивили. Бывают же и нормальные статьи.
;) +1