top of page

Février 2017 , par Techno_fabrik

Difficulté :

Durée :

Projet : Little_robot commandé par smartphone

LE PROJET  

Piloter un petit robot composé de trois Servo-Moteurs .

Le smartphone commandera le robot avec une application créée sur app inventor 2.

On commandera les trois rotations une par une et une commande vocale fera dire oui /non au robot.

MATÉRIEL :

1 module ARDUINO UNO 

3 Servo-Moteurs

1 module Bluetooth (HC-06)

1 batterie 12V

PRÉREQUIS :

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

RÉALISATION

ETAPE 1 : Servo-Moteurs

 Brancher en série les masse et Vin des moteurs, et connecter les pins de commandes au pin  2,3,4. Le pin de commande permet de fixer l'angle au servo.

ETAPE 2 : Module Bluetooth

     On connecte  Tx <--> Rx entre le module et la carte, puis le Vcc au +5V et le GND à la masse.

Cela va nous permettre de communiquer avec le télephone.

 

Programme (codé en C)

// 24/02/2017 - Programme C - Commande de plusieurs servo moteurs dynamiques par smartphone, via bluetooth - App inventor 2 utilisé - Carte Arduino ( ici UNO) , 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 = 2; // variable commande du servo moteur ( troisième fil ( orange, jaune ))
Servo moteur; //on définit notre servomoteur
int cmd1 = 3;
Servo moteur1;
int cmd2 = 4;
Servo moteur2;
int angle;
int angle1;
int angle2;

word w; // variable envoyé du smartphone au module Arduino
//int angle; // angle de rotation ( 0 a 180)
//********************SETUP***********************************
void setup() {
  moteur.attach(cmd);
// on relie l'objet au pin de commande
  moteur1.attach(cmd1);
  moteur2.attach(cmd2);
  moteur.write(85);
  moteur1.write(20);
  moteur2.write(10);

  Serial.begin(9600); // permettra de communiquer au module Bluetooth
}
//********************SETUP***********************************
void loop() {
  recevoir();    
// on va recevoir une information du smartphone , la variable w
    for (int i=0;i<35;i++)
    {
      if ( w == i)
      {
        angle = i;
      }
    }
    for (int i=35;i<=49;i++)
    {
      if ( w == i)
      {
        angle1 = i;
      }
    }
    for (int i=50;i<=82;i++)
    {
      if ( w == i)
      {
        angle2 = i;
      }
    }
       
    if (w==90)
    {
    
      moteur.write(20);delay(200);
      moteur.write(80);delay(200);
      moteur.write(20);delay(200);
      moteur.write(80);delay(200);
      delay(4000);
    }
    if(w==95)
    {
     
      moteur2.write(0);delay(200);
      moteur2.write(30);delay(200);
      moteur2.write(0);delay(200);
      moteur2.write(30);delay(200);
      delay(4000);
    }
      for(int i=0;i<35;i++)
//  MOTEUR ROTATION 0 a 170 degre
      {
        int j=0;
        j=i*5;
          
        if (angle== i)
        {
          moteur.write(j);delay(300);
        }
      }
      for(int i=35;i<50;i++)
//  MOTEUR ROTATION 15 a 85 degre
      {
        int j=0;
        j=(i-32)*5;
          
        if (angle1== i)
        {
          moteur1.write(j);delay(300);
        }
      }

   for(int n=50;n<83;n++) //  MOTEUR2 ROTATION  0a 160degre
      {
        int o=0;
        o=(n-50)*5;
        if (angle2== n)
        {
         moteur2.write(o);delay(300);
        }
      }
  
}
//****************************FONCTIONS************************************
void recevoir() {
// fonction permettant de recevoir l'information du smartphone
if (Serial.available()) {

 
w = Serial.read();
delay(300);
Serial.flush();   
}}
 

APPLICATION SMARTPHONE
VIDEO REALISATION
Servo Robot
Lire la vidéo
bottom of page