Intel® Galileo Gen 2. Особенности начала эксплуатации



    Как я уже писал в предыдущем посту, лаборатория Интернета вещей при СПб ГУТ им. проф.М.А.Бонч-Бруевича предоставила мне для работы плату Intel Galileo Gen 2. Мне удалось интегрировать ее в свой проект, и я хочу рассказать об опыте работы с этой платой, полученном в процессе этой интеграции.
    Я не буду касаться программирования Linux составляющей платы, а расскажу только об особенностях использования ее Ардуино функционала.



    Описание платы, где скачать документацию и софт, хорошо описано в этом посте. Поэтому не буду повторяться.
    Итак, первое включение. Порт находится, заливаем стандартный Blink, все прекрасно залилось и заработало. Попробовал скетчь с выводом в компорт, и тут меня ожидал первый сюрприз. Что бы я ни делал, в компорт выводилось какое – то длинное число и все… Началось копание в доках. Как оказалось для ОС Windows необходимо установить драйвер. Автор вышеупомянутого поста работал на маке, и наверное там, дополнительные драйвера не требуются. Ответ нашёлся в этом документе. Если нет дравера в системе, ставится вот такое устройство.



    Драйвер находится в папке Arduino IDE по пути: hardware/arduino/x86/tools
    После установки драйвера появится такой порт



    Вроде все хорошо. В ком – порту появились ожидаемые данные. Но тут начались очередные сложности. При выключении питания, или нажатии общего сброса, скечь в контроллере пропадал. Установка карты SD и подключение батарейки ни к чему не привели. На просторах интернета на этот вопрос я то же ответа не нашёл. Ребята из лаборатории интернета вещей проверили эту ситуацию еще на четырех платах, эффект повторился. Значит это не дефект моего экземпляра. Как последнюю надежду я решил повторить установку OC Yocto по этому посту. И сразу же меня ждали очередные трудности. Скачанный образ флешки имеет расширение .direct. Я ничего не нашёл о том как под виндой перенести его на флешку. Автор поста работает на маке, и о процессе на других ОС написал так
    Все шаги буду делать на Mac, для Windows и *nix-платформ всё аналогично (естественно, с соответствующими «поправками» на операционную систему)

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



    Значит, опять ищем дрова. Нашлись…. На той самой флешке, которую мы только что сделали.



    Устанавливаем. И вот оно счастье. Появился и компорт, и флешка доступна как подключаемый диск, и самое главное – скетчи начали сохраняться. Причем сохраняются они явно на этой самой флешке. Проверяется на стандартном 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.
    Надеюсь, этот пост поможет кому-то легче начать свое знакомство с этой интересной платой.
    FLProg 24,48
    Графическая среда программирования Arduino
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 22
    • +1
      Ребята минусующие — объясните что не так? Я конечно понимаю, что под… и сбежать проще чем аргументировать, но это как минимум некрасиво.
      • +8
        иногда такое происходит от того что люди в силу определенных интересов, не совпадающих с темой поста, не понимают, как это может быть интересно хоть кому-то )))
        • +1
          Да к сожалению это часто еще встречаются. Люди считающие себя пупом земли, и свое мнение — единственно верным. И если это не интересно ему — то это не интересно никому. Ну бог им судья.
          • +1
            Минусы и плюсы под статьёй являются обычным голосованием её ценности, а не чей-то попыткой доказать что он «пуп земли». Важен не конкретный минус, а важна суммарная оценка, которая складывается из этих маленьких голосов.
            Таким образом на Хабре более интересные статьи видны больше, чем менее интересные. То есть, мы видим больше интересного контента.
            Ваш КО.
            • +1
              Мы видим больше интересного контента для некоторого среднего типа аудитории. Узко специализированный контент интересен только единицам, хотя может быть очень и очень и полезным.
            • –2
              Тут и не такое бывает. Можно ничего не писать месяц-другой, вообще молчать. А потом обнаружить пару минусов в карму.
        • +4
          Ответил в комментариях к своей записи и тут тоже отвечу:
          Но очень бы хотелось, что бы знающие люди объяснили, как это делать под виндой.

          Под Win все еще проще: software.intel.com/en-us/node/530353
          • 0
            Спасибо за наводку. А то поиск по расширению ничего не дал, а все мои записывалки образов ничего о таком файле не знают.
            • 0
              Ещё есть утилита physdiskwrite, аналог линуксового dd, и к ней есть ГУЙ — PhysGUI, всё это можно взять там — m0n0.ch/wall/physdiskwrite.php

              (ссылка не прямая, по понятным причинам)
          • +4
            Я вообще не вижу, по крайне мере, сейчас смысла покупать эту плату и что-то делать на ней. Всё, что пока читал о ней — рассказы о функционале уровня Ардуино с кучей проблем. Не знаю как обстоят дела с интеловской частью платы, так как про нее в обзорах, обычно, умалчивают. Но, что бы то ни было — за такую цену выпустили сырой продукт. Обещанной совместимости с Ардуино пока нет. В плане соединения с интернетом — есть более дешевые решения.
            • +1
              Из плюсов я пока вижу предустановленные Ethernet, хорошие часы реального времени, miniPCI. В него можно воткнуть нормальную плату WIFI. Причем все это доступно из ардуиновской части и есть соответствующие библиотеки. Я пока не проверял, но со временем обязательно включу это в проект. Так же есть USB хост (то же доступный из под Arduino — IDE) куда можно например воткнуть 3G свисток. Если все это покупать отдельно в виде шилдов в таком же качестве — еще неизвестно что дешевле выйдет. Ну и последний плюс — большое быстродействие и память программы. То есть через микросхемы расширения можно увеличить количество входов — выходов до необходимого значения. Так что область применения этой платы — наверное центральный мозг например умного дома.
              • +1
                Далеко ходить не надо — новый Пай с этими задачами прекрасно справится за гораздо меньшую цену. И, если приспичит, он хотя бы умеет видеосигнал генерировать + обещанная поддержка вин 10.
                • 0
                  Возможно. Но я пока его в руках не держал а с этой поигрался. Поэтому и говорю о том что знаю. Ну и по возможности поделился своим опытом. Может кому — то и не придется повторять мой путь.
                  • 0
                    Малинка не x86 совместимая, в отличе от Galileo)
                    • +1
                      RPi не совместима с x86, а Galileo не совместима с ARM.
                      И тут ещё спорно что из этого является недостатком.
              • +3
                Добавляем видео-карту
                • 0
                  Вы бы могли попробовать запустить ванильное ядро на ней? В связи с отсутствием именно Gen2 не могу проверить свой материал самостоятельно.
                  • +2
                    Вряд — ли. Во первых инструкция написана для линукса. Я его не знаю и иногда запускаю его в виртуалке в случае острой необходимости. Во вторых я не очень понимаю зачем это нужно и буду благодарен Вам если вы мне объясните это. Ни и главное — я почти ничего не знаю о программировании под линуксом, а занимаюсь программированием Arduino, поэтому и в посте рассматривал только эту составляющую платы. Возможно со временем я добавлю в свой проект компилятор для создания кода на чистом С для использования его непосредственно в ОС платы. Но это когда я дорасту до этого
                    • 0
                      Нужно это для того, чтобы обладатели платы могли воспользоваться современными возможностями ядра Linux (в Yocto поставляется ядро довольно давнишнее). Поскольку вы не пользователь этой ОС, то я врядли найду более лучшее объяснение.
                      • +1
                        Согласен. Извините, но я коренной виндузятник))), и честно говоря для меня каждое общение с линуксом — это трагедия. Хотя и приходится иногда. Недавно портировал свой проект на линукс, и это были самые тяжелые четыре ночи в жизни)))
                        • 0
                          Ну, что же вы так?! :) Я думаю, вам стоит поискать какого-нибудь местного linux-guru, чтобы помогать вам в решении проблем.
                          • +2
                            Я работаю вахтами, и у нас на станции я единственный программист (ну если честно я и сам то не профессиональный программист а инженер АСУ). Есть у нас сисадмин который подсказывает базовые вещи. Но в линуксе все же по другому, и часто привычные действия вызывают совершенно непредсказуемые действия. Ну и консоль!!! Любые операции которые я в винде делаю мышкой здесь требуют введения целого листинга. А сначала нужные команды надо найти в инете. Самое смешное что для разных версий линукса для одного и того же действия используются разные команды. Прописать переменную окружения -> будь добр сначала найти какой текстовый редактор используется в системе, залезть в консоль, перепозти в нужную директорию, запустить редактор через SUDO. В винде я захожу в систему под админской учеткой и делаю что мне надо. Я вообще не понимаю почему в линуксе нельзя зайти под рутом и работать нормально не ползая в консоли. К сожалению в виду отсутствия гуру под рукой приходится все изучать самостоятельно. Как те ежики которые пищали и плакали но жрали кактус))) Но впереди еще самое интересное — портирование под МАС

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое