IoT-хаб на Intel Edison

Привет, GT!

Если вы хотели бы сделать свой собственный «железный» модуль на Intel Edison, но не уверены, с какого бока к нему подступиться — этот текст для вас. Он — про особенности и мелкие нюансы создания своего устройства на Edison, без использования готовых отладочных плат Intel или Sparkfun.

Недавно у нас возникла специфическая задача: нам понадобился IoT-хаб (то есть шлюз между специфическими для «Интернета вещей» сетями 6LoWPAN и LoRa, которыми мы занимаемся, и внешним миром) на архитектуре x86. Наш стандартный вариант — это решение на нашем собственном микрокомпьютере Unwired One на архитектуре MIPS, но в данном случае был нужен именно x86.

Дело в том, что хаб у нас — это не просто транслятор из 6LoWPAN/LoRa во внешний мир всего, что с той стороны прилетело, а во-первых, небольшой сервер IoT-сети, который поддерживает её существование, раздаёт IP-адреса (при наличии в данной сети таковых) и занимается прочей технической работой, во-вторых, собственно border router из IoT во внешний мир, в-третьих, прослойка на уровне приложений, превращающая наши собственные протоколы IoT-сети в распространённый MQTT и унифицирующая сети разных видов, а в-четвёртых, платформа, на которой клиент может сам написать какой-либо интересный ему софт, проводящий накопление и обработку данных до отправки их на большой сервер, в облако и т.п.



Собственно, в последнем и возникла загвоздка. Проблема в том, что при всех разговорах о грядущей победе IoT, с ПО этого уровня в нём всё довольно плохо — его, если говорить коротко, нет. Стандартного, универсального, не привязанного к конкретной железке и не написанного на яве (да простят меня её поклонники, но когда у вас 256 МБ ОЗУ — это много, Java — так себе выбор).

И тут мы познакомились с СУБД Tarantool разработки Mail.ru. Лёгкая — работает на устройствах с ОЗУ от 128 МБ. Универсальная — не привязана к конкретному вендорскому железу или конкретным вендорским облакам. Со встроенным сервером приложений — и скриптовым языком Lua.

Одна проблема — Tarantool не работает на MIPS, 64 МБ памяти ему всё-таки мало, а также он хочет FPU, которого у нас также нет. Вторая проблема — встраиваемые компьютеры на ARM, на которых Tarantool в принципе работает, весьма редко встречаются в габаритах меньше 50x50 мм. И если для промышленных проектов это часто безразлично, то для нашего набора быстрого прототипирования Unwired Kit очень не хотелось бы выходить за пределы ширины базового модуля — 45 мм — без веских на то оснований. Кроме того, встроенный Wi-Fi — отдельная редкость, а если мы говорим про набор для прототипирования, то его в девяти случаях из десяти используют именно с Wi-Fi.

К счастью, на рынке есть модуль, идеально подходящий под наши требования — очень маленький, с Wi-Fi и не на MIPS.

Это, очевидно, Intel Edison.


Слева Unwired One, справа — Edison.

Поэтому мы взяли — да и сделали модуль UMDK-EDISON, то есть переходник с Intel Edison с его специфическим разъёмом на формат наших модулей.

И по итогам решили написать про основные трудности и особенности Edison, которые нужно учесть, если вы планируете сделать такое же для своего проекта.

Особенности и трудности



Главная проблема Edison — это разъём. В нём используется межплатный разъём высокой плотности с неприятно мелким шагом ног — 0,4 мм; ширина одной ноги — 0,2 мм, зазор между ногами — 0,2 мм. С одной стороны, это если не исключает всякий ЛУТ, то делает его довольно трудным; с другой — такие размеры ещё находятся в пределах того, что в отечественной классификации подпадает под 4 категорию сложности — то есть тот же «Резонит» такие платы сделает быстро и по базовым расценкам.

С пайкой чуть сложнее — но тоже решаемо. Мы в пробные образцы запаивали разъёмы «комбинированным методом» — облуживали дорожки, наносили поверх хороший флюс (EFD SolderPlus NCLR-A), приклеивали разъём и ставили в печку для паяльной пасты, после печки доводили тонким жалом и оплёткой для удаления перемычек между ножками. Думаю, хорошей тонкой «микроволной» можно запаять и полностью вручную, ну а для сколь-нибудь массового производства, конечно, надо делать нормальный трафарет и ставить разъём на пасту.

Наиболее неудобно в разъёме то, что у него нет шпеньков для точного позиционирования в плате — он с очевидностью рассчитан только на автоматический монтаж. Поэтому ставить и выравнивать надо аккуратно.

Разъём делает компания Hirose и называется он DF40C(2.0)-70DS-0.4V(51). Мы покупали их в «Элитане» — получилось по 60 рублей штука с доставкой примерно за месяц. На складах в России такой экзотики ни у кого нет, но если текущие сроки и цены «Элитана» не устраивают — можно попробовать «Контест», «Воркэл» и другие компании, возящие компоненты под заказ.

Схемотехника



Зато после того, как вы разобрались с разъёмом, подключение Edison оказывается предельно простым:



То есть, говоря ещё короче, достаточно подать питание.

Если же вы хотите большего — то в первую очередь стоит обратить внимание на:



Бонус-трек





P.S. И, разумеется, на IoT-хакатоне в Mail.Ru в следующие выходные на руках у команд будет именно эта связка — Intel Edison, наши модули 6LoWPAN и СУБД Tarantool.
@olartamonov
22.07.2016 17:34 UTC
Первоисточник