Как я могу управлять двигателями Lego?

20

Я хотел бы найти способ заставить мой Raspberry Pi управлять некоторыми моторами Lego, и в качестве бонуса я бы хотел использовать один или несколько оптических датчиков.

Обычно робототехника Lego использует контроллер «кирпича» Mindstorms - это кажется дорогим и в основном избыточным, если у вас есть Raspberry Pi для выдачи команд. Контроллер Mindstorms - это процессор и контроллер мотора, которые могут работать без подключения к ПК, но не имеют Ethernet и многих функций современных компьютеров.

Есть ли альтернативная платформа, которая позволит мне контролировать и получать данные от творений Lego?

К вашему сведению, это для простой машины оповещения об ошибках. Устройство будет следить за состоянием среды тестирования Jenkins и выполнять действия в зависимости от количества неудачных тестов. Raspberry Pi будет опрашивать веб-страницу, которая содержит несколько легко анализируемых XML. Если количество ошибок> 0, то мы бы хотели, чтобы Raspberry Pi начала управлять машиной.

Салим Фадли
источник
Эй, raspberrypi.stackexchange.com/users/390/salim-fadhley и raspberrypi.stackexchange.com/users/286/salim-fadhley обе ваши учетные записи? Отредактируйте свои профили на обоих (если возможно), прося слияния. Я уже пинговал члена команды сообщества за помощью.
Manishearth
Я хотел бы сделать это с более старыми моторами Lego Mindstorms, которые у меня есть, которые представляют собой простые мотор-редукторы постоянного тока. Положите + 5В на одну сторону, они поворачиваются в одну сторону, положите + 5В на другую сторону, они поворачиваются в другую сторону. Слишком высокий ток для прямого запуска RPi, поэтому мне все равно понадобятся некоторые интерфейсные схемы.

Ответы:

13

Стандартные датчики Lego Mindstorms являются аналоговыми (т. Е. Напряжением от 0 до 5 В) или цифровыми (I²C или RS-485) ( источник ).

Аналоговые датчики:

Я не думаю, что Raspberry Pi имеет разъединенный вывод в GPIO для АЦП (аналого-цифрового преобразователя), поэтому мы не можем взаимодействовать с аналоговыми датчиками (без дополнительного микроконтроллера).

Цифровые датчики:

Raspberry Pi имеет два контакта в GPIO для I²C, что означает, что если вы подключите GND, + V, SDA и SCL к своим датчикам, вы сможете использовать библиотеку I²C для общения с ними. Там же водитель здесь - если вы будете следовать инструкциям , вы должны иметь возможность посылать и принимать сигналы I²C так же легко , как это (говорит с TI TMP102):

raspberrypi bootc # echo tmp102 0x48 > /sys/class/i2c-adapter/i2c-0/new_device
raspberrypi bootc # sensors
tmp102-i2c-0-48
Adapter: bcm2708_i2c.0
temp1:        +21.6°C  (high = +160.0°C, hyst = +150.0°C)

Примеры:

На этой странице есть несколько статей о том, как подключить датчики и двигатели , например, как подключить контроллер кирпича Mindstorm к внешнему микроконтроллеру:

Mindstorm с микроконтроллером

Алекс Л
источник
1

Mindstorms - это единственный способ LEGO контролировать больше LEGO.

Нынешний NXT 2.0 довольно дорогой, но вы могли бы купить более старый комплект RCX (это только пример) за что-то вроде 1/3 цены NXT 2.0 в Интернете.

В противном случае вам придется искать другой комплект двигателя / датчика, который вы могли бы прикрепить к LEGO. Их не совсем легко найти, и они могут быть довольно дорогими; Возможно, стоит попытаться найти кого-то, кто знает о них больше, если вы пойдете по этому пути.

Если вы собираетесь получить более старый продукт LEGO от ebay, я бы предложил просмотреть brickpicker.com, чтобы получить снимок рынка. (Я обнаружил это месяц или два назад. Это отличное место, чтобы найти информацию о текущей рыночной стоимости наборов LEGO на ebay.)

ACarter
источник
2
Прости за это. Я должен был предложить, чтобы вы как-то включили RPi в свой ответ, потому что это сайт о RPi, и вопрос был о RPi. Если вы отредактируете свой вопрос, я смогу убрать мое понижение. Кстати, www1.cbsd.org/sites/teachers/hs/MHAYDEN/Science%20Fair/… Поищите «Ларссон» в этом PDF, и вы найдете реферат моего проекта на Международной научной ярмарке Intel несколько лет назад. Это был Lego Mindstorm, который научился побеждать в Tic Tac Toe.
Эндрю Ларссон
Не беспокойся, я не придерживался идеального отношения. Я знаю, что такое RPi, но ответ не должен иметь к нему непосредственного отношения - у нас есть множество вопросов по Linux / дистрибутиву, и я уверен, что вы можете запустить RCX с Pi.
ACarter
@ Андрей, ну, я удалил свой комментарий, чтобы мы могли начать все сначала. Это звучит действительно интересно. Я сделал скрипт на python, который может играть в крестики-нолики, но, делая так, чтобы он научился играть, ну, это звучит великолепно.
ACarter
Он использовал модифицированную / оптимизированную реализацию машины MENACE Дональда Мичи . Робот управлялся программой на C ++, которая передавала / извлекала команды / данные для / от двигателей / датчиков в / из NXT. Расчеты проводились на компьютере, но у меня была версия программы, которая работала на самом NXT. Тем не менее, он быстро исчерпал бы память, и массивы не поддерживаются стандартной прошивкой, поэтому мне пришлось заменить ее на модифицированную. Я думаю, что я мог бы просто использовать свой RPi для создания новой версии программы. Было бы весело!
Эндрю Ларссон
С тех пор как я получил свой NXT, я удивлялся, как вы можете управлять им, используя язык более высокого уровня на компьютере. Есть такие вещи, как leJOS и прочее, но что вы использовали?
ACarter
1

Существует альтернатива всему этому: подключите датчики и двигатели NXT к блоку управления NXT, а затем подключите его через Bluetooth к Pi, после чего вы можете отправлять команды непосредственно в NXT для управления его двигателями и считывания его датчиков. посмотрите комплект разработчика Mindstorms bluetooth, это позволяет NXT быть полностью беспроводным !!!!!

Майк
источник