Mindstorm

De Wiki d'activités IMA
Révision datée du 13 mars 2013 à 17:24 par Cmonteir (discussion | contributions) (13/03/2013)

Objectif:

Concevoir une brique materielle qui fera l'interface entre la brique Mindstorm et les capteurs et actionneurs divers

Développer une brique logicielle utilisable dans l'interface de programmation Labview livrée avec le MindStorm.

Schéma du montage :

Schema Montage.jpg

Avancement :

Apres de multiples test, il n'y a qu'un capteur qui s'avère communiquer en utilisant le protocole I2C. Les Ports du NXT ne sont donc pas parallellisés. Nous avons donc prévu de repartir de la brique RFID pour creer une nouvelle brique communiquant avec un Microcontroleur. Le microcontroleur se fera passer pour esclave du NXT en scrutant le bus et en décodant le message pour renvoyer au NXT l'information d'un des capteurs qui auront été branchés au µC

Nous avons pu récuperer des informations sur la maniere de creer un bloc labview ou mindstorm. Ce sera notre prochain objectif.

Sources: Brochage Port Mindstorm : https://sites.google.com/site/mccolganrobotics/

Brique RFID http://www.generationrobots.com/capteur-rfid-pour-robot-lego-mindstorms-nxt-codatex,fr,4,Capteur-RFID-NXT.cfm

27/02/2013

Test de l'accéléromètre par communication I2C avec l'arduino : résultats encourageants, l'arduino reçoit des valeurs correspondant à la position du capteur ainsi qu'à ses mouvements. Infos-serie-accel.png

Code utilisé : http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/Magneto/LSM303_Example.zip.

Nous sommes partis de cette exemple et l'avons adapté pour qu'il concorde avec les versions plus récentes de la bibliothèque utilisée. Brochage I2C de l'arduino trouvable à l'adresse : http://arduino.cc/en/Reference/Wire .

04/03/2013

Nous avons réussi à établir le schéma de la structure du câble I2C du Mindstorm :

Schéma-cable-i2c.jpg

06/03/2013

Partie Arduino :

Il a fallu réaliser un programme sur l'Arduino prenant en compte le protocole suivant :

La brique NXT envoie des messages en I2C ; l'un d'entre eux signifiera qu'il s'adresse à l'Arduino. Quand ce dernier lit ce message précis, il doit attendre que la brique NXT lui envoie un second message contenant un code désignant le capteur dont on désire avoir les informations (on pourra relier des capteurs analogiques sur les broches A0, A1, A2 et A3 ainsi que des capteurs digitaux sur les broches 2 à 12). Grâce à ce dernier code, l'Arduino saura laquelle de ses entrées elle doit lire, et pourra ainsi réceptionner les données générées par le capteur correspondant ; ainsi, les données du capteur pourront être envoyées par l'Arduino en I2C à la brique NXT.


07/03/2013

Partie Arduino:

L'Arduino doit être remplacé par un microcontrôleur ATTiny13. Pour créer le circuit, il faut créer un typon sous Altium. Toutefois, certains éléments, comme le microcontrôleur ou la connectique femelle du câble Mindstorm, ne sont pas reconnus par les librairies installées sur Altium : il faudra donc les créer nous-mêmes.


13/03/2013

Partie Hardware:

Nous avons enfin pu visualiser la trame I²C entre le NXT et un capteur.

Chronogrammes à venir...

Nous avons ainsi pu constater que contrairement à ce qui est indiqué, la plupart des capteurs ne communiquent pas du tout en I²C

Ex : Bouton Poussoir renvoie 0V ou 5V ou encore Capteur Ultrasonique qui renvoie une impulsion proportionnellement large à la distance de l'obstacle détecté.


Partie Software:

Installation des outils NXT Toolkit permettant le developpement d'une nouvelle brique Lego.

Débuts encourageant.

To Do :

Matériel :

Faire communiquer l'arduino avec la brique programmable du Mindstorm.

Remplacer l'Arduino par un microcontrolleur. Attiny13A

http://www.jedmicro.com.au/AVRISPmkII_UG.pdf

http://www.atmel.com/Images/doc2535.pdf


Logiciel :

Faire un bloc LabView permettant à l'utilisateur de programmer le robot Mindstorm en fonction des connexions de l'arduino. En Cours....