В ноябре 2014 года в Москве прошел первый хакатон Intel из серии IoT Roadshow, целью которого является продвижение платформы Edison в массы. Мы к нему готовились и выступили весьма достойно, заняв второе место. Для проекта использовали плату Галилео и среду программирования Ардуино с модулями на Python. Наша команда состояла из четырех человек.

Про второй хакатон в Петербурге узнал случайно, буквально за две недели. Готовится было некогда, поэтому проект придумал простой — AMP (Autonomous Mobile Platform — Автономная Мобильная Платформа), несколько в стороне от IoT Intel, но в тематике мобильных роботов, которую знаю очень хорошо.

image

Цель проекта: Разработка ПО управления мобильным роботом, которое независимо от аппаратного шасси.

Планы: Привезти на мероприятие пару своих платформ из других проектов. На хакатоне переключить управление на Edison и написать управляющий софт.

Жизнь: Так сложилось, что из Москвы уехал только с клеевым пистолетом в рюкзаке, из команды никто поехать тоже не смог.

Хакатон Тайминг (время плюс минус):

08:50 – Встал в очередь. Все как обычно: Intel нагнетает атмосферу, заявляя, что комплекты разработчиков только первым пришедшим.

09:20 – Получил пакет и удивился содержимому: блокнот, ручка и БП для Edison! А где же плата?!

10:30 – Начались презентации. Введение в Edison, Intel IoT Cloud Analytics, IoT и Microsoft Azure.
Тут прогресс проявился в полной мере — презентацию Майкрософт спикер вел по скайпу! Начали работать представители компании iGo3D с 2мя 3D принтерами, предлагая участникам печать любых stl-файлов.

image

13:00 – Объявили обед и начали раздавать платы и датчики. На входе их не выдавали, вероятно потому, чтобы те, кто пришел за халявой, сначала тоже послушали презентации, обогатились, так сказать, знаниями. Как только платы раздали, часть столов освободилась и особо голодные ели по второму ланч боксу.

image

13:30 – Серия питч-сессий. Смысл такой сессии состоит в том, что за одну минуту вам нужно презентовать проект и обозначить, кто вам нужен в команду. Мне в команду нужны были два человека: специалист по node.js и тот, кто занялся бы подготовкой презентации. И они нашлись, спасибо ребятам Алексею и Олегу за помощь! В основном, команды-участники были уже скомплектованные, и это является хорошим показателем, который говорит о том, что народ готовился.

14:00 – Распаковали платы и начали запускать Edison и ставить XDK. И тут интернет умер…
Неудивительно — более сотни участников — это более сотни комплектов «ноутбук+телефон/планшет+Edison», а сетка на пространстве класса С всего на 254 адреса.

14:30 – Составил список дополнительных деталей, для получения которых опять пришлось постоять в очереди. Порадовали участники, которые пытались выяснить у девочки, которая вела учет выданных деталей, что бы им такого взять для своего проекта. Итак, получил: контроллер моторов, моторы, делитель напряжения и PIR. Понятно, что из этого мобильного робота не соберешь. Нужна платформа и питание. А интернет все лежал…

15:00 – Переключились на мобильный интернет. Алексей продолжил качать IoT Kit, а я метнулся по магазинам и купил 2S LiPo 1000ma, ответную клемму, зарядку к LiPo, изоленту, провод, ардуино разъем питания, колеса и деревянные линейки.

17:00 – Вернулся на хакатон. Алексей, тем временем, поставил XDK и разбирался с делителем напряжения. Я по скайпу попросил у командного конструктора проекты 2х-детали для печати, хаб-переходник моторов на колеса и подруливающую третью точку. Он буквально за 10 минут сделал и прислал, спасибо, Паша! Отдал stl-файлы ребятам из iGo3D в печать и начал сборку робота.

18:00 – Организаторы развернули еще несколько точек WiFi. Народ начал потихоньку расходиться и интернет ожил.

19:00 – Опять неплохо покормили.

