Sommaire |
Vous venez de réaliser les tutoriels d'arduino, et vous etes à la recherche d'un nouveau "truc" à faire avec cette petite carte. Dans cette page, nous vous proposons de connecter votre arduino à un téléphone android. Ainsi votre carte favorite aura acces à votre téléphone, donc aux SMS, au GPS, aux capteurs Acceleromètres etc ... et surtout aux services Web.
Tout d'abord ici l'idée n'est pas d'apprendre à programmer Arduino mais de comprendre comment interfacer celui-ci avec un téléphone sous Android.
Donc dans un premier temps, chargez le programme ci-dessous dans votre arduino.
/* Programme de reception Bluetooth via le logiciel APP Inventor - connectez une led sur la sortie digitale 11 - connecter le module bluetooth sur les broches 0 et 1 , puis l'alim GND 5V (une fois le programme uploadé) Attention, avant d'uploader ce programme, veillez à débrancher le module bluetooth car celui-ci utilise les broches 0 et 1 utilisées aussi pour uploader un programme dans arduino Les Petits Débrouillards 2013 GNU-GPL */ const int ledPin = 13; // la led sera fixée à la broche 13 byte serialA; // variable de reception de donnée via RX void setup() { Serial.begin(115200); // initialisation de la connexion série (avec le module bluetooth) setupBlueToothConnection(); // démarrage liason série bluetooth cf fonction en bas pinMode(ledPin, OUTPUT); // fixe la pin "ledpin" en sortie } void loop() { switch (serialA) { case 1: // si arduino reçois le chiffre 1 alors digitalWrite(ledPin, HIGH); // allume sur la broche "ledpin" break; case 2: // si arduino reçois le chiffre 2 alors digitalWrite(ledPin, LOW); // eteins la led sur la broche "ledpin" break; case 3: // si arduino reçois le chiffre 3 alors clignote digitalWrite(ledPin, HIGH); delay(100); digitalWrite(ledPin, LOW); delay(100); } } void serialEvent(){ // si arduino reçois quelquechose en sur l'entrée RX serialA = Serial.read(); // stocker la valeur reçue dans la variable SerialA } void setupBlueToothConnection() // fonction de configuration du module bluetooth { Serial.begin(115200); //vitesse de bluetooth Serial.print("\r\n+STBD=115200\r\n"); // fixe la vitesse du bluetooth Serial.print("\r\n+STWMOD=0\r\n"); //bluetooth en mode esclave Serial.print("\r\n+STNA=Arduino"); //nom de l'appareil Serial.print("\r\n+STPIN=0000\r\n");//code pin "0000" Serial.print("\r\n+STOAUT=1\r\n"); // Permit Paired device to connect me Serial.print("\r\n+STAUTO=0\r\n"); // Auto-connection should be forbidden here delay(2000); // This delay is required. Serial.print("\r\n+INQ=1\r\n"); //make the slave bluetooth inquirable delay(2000); // This delay is required. Serial.flush(); }
Une fois le programme uploadé connectez le module bluetooth et la led comme ci-dessous :
1. créez-vous un compte google (ou un compte bidon si vous ne voulez pas être tracké par google)
2. rendez vous à cette adresse : http://beta.appinventor.mit.edu
3. connectez-vous et cliquez sur le bouton "INVENT"
4. créez un nouveau projet (bouton "NEW") et nommez le
5. ajoutez les modules suivants à votre projet
Onglet à gauche "basic"
Onglet "other stuff"
Le screencast pas à pas :
screencast
Une fois les boutons placés, nous allons programmer le tout !
Cliquez en haut à droite sur le bouton "open the blocks editor", à se moment ci, une application java va être téléchargée. L'ordinateur va vous demander d'ouvrir celle-ci avec java.
D'autres questions vont vous être posées mais là cliquez sur annuler ou ok.
Une fois ces embûches passées vous devriez avoir la fenêtre suivante :
A l'aide de la technique dite du glisser déposer, recopiez le programme suivant :
Le screencast pas à pas :
screencast
A cette étape, il ne reste juste qu'a compiler et envoyer sur votre téléphone.
Le plus simple à mon goût est de télecharger un scanneur de qrcode sur sont téléphone, puis de scanner le qrcode de l'application.
Pour se faire, revenez à la page de création d'interface, et cliquez en haut à droite sur "package for phone" puis "show barcode".
il ne vous reste plus qu'à scanner le qrcode qui apparaîtra sur votre écran.
Une fois l'application lancée, vous connectez arduino à l'aide du bonton prévu à cet effet.
Vous venez de réaliser une télécommande sans fil pour votre arduino !
Au lancement de l'application, et avant de sélectionner le périphérique (ListPicker.beforepicking), le programme charge la liste des appareils associés au téléphone (BluetoothClient.adressesandNames)
Lorsque l'on appuie sur le bouton "connecter arduino", une liste remplie des périphériques apparaît. On vous demande de choisir le périphérique. celui-ci est récupéré par la fonction suivante. Celle-ci récupère le nom de l'appareil (listpicker1.selection) et connecte le téléphone (BluetoothClient1.Connect) sur celui-ci :
Le premier bouton "Led ON" va envoyer via bluetooth (BluetoothClient1.Send1ByteNumber) le chiffre "1" à l'appareil connecté lorsqu'il sera cliqué (button1.Click). Ici c'est Arduino qui va recevoir 1.
Regardons maintenant ce qu'il se passe du coté d'Arduino :
switch (serialA) { case 1: // si arduino reçois le chiffre 1 alors digitalWrite(ledPin, HIGH); // allume sur la broche "ledpin" break; case 2: // si arduino reçois le chiffre 2 alors digitalWrite(ledPin, LOW); // eteins la led sur la broche "ledpin" break; case 3: // si arduino reçois le chiffre 3 alors clignotte digitalWrite(ledPin, HIGH); delay(100); digitalWrite(ledPin, LOW); delay(100); }
Si arduino reçois 1 (case 1): digitalWrite(ledPin, HIGH); // allume sur la broche "ledpin"
héhé ! vous commencez à comprendre ? pour le second bouton c'est la même chose !
Le bouton "reconnaissance vocale" appelle la fonction "reconnaissance vocale" (SpeechRecognize.gettext)
Une fois la reconnaissance vocale appelée, la fonction de récupération (SpeechRecognizer1.AfterGettingText) et de traitement est lancée ! La phrase reconnue est contenue dans la variable "result".
Il ne reste plus qu'à tester ce texte avec le mot clef que l'on souhaite ici c'est "clignotte"
Si le mot correspond, alors on envoi le chiffre 3 via bluetooth (BluetoothClient1.Send1ByteNumber)
vous pouvez utiliser ce programme et le "mixer" avec les autres fiches wikidebrouillards sur les Arduinos
Cette fiche peut être le début d'une invention plus complexe, si vous explorez les possibilités de APP inventor, vous pourrez par exemple :
et bien d'autres "trucs" encore !
les domaines d'applications sont multiples !
etc....
partout !
© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique