2018 : 3em séquence


Mise en situation
Le travail de cette séquence se déroule en groupe de cinq.
1er STI2D1 : 6 équipes
1er STI2D2 : 5 équipes
1er STI2D3 : 6 équipes
Début 17-24/05/2018, 6h
|
Référentiel
CO2.3 Identifier le flux et la forme de l’énergie
CO3.1 Décoder le cahier des charges
CO4.1 Identifier et caractériser les fonctions et les constituants d’un système (E/S)
CO4.2 Identifier et caractériser l’agencement matériel et logiciel d’un système
|
Nous avons vu dans les séquences précédentes comment faire tourner les moteurs, comment réaliser une application sur le smartphone et comment communiquer entre l'application smartphone et l'arduino.
Nous allons maintenant mixer nos connaissances pour arriver à commander les déplacements du robot grâce au téléphone.
Application smartphone
Nous allons faire simple :
- Un bouton pour se connecter au HC-05 de la carte arduino
- Un bouton Avancer : envoi d'un caractère '1'
- Un bouton Tourner à droite : envoi d'un caractère '2'
- Un bouton Tourner à gauche : envoi d'un caractère '3'
- Un bouton Reculer : envoi d'un caractère '4'
- Un bouton Stopper : envoi d'un caractère '5'
Au niveau Arduino
Suivant le caractère reçu, nous allons commander le robot différemment. La classe CarDP est sur le partage, il faudra la copier dans le répertoire de votre programme.
Attention : il faudra rajouter une commande AT pour changer le nom de votre module bluetooth (17 équipes engagées)
Remarque : les broches du bluetooth sont à changer suivant la place que vous avez sur l'arduino
Code de réception :
Exported from Notepad++
/************************************************************/
/* Didier Petitjean le 14/05/2018 */
/* 3em tests pour déplacer le RobETT */
/* Projet RobETT 1er STI2D ETT lycée Deck Guebwiller */
/************************************************************/
/*
* Connexion Moteur de 1 à 6 voir CarDP.h
*/
#include
#include "CarDP.h"
#define RX 2
#define TX 3
CarDP robot;
SoftwareSerial BT(RX, TX);
void setup() {
robot.init();
BT.begin(9600);
}
char choix;
void loop() {
if(BT.available() > 0)
{
choix = BT.read();
switch(choix)
{
case '1' : robot.tournerAvance(150, 150); break; // Avance
case '2' : robot.tournerAvance(0, 150); break; // tourne à droite
case '3' : robot.tournerAvance(150, 0); break; // tourne à gauche
case '4' : robot.tournerRecule(150, 150); break; // Recule
case '5' : robot.arreter(); break; // Stoppe
default :;
}
delay(500);
}
}

