Archives par étiquette : joystick

Mit inventor avec Arduino

.

Sommaire :

 

.

separateur-redohm-001

Communication en bluetooth d’une tablette vers Arduino
avec Mit Inventor

Mise à jour le 08/10/2022.

Dans ce tuto ,nous allons travailler sur la communication entre une tablette sous Android et une carte Arduino équipée d’une carte bluetooth de type HC06

Nous allons donc étudier la partie interface sous Mit App Inventor pour la tablette et le traitement des informations avec l’ide Arduino

.

télécharger les fichiers . Retour au sommaire

.

separateur-redohm-001

Mit Inventor création d’un controlPad

.

Mise à jour 11/10/2022. 

Cette vidéo est un tutoriel pratique détaillant la création d’une interface de contrôle pour piloter un robot mobile via une carte Arduino, utilisable sur tablette ou smartphone. Elle débute par une présentation générale du projet , suivie d’une session sur la réalisation de l’interface utilisateur avec le Designer dans MIT App Inventor . La majeure partie de la vidéo se concentre sur la programmation des blocs dans MIT App Inventor, illustrant comment les différents éléments de l’interface peuvent être programmés pour contrôler le robot. Le tutoriel se conclut avec un essai pratique du système et une conclusion , offrant une démonstration concrète de l’application en action et résumant les points clés appris.

 

télécharger les fichiers   Retour au sommaire

.

separateur-redohm-001

2023-01-08- Mit inventor contrôler votre Smartphone avec le capteur de luminosité

Dans ce tutoriel, nous allons étudier sur Mit Inventor comment contrôler votre smartphone avec le capteur de luminosité ou bien retranscrire ces informations vers votre carte Arduino ou tout autre carte microcontrôleur. Avec ce type de capteur, nous pouvons créer un luxmètre ou d’autres applications qui réagissent avec la lumière. On peut bien évidemment s’en servir aussi comme capteur de proximité

.

télécharger les fichiers   Retour au sommaire

.

separateur-redohm-001

2022-11-05- Mit inventor creation d’un joystick analogique pour
Arduino – 1/5

Dans ce tutoriel nous allons étudier sur Mit Inventor comment créer un joystick analogique sur votre tablette ou sur un smartphone afin de pouvoir piloter en Bluetooth une unité mobile avec la carte microcontrôleur Arduino. Vous aurez donc un ensemble de 5 tutoriels traitant de ce type de pilotage.

.

télécharger les fichiers  Retour au sommaire


.

separateur-redohm-001

2023-01-19- Mit inventor un joystick analogique pour Arduino decryptage de la chaine de positionnnement 2/5

 

Dans ce tutoriel, nous allons étudier comment décrypter une chaîne de caractères de type String envoyé par Bluetooth depuis votre smartphone ou votre tablette vers arduino. Cette chaîne sera donc décryptée par arduino pour extraire les valeurs x et y de déplacement du joystick virtuel de votre application nous permettant de piloter un robot mobile , une plateforme ou tout autre objet qui peut être piloté . Cette vidéo nous permet de mettre en lumière les fonctions ou les méthodes à utiliser comme indexOf , concat ,substring.

.

Retour au sommaire

.

separateur-redohm-001

2022-09-16- Mit inventor le changement de page

Vous trouverez dans cette vidéo les informations nécessaires pour la création de plusieurs pages sur Mit Inventor et surtout la possibilité de naviguer entre elle.

Mit App Inventor est un soft pour la création d’applications pour toutes les plateformes basées sur Microsoft , qui évite le langage complexe de codage en bloc de construction visuelle par glisser-déposer.

.

Retour au sommaire

 

L3-37 : Tutoriel pour la version Dynamixel

.

Sommaire :

 

 

.

separateur-redohm-001

 Matériel utile pour suivre les tutoriels

.

ArbotiX-M Robocontroller 