19:30 – Сборку закончил, за исключением печатных деталей. Сделал трехточечное шасси из линеек, термо-клея и синей изоленты. Платы и датчики зафиксировал на клей, моторы — на клей и изоленту. Пытаемся с Алексеем завести драйвер двигателей – а он никак.

20:00 – Привлекли на помощь консультантов Intel, те посоветовали обновить библиотеки, и драйвер завелся. Алексей уехал домой спать.

21:00 – Напечатали детали. Сборку закончил, зафиксировав и эти детали на клей.
Робот есть! Теперь дело за софтом. Так как несколько кусочков уже готово, напряжение с батареи снимается и моторы крутятся, то остается еще немного для того, чтобы выполнить программу минимум — запись в облако, управление через web и сведение всего этого в одну программу.

Начал с облака, нашел 6 примеров и стал разбираться.



00:00 – Пицца и пиво. Спасибо, это было вовремя! Мозг уже кипел. Людей становилось все меньше и меньше, но те, кто оставался, упорно трудились.

04:00 – Все примеры отрабатывали без ошибок, но в облако не писали. В районе четырех часов утра, уже в каматозе, слепил свой вариант и запись пошла.

04:35 – Протянул ноги. Лег спать, на пуфике, на сцене. Как же хорошо! Проблем с пуфиками не было, желающие занимали по два. Самые упорные продолжали трудиться.

08:30 – Встал. Умылся.

09:00 – Проснулся. Позавтракал. И снова за код. Теперь за систему управления.

11:00 – Народ постепенно подтягивается и интернет опять начинает лагать.
Алексей говорит, что не приедет и дает советы по скайпу.

12:30 – Обед. Помимо участников, начинают подтягиваться зрители и судьи.

13:00 – Интернет умер. Умер весь. Переключение по точкам ничего не давало.
Версия готова, но проверить ее без интернета никак! Тяжело, тяжело разрабатывать интернет-вещи без интернета. Сижу в скайпе по мобильному, ругаюсь на интернет, а меня спрашивают, как я в скайпе без интернета?

14:00 – Олег присылает презентацию из 9 слайдов, начинаю переделывать. Получается 11, из которых 6 взято из оригинала.

15:00 – Начинают собирать презентации. Сдаю в числе первых. Уже хочется побыстрее выступить.
Те, кто сделал проект, выключаются. Те, кто не сделал, частично уходят. Организаторы просят отключить интернет всем, кто не использует. И в этот момент удается достучаться до платы и проверить код. У нас ВСЕ работает!

16:00 – Начало презентаций. Много, очень много всего – умные дома, расширенная реальность, универсальные штуки, нейро-интерфейсы. Жуть, как интересно!

Мое выступление прошло неплохо, презентацию показал всю, а вот работу продемонстрировать не удалось — презентационная камера не хотела перестраиваться на свет. Так что ни экрана ноутбука с графиками из облака, ни кнопок управления, на которые тыцкал, видно не было.

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



20:00 – Награждение.
1-ое место — Детектор теплового излучения – заслуженно, решение гениальное, успехов ребятам!
2-ое место — проект SensoDrive – ребята приехали с хорошими домашними заготовками и качественно себя показали.
3- е место — проект Maestro — меня не впечатлил. Качественная и красивая домашняя заготовка из видеоролика, сайта и презентации, и убогий нелепый прототип. По демонстрации прототипа осталось непонятно, заработал он в итоге, или нет.

А после всего этого был розыгрыш призов за всякие активности – селфи, твитты, заполненные анкеты и описание проекта. Призы, в основном, разыгрывали рандом генератором, и мне повезло стать счастливым обладателем часиков BASIS.

Резюме: В общем, хакатоном я остался доволен. Он мне самому показал, что я могу с нуля на незнакомом железе и в незнакомой среде программирования собрать мобильного робота и заставить его работать. Очень жаль времени и нервов, потраченных на борьбу с интернетом, возможно, без этого результат был бы более значительный.

Немного ссылок


