Речь идет об 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 контактов на такой малой площади.
Использование именно такого разъёма, видимо, компромисс между желанием вывести как можно больше интерфейсов и желанием сделать это максимально компактно.
Но всё-таки, Edison – очень выдающийся продукт.
В домашних условиях, боюсь, прототип своего устройства на базе Intel Edison будет сделать очень проблематично. Но для прототипирования отлично подходит плата из комплекта поставки:
Помимо Edison, на плате хорошо видны «пины» для подключения ардуино-совместимых шилдов (обозначены как «ANALOG IN», «DIGITAL», «POWER»), слот для microSD-карточки, разъём для подключения источника питания и три USB-разъёма (один – type A и два – microUSB).
Сразу расскажу, зачем так много usb-разъёмов, ведь сам Intel Edison обладает только одним OTG-портом. Тут всё дело в
Также на плате расположены 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 – джамперы для конфигурирования работы ШИМ-выходов.
Подробнее можно почитать тут.
Более подробно ознакомиться с особенностями использования аккумуляторных батарей можно в этом документе.
Кстати, 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 (без пароля).
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
Эта команда запускает «мастер» установки, в ходе которого последовательно предлагается задать:
- Пароль административной записи
- Имя устройства
Далее нужно выбрать номер нужной сети (или ввести скрытый 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, содержащий наболее востребованные элементы: различные сенсоры, дисплей и т.п.
Удобство этого набора в том, что можно очень быстро и просто создавать различные прототипы устройств, просто подключив необходимый в проекте «набор» устройств в «базовыи? шилд».
И ещё больше облегчает процесс изучения наличие всех необходимых примеров.
Собственно, как и декларировалось – переход с 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)
darkrain
24.04.2015 15:51+2Я вот думаю, а что если организовать кластер. Хотелось бы для теста пособирать такое чудо
BjornValor
24.04.2015 22:23Тоже такая мысль закралась… микролезвийные серверочки… хотя бы ради фана даже. Такая кукольная стоечка, или датацентрик в миниатюре.
totuin
24.04.2015 16:22+5– 4434 рубля за модуль Intel Edison
– 7004 рубля за комплект с платой Edison для Arduino
– 5397 рублей за комплект c платой Breakout Board
Не для всех наборчик. С такими ценами боюсь не взлетит. Ждем друзей — китайцев.devzona
24.04.2015 18:16+1Думаю корректнее сравнивать с решениями TI, и подобными. Китайцы вообще идут вне конкуренции. И не всегда с китайскими решениями все складывается гладно. Помню небольшую историю с присланой последней версией LCD контроллера. Пришлось немного подумать, для запуска новинки.
Ссылка кому интересноrstepanov
24.04.2015 16:44+2Смотрю я на это «богатство» и думаю, что уже имеющимся на рынке ARM платам оно не соперник. Практически под любую задачу можно подобрать что-то подходящее, от BlackSwift до HardKernel'овских поделок и будет сильно дешевле и компактнее (Edison без breakout board вообще ни на что не годится).
amarao
24.04.2015 16:55+4Извините, если пропустил начало. Вопросы:
Все ли драйвера свободны и в апстриме?
Можно ли туда шить что душе придётся?
Оно x86_64? Если да, как выглядит процесс загрузки? UEFI? Если UEFI, можно ли устанавливать свои ключи?
flash-память в системе видна как какое устройство? SATA, usb, etc?andy_shev
06.05.2015 18:07- В upstream только минимум, необходимый для запуска консоли. См. вот этот пост. Остальное вывалено в кучу в архиве с исходниками где-то на сайте intel.com.
- Я подозреваю, что всё, что угодно, воспринимающее U-Boot.
- Не пробовал 64-битные ядра, но Изучаем флаги :)# grep -c -w lm /proc/cpuinfo
2
neochapay
24.04.2015 16:57На последней фотке справа сверху что за зверь?
nochkin
24.04.2015 17:33+1Это одна их многочисленных плат на базе Allwinner A20 SoC.
Конкретно эта: Iteaduino Plus A20
Aspire89
24.04.2015 17:25+5Все посты у вас какие то рекламные, с огромным количеством абсолютно не нужных изображений.
Такое ощущение, что вы позиционируете эти железки в качестве моргающих светодиодов.
Очень интересно почитать про подключение различной периферии, также про Intel XDK IoT Edition.
У самого Galileo gen 2, очень трудно найти необходимую информацию.
На официальном сайте только простейшие инструкции, на github куча примеров без описания.
Железки интересные, удобное ПО для разработки, но отсутствует поддержка.devzona
24.04.2015 18:04+2Предлагаю свой вариант - Intel Edison. Первый запуск. Еще не опубликованы интересные посты посвященные взаимодействию Edison с облаком.
devzona
24.04.2015 18:07На самом деле материалы есть и хватает. Но в чем Вы правы, так в том что все эти материалы трудно найти. К сожалению Intel все пишет в общий пул Блога. А там найти нужное сложно.
SvetlanaGEm
24.04.2015 20:04> У самого Galileo gen 2, очень трудно найти необходимую информацию.
Можете уточнить, какую информацию было сложно или невозможно найти?Aspire89
24.04.2015 21:00+11. Подготовка платы для работы с 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.izard
25.04.2015 11:17+1Для wifi/bluetooth на галилео оч. рекомендую minip-pcie типа Intel N135 или 6250
izard
25.04.2015 11:16+1апгрейд прошивки через reboot ota не на 100% совместим с последней официальной прошивкой. Ее надо прошивать через flashall.sh, который находится в корневом каталоге.
AlexanderS
Функционал действительно впечатляет для такого небольшого объема )
Вот только с этой мини-, микро-, наноминиатюризациями сложнее заниматься этим дома. Ибо одно дело припаять выводной резистор и совсем другое — какой-нибудь SMD самого мелкого типоразмера. Например миниатюрный разъем на плате — 2 UART'а это очень хорошо, но вот попробуй к ним подпаяйся )))