Spécifications techniques du Robocontroller ArbotiX-M  :

  • Microcontrôleur AVR 16 MHz (ATMEGA644p).
  • 2 ports série, 1 dédié aux servo-contrôleurs Dynamixel, l’autre au module radio Xbee.
  • 32 E / S, dont 8 peuvent fonctionner comme entrées analogiques.
  • Embases servo 3 broches (Gnd, Vcc, signal), sur les 8 entrées analogiques et sur les 8 E / S numériques.
  • Deux pilotes de moteur 1 A avec en-têtes moteur / encodeur combinés.
  • Module radio Xbee vendu séparément. Une installation typique nécessite 2 modules radio Xbee et un module explorateur Xbee pour vous permettre de contrôler votre robot à distance depuis votre ordinateur.
  • Ce contrôleur nécessite l’utilisation d’un câble FTDI ou ISP. Nous recommandons la carte de déploiement FTDI 3,3 V avec connecteur à 6 broches.
  • Avec des dimensions de 7,11 × 7,11 cm (2,8 « × 2,8 »), ce contrôleur a été conçu pour être utilisé avec les servomoteurs Dynamixel .

Ressources pour le Robocontroller ArbotiX-M

Le Robocontroller ArbotiX-M peut être utilisé avec l’environnement de développement Arduino. Un certain nombre de bibliothèques permettant de contrôler les servomoteurs AX-12 sont disponibles dans la liste de téléchargement ci-dessous.

separateur-redohm-001

Module joystick Gravity DFR0061

Module joystick Gravity DFRobot basé sur 2 potentiomètres (axes X et Y) et d’un bouton-poussoir pour des applications spécifiques. Il délivre deux sorties analogiques en fonction de la position des deux potentiomètres et une sortie logique en fonction du bouton-poussoir. Il est livré avec 3 cordons.

  • Alimentation : 5 Vcc
  • Sorties : 2 analogiques et 1 digitale
  • Dimensions : 37 x 32 x 25 mm

Référence DFRobot: DFR0061

Remarque: la nouvelle version du mappage des broches du port du capteur analogique a été modifiée comme ci-dessous : 

 

Mappage du Joystik

Mappage du Joystik

.

Retour en haut de page

 

.

separateur-redohm-001

 Etude des deplacements de la tête avec les servo Dynamixel

.

Materiel utile pour le tuto : 

  • Un module ArbotiX-M Robocontroller

.

Nous allons vous initiez à lire les registres se trouvant à l’intérieur du servomoteur qui nous permet de définir le déplacement de notre servo , ceci afin de déterminer la butée basse et haute que l’on devra appliquer par logiciel pour les mouvements de la tête.

Pour pouvoir lire ses registres, il faut déverrouiller le couple afin pouvoir déplacer la base de la tête de L3 -37 manuellement Avant de se lancer dans l’explication du programme, nous allons vous faire une démonstration du déverrouillage et de la lecture des registres de déplacement par le biai du tuto ci-dessous .

.

.

Programme :

//
//
//*************************************************************
//* 
//* IDE Arduino 1.0.6
//*
//* Mesure de deplacement des moteurs dynamixel
//*  et verouillage du couple 
//*       
//* H-Mazelin
//* 29/10/2020
//*
//*************************************************************



//librairie qui permet d'implémentez le code de communication série
//de bas niveau pour communiquer avec le bus Bioloid.  
#include <ax12.h>

//Cette librairies vous permet interagir avec les servos AX et MX  
#include <BioloidController.h>


// definition de la vitesse de transmission 
// le debit en bauds détermine la vitesse de communication serie entre 
// le controleur et le servo Dynamixel
BioloidController bioloid = BioloidController(1000000);


 
/*
 *  Un programme Arduino doit impérativement contenir cette fonction 
 *  Elle ne sera exécuter une seule fois au démarrage du microcontroleur
 *  Elle sert à configurer globalement les entrées sorties
 *  
 */
 
void setup ()

