top of page

Août 2017 , par Techno_fabrik

Projet : Bateau commandé par smartphone

LE PROJET  

Remettre en forme un bateau cassé, comportant un moteur, un aileron et deux voiles.

Renouveler le bateau pour pouvoir le commander avec un smartphone via une application.

                      Matériel

1 bateau cassé

3 moteurs 

2 module H SN75441ONE

2 piles 9V

résistances

1 module Bluetooth HC-06

PRÉREQUIS :

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

RÉALISATION

ETAPE 1: Remettre en marche les moteurs

Les moteurs étaient rouillés et ils ne fonctionnaient plus, nous avons alors démonté les modules pour remplacer les moteurs défectueux par des nouveaux.

ETAPE 2 : Connecter les moteurs aux circuits intégré et à l'arduino

 Chaque module SN754410NE permet de commander la direction et la puissance de deux moteurs à courant continu. Il faut alimenter le module en +5V de l'arduino, relier les masses, brancher les deux moteurs et alimenter les moteurs avec la tension souhaitée ( pour nous +9V).

Ensuite il faut relier à l'arduino les deux sens des moteurs sur des pins digital, ainsi que la puissance du moteur (violet) sur un pin PWM. Grâce à ce pin, nous pourrons amener la tension idéale à chaque moteur.

Faire cette étape pour chaque moteur.

ETAPE 3 : Les fin de courses

Notre bateau est constitué d'un moteur permettant de tirer ou non les voiles. Ces moteurs ne savent pas quand s'arrêter, c'est pourquoi nous avons ajouté deux capteurs de fin de courses. Lorsque le moteurs tourne trop dans un sens, il touche le capteur qui fait contact ( comme un interrupteur que l'on actionne). Nous connectons le tout à une résistance, et une entrée analogique y est reliée.

Lorsque l'on fait contact, l'entrée analogique reçoit +5V (1023 en valeurs 8bits).

Nous savons alors qu'il faut arrêter le moteur.

On fait de même de l'autre côté.

Etape 4 : Mettre en forme dans le bateau

Nous avons isolé les piles et fait ressortir par le trou des piles, les deux interrupteurs ( l'un sert à allumer l'arduino, l'autre à alimenter les moteurs).

Enfin, nous avons fait les tests nécessaire pour connaitre la puissance à induire à chaque moteurs pour qu'ils fonctionnent correctement.

Programme (codé en C)

// 15/08/2017 - Programme C - Commandes basique de trois moteurs en commandes séparéments ( pour commander un bateau) par smartphone, via bluetooth - App inventor 2 utilisé - Carte Arduino ( UNO ) , module Bluetooth HC-06
// Ce programme a pour objectif de : 
//                                     -  Connecter les moteurs + module bluetooth au module arduino 
//                                     -  Envoyer un mot/phrase/nombre au smartphone
//                                     -  Recevoir une ou plusieurs commande via smartphone : ici le déplacement du bateau 
// Programme réalisé par Techno_Fabrik

//********************BIBLIOTHEQUES****************************
//********************DECLARATIONS****************************

int retour;
word wcase;
// mot recu par le bluetooth
int wpui_moteur;
const int aileron_D = 4;
// on  va relier les moteurs à un module H ( qui va permettre de commander deux moteurs, dans les deux sens, avec la puissance( vitesse; rapport cyclique) voulu)
 const int aileron_G =5;
 const int pui_aileron=3;
 
 const int pui_voile =6;
 const int voile_AV=7;
 const int voile_AR=8;
 const int pui_moteur=9;
 const int moteur_AV = 10;
 const int moteur_AR = 11;
 int voile_fin1;
 int voile_fin2;


 //*************************INITIALISATION **********************
void setup() {
  Serial.begin(9600);
// communiquer avec le module BT
pinMode(aileron_D, OUTPUT);
pinMode(aileron_G, OUTPUT);
pinMode(pui_aileron, OUTPUT);
pinMode(pui_voile, OUTPUT); 
pinMode(voile_AV,OUTPUT);
pinMode(voile_AR,OUTPUT);
pinMode(pui_moteur,OUTPUT);
pinMode(moteur_AV,OUTPUT);
pinMode(moteur_AR,OUTPUT);
pinMode(voile_fin1,INPUT);
pinMode(voile_fin2,INPUT);

}
// **************** FONCTIONS / PROCEDURES ***********************************
void recevoir()
// fonction permettant de recevoir l'information du smartphone
{
  word w;
  if (Serial.available()) 
  {
   
   
    w = Serial.read();
    if (w<10){wcase=w;}
    else wpui_moteur=w;
    Serial.flush();
// attend que l'information est recu avant de demander une nouvelle information
  }
}
//*************************************** BOUCLE ***************************
void loop() 
{
 
int POWER_MOTEUR,POWER_VOILE=170,POWER_AILERON=200;
  voile_fin1=analogRead(A0);
  voile_fin2=analogRead(A1);


   
  recevoir();
  POWER_MOTEUR=map(wpui_moteur,10,110,130,255);
 

  switch(wcase)
  {
    case 1:digitalWrite(moteur_AV,HIGH);digitalWrite(moteur_AR,LOW);analogWrite(pui_moteur,POWER_MOTEUR);digitalWrite(aileron_D,LOW);digitalWrite(aileron_G,LOW);break;
//faire avancer le bateau tout droit
    case 2:digitalWrite(moteur_AV,LOW);digitalWrite(moteur_AR,HIGH);analogWrite(pui_moteur,POWER_MOTEUR);digitalWrite(aileron_D,LOW);digitalWrite(aileron_G,LOW);break;//faire reculer le bateau tout droit 
    case 3:digitalWrite(moteur_AV,LOW);digitalWrite(moteur_AR,LOW);analogWrite(pui_moteur,POWER_MOTEUR);digitalWrite(aileron_D,LOW);digitalWrite(aileron_G,LOW);break;//arreter les moteurs
    case 5:digitalWrite(aileron_D,HIGH);digitalWrite(aileron_G,LOW);analogWrite(pui_aileron,POWER_AILERON);break; //tourner à droite
    case 4:digitalWrite(aileron_D,LOW);digitalWrite(aileron_G,HIGH);analogWrite(pui_aileron,POWER_AILERON);break; //tourner à gauche
    case 6:if(voile_fin2<50){digitalWrite(voile_AV,HIGH);digitalWrite(voile_AR,LOW);analogWrite(pui_voile,POWER_VOILE);}else{digitalWrite(voile_AV,LOW);digitalWrite(voile_AR,LOW);}break; //tirer les voiles 
    case 7:if(voile_fin1<50){digitalWrite(voile_AV,LOW);digitalWrite(voile_AR,HIGH);analogWrite(pui_voile,POWER_VOILE);}else{digitalWrite(voile_AV,LOW);digitalWrite(voile_AR,LOW);}break; //défaire les voiles
    case 8:if(voile_fin1<50){digitalWrite(voile_AV,LOW);digitalWrite(voile_AR,LOW);analogWrite(pui_voile,POWER_VOILE);}else{digitalWrite(voile_AV,LOW);digitalWrite(voile_AR,LOW);}break; //stopper le mouvement des voiles
  }


}
  

APPLICATION SMARTPHONE
VIDEO REALISATION
Adaptation arduino d'un bateau télécommandé
Lire la vidéo
bottom of page