Servo connecté⚓
Exemple de mise en œuvre avec une carte Arduino :

La broche de commande doit générer un signal périodique. C'est la durée à l'état haut (5V) de l'impulsion qui détermine la position angulaire de l'axe du servomoteur.
L'utilisation de la librairie arduino "Servo.h"rend l'utilisation de tels dispositifs très simple :
/* * Le Servo est positionne a 30 degre */Servo myservo; // Declaration de l'Objet servo
void setup()
{myservo.attach(9); // Le servo est sur la broche 9
}
void loop()
{myservo.write(30); // Le servo est positionne a 30 degre
}
DESIGNER
L'écran est similaire à la précédente application. La position"slider" nous permettra de contrôler la position du servomoteur. Attention a paramétrer celui-ci pour qu'il gère des valeurs comprises entre 0 et 180.
Créer un nouveau projet nommé SERVO_CONNECTEE sous App inventor 2.
Réaliser l'interface suivante :
Au centre-droit de l'écran, il y a la liste des composants que vous devez glisser et poser de la palette vers le viewer.
À l'extrême droite de l'écran apparaissent les propriétés des composants que vous devez personnaliser.
Cliquer sur Blocks (en haut à droite) pour passer à l'écriture du « code ».
Côté Arduino
Matériel nécessaire :
Une carte Arduino UNO
Un shield GROVE
Un module grove Bluetooth
Un module grove servomoteur
Connexions :
Le Servo sur D3 et le module bluetooth sur D6.
Dans le logiciel Arduino vous devez modifier le programme suivant pour obtenir
Un nom original de l'interface Bluetooth
Un code plus sécurisé.
/* * Programme permettant le contrôle de la position angulaire * d'un Servo-Moteur. La valeur de l'angle est recue via * le module bluetooth connecte aux broches 6(Rx) et 7 (Tx) * de la carte arduino UNO. * Le Servo doit etre relie à la broche 3. */Servo myservo;
const int RxD = 6; // Broche de reception de donnees
const int TxD = 7; // Broche de transmission de donnees
/* * PARAMETRES BLUETOOTH : */String Nom_Du_Module = "SuperServo";
String PIN_Du_Module = "1234";
SoftwareSerial blueToothSerial(RxD,TxD); // Liaison serie du module Bluetooth
void setup()
{Serial.begin(9600);
Serial.println("Bluetooth module : Servo Moteur");
myservo.attach(3); // Le Servo-moteur est sur la broche 3 (D3)
setupBlueToothConnection(Nom_Du_Module, PIN_Du_Module); // Configuration du module BT
}
void loop()
{int pos = 0;
myservo.write(pos);
while(1)
{if(blueToothSerial.available()) // SI DONNEES RECUES
{pos = blueToothSerial.read(); // Lecture des donnees
Serial.println(pos); // Affichage au moniteur serie
myservo.write(pos); // Change la position du servo
}
}
}
/*************************************************************************** * La fonction setupBlueToothConnection() permet d'initialiser le module * Bluetooth. La confiuration est ***************************************************************************/void setupBlueToothConnection(String nom_du_module, String pin)
{ blueToothSerial.begin(9600); // Vitesse de transmission : 9600 bauds
blueToothSerial.print("AT"); // Reponse du module BT
delay(1000);
while(blueToothSerial.available())
{char recvChar = blueToothSerial.read(); // Reponse du module BT
Serial.print(recvChar);
}
Serial.println("");
blueToothSerial.print("AT+DEFAULT"); // Config usine (par defaut)
delay(2000);
while(blueToothSerial.available()){
char recvChar = blueToothSerial.read(); // Reponse du module BT
Serial.print(recvChar);
}
Serial.println("");
String at_command("AT+NAME"+nom_du_module);
char *at_str = at_command.c_str();
delay(5000);
blueToothSerial.print(at_str); // Nom du peripherique BT
// Longueure max 12 caracteresdelay(5000);
while(blueToothSerial.available()){
char recvChar = blueToothSerial.read(); // Reponse du module BT
Serial.print(recvChar);
}
Serial.println("");
at_command="AT+PIN"+pin;
at_str = at_command.c_str();
blueToothSerial.print(at_str); // Configuration du code PIN
delay(2000);
while(blueToothSerial.available()){
char recvChar = blueToothSerial.read(); // Reponse du module BT
Serial.print(recvChar);
}
Serial.println("");
blueToothSerial.print("AT+AUTH1"); //
delay(2000);
while(blueToothSerial.available()){
char recvChar = blueToothSerial.read(); // Reponse du module BT
Serial.print(recvChar);
}
Serial.println("");
blueToothSerial.flush();
}
Ajouter un capteur d'orientation permettant ainsi de contrôler le Servo moteur en inclinant le smartphone ou la tablette.




