company_banner

Практикум «Intel IoT». Edison — могучая «кроха»

    В предыдущих частях «практикума» мы рассматривали Intel Galileo, который производителем позиционируется как плата «для изучения». Но есть ещё и устройство, которое можно использовать не только для ознакомления и прототипирования, но и для встраивания в конечные изделия.

    Речь идет об Intel Edison. Модуль очень мощный (CPU – двухъядерный Intel Atom 500МГц, MCU – Intel Quark 100МГц), 4Гб флеш-памяти, 1Гб «оперативки», компактный (чуть больше SD-карточки), может «питаться» от батареек или аккумуляторов, оснащён беспроводными интерфейсами (Wi-Fi и Bluetooth 4.0) и многое другое.

    Но не будем забегать вперёд.

    Unboxing и первое знакомство


    Комплект, который я изучал, поставляется вот в такой симпатичной и компактной упаковке:


    Помимо самого «главного модуля» Intel Edison, в комплект входят:

    • плата расширения (в этом наборе – «ардуино-совместимая», бывают еще более компактные платы для прототипирования);
    • четыре пластиковые стойки с крепёжными винтами;
    • две гайки для крепления Intel Edison на плате расширения.


    Intel Edison сразу впечатляет… своими размерами – ведь в этом маленьком устройстве (размер 35.4х25.0х3.9 мм) заключена достаточно серьёзная «начинка»:

    • двухъядерный процессор (Intel Atom, с тактовой частотой 500МГц);
    • микроконтроллер (Intel Quark, тактовая частота – 100МГц);
    • оперативная память – 1Гб LPDDR3;
    • флеш – 4Гб (eMMC);
    • модуль Wi-Fi – Broadcom 43340 802.11 a/b/g/n (двухдиапазонный – 2.4 и 5ГГц), встроенная антенна (в моём случае, бывает вариант с внешней антенной),
    • модуль Bluetooth 4.0


    Почти все компоненты скрываются под металлическим экраном. На «лицевой» стороне платы видна керамическая антенна для беспроводных модулей (слева снизу) и разъем (u.FL) для подключения внешней антенны (чуть выше).

    Согласитесь, мало какая система может похвастаться таким «набором». И всё это в крохотном исполнении.

    На нижней стороне платы – ещё один «экранированный ящик» с компонентами и разъём, через который Edison коммуницирует с «внешним миром»:


    Через этот разъём выведены следующие интерфейсы:

    • SD-карта – 1 штука
    • UART – 2 порта
    • I2C – 2 шины
    • SPI – 1 шина с возможностью выбора 2 чипов (2 CS)
    • I2S – 1 шина
    • Порты ввода-вывода (GPIO) – 12 штук (4 из них – с возможностью ШИМ)
    • USB 2.0 – 1 порт (OTG)
    • Часовой выход – 32кГц и 19.2МГц

    И этот разъём тоже впечатляет своими размерами – 70 контактов на такой малой площади.

    Использование именно такого разъёма, видимо, компромисс между желанием вывести как можно больше интерфейсов и желанием сделать это максимально компактно.

    Плата, которая пошла в производство, выглядит не так эффектно, как первоначально презентовали Intel Edison:


    Но всё-таки, Edison – очень выдающийся продукт.

    В домашних условиях, боюсь, прототип своего устройства на базе Intel Edison будет сделать очень проблематично. Но для прототипирования отлично подходит плата из комплекта поставки:


    Помимо Edison, на плате хорошо видны «пины» для подключения ардуино-совместимых шилдов (обозначены как «ANALOG IN», «DIGITAL», «POWER»), слот для microSD-карточки, разъём для подключения источника питания и три USB-разъёма (один – type A и два – microUSB).

    Сразу расскажу, зачем так много usb-разъёмов, ведь сам Intel Edison обладает только одним OTG-портом. Тут всё дело в волшебных пузырьках положении микропереключателя SW1 (расположен между «полноразмерным» и microUSB разъёмами). Если рычажок переключателя находится ближе к «полноразмерному» USB-разъёму, то работает именно он (режим «хоста»: можно подключать, например, внешний USB-накопитель или клавиатуру), если же переключатель в другом положении – работает microUSB-порт (плату можно подключать к компьютеру, например, для обновления прошивки). Последний microUSB-порт (в правом нижнем углу) используется для организации терминала.

    Также на плате расположены 5 кнопок:

    • FW и RM – для восстановления работоспособности в случае повреждения «образа»
    • PWR – управление режимами питания
    • SHLD RST – перезагрузка arduino-скетча, работающего в Intel Edison (не влияет на состояние самого Edison)
    • RESET – сброс.

    Более подробно о функциях и возможностях использования кнопок рассказывает этот документ.

    Для управления различными режимами работы Intel Edison и подключения доп.модулей на плате также расположены следующие пины, разъёмы и джамперы:

    • IOREF – для выбора уровня напряжений, с которыми будет работать плата: 5В или 3.3В;
    • AREF – выбор опорного напряжения для работы АЦП (также зависит от положения джампера IOREF);
    • NTC – пины для подключения термистора (на 10кОм) для контроля температуры аккумуляторной батареи при зарядке. Когда эти пины замкнуты – функция контроля температуры заблокирована;
    • ICSP – выполняет теже функции, что и одноименный разъем на плате Arduino UNO;
    • BATT – пины для подключения Li-Ion или Li-Po аккумулятора для разработки «носимой» электроники (не перепутайте полярность!);
    • PWM – джамперы для конфигурирования работы ШИМ-выходов.

    Подробнее можно почитать тут.

    У меня в хозяйстве нашелся Li-Po аккумулятор на 3.7В 1000мАч
    И я его, конечно же, подключил к соответствующему разъёму – плата тут же «завелась». На плате присутствует «зарядник» для таких аккумуляторов. Соответственно, можно использовать такие АКБ, например, в качестве резервного источника питания.

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

    Кстати, Intel Edison проектировался в т.ч. для использования в «носимой» электронике, поэтому с потреблением тут всё уже очень неплохо. В спецификакции указаны вот такие характеристики (в режиме ожидания):

    • все радиомодули выключены – 13мВт;
    • включен Bluetooth 4.0 – 21.5мВт;
    • включен Wi-Fi – 35мВт;

    Естественно, в активном режиме будет не всё так хорошо, но тут уже зависит от того, что вы будете реализовывать и как оптимизировать потребление системы.

    На нижней стороне платы нет ничего интересного, кроме большого количества контактных площадок (видимо, для того, чтобы можно было подключиться «напрямую» к портам Edison):


    Для прототипирования более компактных устройств лучше использовать вот такую плату


    После того, как мы всесторонне рассмотрели Edison и плату расширения, приступим к настройке.

    Прошивка Intel Edison


    Подготовим наше «устройство». Для этого необходимо аккуратно разместить Intel Edison на плате расширения (удобные направляющие практически не дают шанса на ошибку), чтобы разъём соединился – нужно слегка нажать на Edison до характерного щелчка (надавливать нужно в области разъёма аккуратно и без лишних усилий). Теперь можно зафиксировать платы между собой маленькими гаечками из комплекта поставки.


    Для первичной настройки нужно подключить 2 USB-кабеля (в microUSB-разъёмы), переключатель SW1 должен быть в положении к microUSB. Оба кабеля подключаем к компьютеру (я снова использую mac). Если всё сделано правильно – в системе появится диск EDISON.

    Сначала рекомендуется удалить существующий образ, для чего просто удаляем всё с появившегося диска, включая скрытые папки, используя любой доступный инструмент (я воспользовался терминалом).

    Смотрим свойства диска EDISON. Если там что-либо кроме FAT16 – всё в порядке, если FAT16 – лечим так.


    Забегая чуть вперед
    После прошивки будет примерно следующая картина:

    root@edison:~# df -h
    Filesystem                Size      Used Available Use% Mounted on
    /dev/root               463.9M    365.9M     62.2M  85% /
    devtmpfs                479.9M         0    479.9M   0% /dev
    tmpfs                   480.2M         0    480.2M   0% /dev/shm
    tmpfs                   480.2M    508.0K    479.7M   0% /run
    tmpfs                   480.2M         0    480.2M   0% /sys/fs/cgroup
    systemd-1                 5.7M      5.3M    462.0K  92% /boot
    tmpfs                   480.2M      4.0K    480.2M   0% /tmp
    tmpfs                   480.2M         0    480.2M   0% /var/volatile
    /dev/mmcblk0p5         1003.0K     21.0K    911.0K   2% /factory
    /dev/mmcblk0p7            5.7M      5.3M    462.0K  92% /boot
    systemd-1                 2.2G      5.3M      2.2G   0% /home
    /dev/mmcblk0p10           2.2G      5.3M      2.2G   0% /home
    

    Качаем свежую версию Yocto. Распаковываем архив и все получившиеся файлы и папки переписываем на диск EDISON. После того, как файлы переписаны, необходимо прошить Edison. Для этого открываем новое окно терминала (или воспользуемся тем, что было на предыдущих шагах).

    Вводим команду:

    screen /dev/cu.usbserial
    

    И нажимаем клавишу Tab (для автозаполнения), потом дописываем «115200 -L», у меня при этом получилось:

    screen /dev/cu.usbserial-AJ035QHB 115200 -L
    

    Подтверждаем ввод (Enter) – видим «чистый экран», ещё раз Enter и получаем окно приветствия:


    Вводим логин root. Вводим пароль (если у вас система уже была настроена ранее и это «обновление»). После этого проще всего запустить прошивку с помощью команды:

    reboot ota
    

    Внимание, при этом удалятся все настройки, которые были сделаны ранее (например, Wi-Fi и т.п.). Если же это делается впервые – вы ничего не потеряете. Процесс обновления выглядит примерно так:

    Если все хорошо, то процесс завершится приглашением для логина:

    Все настройки сброшены – логин root (без пароля).

    Версия Linux
    root@edison:~# cat /proc/version
    Linux version 3.10.17-poky-edison+ (sys_dswci@tlsndgbuild004) (gcc version 4.8.2 (GCC) ) #1 SMP PREEMPT Fri Jan 30 14:16:35 CET 2015
    

    Первичная настройка


    Для настройки Intel Edison необходимо запустить следующую команду:

    configure_edison --setup
    

    Эта команда запускает «мастер» установки, в ходе которого последовательно предлагается задать:

    • Пароль административной записи
    • Имя устройства
    После этих шагов мастер предложит настроить подключение к сети Wi-Fi. Процесс сканирования сетей занимает 10 секунд, после этого в экране терминала выводится примерно следующее:
    Далее нужно выбрать номер нужной сети (или ввести скрытый SSID) и ввести пароль для подключения к сети. Если всё сделано правильно – в терминале отобразится полученный IP-адрес.

    Готово. Теперь можно спокойно отключить Edison от компьютера и подключить блоком питания (7-15В). Устройство автоматически стартует и подключится к выбранной беспроводной сети.

    Теперь Intel Edison можно управлять через SSH (IP-адрес, логин/пароль — все уже определено на предыдущих шагах).
    Можно повторить настройки, которые мы уже производили в одной из предыдущих частей «Практикума».

    Дополнительно можно подключить карту памяти (microSD) и использовать её на свое усмотрение.

    Слева – Intel Galileo Gen2, справа – Intel Edison

    Поморгаем светодиодом с помощью Arduino IDE


    C момента написания предыдущих частей «практикума» версия Arduino IDE немного «подросла» до 1.6.0. В общем-то, ничего принципиально отличного от того, что было в примере с Intel Galileo Gen2 – нужно выбрать только правильную плату (Edison) и порт (для Mac это порт с названием вида /dev/cu.usbmodemxxxx).

    Если всё сделано правильно, то на плате (после загрузки примера Blink) начнёт моргать светодиод DS2. Теперь можно осваивать другие возможности Intel Edison. Для того, чтобы это было быстро и просто осуществить – можно приобрести набор Grove Starter Kit Plus Intel IoT Edition, содержащий наболее востребованные элементы: различные сенсоры, дисплей и т.п.

    Удобство этого набора в том, что можно очень быстро и просто создавать различные прототипы устройств, просто подключив необходимый в проекте «набор» устройств в «базовый шилд».

    Подобный набор я уже использовал ранее
    Для создании погодной станции. Возможно, что у вас уже такой «кит» (или схожий по смыслу) уже имеется в наличии (вероятность этого очень высока, если вы уже начали/осваиваете Arduino). Да и вообще, все те «шилды», что используются с Arduino (с некоторыми оговорками) можно использовать с Intel Edison и «большой» платой.

    И ещё больше облегчает процесс изучения наличие всех необходимых примеров.
    Собственно, как и декларировалось – переход с Intel Galileo на Intel Edison очень прост: всё, что было сделано для Galileo – просто переносится на «старшее» устройство.

    Что дальше?


    Вы можете выбирать любой способ разработки, какой нравится. На выбор предлагается:


    Кстати, с времени публикации предыдущих частей «практикума» Intel IoT Developer Kit тоже обновился (текущая версия – v1.0). При его разработке учли многочисленные замечания и предложения (в т.ч. и те, которые были затронуты в нашем «практикуме») – создавать проекты в Eclipse стало проще, ещё больше примеров, больше документации (причём, часть уже и на русском языке).

    Выводы


    Intel Galileo и Intel Edison – перспективные устройства, которые позволяют не только «окунуться» в мир разработки устройств на микроконтроллерах, но и использовать серьезные возможности Linux-компютеров (а в случае с Edison – ещё и достаточно мощное оснащение SoC).

    Взаимодействие этих богатых (самих по себе) составляющих – существенно расширяют возможности использования: например, на linux-составляющей можно поднять веб-сервер с базой данных для организации удобного веб-интерфейса по управлению какими-либо приборами, а «железная» (ардуино) составляющая – реализует это управление.

    Больше устройств хороших и разных.


    » Первая часть «практикума»: Galileo Gen2 — Первое знакомство
    » Вторая часть «практикума»: Galileo Gen2 — Linux & Arduino
    » Третья часть «практикума»: Практикум «Intel IoT». Galileo Gen2 — Eclipse & libmraa+UPM

    Ну и совсем свежая новость:

    » Intel Edison официально в России: предзаказ и конкурс проектов

    Спасибо за внимание!
    Метки:
    Intel 208,27
    Компания
    Поделиться публикацией
    Похожие публикации
    Комментарии 20
    • +2
      Функционал действительно впечатляет для такого небольшого объема )

      Вот только с этой мини-, микро-, наноминиатюризациями сложнее заниматься этим дома. Ибо одно дело припаять выводной резистор и совсем другое — какой-нибудь SMD самого мелкого типоразмера. Например миниатюрный разъем на плате — 2 UART'а это очень хорошо, но вот попробуй к ним подпаяйся )))
    • +2
      Я вот думаю, а что если организовать кластер. Хотелось бы для теста пособирать такое чудо
      • 0
        Я просто не соображу как между ними сеть поднять с хорошей скоростью
        • –1
          wifi n на незашумленном 5Ггц?
      • +1
        Мне вот тоже эта идея сразу в голову пришла
        Вот что-то похожее сделали
      • НЛО прилетело и опубликовало эту надпись здесь
    • +5
      – 4434 рубля за модуль Intel Edison
      – 7004 рубля за комплект с платой Edison для Arduino
      – 5397 рублей за комплект c платой Breakout Board


      Не для всех наборчик. С такими ценами боюсь не взлетит. Ждем друзей — китайцев.
      • +1
        Думаю корректнее сравнивать с решениями TI, и подобными. Китайцы вообще идут вне конкуренции. И не всегда с китайскими решениями все складывается гладно. Помню небольшую историю с присланой последней версией LCD контроллера. Пришлось немного подумать, для запуска новинки.
    • +2
      Смотрю я на это «богатство» и думаю, что уже имеющимся на рынке ARM платам оно не соперник. Практически под любую задачу можно подобрать что-то подходящее, от BlackSwift до HardKernel'овских поделок и будет сильно дешевле и компактнее (Edison без breakout board вообще ни на что не годится).
    • +4
      Извините, если пропустил начало. Вопросы:

      Все ли драйвера свободны и в апстриме?
      Можно ли туда шить что душе придётся?
      Оно x86_64? Если да, как выглядит процесс загрузки? UEFI? Если UEFI, можно ли устанавливать свои ключи?
      flash-память в системе видна как какое устройство? SATA, usb, etc?
      • 0
        • В upstream только минимум, необходимый для запуска консоли. См. вот этот пост. Остальное вывалено в кучу в архиве с исходниками где-то на сайте intel.com.
        • Я подозреваю, что всё, что угодно, воспринимающее U-Boot.
        • Не пробовал 64-битные ядра, но
          Изучаем флаги :)
          # grep -c -w lm /proc/cpuinfo
          2
        • U-Boot, ядро Linux, …
        • U-Boot.
        • На родной прошивке видно как /dev/mmcblk.
        • Это продолжение предыдущего вопроса? Иначе не совсем понятно, о чём речь.

    • 0
      На последней фотке справа сверху что за зверь?
      • +1
        Это одна их многочисленных плат на базе Allwinner A20 SoC.
        Конкретно эта: Iteaduino Plus A20
    • +5
      Все посты у вас какие то рекламные, с огромным количеством абсолютно не нужных изображений.
      Такое ощущение, что вы позиционируете эти железки в качестве моргающих светодиодов.
      Очень интересно почитать про подключение различной периферии, также про Intel XDK IoT Edition.
      У самого Galileo gen 2, очень трудно найти необходимую информацию.
      На официальном сайте только простейшие инструкции, на github куча примеров без описания.
      Железки интересные, удобное ПО для разработки, но отсутствует поддержка.
      • +2
        Предлагаю свой вариант - Intel Edison. Первый запуск. Еще не опубликованы интересные посты посвященные взаимодействию Edison с облаком.
      • 0
        На самом деле материалы есть и хватает. Но в чем Вы правы, так в том что все эти материалы трудно найти. К сожалению Intel все пишет в общий пул Блога. А там найти нужное сложно.
      • 0
        > У самого Galileo gen 2, очень трудно найти необходимую информацию.
        Можете уточнить, какую информацию было сложно или невозможно найти?
        • +1
          1. Подготовка платы для работы с XDK. Пока не нашел заветный образ iotdk.intel.com/images/iot-devkit-latest-mmcblkp0.direct.bz2 перепробовал кучу разнообразных образов.
          2. Примеры для XDK ужасны, как для платы, так и для компаньона. Позиционируете этот продукт как IoT, а в примерах элементарное переключение дискретных входов/выходов, а в примере с датчиком температуры, обычное считывание аналогового входа.
          3. Работа с периферией. Куча примеров как подключить i2c датчик температуры с помощью arduino скрипта, но это же как стрелять из пушки по воробьям. Позже нашел интересный раздел по датчикам, software.intel.com/en-us/iot/sensors и подключил bmp085, но пока не нашел как подключать 1-wire, например ds18x20 датчики. Интересно было бы еще подключить дисплей на чипе ili9341.
          4. Т.к. на Galileo на борту нет wi-fi, интересует подключение usb адаптера, например на чипе RTL8192CU.
          • +1
            Для wifi/bluetooth на галилео оч. рекомендую minip-pcie типа Intel N135 или 6250
    • +1
      апгрейд прошивки через reboot ota не на 100% совместим с последней официальной прошивкой. Ее надо прошивать через flashall.sh, который находится в корневом каталоге.

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое