Introduction: Boat Controlled by Smartphone ( TechnoFabrique)

About: Tech, DIY and Arduino Realisation If you liked it , come check our sites Website :http://technofabrique.wixsite.com/techno-fabrik Google +:https://plus.google.com/109229784299061111421

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.

Step 1: Material You Need

1 RC Boat

3 motors

2 CI H SN75441ONE (H-bridge)

2 alimentation: 9V

résistances

1 module Bluetooth HC-06

Step 2: SETUP

(FRENCH)

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.

Step 3: The Code

// 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; //stop } }

Step 4: Application on Smartphone (APP INVENTOR 2)

Step 5: VIDEO

Bluetooth Challenge

Participated in the
Bluetooth Challenge