Como posso controlar motores Lego?

20

Gostaria de encontrar uma maneira de fazer meu Raspberry Pi controlar alguns motores Lego e, como bônus, gostaria de usar um ou mais sensores ópticos.

Normalmente, a robótica Lego usa o controlador "brick" da Mindstorms - isso parece caro e redundante se você tiver um Raspberry Pi para emitir comandos. O controlador Mindstorms é um processador e um controlador de motor que pode funcionar sem conexão com um PC, mas não possui Ethernet e muitos recursos dos computadores modernos.

Existe alguma plataforma alternativa que me permita controlar e receber dados de criações de Lego?

Para sua informação, isto é para uma simples máquina de alerta de bugs. O dispositivo monitorará o status de uma estrutura de teste Jenkins e executará uma ação dependendo do número de casos de teste de unidade que estão falhando. O raspberry pi pesquisará uma página da web que contém alguns XML facilmente analisados. Se o número de bugs for> 0, gostaríamos de fazer o Raspberry Pi começar a dirigir a máquina.

Salim Fadhley
fonte
Ei, raspberrypi.stackexchange.com/users/390/salim-fadhley e raspberrypi.stackexchange.com/users/286/salim-fadhley são suas contas? Edite seus perfis nos dois (se possível), solicitando uma mesclagem. Já enviei um ping a um membro da equipe da comunidade para obter ajuda.
Manishearth
Eu gostaria de fazer isso com os motores Lego Mindstorms mais antigos que eu tenho, que são simples motores de engrenagem cc. Coloque + 5v de um lado, eles virem para um lado, coloque + 5v do outro lado, eles virem para o outro lado. Corrente muito alta para o RPi dirigir diretamente, então eu ainda precisaria de alguns circuitos de interface.

Respostas:

13

Os sensores Lego Mindstorms padrão são analógicos (ou seja, uma tensão entre 0-5 μV) ou digitais (I²C ou RS-485) ( fonte ).

Sensores analógicos:

Não acho que o Raspberry Pi tenha um pino rompido no GPIO para um ADC (conversor analógico para digital), por isso não podemos interagir com sensores analógicos (sem um microcontrolador extra).

Sensores digitais:

O Raspberry Pi possui dois pinos no GPIO para I²C, o que significa que se você conectar GND, + V, SDA e SCL aos seus sensores, poderá usar uma biblioteca I²C para conversar com eles. Há um driver aqui - se você seguir as instruções, poderá enviar e receber sinais de I²C tão facilmente quanto isso (conversando com uma 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)

Exemplos:

Existem alguns artigos sobre como conectar sensores e motores nesta página , como conectar um controlador de bloco Mindstorm a um microcontrolador externo:

Mindstorm com microcontrolador

Alex L
fonte
1

Mindstorms é a única maneira totalmente LEGO de controlar mais LEGO.

O atual NXT 2.0 é bastante caro, mas você pode adquirir um kit RCX mais antigo (que é apenas um exemplo) por algo como 1/3 do preço do NXT 2.0 na web.

Caso contrário, você precisará procurar um kit de motor / sensor diferente que possa ser conectado ao LEGO. Eles não são exatamente fáceis de encontrar e podem ser bastante caros; pode valer a pena tentar encontrar alguém que saiba mais sobre eles se você seguir esse caminho.

Se você quiser obter um produto LEGO mais antigo no ebay, sugiro navegar no brickpicker.com para obter uma visão geral do mercado. (Descobri isso há um ou dois meses. É um ótimo lugar para encontrar informações sobre o atual valor de mercado dos conjuntos LEGO no ebay.)

ACarter
fonte
2
Me desculpe por isso. Eu deveria ter sugerido que você incluísse o RPi de alguma forma na sua resposta, porque este é um site sobre o RPi, e a pergunta era sobre o RPi. Se você editar sua pergunta, eu posso remover meu voto negativo. A propósito, www1.cbsd.org/sites/teachers/hs/MHAYDEN/Science%20Fair/… Pesquise "Larsson" nesse PDF e você encontrará meu resumo do projeto da Feira Internacional de Ciências da Intel há alguns anos. Foi um Lego Mindstorm que aprendeu a vencer no Tic Tac Toe.
Andrew Larsson
Não se preocupe, também não tomei uma atitude perfeita. Eu sei o que é RPi, mas uma resposta não precisa se relacionar diretamente a ela - temos muitas perguntas específicas sobre linux / distro e tenho certeza que você pode executar o RCX com o Pi.
ACarter
@ Andrew wel Eu excluí meu comentário, para que possamos começar de novo. Isso parece realmente interessante. Eu criei um script python que pode jogar tic tac toe, mas torná-lo para que ele aprenda como jogá-lo, bem, isso parece brilhante.
ACarter
Ele usou uma implementação modificada / otimizada da máquina MENACE de Donald Michie . O robô foi controlado por um programa C ++ que pressionava / puxava comandos / dados para / dos motores / sensores para / do NXT. Os cálculos foram realizados no computador, mas eu tinha uma versão do programa que era executada no próprio NXT. Porém, a memória fica muito rápida e as matrizes não são suportadas pelo firmware padrão, então tive que substituí-lo por um modificado. Estou pensando em usar o meu RPi para criar uma nova versão do programa. Seria divertido!
Andrew Larsson
Desde que recebi o meu NXT, fico imaginando como você pode controlá-lo usando uma linguagem de nível superior em um computador. Existem coisas como leJOS e outras coisas, mas o que você usou?
ACarter
1

Existe uma alternativa para tudo isso, conecte os sensores e os motores NXT à unidade de controle NXT e, em seguida, emparelhe-o via Bluetooth com o Pi; você poderá enviar comandos diretamente ao NXT para controlar seus motores e ler seus sensores. confira o kit de desenvolvedor Bluetooth Mindstorms, isso permite que o NXT seja completamente sem fio !!!!!

Mike
fonte