Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 193

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 197

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338
[ Wikidébrouillard ] Android et arduino

Android et arduino

De Wikidebrouillard.

 
(47 versions intermédiaires masquées)
Ligne 10 : Ligne 10 :
== '''Matériel''' ==
== '''Matériel''' ==
* [[Image:arduino.jpg|50px]] un arduino
* [[Image:arduino.jpg|50px]] un arduino
-
* [[Image:smartphone.jpg|50px]] un smartphone sous android et avec l'option bluetooth
+
* [[Image:smartphone.jpg|50px]] un smartphone sous android et avec l'option bluetooth - avoir activé "sources inconnues" dans les parametres
* [[Image:groveshield.jpg|50px]] un grove shield (pas indispensable)
* [[Image:groveshield.jpg|50px]] un grove shield (pas indispensable)
* [[Image:grove_bluetooth.jpg|50px]] une carte bluetooth (indispensable)
* [[Image:grove_bluetooth.jpg|50px]] une carte bluetooth (indispensable)
Ligne 19 : Ligne 19 :
==='''La manipulation'''===
==='''La manipulation'''===
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.
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.
 +
 +
 +
=== I préparation de l'Arduino : ===
Donc dans un premier temps, chargez le programme ci-dessous dans votre arduino.
Donc dans un premier temps, chargez le programme ci-dessous dans votre arduino.
Ligne 57 : Ligne 60 :
     digitalWrite(ledPin, LOW); // eteins la led sur la broche "ledpin"
     digitalWrite(ledPin, LOW); // eteins la led sur la broche "ledpin"
     break;
     break;
-
   case 3: // si arduino reçois le chiffre 3 alors clignotte
+
   case 3: // si arduino reçois le chiffre 3 alors clignote
     digitalWrite(ledPin, HIGH);
     digitalWrite(ledPin, HIGH);
     delay(100);
     delay(100);
Ligne 74 : Ligne 77 :
   Serial.print("\r\n+STBD=115200\r\n"); // fixe la vitesse du 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+STWMOD=0\r\n"); //bluetooth en mode esclave
-
   Serial.print("\r\n+STNA=Detectometre"); //nom de l'appareil
+
   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+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+STOAUT=1\r\n"); // Permit Paired device to connect me
Ligne 87 : Ligne 90 :
Une fois le programme uploadé connectez le module bluetooth et la led comme ci-dessous :
Une fois le programme uploadé connectez le module bluetooth et la led comme ci-dessous :
-
[[Fichier:Arduino_bluetooth.png|350px]]
+
 
 +
[[Fichier:Arduino_bluetooth.png|center|350px]]
 +
 
 +
===II App Inventor ===
 +
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
 +
 
 +
[[Fichier:app4.png|750px]]
 +
 
 +
Onglet à gauche "basic"
 +
* Listpicker
 +
* boutton1
 +
* boutton2
 +
* boutton3
 +
* clock1
 +
 
 +
Onglet "other stuff"
 +
* bluetoothClient1
 +
* speechRecognizer1
 +
 
 +
 
 +
Le screencast pas à pas :
 +
[http://www.wikidebrouillard.org/images/d/d3/Screencast_appinventor.gif 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 :
 +
 
 +
[[Fichier:blockeditor.png|750px]]
 +
 
 +
A l'aide de la technique dite du glisser déposer, recopiez le programme suivant :
 +
 
 +
 
 +
[[Fichier:block_bluetooth.png|750px]]
 +
Le screencast pas à pas :
 +
[http://www.wikidebrouillard.org/images/0/00/Out5.gif 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".
 +
 
 +
[[Fichier:compileapp.png]]
 +
 
 +
il ne vous reste plus qu'à scanner le qrcode qui apparaîtra sur votre écran.
 +
 
 +
 
 +
[[Fichier:barecodeapp.png]]
==='''Que voit-on ?===
==='''Que voit-on ?===
-
Je note les points importants à observer !!!
+
Une fois l'application lancée, vous connectez arduino à l'aide du bonton prévu à cet effet.
 +
* Un appuie sur le bouton "Led ON", allume la led
 +
* Le bouton "Led OFF" eteint la led
 +
* Le bouton reconnaissance vocale" vous invite à piloter par la voix le clignotement de la led en disant "clignote"
 +
 
 +
Vous venez de réaliser une télécommande sans fil pour votre arduino !
== '''Explications''' ==
== '''Explications''' ==
==='''De manière simple'''===
==='''De manière simple'''===
-
Je propose une explication scientifique de manière simple, de la façon la plus imagée possible. Imaginez que vous expliquez l'expérience à un enfant ou à une personne non scientifique (éviter le tutoiement !
 
-
=== '''Questions sans réponses''' ===
+
====I - la connexion bluetooth====
-
Ici je mets les questions soulevées par l'expérience, qui n'ont pas trouvé de réponses !!
+
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)
 +
 
 +
[[Fichier:beforepick.png]]
 +
 
 +
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 :
 +
 
 +
[[Fichier:afterpick.png]]
 +
 
 +
====II - l'envoie de données en bluetooth ====
 +
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.
 +
 
 +
[[Fichier:bt1.png]]
 +
 
 +
 
 +
Regardons maintenant ce qu'il se passe du coté d'Arduino :
 +
<pre>
 +
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);
 +
  }
 +
