В предыдущих частях «практикума» мы рассматривали 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 официально в России: предзаказ и конкурс проектов

Спасибо за внимание!

Комментарии (20)


  1. AlexanderS
    24.04.2015 15:36
    +2

    Функционал действительно впечатляет для такого небольшого объема )

    Вот только с этой мини-, микро-, наноминиатюризациями сложнее заниматься этим дома. Ибо одно дело припаять выводной резистор и совсем другое — какой-нибудь SMD самого мелкого типоразмера. Например миниатюрный разъем на плате — 2 UART'а это очень хорошо, но вот попробуй к ним подпаяйся )))


  1. darkrain
    24.04.2015 15:51
    +2

    Я вот думаю, а что если организовать кластер. Хотелось бы для теста пособирать такое чудо


    1. darkrain
      24.04.2015 16:02

      Я просто не соображу как между ними сеть поднять с хорошей скоростью


      1. foxmuldercp
        24.04.2015 20:45
        -1

        wifi n на незашумленном 5Ггц?


    1. MrFrizzy
      24.04.2015 17:51
      +1

      Мне вот тоже эта идея сразу в голову пришла
      Вот что-то похожее сделали


    1. BjornValor
      24.04.2015 22:23

      Тоже такая мысль закралась… микролезвийные серверочки… хотя бы ради фана даже. Такая кукольная стоечка, или датацентрик в миниатюре.


  1. totuin
    24.04.2015 16:22
    +5

    – 4434 рубля за модуль Intel Edison
    – 7004 рубля за комплект с платой Edison для Arduino
    – 5397 рублей за комплект c платой Breakout Board


    Не для всех наборчик. С такими ценами боюсь не взлетит. Ждем друзей — китайцев.


    1. devzona
      24.04.2015 18:16
      +1

      Думаю корректнее сравнивать с решениями TI, и подобными. Китайцы вообще идут вне конкуренции. И не всегда с китайскими решениями все складывается гладно. Помню небольшую историю с присланой последней версией LCD контроллера. Пришлось немного подумать, для запуска новинки.


  1. rstepanov
    24.04.2015 16:44
    +2

    Смотрю я на это «богатство» и думаю, что уже имеющимся на рынке ARM платам оно не соперник. Практически под любую задачу можно подобрать что-то подходящее, от BlackSwift до HardKernel'овских поделок и будет сильно дешевле и компактнее (Edison без breakout board вообще ни на что не годится).


  1. amarao
    24.04.2015 16:55
    +4

    Извините, если пропустил начало. Вопросы:

    Все ли драйвера свободны и в апстриме?
    Можно ли туда шить что душе придётся?
    Оно x86_64? Если да, как выглядит процесс загрузки? UEFI? Если UEFI, можно ли устанавливать свои ключи?
    flash-память в системе видна как какое устройство? SATA, usb, etc?


    1. andy_shev
      06.05.2015 18:07

      • В upstream только минимум, необходимый для запуска консоли. См. вот этот пост. Остальное вывалено в кучу в архиве с исходниками где-то на сайте intel.com.
      • Я подозреваю, что всё, что угодно, воспринимающее U-Boot.
      • Не пробовал 64-битные ядра, но
        Изучаем флаги :)
        # grep -c -w lm /proc/cpuinfo
        2


  1. neochapay
    24.04.2015 16:57

    На последней фотке справа сверху что за зверь?


    1. nochkin
      24.04.2015 17:33
      +1

      Это одна их многочисленных плат на базе Allwinner A20 SoC.
      Конкретно эта: Iteaduino Plus A20


  1. Aspire89
    24.04.2015 17:25
    +5

    Все посты у вас какие то рекламные, с огромным количеством абсолютно не нужных изображений.
    Такое ощущение, что вы позиционируете эти железки в качестве моргающих светодиодов.
    Очень интересно почитать про подключение различной периферии, также про Intel XDK IoT Edition.
    У самого Galileo gen 2, очень трудно найти необходимую информацию.
    На официальном сайте только простейшие инструкции, на github куча примеров без описания.
    Железки интересные, удобное ПО для разработки, но отсутствует поддержка.


    1. devzona
      24.04.2015 18:04
      +2

      Предлагаю свой вариант - Intel Edison. Первый запуск. Еще не опубликованы интересные посты посвященные взаимодействию Edison с облаком.


    1. devzona
      24.04.2015 18:07

      На самом деле материалы есть и хватает. Но в чем Вы правы, так в том что все эти материалы трудно найти. К сожалению Intel все пишет в общий пул Блога. А там найти нужное сложно.


    1. SvetlanaGEm
      24.04.2015 20:04

      > У самого Galileo gen 2, очень трудно найти необходимую информацию.
      Можете уточнить, какую информацию было сложно или невозможно найти?


      1. Aspire89
        24.04.2015 21:00
        +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. izard
          25.04.2015 11:17
          +1

          Для wifi/bluetooth на галилео оч. рекомендую minip-pcie типа Intel N135 или 6250


  1. izard
    25.04.2015 11:16
    +1

    апгрейд прошивки через reboot ota не на 100% совместим с последней официальной прошивкой. Ее надо прошивать через flashall.sh, который находится в корневом каталоге.