Первый хакатон Intel IoT Roadshow
Отчет Intel по первому хакатону
Второй хакатон Intel IoT Roadshow
Отчет Intel по второму хакатону

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


  1. 2fidel
    10.07.2015 11:36
    +2

    Если можно пару замечаний по Хакатону (исключительно мое мнение):

    1. Мне кажется немного не честно, когда за соседними столами сидят люди, которые пришли на хакатон с голой идеей, и люди которые уже 1-3-5 лет пилят свой проект. И оцениваются они одинаково. Может быть как-то разделить их по номинациям?

    2. Большая часть проектов оторвана от реальности. То есть изделия ради изделия. Например — там был проект «Умная розетка», которая позволяет экономить. Ну хорошо, узнал я, что больше всего у меня электричества потребляет стиральная машинка, и что, я стирать стану меньше? Или плита — я буду меньше есть? А стоимость розетки позволит ее окупить такими экономиями?
    Или другой пример — второе место получили ребята, сделавшие управление умным домом посредством VR. Круто, конечно, но зачем?!!! Проще же с телефона!

    На мой места должны были распределиться так:
    1 место — Детектор теплового излучения
    2 место — Идентификация на основе нейроинтерфейса
    3 место — Прибор для построения модели помещения на основе лазерного дальномера.

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


    1. 4robots Автор
      10.07.2015 12:38
      +2

      1. Победила команда которая скомпоновалась прямо на хакатоне.
      2. Когда сидишь в гараже, лабе или на кухне — то твой проект тебе кажется гениальным. А на хакатоне в сравнению с другими это осознание рушится или укрепляется. Так что чем больше проектов тем лучше!


      1. artp
        13.07.2015 12:08

        Действительно, победила хорошая команда. Но то, что оценивать проекты надо по нескольким «возрастным группам», на мой взгляд верно.


  1. grafmishurov
    10.07.2015 16:30

    >на незнакомом железе и в незнакомой среде программирования
    Там же Intel (x86) и Linux, ничего себе незнакомые.


    1. aronsky
      11.07.2015 00:36

      Железо — наверное имелись ввиду датчики всякие, дравйверы моторов и либы к ним, т.к. если поддерживается линукс, то уже без разницы, какая архитектура ;)


      1. 4robots Автор
        11.07.2015 10:46

        Edison — получил вместе со всеми и включил в первый раз в жизни, теоретически понятно что проблем быть не должно, но опыт работы с pcDuino, RasPI, BB показывал, что всякое возможно.
        Linux — в поставке Yocto тоже немного не привычный, в основном общался с RHEL, Ubuntu, Solaris.
        Датчики и Драйвер моторов — подключал их впервые
        IDE — Intel XDK ставили прямо на хакатоне,
        Язык — JavaScript тоже осваивал прямо там на месте, до этого с ним сталкиваться не приходилось. Как то все C да Python.

        Как то много всего нового и не изведанного сошлось в одну точку времени(которого было не так много) и пространства.
        Поэтому когда была выполнена программа минимум, настроение мое резко улучшилось!


  1. artp
    13.07.2015 12:31

    Слухи о смерти интернета на хакатоне несколько преувеличены. Умер wifi. Сотня участников (~три десятка команд) подняли на ограниченном пространстве более двадцати wifi точек. Именно AP'шек. Я их на сканере сам разглядывал и организаторам показывал. Причем, у большинства стоял автовыбор канала. Как эти апэшки бегали по 14-ти каналам — это надо было мультфильм снимать. В результате, сами же участники и гадили самим себе и друг другу. Вообщем, конечно, для такого мероприятия надо раскладывать по рабочим местам проволоку. К этому организаторы оказались не готовы. Но, кстати, тут есть и другая засада. Например, нотики, подготовленные для жюри, вообще не имели эзернетовской соски.


    1. 4robots Автор
      15.07.2015 13:55

      Сложно сказать что первично — что вторично. Когда включил edison то увидел 7 сетей. А когда пропал интернет и начал пробовать подключаться к другим сеткам то их было уже больше 20.


      1. artp
        15.07.2015 14:13

        Вообщем, согласен. Исходно стоял довольно хилый tp-link и скорее всего он начал загибаться. А потом уж пошла положительная обратная связь :(