top of page

Février 2017 , par Techno_fabrik

Difficulté :

Durée :

Commander un Servo-moteur avec un smartphone par bluetooth  avec  ARDUINO

LE PROJET  

Commander l'angle de rotation d'un Servo-moteur par bluetooth via smartphone avec un module ARDUINO UNO. Nous voulons pouvoir comander l'angle de rotation d'un servo-moteur ( 0 à 180°), en utilisant notre smartphone. Il faudra réaliser une application sur APP INVENTOR 2, permettant, avec notre smartphone, de nous connecter au module bluetooth et de contrôler le moteur.

MATÉRIEL :

1 module ARDUINO UNO ( un autre module est bon )

1 servo-moteur ( ici, fonctionnant à 5V)

1 module Bluetooth

1 smartphone, avec l'application 'MIT AI2 Companion'

PRÉREQUIS :

Connaissance des risques électriques. Montage réalisable par tous. Notion d'électronique et bases en programmation.

RÉALISATION

ETAPE 1 :

Se munir du matériel adéquat et vérifier le bon fonctionnement de celui-ci.

ETAPE 2 :

Relier le module Bluetooth : VCC au pin '5V', GND au GND, TXD au pin '0(RX)' et RXD au pin'1(TX)'.

ETAPE 3:

Relier le servo moteur à la masse et au Vin ( attention seulement si connecté en usb ou 5V). Le fil de commande ira au pin '8'.

ETAPE 4:

Réaliser sur APP INVENTOR 2 l'application ci-contre, composé de LABELS, BOUTONS et d'une horloge et d'une réception bluetooth.

ETAPE 5 : 

Construire les blocs comme ci-après.

ETAPE 6: 

Se connecter avec le smartphone.

ETAPE 7:

Ecrire le code et téléverser sur la carte.

 

PROGRAMME ( codé en C) :

// 25/01/2017 - Programme C - Commande d'un servo moteur par smartphone, via bluetooth - App inventor 2 utilisé - Carte Arduino ( ici MEGA ) , module Bluetooth
// Ce programme a pour objectif de : 
//                                     -  Connecter le Servo moteur + module bluetooth au module arduino 
//                                     -  Envoyer un mot/phrase/nombre au smartphone
//                                     -  Recevoir une commande via smartphone 
// Programme réalisé par Techno_Fabrik


//********************BIBLIOTHEQUES****************************


#include <Servo.h> // bibliothèque permettant d'utiliser les commandes pour servomoteurs facilement

//********************DECLARATIONS****************************


word rep;   // mot envoyé du module Arduino au smartphone
int cmd = 8; // variable commande du servo moteur ( troisième fil ( orange, jaune ))
Servo moteur1; //on définit notre servomoteur
word w; // variable envoyé du smartphone au module Arduino
int angle; // angle de rotation ( 0 a 180)

//********************SETUP***********************************


void setup() {
  moteur1.attach(cmd);
// on relie l'objet au pin de commande
  Serial.begin(9600); // permettra de communiquer au module Bluetooth
}

//********************BOUCLE**********************************


void loop() {
  recevoir();    
// on va recevoir une information du smartphone , la variable w
 
    for (int i=1;i<11;i++)
    {
      if ( w == i)
      {
        angle = i;
      
      }
    }
    switch ( angle )
// la variable w recu est un chiffre entre 1 et 8, codé par APP INVENTOR 2 , nous voulons réaliser 180° au bout des 9 valeurs 
    {                                   // rep est envoyé via void envoyer() sur l'écran du smartphone, c'est un retour du bon fonctionnement, en plus de la rotation 
    case 1 : moteur1.write(20); delay (1000); rep = 0; envoyer(); break;
    case 2 : moteur1.write(45); delay (1000); rep = 25; envoyer(); break;
    case 3 : moteur1.write(70); delay (1000);rep = 50; envoyer(); break;
    case 4 : moteur1.write(95); delay (1000);rep = 75; envoyer(); break;
    case 5 : moteur1.write(110); delay (1000);rep = 100; envoyer(); break;
    case 6 : moteur1.write(132); delay (1000);rep = 125; envoyer(); break;
    case 7 : moteur1.write(155); delay (1000);rep = 150; envoyer(); break;
    case 8 : moteur1.write(180); delay (1000);rep = 180; envoyer(); break;
    default : ;
    }
                    
}

//****************************FONCTIONS************************************


void recevoir() { // fonction permettant de recevoir l'information du smartphone
if (Serial.available()) {
w = Serial.read();


Serial.flush();
  }
}

// fonction permettant d'emettre l'information au smartphone
  void envoyer(){

  Serial.print(rep);
  delay(1000);
}

 

VIDEO REALISATION

Commande Servo-moteur par Bluetooth avec SMARTPHONE

TechnoFABRIK
Commande Servo-moteur par Bluetooth avec SMARTPHONE
Commande Servo-moteur par Bluetooth avec SMARTPHONE

Commande Servo-moteur par Bluetooth avec SMARTPHONE

00:56
Lire la vidéo
bottom of page