</pre>
 +
 
 +
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 !
 +
 
 +
 
 +
====III - la reconnaissance vocale ====
 +
Le bouton "reconnaissance vocale" appelle la fonction "reconnaissance vocale" (SpeechRecognize.gettext)
 +
 
 +
 
 +
[[Fichier:bt3.png]]
 +
 
 +
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)
-
=== '''Allons plus loin dans l'explication''' ===
+
[[Fichier:recognize.png]]
-
Développons les concepts scientifiques associés.
+
-
Ne pas hésiter à faire des liens avec Wikipédia.
+
== '''Liens avec d'autres expériences''' ==
== '''Liens avec d'autres expériences''' ==
==='''Expériences sur Wikidébrouillard'''===
==='''Expériences sur Wikidébrouillard'''===
-
Indiquer ici les expériences de Wikidébrouillard.
+
vous pouvez utiliser ce programme et le "mixer" avec les autres fiches wikidebrouillards sur les [http://www.wikidebrouillard.org/index.php/Cat%C3%A9gorie:Arduino Arduinos]
-
 
+
-
==='''Autres expériences'''===
+
-
Autres expériences avec le même concept, recherche sur internet (indiquer les liens).  
+
== '''Applications : liens avec le quotidien''' ==
== '''Applications : liens avec le quotidien''' ==
-
C'est de la culture, ça aide à comprendre le monde !! N'hésitez pas à lancer la discussion de votre fiche (après l'avoir sauvegarder !) afin de trouver de l'aide pour la compléter
+
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 :
 +
 
 +
* piloter arduino lorsqu'il reçois un SMS
 +
* créer une voiture télécommandée en utilisant le gyroscope de votre téléphone
 +
* faire un notificateur d'emails !
 +
 
 +
et bien d'autres "trucs" encore !
 +
 
 +
les domaines d'applications sont multiples !
 +
 
 +
* domotique
 +
* handicaps
 +
etc....
== '''Lieux propices à sa réalisation''' ==
== '''Lieux propices à sa réalisation''' ==
-
Indiquer ici des lieux où tout le matériel nécessaire pour réaliser cette expérience est disponible.
+
partout !
=='''Catégories'''==
=='''Catégories'''==
-
Penser à fixer les disciplines scientifiques qui correspondent à l'expérience. Remplacer "à classer" par la discipline correspondante.
 
-
 
-
[[Catégorie:page type]]
 
-
[[Catégorie:Vidéo à réaliser]]
 
-
[[Catégorie:Orthographe et style à corriger]]
 
-
[[Catégorie:Contenus à développer]]
 
-
[[Catégorie:Fiche à Valider]]
 
[[Catégorie:expérience]]
[[Catégorie:expérience]]
 +
[[Catégorie:arduino]]
 +
[[Catégorie:électrokids]]

Version actuelle en date du 5 août 2013 à 17:38

Article incomplet en cours de rédaction
Modèle:Vidéo


Sommaire

Présentation de l'expérience

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.


Matériel

  • un arduino
  • un smartphone sous android et avec l'option bluetooth - avoir activé "sources inconnues" dans les parametres
  • un grove shield (pas indispensable)
  • une carte bluetooth (indispensable)
  • un ordinateur connecté à internet

L'expérience

La manipulation

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.


I préparation de l'Arduino :

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 :

II App Inventor

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"

  • Listpicker
  • boutton1
  • boutton2
  • boutton3
  • clock1

Onglet "other stuff"

  • bluetoothClient1
  • speechRecognizer1


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".

Fichier:compileapp.png

il ne vous reste plus qu'à scanner le qrcode qui apparaîtra sur votre écran.


Fichier:barecodeapp.png

Que voit-on ?

Une fois l'application lancée, vous connectez arduino à l'aide du bonton prévu à cet effet.

  • Un appuie sur le bouton "Led ON", allume la led
  • Le bouton "Led OFF" eteint la led
  • Le bouton reconnaissance vocale" vous invite à piloter par la voix le clignotement de la led en disant "clignote"

Vous venez de réaliser une télécommande sans fil pour votre arduino !

Explications

De manière simple

I - la connexion bluetooth

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)

Fichier:beforepick.png

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 :

Fichier:afterpick.png

II - l'envoie de données en bluetooth

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.

Fichier:bt1.png


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 !


III - la reconnaissance vocale

Le bouton "reconnaissance vocale" appelle la fonction "reconnaissance vocale" (SpeechRecognize.gettext)


Fichier:bt3.png

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)

Fichier:recognize.png

Liens avec d'autres expériences

Expériences sur Wikidébrouillard

vous pouvez utiliser ce programme et le "mixer" avec les autres fiches wikidebrouillards sur les Arduinos

Applications : liens avec le quotidien

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 :

  • piloter arduino lorsqu'il reçois un SMS
  • créer une voiture télécommandée en utilisant le gyroscope de votre téléphone
  • faire un notificateur d'emails !

et bien d'autres "trucs" encore !

les domaines d'applications sont multiples !

  • domotique
  • handicaps

etc....

Lieux propices à sa réalisation

partout !

Catégories

Portail des ExplorateursWikidébrouillardLéon DitFLOGPhoto mystèreJ'ai FaitPortraits
AR
EX

Android et arduino

Rechercher

Page Discussion Historique
Powered by MediaWiki
Creative Commons - Paternite Partage a l

© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique