NXShield = Arduino + Lego NXT

Le NXShield est une carte d’interface permettant d’utiliser des composants Lego Mindstorm (version NXT 2) : capteurs, moteurs, …

Le NXShield permet de brancher :

Attention : le NXShield est alimenté de manière externe. Vous aurez besoin d’un support de 6 piles afin de l’alimenter.

Le NXShield utilise une bibliothèque éponyme : NXShield.

Consulter l’article installer une bibliothèque

Câblage

Composants LEGO

Il suffit d’utiliser un câble Lego :

  • les moteurs sur les ports M1 et M2
  • les capteurs sur les ports BAS1, BAS2, BBS1 et BBS2.

Servomoteurs

En utilisant le câble du servomoteur, sur un des ports prévu à cet effet (ports numériques 3, 5, 6, 9, 10 et 11)

Alimentation

Sur le bornier Power, relier un boitier de 6 piles (ou accumulateurs).

Programmation

Intégration de la bibliothèque :

#include <NXShield.h>

Déclaration de l’objet NXShield :

NXShield nxshield;

Initialisation de l’objet NXShield :

setup() {
  // ...
  nxshield.init( SH_HardwareI2C );
  // ...
}

Mise en attente du NXShield :

par exemple, jusqu’à l’appui sur le bouton « GO », mais il est possible d’employer les autres boutons (voir méthode .waitForButtonPress)

nxshield.waitForButtonPress(BTN_GO);

Utilisation des servomoteurs Mindstorm :

Initialisation de tous les moteurs (dans la fonction setup() )
nxshield.bank_a.motorReset();
nxshield.bank_b.motorReset();
Faire tourner un moteur d’un nombre de tours prédéfini :
nxshield.bank_a.motorRunRotations(SH_Motor_1, 
                     SH_Direction_Forward, 
                     SH_Speed_Medium,
                     rotations, 
                     SH_Completion_Wait_For,
                     SH_Next_Action_BrakeHold);

Plus de détails : méthode .motorRunRotations

 

Utilisation des capteurs HiTechnic (Accéléromètre, Color,  EOPD, …) :

Pour ces capteurs, il faut utiliser la bibliothèque NXShield Lego Arduino Drivers.

Accéléromètre HiTechnic

Après avoir déclaré et initialisé le NXShiled…

Déclaration de l’objet « capteur accéléromètre »:
ClassHTAC HTAcc;
Initialisation du capteur :
HTAcc.init( &nxshield, SH_BAS1 );
Lecture d’un axe du capteur :
int HT_Acc_X = HTAcc.ReadAxis(AXIS_X);

 

 

 

Pour en savoir plus …

Documents à télécharger

  • Icone_PDF [media-downloader media_id= »488″ texts= »NXShield-User-Guide.pdf »]
  • Icone_PDF [media-downloader media_id= »487″ texts= »NXShield-Library-Tutorial.pdf »]
  • Icone_PDF [media-downloader media_id= »486″ texts= »NXShield-Advanced-Development-Guide.pdf »]

Vous aimerez aussi...

2 réponses

  1. Maël dit :

    Bonjour, je souhaite utiliser le NXShield avec un arduino Uno. Faut il alimenter uniquement le NXShield qui alimentera l’arduino branché dessus, ou faut il alimenter également l’arduino? Le but de ce montage est de contrôler et alimenter des moteurs NXT qui serviront à la propulsion d’une voiture autoguidée. Merci de votre réponse.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *