Известный факт, что LEGO Mindstorms платформа - удобное средство быстрого прототипирования. В частности, он обгоняет многих конкурентов по соотношению цена-вариативность. Именно поэтому во многих вузах этот конструктор используют на практических занятиях и для исследовательских работ.
На ролике ниже можно увидеть результаты исследовательской работы студентов по активной стабилизации подвешенной конструкции.
Конечно, в данном устройстве использовался не только LEGO Mindstorms, но и плата RaspberryPi, которая обеспечивала более быстрый контроль EV3 блока по протоколу TPC/IP, чем стандартные средства. Но это лишь говорит о том, что студентам приходится изучать больше областей, нежели просто LEGO Mindstorms робототехнику, а также учиться работать с реальным "железом".
Детали о проекте (на английском языке) можно прочитать здесь.
Компания Dexter Industries не остановилась на достигнутом и выложила в интернет инструкцию по подключению аналоговых датчиков (пока только датчик касания) к Raspberry PI плате.
Принцип работы с аналоговыми датчиками отличается от I2C датчиков, поэтому другие выходы используются на плате - GPIO7.
Python скрипт, демонстрирующий работу с этим выходом, использует RPi.GPIO модуль. Из текста программы видно, что явно обрабатывается событие повышения уровня сигнала на соответствующем выходе платы, т.е. пока что не очевидно как будет построена работа с другими аналоговыми датчиками, которые измеряют непосредственно уровень сигнала, а не его изменение.
Когда только появилась информация о том, что в новом Mindstorms EV3 стоит Linux, почему-то в голове возникла мысль о Raspberry PI - небольшом одноплатном компьютере, к которому можно подключить множество стандартных устройств вроде клавиатуры, монитора и т.п., - потому что на нем тоже крутиться эта же операционная система. Ведь по сути блок EV3 лишь по некоторым параметрам проигрывает Raspberry PI, да еще обладает встроенной возможностью подключения моторов и датчиков.
Как оказывается, последнее - подключение датчиков, - не является прерогативой LEGO устройства. Распайка платы Raspberry PI тоже позволяет подключать цифровые датчики, а I2C шина операционной системы Linux известна уже давно.
Известная своими датчиками, подключаемыми к NXT блоку, компания Dexter Industries выложила у себя на сайте статью, подробно рассказывающую как подключать цифровые датчики, совместимые с NXT блоком, к Raspberry PI компьютеру.
Загрузка I2C модулей ядра на Raspberry PI устройстве.
Написание Python скрипта работающего на устройстве и опрашивающего датчик.
Смотрим, что у них получилось:
Судя по схеме, на Raspberry PI есть выходы UART, а это значит, что цифровые датчики EV3, тоже будет подключить не проблема.
Остается открытым вопрос - а LEGO моторами так управлять возможно? Единственное ограничение, которое пока видится, это питание моторов - Raspberry PI не отдает 9 вольт, а только 5.
Raspberry Pi - одноплатный компьютер, размером с кредитную карточку и стоимостью 25$. Несмотря на свой маленький размер, он обладает достаточно серьезными вычислительными ресурсами и поддерживает множество периферийного аппаратного обеспечения, благодаря наличию стандартных разъемов (USB, Ethernet и HDMI) и поддержке стандартных протоколов.
Поскольку это все-таки компьютер и на нем стоит полноценная операционная система семейства Linux, то к нему можно подключить NXT блок. А это, из-за крошечного размера компьютера, открывает новые горизонты перед людьми, увлекающихся LEGO-робототехникой - робот теперь сможет возить дополнительные вычислительные мощности с собой.