{

 //ouvre le port série et fixe le debit de communication à 9600 bauds
  Serial.begin(9600);
  // on attent que le port de communication soit pret
  delay(5000);
  // Information a l'operateur de l'ouverture du port de communication 
  // sur le moniteur serie 
  Serial.println("========================================");
  Serial.println("Communication etablie");
  Serial.println("========================================");   

  // Lecture de la temperature du servo de droite actuel
  int temperature_d =ax12GetRegister(2,43,1);
  // Lecture de la temperature du servo de gauche actuel
  int temperature_g =ax12GetRegister(3,43,1);
  
  
  // Affichage de la lecture des registres contenant la temperature 
  Serial.print("Temperature du servo de droite : ");
   Serial.print(temperature_d);Serial.println(" Degres");    
  Serial.print("Temperature du servo de gauche : ");
   Serial.print(temperature_g);Serial.println(" Degres"); 
  Serial.print(" "); 
   Serial.println("Demarrage *********************");
  
// Procedure d'ecriture dans le registre 24 pour desactiver le couple 
//
// modification de la valeur 1 par la valeur 0
// 1 parametre : numero d'identifiant du servo
// 2 parametre : numero de registre a modifier 
// 3 parametre : Active ou desactive le couple 

 ax12SetRegister(2,24,0); 
  ax12SetRegister(3,24,0);
 Serial.println("Couple desactive sur le moteur de droite et de gauche");  
 
  
}

/*
 *Le programme principal s’exécute par une boucle infinie appelée Loop () 
 * 
 */
void loop()

{ 

// Procedure de lecture pour la position du servo dans le registre 36
//
//
// 1 parametre : numero d'identifiant du servo
// 2 parametre : numero de registre a lire 
// 3 parametre : nombre d'octet a lire 

 int deplacement_d =ax12GetRegister(2,36,2);
  int deplacement_g =ax12GetRegister(3,36,2);
  
// Affichage de la lecture des registres contenant le deplacement 
 Serial.print("Deplacement du moteur de gauche : ");
  Serial.print(deplacement_g);Serial.print(" en points      "); 
   Serial.print("Deplacement du moteur de droite : ");
    Serial.print(deplacement_d);Serial.println(" en points      ");  
}   

.

Retour en haut de page

.

.

.

separateur-redohm-001

 Pilotage d’un Dynamixel par le biais d’un potentiometre 

.

Ce tutoriel a pour but de vous initier à la programmation des servomoteurs Dynamixel . Nous avons pris comme base la tête de L3 -37 qui est une réalisation de RedOhm pour vous expliquer l’étalonnage et le fonctionnement pour piloter celle-ci avec un joystick. Le tuto s’articule en 4 phases :
la première étant la présentation de la base de la tête, le câblage d’un joystick et la carte contrôleur, vous avez aussi une explication sur le fonctionnement de la manette de jeu, et enfin une explication détaillée du programme.

.

.

Materiel utile pour le tuto : 

  • Un module ArbotiX-M Robocontroller
  • Module joystick Gravity DFR0061

.

//
//
//*************************************************************
//* 
//* IDE Arduino 1.0.6
//*
//* Exemple de pilotage d'un servo Dynamixel
//*  avec un joystick pour la tete de L3-37
//*       
//* H-Mazelin
//* 16/11/2020
//*
//*************************************************************



//librairie qui permet d'implémenter le code de communication série
//de bas niveau pour communiquer avec le bus Bioloid.  
#include <ax12.h>

//Cette librairie vous permet interagir avec les servos AX et MX  
#include <BioloidController.h>

// definition de la vitesse de transmission 
// le debit en bauds détermine la vitesse de communication serie entre 
// le controleur et le servo Dynamixel
BioloidController bioloid = BioloidController(1000000);

// broche sur lequel est branche le potentiometre
const int broche1 = A1;
const int broche7 = A7;

// variable contenant la valeur du potentiometre 
int valeurPotar1 = 0;
 int valeurPotar7 = 0;   
// valeur du potentiometre remis a l'echelle
int valeurPotar7_re = 0;
 int valeurPotar1_re= 0;
 
 
/*
 *  Un programme Arduino doit impérativement contenir cette fonction 
 *  Elle ne sera exécutee une seule fois au démarrage du microcontroleur
 *  Elle sert à configurer globalement les entrées sorties
 *  
 */
 
void setup ()

