Comment contrôler les moteurs Lego?

20

J'aimerais trouver un moyen de faire contrôler par mon Raspberry Pi certains moteurs Lego, et en bonus, j'aimerais utiliser un ou plusieurs capteurs optiques.

Normalement, la robotique Lego utilise le contrôleur "brick" de Mindstorms - cela semble être cher et surtout redondant si vous avez un Raspberry Pi pour émettre des commandes. Le contrôleur Mindstorms est un processeur et un contrôleur de moteur qui peuvent fonctionner sans connexion à un PC mais manquent d'Ethernet et de nombreuses fonctionnalités des ordinateurs modernes.

Existe-t-il une plateforme alternative qui me permettra de contrôler et de recevoir des données des créations Lego?

Pour info, c'est pour une simple machine d'alerte de bug. L'appareil surveillera l'état d'une infrastructure de test Jenkins et effectuera une action en fonction du nombre de cas de tests unitaires qui échouent. Le raspberry pi interrogera une page Web qui contient du XML facilement analysable. Si le nombre de bogues> 0, alors nous aimerions que le Raspberry Pi commence à conduire la machine.

Salim Fadhley
la source
Hé, sont raspberrypi.stackexchange.com/users/390/salim-fadhley et raspberrypi.stackexchange.com/users/286/salim-fadhley vos deux comptes? Modifiez vos profils sur les deux (si possible), en demandant une fusion. J'ai déjà envoyé une requête ping à un membre de l'équipe communautaire pour obtenir de l'aide.
Manishearth
J'aimerais le faire avec les anciens moteurs Lego Mindstorms que je possède, qui sont de simples moteurs à engrenages à courant continu. Mettez + 5v d'un côté, ils tournent dans un sens, mettez + 5v de l'autre côté, ils tournent dans l'autre sens. Un courant trop élevé pour que le RPi puisse piloter directement, cependant, j'ai donc encore besoin de circuits d'interface.

Réponses:

13

Les capteurs Lego Mindstorms standard sont analogiques (c'est-à-dire une tension entre 0-5? V) ou numériques (I²C ou RS-485) ( source ).

Capteurs analogiques:

Je ne pense pas que le Raspberry Pi ait une broche cassée dans le GPIO pour un ADC (convertisseur analogique-numérique), donc nous ne pouvons pas interfacer avec des capteurs analogiques (sans microcontrôleur supplémentaire).

Capteurs numériques:

Le Raspberry Pi possède deux broches dans le GPIO pour I²C, ce qui signifie que si vous connectez GND, + V, SDA et SCL à vos capteurs, vous devriez pouvoir utiliser une bibliothèque I²C pour leur parler. Il y a un pilote ici - si vous suivez les instructions, vous devriez pouvoir envoyer et recevoir des signaux I²C aussi facilement que cela (parler à un 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)

Exemples:

Il y a quelques articles sur la façon de connecter des capteurs et des moteurs sur cette page , tels que la connexion d'un contrôleur de briques Mindstorm à un microcontrôleur externe:

Mindstorm avec microcontrôleur

Alex L
la source
1

Mindstorms est le seul moyen totalement LEGO de contrôler plus de LEGO.

Le NXT 2.0 actuel est assez cher, mais vous pouvez vous procurer un ancien kit RCX (qui n'est qu'un exemple) pour quelque chose comme le 1/3 du NXT 2.0 sur le Web.

Sinon, vous devrez chercher un autre kit moteur / capteur que vous pourrez peut-être attacher à LEGO. Ceux-ci ne sont pas exactement faciles à trouver et peuvent être assez chers; il vaut peut-être la peine d'essayer de trouver quelqu'un qui en sait plus sur eux si vous suivez cette voie.

Si vous souhaitez retirer un ancien produit LEGO d'Ebay, je vous suggère de parcourir brickpicker.com pour obtenir un instantané du marché. (Je l'ai découvert il y a un mois ou deux. C'est un excellent endroit pour trouver des informations sur la valeur marchande actuelle des ensembles LEGO sur ebay.)

ACarter
la source
2
Désolé pour ça. J'aurais dû suggérer que vous incluiez le RPi dans votre réponse, car il s'agit d'un site sur le RPi, et la question portait sur le RPi. Si vous modifiez votre question, je peux supprimer mon downvote. Soit dit en passant, www1.cbsd.org/sites/teachers/hs/MHAYDEN/Science%20Fair/… Recherchez «Larsson» dans ce PDF et vous trouverez mon résumé de projet de l'Intel International Science Fair il y a quelques années. C'est un Lego Mindstorm qui a appris à gagner au Tic Tac Toe.
Andrew Larsson
Pas de soucis, je n'ai pas non plus pris une attitude parfaite. Je connais la chose RPi, mais une réponse n'a pas à y être directement liée - nous avons beaucoup de questions spécifiques à linux / distribution, et je suis sûr que vous pouvez exécuter RCX avec le Pi.
ACarter
@Andrew wel J'ai supprimé mon commentaire, afin que nous puissions commencer un nouveau. Cela semble vraiment intéressant. J'ai fait un script python qui peut jouer à tic tac toe, mais en le faisant pour qu'il apprenne à le jouer, eh bien, ça a l'air génial.
ACarter
Il a utilisé une implémentation modifiée / optimisée de la machine MENACE de Donald Michie . Le robot était contrôlé par un programme C ++ qui poussait / tirait les commandes / données pour / depuis les moteurs / capteurs vers / depuis le NXT. Les calculs ont été effectués sur l'ordinateur, mais j'avais une version du programme qui s'exécutait sur le NXT lui-même. Il manquerait de mémoire assez rapidement, cependant, et les tableaux ne sont pas pris en charge par le micrologiciel standard, j'ai donc dû le remplacer par un micrologiciel modifié. Je pense que je pourrais juste utiliser mon RPi pour créer une nouvelle version du programme. Ce serait amusant!
Andrew Larsson
Depuis que j'ai reçu mon NXT, je me suis demandé comment le contrôler en utilisant un langage de niveau supérieur sur un ordinateur. Il y a des choses comme leJOS et d'autres choses, mais qu'avez-vous utilisé?
ACarter
1

Il existe une alternative à tout cela, connectez les capteurs et moteurs NXT à l'unité de contrôle NXT, puis associez-le via Bluetooth avec le Pi, vous pouvez ensuite envoyer des commandes directement au NXT pour contrôler ses moteurs et lire ses capteurs. consultez le kit de développement Bluetooth Mindstorms, cela permet au NXT d'être complètement sans fil !!!!!

Mike
la source