![](https://habrastorage.org/files/b74/e0e/f03/b74e0ef030d44820a1f4e82fce54b617.jpg)
Как я уже писал в предыдущем посту, лаборатория Интернета вещей при СПб ГУТ им. проф.М.А.Бонч-Бруевича предоставила мне для работы плату Intel Galileo Gen 2. Мне удалось интегрировать ее в свой проект, и я хочу рассказать об опыте работы с этой платой, полученном в процессе этой интеграции.
Я не буду касаться программирования Linux составляющей платы, а расскажу только об особенностях использования ее Ардуино функционала.
Описание платы, где скачать документацию и софт, хорошо описано в этом посте. Поэтому не буду повторяться.
Итак, первое включение. Порт находится, заливаем стандартный Blink, все прекрасно залилось и заработало. Попробовал скетчь с выводом в компорт, и тут меня ожидал первый сюрприз. Что бы я ни делал, в компорт выводилось какое – то длинное число и все… Началось копание в доках. Как оказалось для ОС Windows необходимо установить драйвер. Автор вышеупомянутого поста работал на маке, и наверное там, дополнительные драйвера не требуются. Ответ нашёлся в этом документе. Если нет дравера в системе, ставится вот такое устройство.
Драйвер находится в папке Arduino IDE по пути: hardware/arduino/x86/tools
После установки драйвера появится такой порт
![](https://habrastorage.org/files/e2b/898/34d/e2b89834df50419a82812c906812a920.png)
Вроде все хорошо. В ком – порту появились ожидаемые данные. Но тут начались очередные сложности. При выключении питания, или нажатии общего сброса, скечь в контроллере пропадал. Установка карты SD и подключение батарейки ни к чему не привели. На просторах интернета на этот вопрос я то же ответа не нашёл. Ребята из лаборатории интернета вещей проверили эту ситуацию еще на четырех платах, эффект повторился. Значит это не дефект моего экземпляра. Как последнюю надежду я решил повторить установку OC Yocto по этому посту. И сразу же меня ждали очередные трудности. Скачанный образ флешки имеет расширение .direct. Я ничего не нашёл о том как под виндой перенести его на флешку. Автор поста работает на маке, и о процессе на других ОС написал так
Все шаги буду делать на Mac, для Windows и *nix-платформ всё аналогично (естественно, с соответствующими «поправками» на операционную систему)
Наверное, для кого-то это все просто, но я решения данной задачи не нашёл. Пришлось для этой операции ставить в виртуалке мак ось, и проводить все операции согласно посту. Ну ладно – получилось. Но очень бы хотелось, что бы знающие люди объяснили, как это делать под виндой.
Но на этом сложности то же не закончились. После установки флешки с операционкой в плату пропал ком-порт. В системе обнаружилось некорректно установленное устройство.
![](https://habrastorage.org/files/596/244/18c/59624418cac14a57bd750e8f6a00d329.png)
Значит, опять ищем дрова. Нашлись…. На той самой флешке, которую мы только что сделали.
Устанавливаем. И вот оно счастье. Появился и компорт, и флешка доступна как подключаемый диск, и самое главное – скетчи начали сохраняться. Причем сохраняются они явно на этой самой флешке. Проверяется на стандартном Blink-е. При снятии флешки и перезагрузке светодиод перестает моргать. При установке флешки обратно – снова начинает мигать без перезаливки скетча.
Ну и теперь о результатах тестирования библиотек. В Galileo работу пина в качестве выхода обеспечивает специальная микросхема-расширитель портов с интерфейсом I2C от Cypress. Соответственно библиотеки использующие прямое обращение к регистрам, и применяющие точные расчеты времени не работают. Не заработала библиотека OneWare. Поэтому невозможно использовать такие удобные датчики температуры как DS18B20. По той же самой причине не запустилась библиотека для датчиков DHT.
Не работает библиотека для декодирования сигнала от приемника ИК управления. Она основана на прерываниях, с которыми у Galileo то же все плохо. Так же отказалась работать библиотека записи на SD карту. Причина неизвестна.
Скетч для управления шаговым двигателем откомпилировался без ошибок, но двигатель отказался работать. Серводвигатели работают только на выходах с ШИМ-ом.
Не запустилась библиотека датчика BMP-085. Ошибка при компиляции. С причиной пока не разобрался.
Что работает.
Работает шина SPI и I2C. Работает библиотека дисплеев HD44780 и EEPROM. Работает ультразвуковой дальномер. Ну и отлично работает библиотека Ethernet.
Все описанные возможности, и естественно вся базовая логика реализована в программе FLProg для этой платы. В текущей версии программы установлена одна общая Arduino IDE версии 1.5.3 для программирования и плат Arduino и платы Galileo. К сожалению, среда для Galileo объединяется только с этой версией. Но для ардуино уже выпущена среда с версией 1.6 намного интереснее и с более оптимизированным компилятором. Поэтому в следующем релизе FLProg, будет три версии программы. Одна для ардуино, вторая для Galileo, и третья для обоих, но более большого размера, поскольку в дистрибутиве будут две версии IDE.
Надеюсь, этот пост поможет кому-то легче начать свое знакомство с этой интересной платой.