{

//ouvre le port série et fixe le debit de communication à 9600 bauds
  Serial.begin(9600);
 // on attent que le port de communication soit pret
  delay(5000);
// Information a l'operateur de l'ouverture du port de communication 
// sur le moniteur serie 
  Serial.println("========================================");
  Serial.println("Communication etablie");
  Serial.println("========================================");   

// Lecture de la temperature du servo de droite actuel
  int temperature_d =ax12GetRegister(2,43,1);
// Lecture de la temperature du servo de gauche actuel
  int temperature_g =ax12GetRegister(3,43,1);
  
  
// Affichage de la lecture des registres contenant la temperature 
Serial.print("Temperature du servo de droite : ");
 Serial.print(temperature_d);Serial.println(" Degres");    
  Serial.print("Temperature du servo de gauche : ");
   Serial.print(temperature_g);Serial.println(" Degres"); 
  Serial.print(" "); 
   Serial.println("Demarrage *********************"); 
}

/*
 *Le programme principal s’exécute par une boucle infinie appelée Loop () 
 * 
 */
void loop()

{ 
// lecture de la valeur du potentiomètre (valeur entre 0 et 1023)  
  valeurPotar1=analogRead( broche1);
   valeurPotar7=analogRead( broche7);
// mise a l'échelle (valeur entre 0 et 300
// Ré-étalonne un nombre d'une fourchette de valeur vers une autre fourchette.
// Ainsi, une valeur basse source sera étalonnée en une valeur basse de destination   
  valeurPotar7_re = map( valeurPotar7,0,1023,0,350);
   valeurPotar1_re = map( valeurPotar1,0,1023,0,350);


// Affichage de la valeur des potentiometre  
Serial.print("A7 - deplacement en x du potentiometre x -> ");
 Serial.println(valeurPotar7);
  Serial.print("A1 - deplacement en y du potentiometre x -> ");
   Serial.println(valeurPotar1);
// Affichage de la valeur re-etalonne des potentiometre  
Serial.print("A7 - Re-etalonne le deplacement en x du potentiometre -> ");
 Serial.println(valeurPotar7_re);
  Serial.print("A7 - Re-etalonne le deplacement en y du potentiometre -> ");
   Serial.println(valeurPotar1_re);
      


// envoie l'information de deplacement au servomoteur dynamixel340
   SetPosition(2,340+valeurPotar7_re);
// envoie l'information de deplacement au servomoteur dynamixel
// moteur de gauche   
   SetPosition(3,340+valeurPotar1_re); 


// Affichage du code pour le moteur x avec le calcul
Serial.print("Valeur de la position du moteur x => SetPosition(3,340+");
 Serial.print(valeurPotar7_re);
  Serial.println(");");
   Serial.print("Valeur du deplacement de moteur x => ");
    Serial.println(340 + valeurPotar7_re) ;
   
Serial.println("");
 Serial.print("Valeur de la position du moteur y => SetPosition(3,340+");
  Serial.print(valeurPotar1_re);
   Serial.println(");");
    Serial.print("Valeur du deplacement de moteur y => ");
     Serial.println(340 + valeurPotar1_re) ;  
  
   Serial.println("------------------");
   delay (100);
}   

.

Retour en haut de page

.

Le langage pour Processing , la communication série

Mise à jour le 10/09/2017 :  La liaison série est un protocole de communication indispensable entre l’ordinateur et la carte Arduino ( ou bien un autre type de carte ) , via le câble de communication USB.Dans cet article , nous vous donnons quelques exemples avec des tutoriels  pour vous familiariser à ce genre de communication série.

 

Sommaire : 

.

– La communication série –
Lecture d’un compteur dans la carte Arduino
sur Processing ( AP001-P)

Programme pour Arduino ( AP001-A)

.

Retour au sommaire

.

Programme pour Processing ( AP001-P )

Retour au sommaire .

 

.

– La communication série –

Lecture de 3 valeurs sur la carte Arduino
via le port série et animation
d’un rectangle sur l’écran

Tutoriel : Animation d’une forme sous Processing avec utilisation de la communication série

 

Pour plus d’information sur la carte Arduino Mega => oui j’en besoin 

Programme pour Arduino ( Version 1.8.3 )

Retour au sommaire .

Programme pour Processing ( Version 3.3.4 )

 

Code programme : AP002-A

Nom du programme : communication_processing_joy_ky023

Retour au sommaire .