Télécommande 16 canaux

Nombre de visites :
23665
TÉLÉCOMMANDE à 16 CANAUX

ou :

« Comment se passer du DCC pour commander les accessoires ? »

Date de création : 29/10/2017

 
 
Premier chapitre d'une série de 14 sur une télécommande ANDROÏD pour ARDUINO, destinée au modélisme ferroviaire.
Considérations générales (et qui n'engagent que moi)
ou
Les raisons d'un choix
 
Un réseau commandé par DCC c'est merveilleux !
 
On peut même commander les accessoires tels que éclairages de bâtiments, petites animations, sons d'ambiances sonores, etc.
Oui mais voilà...
... tout cela est géré par un ordinateur et... il n'y a qu'une seule place devant le clavier et l'écran !
 
Parfait donc quand il s'agit d'automatiser un réseau d'exposition.
Mais comment jouer à plusieurs sans se disputer le clavier ?
 
Note :
Attention ! entendons-nous bien : je ne dénigre pas le DCC, loin de là.
C'est même la solution que je recommande à tous les débutants qui n'ont pas comme moi un parc de plus de 130 machines non digitalisées (et parfois "non digitalisables"), dont l'âge varie de 0 à 65 ans !

 
Personnellement, après avoir longuement expérimenté (et utilisé le DCC) sur mon réseau personnel, j'ai fini par trouver cette option TRES ennuyeuse : j'appuyais sur une commande et le réseau "vivait" tout seul !
... je ne jouais plus. J'étais comme une vache qui regarde passer les trains.
J'ai fini par comprendre que ce que je désirais surtout, c'était jouer au train et, si possible, pas tout seul.
Je veux pouvoir faire participer mes petits enfants et jouer avec eux.
Je veux pouvoir me plier à un nouveau scénario de jeu inventé dans l'instant par l'un d'eux.
Je veux pouvoir arrêter le train parce qu'il y a un squelette de dinosaure en travers de la voie. Si, si, c'est déjà arrivé ! 
Je veux pouvoir gérer le décor (allumage/extinction des bâtiments, animations, sons d'ambiance, etc.) indépendamment de la conduite des trains.

(J'ai recensé plus de 80 animations et éclairages à commander sur mon réseau ! Y'a du boulot ! )
Je veux pouvoir faire des erreurs.
... tout cela sans être agglutinés devant un seul et unique clavier.
 
 
 
Hé bien voilà, le cahier des charges est établi ! ... presque...
 
D'autres raisons m'ont poussé à abandonner personnellement le DCC :
  • plus de 130 machines à équiper de décodeurs, c'est un TRES GROS investissement, en argent et en temps ;
  • certaines de ces machines ne méritent pas d'être digitalisées ;
  • d'autres ne sont matériellement pas modifiables (pas assez de place pour loger un décodeur) mais sont pourtant parfaitement fonctionnelles en analogique ;
  • les décodeurs d'accessoires ne sont pas bon marché non plus : entre 40 et 80 € pour commander seulement 4 sorties.
    Ça fait un peu mal si on envisage de commander plusieurs dizaines d'accessoires !
  • imaginez que, sur l'écran du logiciel DCC, en plus du schéma de voies, il y a 80 boutons à cliquer pour commander les accessoires !
    Ben c'est pas gagné !
  • aucune marque ne propose de boîtiers de commandes DCC "satellites" convaincants et efficaces pour démultiplier les postes de conduite ou de commandes d'accessoires.
 
Fort bien, mais comme dirait un acteur américain très connu : «What else ? »
 
Que nous offre la technologie actuelle ?
La technologie évolue très très vite. Mon projet n'aurait pas pu se faire il y a 5 ans (Nous sommes fin 2017).
 
  • si on veux pouvoir « jouer à plusieurs », il faut disposer de plusieurs postes de commandes.
  • je veux aussi limiter la filasse de câblage et éviter les pupitres de commandes encombrants, très coûteux en switchs et voyants, et — surtout — difficilement modifiables.
  • je veux de la mobilité, de façon à pouvoir être « au plus près de l'action ».
 
... vous avez dit « télécommande ? » Gagné ! Mais encore ?
Je rêvais de télécommandes :
  • que je ne construis pas (mécaniquement parlant) ;
  • avec une ergonomie personnalisée en fonction du sujet, aussi bien dans son aspect que dans le nombre de fonctions ;
  • évolutives, c'est à dire qui peuvent être modifiées et personnalisées en cas de besoin ;
  • qui peuvent être facilement dupliquées et/ou transmises à mes camarades du club ;
  • qui ne nécessitent pas des investissements trop importants ;
  • qui tiennent dans une poche et qui consomment très très peu ;
  • ... et qui s'éteignent toutes seules si on oublie de le faire soi-même.
 
... quelqu'un a dit « smartphone » ? Bien vu !
Hé bien oui : l'architecture (quel grand mot ! ) du système est basée sur :
  • un smartphone ou une tablette ou une phablette sous ANDROÏD 
    ⇒ ça, c'est le boitier de télécommande ;
  • ... associé à un module BLUETOOTH ⇒ il assure la communication ;
  • ... lui-même connecté à une carte ARDUINO ⇒ c'est elle qui actionne les accessoires (LED, relais, cartes sons, servo-moteurs...) ;
  • une ou plusieurs applications ANDROÏD « maison » développées avec MIT App Inventor 2.
 
Pas peur !
Tout ceci n'est qu'un assemblage d'éléments simples.
 
Avantages de ce type de télécommande
« SMARTPHONE — application ANDROÏD — ARDUINO » :
 
  • le support matériel de la télécommande est déjà tout fait : c'est un smartphone ou une tablette ANDROÏD... et on en a tous déjà au moins un ou une qu'il n'est donc pas nécessaire d'acheter (sauf bien entendu si on est un aficionados d'Apple) ;
  • si on doit multiplier les boîtiers de télécommandes, on trouve de bonnes tablettes ANDROÏD 7" (bonne qualité d'écran, bonnes performances) à partir de 80 € et des smartphones reconditionnés, relativement récents, pour un prix analogue ;
  • une tablette ou un smartphone peut héberger plusieurs applications différentes ;
  • la même application peut être installée sur plusieurs appareils ANDROÏD.
WOUAOUUH ! Là ça devient sympa !
Donc...
  • un opérateur peut commander plusieurs zones à partir d'un seul smartphone (ou tablette), mais deux opérateurs peuvent disposer de la même application et commander la même zone à partir de deux appareils différents !
  • question alimentation électrique et recharge, tout est livré avec l'appareil ANDROÏD. 
    On n'a donc rien de plus à prévoir ;
  • une carte ARDUINO UNO (ou NANO) dispose d'un peu plus de 16 sorties, donc un ensemble « SMARTPHONE → application ANDROÏD → ARDUINO » constitue une télécommande à 16 canaux possibles.
    Avec un matriçage des sorties on pourrait même aller jusqu'à 80 sorties (voir la série d'articles sur le pont tournant).
... très très sympa même !

 
Actuellement je dispose de 6 ensembles ANDROÏD-ARDUINO opérationnels :
  • un avec lequel je commande la traction et les aiguillages sur la boucle intérieure ;
  • un autre, semblable, pour la boucle extérieure ;
  • un pour la commande du pont tournant (x2 ARDUINO, 17 voies, moteur pas à pas, commutation automatique des voies, etc.) ;
  • un pour la zone « village indien » pour l'ensemble des commandes d'allumage et d'extinction des différentes habitations ;
  • un semblable pour la zone « prison, motel et fouilles archéologiques » (... d'où le dinosaure qui parfois s'échappe et gambade sur les voies !  Mais quand on a 6 ans, on n'est pas à ça près...) ;
  • un semblable pour la zone du dépôt (16 canaux) ;
     
Toutes mes applications sont installées à la fois dans deux smartphones et deux tablettes.
N'importe lequel de ces appareils ANDROÏD peut prendre la main sur l'une ou l'autre zone.
 
Quatre autres zones sont aussi prévues pour être commandées de cette façon, mais pour l'instant les ARDUINO correspondants ne sont pas encore installés.
 
Note :
Petite précision de langage : dans toute la suite des articles, afin d'alléger l'écriture et la lecture des textes, j'utiliserai le terme
« appareil ANDROÏD»
pour désigner indifféremment une « tablette», une « phablette» ou un « smartphone» équipés du système d'exploitation ANDROÏD.


 
Petit lexique pour faciliter la lecture
 
 
 
 
Présentation de l'architecture de la télécommande ANDROÏD
Note :
Dans tous les articles qui suivent, le terme « télécommande » ne désigne pas un objet matériel (comme par exemple un smartphone), mais l'application ANDROÏD elle même, qui est un objet virtuel hébergé par un ou plusieurs appareils ANDROÏD.
 
 
APERÇU GÉNÉRAL
 
Appareil ANDROÏD dans lequel est installée l'application de télécommande à 16 canaux
La transmission se fait par Bluetooth Low Energy (BLE)
 
Module HC-05 ou
HC-06 qui reçoit les émissions Bluetooth et transmet les infos à l'ARDUINO.
 
Carte ARDUINO UNO ou NANO + programme qui interprète les infos reçues et actionne les 16 sorties.
 
Organes de sorties.
 
 
 
MATÉRIEL côté ARDUINO
Très peu de choses :
  • une carte ARDUINO UNO ou NANO avec son alimentation ;
  • un «shield d'extension» pour ARDUINO NANO ;
  • un HC-05 (module d'émission-réception BLE) ;
     
Note :

Pour la clarté de l'image, une seule sortie à LED est branchée sur le «shield d'extension».
 
 
Le «shield d'extension» présente un intérêt pratique important :
⇒ pour chaque entrée/sortie de l'ARDUINO NANO on dispose d'un bornier à
3 positions :
  • GND (0 Volts) ;
  • Vcc (+5 Volts) ;
  • broche d'entrée/sortie.
     
Le raccordement des LED's, relais et autres accessoires est grandement facilité, ainsi que le raccordement du HC-05.
 
Note :

Le «shield d'extension» est utilisable de la même façon avec une carte ARDUINO UNO. Le shield est alors monté au-dessus de la carte UNO, en utilisant les connecteurs latéraux.
 
 
 
... et un bilan sommaire...
 
Un HC-05 coûte moins de 4 € sur ebay  ;
Une carte UNO coûte moins de 5 € sur ebay. Compter 10 à 12 € au total si on lui adjoint un boitier plastique et un shield d'extension ;
... pour 16 sorties possibles !
À mettre en parallèle avec le prix d'un seul décodeur d'accessoires à 4 sorties qui coûte entre 45 et 80 € suivant le modèle.
 
Bien évidemment, comme en DCC, il faut ajouter les organes de sorties : relais, LED's, servo-moteurs, moteur divers, circuits sons... Ni plus, ni moins.
Il faut tout aussi évidemment investir dans un ou deux appareils ANDROÏD (entre 80 et 150 € / pièce).
Ce prix est lui aussi à mettre en parallèle avec le prix d'une station DCC et (dans certains cas) d'une station secondaire pour la commande d'accessoires.
N'oublions pas non plus l'ordinateur dédié pour faire fonctionner le logiciel DCC, et dont on se passe dans le cas présent.

Un ou plusieurs appareils sous système Androïd.
Ces appareils hébergent les applications de télécommande(s).
 
Notes : j'ai une préférence pour les tablettes 7".
  • une bonne tablette est souvent moins chère qu'un bon smartphone (à partir de 80 € on commence a trouver des tablettes avec une bonne qualité d'image, une dalle en verre trempé et un processeur pas trop lent) ;
     
  • on n'a pas besoin de la fonction téléphone. Si besoin, la tablette accèdera à internet par la box, via Wifi ;
     
  • si on utilise ce système avec un réseau d'exposition, il est plus facile de sécuriser une tablette qu'un smartphone : il existe de très bons supports ajustables pour tablettes, avec verrou et câble de sécurité en acier.
 
 
 
MATÉRIEL côté ANDROÏD
 
Note concernant la forme et le fond des articles :
Je ne suis pas infaillible mais j'ai à cœur, par respect envers les modélistes que nous sommes et envers tous les lecteurs, de publier des articles parfaitement utilisables.
Tous les schémas, tous les circuits électroniques et tous les programmes ont été longuement vérifiés, testés et utilisés avant de faire l'objet d'une publication sur ce site.
Concernant les textes, je les fais relire par un camarade et je ne manque pas de les relire moi-même périodiquement.
Si vous découvrez des fautes ou des phrases qui vous semblent obscures n'hésitez pas à prendre contact.
 
 
 
 
SCHÉMA de CABLAGE
 
Branchement avec ARDUINO UNO
 
Branchement avec ARDUINO NANO
 
TRES IMPORTANT : la liaison HC-05 Tx → ARDUINO Rx
doit absolument être coupée avant de téléverser le programme dans l'ARDUINO.
En effet, Rx et Tx de l'ARDUINO sont précisément utilisées en interne pour effectuer le téléversement, et la liaison avec le HC-05 gène cette opération : l'IDE affiche un message d'erreur (qui n'est pas forcément explicite).
 
Sur les schémas de câblage ci-dessus je n'ai représenté qu'une seule LED en sortie de l'ARDUINO pour des raisons de clarté.
En fait, le seul branchement important à observer est la liaison HC-05 TX → ARDUINO Rx.
 
Les accessoires «Relais», «Carte Micro SD» et «carte d'essai» ne sont là que pour rappeler que – dans notre cas – les 16 sorties de l'ARDUINO sont de type logique ON-OFF et qu'elles peuvent donc actionner tout accessoire susceptible d'être commandé par un niveau logique en 5 Volts ou en 3,3 Volts (mais avec un petit adaptateur à résistances).
 
Les 16 sorties portent les numéros 2 à 17 (quel que soit le type de carte ARDUINO : UNO ou NANO).
La broche «0» (Rx) est réservée à la liaison avec le HC-05.
La broche «1» (Tx) n'est pas utilisée puisque, dans ce projet, on n'utilise pas le retour d'informations depuis l'ARDUINO vers l'application ANDROÏD.
 

 
PROGRAMME ARDUINO
Extrêmement simple :

#include <SoftwareSerial.h>

SoftwareSerial HC_05_Alain(0,1) ;   // 0 = Tx du HC-05 ==>

                                    // ARDUINO n°1
                                    // 1 non connectée dans

                         // cette appli, mais DOIT être déclarée

On inclut la librairie SoftwareSerial.h  nécessaire aux fonctions de communication avec le HC-05.
On créé ensuite une instance HC_05_xxx(0,1) pour signifier que la communication se fera sous ce nom là, et sur les broches 0 et 1 de l'ARDUINO.
Note : peu importe le nom qu'on donne à cette instance du moment qu'il est explicite.

char c;
String readString;

 
«c» et «readString» sont les deux variables qui seront utilisées pour reconstituer les ordres transmis depuis l'application ANDROÏD.
 
void setup() déclare les broches 2 à 17 comme étant des sorties.
void ToutEteindre() est une procédure qui permet de remettre toutes les sorties à zéro d'un seul coup quand l'ARDUINO reçoit l'ordre de reset «ALL_OFF».

   Serial.begin(9600) ;
   HC_05_Alain.begin(9600) ;

Serial.begin(9600) ; initialise la liaison série à 9600 bauds avec le moniteur de l'IDE (si on l'utilise dans la phase de mise au point du programme).
HC_05_xxx.begin(9600) ; initialise la liaison série à 9600 bauds avec le HC-05.

void loop() {

   while (HC_05_Alain.available())
   {
     delay(3);
     c = (HC_05_Alain.read());
     readString = String(readString) + String(c);
   }

...

 
Teste si le HC-05 transmet une info en provenance de l'application ANDROÏD.
Tant que c'est le cas, la variable readString stocke les caractères successifs de façon à reconstituer l'ordre transmis.

   if (readString != "")
{
     if (readString == "S2_ON") {digitalWrite(2, HIGH);}
...
     if (readString == "S3_OFF") {digitalWrite(3, LOW);}
...
    if (readString == "ALL_OFF") {ToutEteindre() ;}
}
 

Si readString contient un ordre, alors on le traite.
En fonction de l'ordre reçu, les sorties 2 à 17 sont basculées ON ou OFF.
Si l'ordre reçu est «ALL_OFF», alors on actionne la procédure «ToutEteindre()» qui met OFF toutes les sorties.

   readString = (String)("");

 
 
À la fin de la séquence de traitement de l'info reçue, on «vide» la variable readString pour qu'elle soit «propre» lorsqu'un nouvel ordre sera disponible.
 
Ci-dessous, le texte intégral du programme.
Vous pouvez faire un simple copier-coller de ce texte dans l'IDE ARDUINO, ou le télécharger ICI.

// (Programme libre de droits)

// TELECOMMANDE 16 CANAUX

// Avant de télécharger le programme,
// penser à déconnecter la liaison Rx/Tx entre ARDUINO et HC-05.

  // Ce programme fonctionne sur UNO R3, NANO, MICRO, MEGA

#include <SoftwareSerial.h>

SoftwareSerial HC_05_Alain(0,1) ;   // 0 = Tx du HC-05 ==> ARDUINO n°1
                                     // 1 non connectée dans cette appli, mais                                        // DOIT être déclarée
char c;
String readString;

void ToutEteindre()
{
   digitalWrite(2, LOW);
   digitalWrite(3, LOW);
   digitalWrite(4, LOW);
   digitalWrite(5, LOW);
   digitalWrite(6, LOW);
   digitalWrite(7, LOW);
   digitalWrite(8, LOW);
   digitalWrite(9, LOW);
   digitalWrite(10, LOW);
   digitalWrite(11, LOW);
   digitalWrite(12, LOW);
   digitalWrite(13, LOW);
   digitalWrite(14, LOW);
   digitalWrite(15, LOW);
   digitalWrite(16, LOW);
   digitalWrite(17, LOW);    }

void setup()
{
   pinMode(2, OUTPUT);
   pinMode(3, OUTPUT);
   pinMode(4, OUTPUT);
   pinMode(5, OUTPUT);
   pinMode(6, OUTPUT);
   pinMode(7, OUTPUT);
   pinMode(8, OUTPUT);
   pinMode(9, OUTPUT);
   pinMode(10, OUTPUT);
   pinMode(11, OUTPUT);
   pinMode(12, OUTPUT);
   pinMode(13, OUTPUT);
   pinMode(14, OUTPUT);
   pinMode(15, OUTPUT);
   pinMode(16, OUTPUT);
   pinMode(17, OUTPUT);

   Serial.begin(9600) ;
   HC_05_Alain.begin(9600) ;
}

void loop() {

   while (HC_05_Alain.available())
   {
     delay(3);
     c = (HC_05_Alain.read());
     readString = String(readString) + String(c);
   }

   if (readString != "") {
     if (readString == "S2_ON") {digitalWrite(2, HIGH);}
     if (readString == "S3_ON") {digitalWrite(3, HIGH);}
     if (readString == "S4_ON") {digitalWrite(4, HIGH);}
     if (readString == "S5_ON") {digitalWrite(5, HIGH);}
     if (readString == "S6_ON") {digitalWrite(6, HIGH);}
     if (readString == "S7_ON") {digitalWrite(7, HIGH);}
     if (readString == "S8_ON") {digitalWrite(8, HIGH);}
     if (readString == "S9_ON") {digitalWrite(9, HIGH);}
     if (readString == "S10_ON") {digitalWrite(10, HIGH);}
     if (readString == "S11_ON") {digitalWrite(11, HIGH);}
     if (readString == "S12_ON") {digitalWrite(12, HIGH);}
     if (readString == "S13_ON") {digitalWrite(13, HIGH);}
     if (readString == "S14_ON") {digitalWrite(14, HIGH);}
     if (readString == "S15_ON") {digitalWrite(15, HIGH);}
     if (readString == "S16_ON") {digitalWrite(16, HIGH);}
     if (readString == "S17_ON") {digitalWrite(17, HIGH);}
     if (readString == "S2_OFF") {digitalWrite(2, LOW);}
     if (readString == "S3_OFF") {digitalWrite(3, LOW);}
     if (readString == "S4_OFF") {digitalWrite(4, LOW);}
     if (readString == "S5_OFF") {digitalWrite(5, LOW);}
     if (readString == "S6_OFF") {digitalWrite(6, LOW);}
     if (readString == "S7_OFF") {digitalWrite(7, LOW);}
     if (readString == "S8_OFF") {digitalWrite(8, LOW);}
     if (readString == "S9_OFF") {digitalWrite(9, LOW);}
     if (readString == "S10_OFF") {digitalWrite(10, LOW);}
     if (readString == "S11_OFF") {digitalWrite(11, LOW);}
     if (readString == "S12_OFF") {digitalWrite(12, LOW);}
     if (readString == "S13_OFF") {digitalWrite(13, LOW);}
     if (readString == "S14_OFF") {digitalWrite(14, LOW);}
     if (readString == "S15_OFF") {digitalWrite(15, LOW);}
     if (readString == "S16_OFF") {digitalWrite(16, LOW);}
     if (readString == "S17_OFF") {digitalWrite(17, LOW);}
     if (readString == "ALL_OFF") {ToutEteindre() ;}
}
 
   readString = (String)("");

}

 
 
 
 
 
 
Le HC-05 (ou HC-06) est le module BLE qui va recevoir les ordres de l'application ANDROÏD pour les transmettre à l'ARDUINO.
Visiter d'abord « 05 – Application ANDROÏD » pour donner un nom explicite au HC-05.
 
Chaque module HC-05 ou HC-06 possède un identifiant unique à 12 chiffres, implanté lors de sa fabrication.
 
Cet identifiant est de la forme «00:12:5F:83:74:4F» : 6 groupes de deux chiffres séparés par « : ».
 
Pour qu'une communication BLE s'établisse entre l'appareil ANDROÏD et l'ARDUINO grâce au HC-05, il faut plusieurs choses :
  • établir la liaison série entre HC-05 et ARDUINO : déjà traité dans l'article «03-Côté ARDUINO»
    C'est le rôle des instructions suivantes, dans le sketch ARDUINO :
 
#include <SoftwareSerial.h>
SoftwareSerial HC_05_xxx(0,1) ;
et
HC_05_xxx.begin(9600) ;
 
 
  • «découvrir» l'identifiant à 12 chiffres du HC-05
    En effet, lorsqu'on achète un HC-05, son identifiant n'est pas inscrit sur le module.
 
  • «associer» ou «appairer» le (ou les) HC-05 avec l'appareil ANDROÏD, de façon que ce dernier sache avec quels périphériques il est autorisé à dialoguer.
    Ces deux points sont expliqués ci-dessous.
 
  • fournir à l'application ANDROÏD l'identifiant du HC-05 avec lequel elle doit communiquer
    Ce point sera expliqué dans l'article «05-Côté appli. ANDROÏD».
 
 

 
«découvrir» l'identifiant à 12 chiffres du HC-05
 
 
► Il faut tout d'abord télécharger le petit utilitaire suivant sur le PC
APPAIRAGE_HC_05.apk
 
... et le transférer sur l'appareil ANDROÏD
Connecter l'appareil ANDROÏD avec le PC grâce à un cable USB.
⇒ l'appareil ANDROÏD est alors reconnu comme un disque dur par le PC :
 
La copie du fichier APPAIRAGE_HC_05.apk s'effectue par la méthode habituelle, dans le répertoire «Download» de l'appareil ANDROÏD (ou sur certains appareils : «Applications» ou encore «XXXX_APK»).
 
PARTICULARITÉS de certains appareil ANDROÏD :
Sur certains appareils, comme par exemple le Wiko Lenny 3, le gestionnaire de fichiers du PC 
«voit le Lenny 3» mais ne voit pas les répertoires et les fichiers qu'il contient.

Il faut alors dérouler le menu du haut de l'écran (celui avec les 12 000 petites icônes).
Tout en bas de la liste des notifications se trouve une fenêtre qui porte soit le libellé «USB pour le transfert de fichiers», soit le libellé «Recharge par USB», soit...
Clic sur cette fenêtre et sélectionner «Transferer des fichiers (MTP)».
 
Ceci a pour effet d'autoriser la prise USB de l'appareil à faire autre chose que la simple recharge de la batterie.
 
Note : chaque fois qu'on re-connectera le Lenny 3 avec le câble USB sur le PC on sera obligé de refaire cette manip.
Note 2 : vous comprendrez qu'il m'est impossible ici de faire l'inventaire de toutes les particularités des nombreuses marques d'appareils ANDROÏD.
Rassurez-vous : la plupart du temps on n'est pas enquiquiné.
Sinon on demande gentiment la solution à Google !

 
► Brancher le HC-05 à détecter
 
Pas besoin de l'ARDUINO pour l'instant.
Connecter simplement le HC-05 à une pile de 4,5 Volts en respectant la polarité.
Pour cette opération de détection il n'y a besoin de rien d'autre : le dialogue entre le HC-05 et l'utilitaire «APPAIRAGE_HC_05» ci-dessous se fera par BLE.

 
► Installer et démarrer l'application
 
Sur l'appareil ANDROÏD, ouvrir le gestionnaire de fichiers et chercher le répertoire «Download» ou «Applications» ou... jusqu'à trouver le fichier APPAIRAGE_HC_05.apk précédemment copié.
Clic sur ce fichier : l'installation démarre.
Répondre positivement aux différentes propositions (chaque appareil est susceptible de réagir différemment).
Souvent, à la fin de l'installation, le système propose d'ouvrir l'application nouvellement installée.
Faites-le.
 
Si ce n'est pas le cas (ou lors d'une utilisation ultérieure), l'application est reconnaissable par son icône

 
Reconnaître et appairer le HC-05
 
Voici à quoi ressemble l'écran d'accueil de l'application.
 
Ben oui, on peut rêver un peu...
Si on touche l'icône               un mini-tutoriel apparaît.
 
Sélectionner «APPAIRAGE».
L'image de gauche montre l'écran d'un SAMSUNG Galaxy J5.
Celui de droite montre l'écran d'un Wiko Lenny 3.
En fait, l'application «APPAIRAGE_HC_05» fait appel au menu Bluetooth de l'appareil ANDROÏD.
Dans les deux cas on a la liste des périphériques déjà associés (ou appairés) et de ceux qui sont disponibles.
Galaxy J5-6
Wiko Lenny 3
 
Clic sur le nouvel HC-05 disponible ⇒ on obtient l'un des écrans ci-dessus.
À gauche, la demande d'appairage sur le Galaxy J5.
À droite la même chose sur le Wiko Lenny 3.
Entrer le code «1234» : le HC-05 est maintenant appairé (associé) avec l'appareil ANDROÏD. Il n'apparaît plus dans la zone des appareils disponibles, mais dans celle des périphériques appairés. (ci-contre à gauche).
 
Autant d'applications distinctes ⇔ autant de HC-05 ⇔ autant d'appairages nécessaires
◄ Le résultat sur un Galaxy de Samsung
 
Note :
Sur certains appareils il est possible de renommer le HC-05 mais cela ne présente pas une grande utilité. En effet, l'application de télécommande n'utilise pas ce nom, mais seulement l'identifiant à 12 chiffres.
Revenir à l'écran d'accueil de l'application «APPAIRAGE_HC_05».
Débrancher et rebrancher le HC-05.
Clic sur «Connexion...»
⇒ on obtient la liste des périphériques BLE associés à l'appareil ANDROÏD (image de droite)
(Ici on a un seul HC-05 dans la liste du
Lenny 3).
 
Relever l'identifiant à 12 chiffres et l'inscrire sur une étiquette que l'on prendra soin de coller au dos du module HC-05.
 
Par la même occasion, si on utilise plusieurs HC-05, il est utile d'inscrire dans un petit tableau la liste de leurs identifiants en regard des applications qui leurs sont associées.
Note : un appareil ANDROÏD garde en mémoire la liste des périphériques BLE associés et leurs identifiants tant qu'on ne les dissocie pas, même si on éteint l'appareil ANDROÏD.
Clic sur la ligne du HC-05 nouvellement appairé
(image ci-dessus à droite)
Après quelques secondes le HC-05 clignote lentement et l'écran de l'application affiche «Connexion...» sur fond vert,
⇒ la liaison est établie entre le HC-05 et l'appareil ANDROÏD.
Ceci permet de vérifier que la reconnaissance et l'appairage du HC-05 s'est déroulée correctement.
Re-clic sur le bouton «Connexion...» sur fond vert,
⇒ la liaison entre le HC-05 et l'appareil ANDROÏD est interrompue.
Le HC-05 se remet à clignoter rapidement.
 
 
Le HC-05 est maintenant prêt à être branché sur son ARDUINO.
L'appareil ANDROÏD est prêt à dialoguer avec lui...
...mais l'application ANDROÏD ne le sait pas encore.
 
Note :
Cette même petite application utilitaire, «APPAIRAGE_HC_05», permettra ultérieurement de vérifier la liste des HC-05 associés à tel ou tel  appareil ANDROÏD.
 
Au cas où certains préfèreraient la montagne plutôt que la mer et les palmiers, voici le fichier APPAIRAGE_HC_05.aia.
En important ce fichier dans App Inventor 2 «en ligne» il vous sera possible – entre autre – de modifier ou supprimer l'image de fond.
Petite recommandation : choisir une image dont la taille ne dépasse pas trop 500 ko, et supprimer l'image actuelle pour éviter de faire inutilement gonfler l'application.

 
 Nous allons maintenant examiner l'application ANDROÏD de télécommande.     
 
 
 
 
 
 
  
 
 
 
 
 
 
 
L'application ANDROÏD «TELECOMMANDE_16_CANAUX»
est le cœur du projet.
 
L'ARDUINO de son côté ne fait qu'exécuter les ordres qu'il reçoit.
L'application ANDROÏD s'occupe de la gestion  des commandes, aussi bien dans leur aspect visuel que technique.
 
Telle qu'elle est présentée dans le présent article, cette télécommande est personnalisée pour l'animation de mon village indien.
Dans l'article suivant nous verrons comment dupliquer et personnaliser cette application pour l'adapter à un nouvel exemplaire de télécommande.
 
 
 
 
Charger et installer l'application sur l'appareil ANDROÏD et premier démarrage
L'application «TELECOMMANDE_16_CANNAUX.apk» s'installe exactement de la même façon que l'application «APPAIRAGE_HC_05.apk». (voir ci-dessus «04-Côté HC-05» ).
Sur l'appareil ANDROÏD, l'application «TELECOMMANDE_16_CANNAUX.apk» apparaît pour l'instant avec l'icône :
Download_1.png
VILLAGE
INDIEN #3
 
  • brancher le HC-05 et au moins une LED sur l'ARDUINO qui a été programmé comme cela est décrit dans l'article «03-Côté ARDUINO».
  • démarrer l'application.
     
 
 
 
◄ voici à quoi ressemble l'écran d'accueil lors du premier démarrage.
 
Dans l'état actuel des choses :
  • L'ARDUINO est prêt à «écouter» le HC-05 ;
  • L'appareil ANDROÏD est prêt à «parler» au HC-05 ;
  • L'application «TELECOMMANDE_16_CANNAUX» est démarrée...
     
mais...
 
  • ... elle ne sait pas encore à quel HC-05 elle s'adresse : 
    (HC-05 non déclaré).
 
 
D'autre part, aucun libellé n'apparaît en face des boutons : l'application est vierge.
 
J'ai voulu que cette application soit le plus adaptable possible.
À partir de cette configuration de départ – et sans entrer dans l'outil de développement App Inventor2 – on va pouvoir :
  • déclarer le HC-05 associé à cette application ;
  • re-changer (éventuellement) l'identifiant du HC-05 associé ;
  • affecter des libellés aux boutons ;
  • changer le fond d'écran ;

 
Déclarer le HC-05 Bluetooth associé
Appui court sur le bouton rouge
«Configurer HC-05»
 ◄ une boite de notification apparaît.
Elle confirme qu'aucun HC-05 n'est déclaré.
  • appui court dans la fenêtre de saisie pour faire apparaître le clavier ;
  • taper les 12 chiffres de l'identifiant inscrit au dos du HC-05 (voir article 04-Côté HC-05) ;
 
Une nouvelle notification apparaît ►   
 
  • confirmer (si l'identifiant est correct), sinon utiliser la touche RETOUR de l'appareil ANDROÏD pour revenir au point de départ et recommencer.
Après confirmation le bouton de connexion passe en fond orange et affiche l'identifiant du HC-05 qu'on vient d'associer à cette application.
A la prochaine mise en route de l'application, l'écran d'accueil sera celui de gauche : l'identifiant est gardé en mémoire dans l'application, même après sa désactivation.
Appui bref sur le bouton «Connexion...».
Après quelques secondes,

le bouton passe en fond vert et affiche :
«Liaison BLE établie»
<identifiant du HC-05>
 
La chaîne «APPLICATION⇒Appareil ANDROÏD⇒HC-05⇒ARDUINO» est maintenant totalement opérationnelle.




 
Test de fonctionnement
 
Si la LED est branchée sur la sortie n° 2 de l'ARDUINO, un appui bref sur le premier bouton aura pour effet de l'éclairer.

Le bouton devient VERT.
Un second appui sur ce même bouton éteindra la LED et le bouton redeviendra ROUGE.
 
Si la LED est connectée à la sortie n° 13 de l'ARDUINO (comme sur les schémas de l'article «03-Côté ARDUINO»), c'est le douzième bouton qu'il faut actionner pour commuter la LED.

 
Personnalisation des libellés
On vient de voir que l'application peut fonctionner sans les libellés.
Cela laisse le temps d'établir tranquillement le câblage des accessoires à commander.
A mesure de l'avancement du câblage on entrera un libellé explicite correspondant à chaque accessoire.
 
 
Appui LONG sur l'icône
⇒ le bouton de connexion laisse place à une fenêtre de saisie.
Appui court dans la fenêtre de saisie

⇒ le clavier apparaît.
L'icône             devient
 
 
 
 
 
Saisir le libellé qu'on veut affecter à un bouton (maxi 20 à 25 caractères suivant l'appareil qu'on utilise).
Escamoter le clavier.
 
 
Appui Long sur le bouton à
« baptiser »
⇒ le libellé apparaît en face du bouton choisi.
⇒ la fenêtre de saisie n'est pas effacée.
 
On répète la manipulation ci-dessus pour chacun des 16 boutons.
L'édition ou la correction de l'un ou l'autre des libellés peut se faire à n'importe quel moment.
Les libellés, eux aussi, sont gardés en mémoire lorsqu'on arrête l'application.
 
Note :
Il n'est pas nécessaire de quitter le mode édition après chaque saisie.
Le mode édition reste actif tant qu'on n'appuie pas sur l'icône
 
 
Un appui bref sur l'icône                 provoque la sortie du mode d'édition et rétablit l'écran d'accueil.
 
 
Hé bien voilà !
L'application est maintenant configurée et opérationnelle.
That's all Folks !
 
 
Meuh non ! ce n'est pas fini...
 
Dans les articles suivants nous verrons d'autres personnalisations de cette application :
  • comment choisir un autre fond d'écran ?
  • comment remettre à zéro les 16 boutons en une seule fois ?
 
Nous verrons aussi les autres fonctionnalités :
  • accès au mode d'emploi simplifié ;
  • accès au texte du sketch ARDUINO ;
  • comment envoyer le texte du sketch ARDUINO par mail (à un ami par exemple) ?
 
Un article traite de l'application ANDROÏD elle-même, de façon que chacun puisse la cloner et/ou la perfectionner :
  • comment importer un fichier «.aia» dans App Inventor 2 «en ligne» ?
  • comment cloner l'application ?
  • comment remplacer le jeu d'images de fonds par d'autres fonds adaptés au sujet de chaque application ?
  • comment exporter les fichiers «.aia» et «.apk» sur le PC à partir de MIT App Inventor 2 « en ligne » ?
 
 
 
Sketch ARDUINO : accès et partage ;
Accès au tutoriel rapide ;
RAZ des boutons ;
Changer le fond d'écran.
Comme nous l'avons vu dans l'article précédent, l'application démarre avec le fond ci-contre.
Au fait, il s'agit d'une photo prise à «Antelope Canyon, ARIZONA».
Allez voir sur internet : il y a des photos magnifiques.
... et en vrai je vous assure que c'est magique !
Bref...
 
Cette image n'est peut-être pas celle qui vous plait le mieux.
 
En plus elle n'est ni ferroviaire, ni représentative du Navajo Tribal Park dans Monument Valley, comme le voudrait le titre de l'application : «VILLAGE INDIEN».
Hé bien on va en changer.
 
Quatre icônes sont disponibles en bas de la page d'accueil.
(Faire défiler l'écran)
Accès aux fonds d'écran
Appui LONG sur l'icône ci-dessus
On accède à un nouvel écran.
Il contient 10 images l'une au-dessus de l'autre.
À droite, un petit tuto explique la marche à suivre.
Appui bref sur l'image souhaitée :
⇒ provoque le retour à l'écran d'accueil.
  • le nouveau fond s'est installé ;
  • le jingle de départ retentit ;
  • la liaison BLE à été volontairement interrompue.
     
Mais l'identifiant du HC-05 est toujours indiqué.
Un simple appui sur le bouton de connexion, et la liaison sera rétablie (si bien sûr le HC-05 est sous tension).
 
Remise à zéro des boutons
 
Appui LONG sur l'icône ci-dessus (appui long pour éviter la remise à zéro accidentelle lors d'un effleurement de l'icône)
⇒ tous les boutons de commandes des accessoires redeviennent ROUGES.
⇒ l'ordre de remise à zéro est transmis à l'ARDUINO qui coupe toutes ses sorties.
 
Pourquoi une fonction« RESET» ?
 
Fonctionnement :
Lorsqu'on arrête l'application ANDROÏD, l'état des boutons est gardé en mémoire.
Si on relance l'application sans éteindre l'ARDUINO, les boutons sont affichés dans l'état où ils se trouvaient avant l'extinction de l'application ANDROÏD.
⇒ l'écran de l'application sera en conformité avec l'état des sorties de l'ARDUINO.
 
Mais... si entre temps on a éteint l'ARDUINO...
 
Utilités du RESET :
  • l'utilité première est de pouvoir éteindre «proprement» toute une zone d'un seul coup, si on arrête de jouer (le soir avant d'aller faire dodo par exemple) ;

     
  • quand on a coupé l'ARDUINO à l'arrache :
    En effet, lorsqu'on remet l'ARDUINO sous tension (le matin après un gros dodo), toutes ses sorties se mettent à zéro.
    Or l'application, elle, a gardé en mémoire l'état des sorties avant son extinction.
    L'écran de l'application n'est donc plus en conformité avec l'état réel des sorties de l'ARDUINO.
    ⇒ RESET remet tous les boutons au ROUGE et la conformité est rétablie.
     
  • si, pour s'amuser un peu, on bidouille les boutons de l'application sans avoir allumé l'ARDUINO (juste pour voir comment ils se comportent), on se retrouvera dans le même cas que ci-dessus.
     
Attention toutefois :
Si l'ARDUINO est sous tension mais que la liaison BLE n'est pas établie – liaison perdue si on s'est trop éloigné de l'ARDUINO, par exemple – le RESET mettra bien tous les boutons au rouge sur l'application, mais ne changera rien aux sorties de l'ARDUINO.
Logique !
 
Note :
Pour que les sorties de l'ARDUINO soient toujours en conformité avec l'état des boutons de l'application, il faudrait un retour d'informations de l'ARDUINO vers l'application ANDROÏD.
Le HC-05 peut le faire puisqu'il est bi-directionnel.
Le programme ARDUINO, lui, n'est pas trop difficile à modifier.
Pour l'application ANDROÏD, c'est une autre paire de manche et je n'ai pas voulu tenter l'aventure... pour l'instant.
 
Grosse flemme...​
 
Accès au tutoriel rapide
 
Appui bref sur l'icône ci-dessus ⇒ accès à l'écran du tutoriel rapide.
 
Ce tutoriel donne de façon simplifiée la fonction des différentes icônes, le sens des indications sur les boutons, etc.
 
C'est sans prétention.
J'ai fait cela surtout pour m'amuser un peu et construire une application à plusieurs écrans.
 
Pour revenir à l'écran principal, utiliser la touche RETOUR de l'appareil ANDROÏD.
 
Sketch ARDUINO : accès et partage
 
Appui bref sur cette icône :
 
⇒ donne accès à l'écran du sketch ARDUINO.
 
Le retour à l'écran d'accueil se fait avec la touche RETOUR de l'appareil ANDROÏD.
Appui bref sur cette icône :
⇒ affiche les possibilités de partage.
Suivre les instructions habituelles :

⇒ le texte du sketch sera envoyé par la méthode que vous avez choisie.
Très sympa pour envoyer le sketch par mail, à vous-même ou à un ami.
 
Maintenant nous allons attaquer les choses sérieuses et mettre les mains dans le cambouis !
 

 

 
Le but, à présent, est de disposer du bon logiciel pour cloner et modifier l'application de télécommande ANDROÏD.


 
L'application est élaborée avec MIT App Inventor 2, logiciel gratuit «en ligne».

 
MIT APP INVENTOR 2
 
App Inventor 2 est basée sur une interface graphique similaire à Scratch et à celle de StarLogo TNG (en). Grâce à son interface entièrement graphique et à l'absence totale de ligne de code, elle est particulièrement accessible même aux novices et à ceux qui ne sont pas familiers avec les langages de programmation. (voir le lexique en fin d'article 01)
 
Le fichier  graphique (programmation par blocs) de App Inventor 2 porte une extension «.aia».
À partir du programme sous forme de blocs, App Inventor 2 génère un fichier avec l'extension «.apk».
⇒ c'est ce fichier «.apk» qui constitue l'application téléchargeable et installable sur un appareil ANDROÏD.

 
Note :
Il existe une possibilité d'installer App Inventor 2 directement sur le PC.
Je ne vous la recommande pas du tout : sur PC le logiciel est très lent.
D'autre part, dans le cas de la présente application, il ne fonctionne carrément pas : la version PC de App Inventor ne supporte pas le volume des nombreuses images contenues dans cette application.
Il n'est même pas possible de charger le fichier «.aia» de la présente application dans App Inventor sur PC parce que le temps de chargement de ce fichier excède 60 secondes et que dans ce cas, App Inventor PC le rejette !
 

 
Créer un compte sur MIT App Inventor 2
Pour utiliser App Inventor 2  il faut tout d'abord créer un compte en se connectant à cette adresse : MIT App Inventor 2.
C'est gratuit.
 
Je vous laisse faire...
 

 
Les deux volets de App inventor...
 
La création (ou la modification) de l'application est à cheval sur deux volets.
Voici à quoi ressemblent ces deux volets (avec une application déjà créée).

 

DESIGNER
Permet de créer les objets et de régler tous leurs paramétrages d'apparences et de contenus

 

BLOCS
Chaque bouton, chaque écran, chaque image... est un objet auquel on peut associer un ou plusieurs événements : appui simple, appui long, glissement, focus...
Chaque événement (dans l'application installée) déclenchera l'exécution d'une séquence programmée.
 
 
 
Les IDENTITÉS de L'APPLICATION
 
Le fichier «TELECOMMANDE_16_CANAUX.aia» a été importé dans App Inventor 2 (cf. article précédent)
 
Dans la partie «DESIGNER» on va constater que l'application est caractérisée par 4 léments ayant chacun un sens particulier :
  • «AppName» ;
  • «Title» ;
  • «Icon» ;
  • «Save project as...»
  • ouvrir l'application  App Inventor 2 «en ligne» ;
  • clic sur «Projects» ;
  • clic sur «Import projects (.aia) from my computer» ;
  • choisir le fichier désiré et valider.
⇒ le projet est chargé. Il est maintenant modifiable.

Je ne vais pas vous imposer ici la démarche complète de création de l'application ni faire un cours sur App Inventor. Il existe de très bons tutoriels pour cela.
Le but de cette série d'articles est seulement de permettre à chacun de :
  • dupliquer l'application et lui donner un autre nom ;
  • modifier certains aspects comme l'apparence des boutons ou des fonds ;
  • installer l'application (télécommande) sur un ou plusieurs appareils ANDROÏD ;
 

 
Importation d'un fichier «.aia» dans l'application ANDROÏD « en ligne »
 
Pour modifier une application ANDROÏD, il faut disposer de son fichier avec l'extension «.aia».
Si on a créé soi-même l'application, le problème ne se pose pas puisque le projet est automatiquement enregistré dans votre espace personnel sur App Inventor 2 «en ligne».
Si on a téléchargé sur le PC un fichier «.aia» depuis internet, il faut importer ce fichier de projet dans App Inventor 2 «en ligne».
 
«Title» :
C'est le titre de l'écran.
Il apparaît en haut de l'écran d'accueil (sauf si on a spécifié le contraire dans le paramétrage).
S'il y a plusieurs écrans – comme c'est le cas dans cette application – chaque écran peut avoir un titre différent.
Ici j'ai volontairement choisi un titre distinct du nom de l'application.
«AppName» :
C'est un paramètre de «Screen1», l'écran principal de l'application.
C'est ce nom là qui apparaît sous l'icône de l'application une fois installée sur l'appareil ANDROÏD.
Ici «VILLAGE INDIEN #3»
Ce nom doit être assez court pour être affiché en entier sous son icône.
Il doit être descriptif de ce qu'on commande avec cette
application-là.
«Icon» :
C'est le nom du fichier de l'icône qui permettra d'identifier visuellement l'application et de la distinguer de ses semblables sur l'appareil ANDROÏD.
On verra ci-dessous comment remplacer l'icône en question si on veut avoir plusieurs télécommandes pour commander des ensembles HC-05+ARDUINO différents.
«Save project as...» :
IMPORTANT :
Si on veut disposer de plusieurs télécommandes, semblables mais distinctes, c'est en les enregistrant sous des noms différents.
Un nom de projet ⇔ une télécommande
 
En conclusion :
On peut cloner le projet «TELECOMMANDE_16_CANAUX» autant de fois qu'on veut pour obtenir autant de télécommandes distinctes que l'on veut.
Pour cela il suffit de :
  • changer «AppName» ;
  • changer «Title» ;
  • changer «Icon» ;
  • ... puis surtout d'enregistrer le projet sous un autre nom avec «Save project as...».
 
Changer le nom du projet
 
Avant d'effectuer la moindre modification, il est préférable d'enregistrer tout de suite le
nouveau projet sous son nouveau nom
avec «Save project as...».
«TELECOMMANDE_POUR_DEPOT», par exemple.
⇒ la nouvelle télécommande est créée et on peut travailler dessus.
En procédant de cette façon on évite de modifier accidentellement l'original.
 
Changer le nom de l'application «AppName»
 
Dans «Designer», clic sur «Screen1».
  • triple clic dans la fenêtre de saisie sous «AppName», où il est écrit pour l'instant VILLAGE INDIEN #3 :
  • le nom actuel apparaît sur fond bleu ;
  • taper le nouveau nom (si possible assez court pour être affiché en entier sous l'icône de l'application) ;
  • valider en cliquant n'importe où sur l'écran.
Changer le titre de l'application «Title»
 
La fenêtre de saisie contient le nom actuel de l'icône de l'application.
 
Ce titre est celui de l'écran d'accueil. Il n'apparaîtra QUE en haut de l'écran d'accueil.
Procéder de la même façon que ci-dessus ⇒ le nouveau titre («DEPOT» par exemple) remplacera l'ancien en haut de l'écran.
 
Changer l'icône de l'application
 
Il est important que chaque application affiche une icône caractéristique : c'est la carte d'identité visuelle de l'application.
Clic dans la fenêtre de saisie fait apparaître le menu déroulant qui permet de choisir l'icône dans la liste d'images utilisées par l'application.
 
A priori la nouvelle icône ne se trouve pas dans cette liste.
 
Clic sur «Upload File ...» pour aller chercher une autre icône.
 
Note :
 
Pour éviter de charger inutilement le fichier de l'application (et donc d'augmenter tout aussi inutilement sa taille) il est recommandé de choisir des icônes dont la taille ne dépasse pas 100 x 100 pixels.
 
 
 
Ouverture de la boite de dialogue «Upload File ...»
Clic sur parcourir pour accéder au gestionnaire de fichiers et choisir l'image adéquate.
 
 
 
L'application ANDROÏD de télécommande est maintenant dupliquée sous un nouveau nom.
Il faut maintenant Installer cette application dans l'appareil ANDROÏD.

 
QR codes
 
Au préalable nous aurons besoin d'installer sur l'appareil ANDROÏD (depuis Play Store) une application qui permet de lire les QR codes.
Il en existe de nombreuses. Elles ne se valent pas toutes.
Une que j'aime bien est QR Code Reader de Scan.





 
Télécharger l'application ANDROÏD dans l'appareil ANDROÏD, directement, par le QR code
 
 
 
Note :
À partir du moment où un projet a été enregistré une première fois, il n'est pas nécessaire de ré-enregistrer le projet après chaque série de modifications : App Inventor est un logiciel «en ligne» qui sauvegarde automatiquement les projets en temps réel.
 
 
 
 
Lorsqu'on valide notre choix dans le gestionnaire de fichiers on revient à la même boîte de dialogue qui affiche maintenant le nom du fichier choisi.
Clic sur «OK» ⇒ après quelques secondes la lumière de saisie (bandeau de droite de «Designer») affiche maintenant le nouveau nom de l'icône de l'application.
Clic sur «App (provide QR code for .apk)»
Après quelques dizaines de secondes l'écran du PC propose un QR Code.
Scanner ce code avec l'application QR Code Reader (par exemple).
L'appareil ANDROÏD va interpréter ce code pour aller chercher le fichier .apk sur le site de MIT App Inventor 2, le télécharger et l'installer.
Suivre les indications données par l'appareil ANDROÏD.
Il est difficile ici de décrire la façon de procéder de chaque appareil, pour installer puis lancer l'application. Cela dépend de la version du système ANDROÏD et de l'interface développée par le fabricant de l'appareil.
 
Clic sur «Build» ⇒ on a le choix entre :
  • télécharger directement sur le smartphone
    ou
  • sauvegarder le code .apk sur l'ordinateur.
 
 
 
Sauvegarder le code .apk sur l'ordinateur et installer l'application ANDROÏD
C'est une deuxième façon de procéder qui permet en plus de stocker le fichier « .apk » sur le PC (pratique pour le transmettre à vos camarades de club, par exemple).
 
Clic sur «App (save .apk to my Computer)»
Après quelques dizaines de secondes, le fichier « .apk » de l'application est prêt à être enregistré sur le PC. Il suffit de suivre les indications habituelles du gestionnaire de fichiers pour l'enregistrer à l'endroit désiré.
 
Ensuite – comme il est expliqué dans l'article «04-Côté HC-05» – on transfert le fichier « .apk » dans l'appareil ANDROÏD par un cordon USB et on installe l'application.

 
Voilà, c'est fait !
La nouvelle télécommande ANDROÏD apparaît sur l'appareil, avec sa nouvelle icône.
Elle est prête à démarrer.
Il ne reste plus qu'à la personnaliser... et à l'utiliser.
Créé en 2017
 
 
 
 
L'application ANDROÏD sur laquelle est articulée cette série d'articles est celle que j'utilise pour commander les éclairages de mon village indien.
Les fonds d'écran sont résolument « USA ».
Mais si votre réseau est d'un autre style, il serait sympa de disposer d'autres fonds d'écran.
 
Pour cela il faut aller « charcuter » un peu l'application ANDROÏD. Un peu seulement.
 
​1°– Aller dans MIT App Inventor 2 « en ligne » et ouvrir l'application ANDROÏD à modifier.
  • Clic sur « Screen1 » ⇒ accès à la liste des différents écrans de l'application ;
  • choisir « FOND_ECRAN_2 » ;
  • Clic sur « Screen1 » ⇒ accès à la liste des différents écrans de l'application ;
  • choisir « FOND_ECRAN_2 » ;
  • basculer sur« Blocs »
La partie gauche de l'écran montre les blocs de programmation de l'écran « FOND_ECRAN_2 ».
La partie droite montre la liste des 10 boutons qui portent les 10 images de fonds.
Un peu plus bas sur l'écran du PC se trouve une liste appelée
« Media ».
Elle contient la liste de toutes les images et de tous les sons utilisés par l'application, et en particulier la liste des 10 images numérotées
« Image_1.jpg » à « Image_10.jpg ».



 
TRES IMPORTANT à observer :
  • le nom des images commence par un « i » majuscule ;
  • l'extension est « .jpg » obligatoirement ;
  • l'extension « .jpg » est écrite en minuscule, tout aussi obligatoirement.
Pour faciliter le changement du jeu d'images et ne pas être obligé d'inscrire dans les blocs les vrais noms des photos choisies, les images s'appellent toutes « Image_x.jpg », « x » valant de 1 à 10.
Cela rend l'application un peu plus universelle, un peu plus « lisible » et facilement modifiable.
 
2°– Supprimer les images existantes
 
Les images doivent être supprimées de la liste une par une.
  • clic gauche sur le nom de l'image ;
  • clic gauche sur « Delete... »...
     
... c'est fait... suivante...
 
 
3°– Formater de nouvelles images
A partir de photos personnelles ou trouvées sur internet il faut constituer un jeu de 10 nouvelles images (maxi).
Pour éviter de trop faire gonfler l'application ANDROÏD – avec le risque de bloquer son fonctionnement – la taille des images doit se situer entre 50 ko et 200 ko grand maximum.
 
En fait les images doivent répondre à 3 critères :
  • taille inférieure à 200 ko ;
  • format 16:9 vertical (16:9 est le format des écrans des appareils ANDROÏD actuels) ;
  • « nom.extension » de la forme « Image_x.jpg »
 
Pour réduire la taille d'une image et changer son extension, il existe un logiciel « en ligne » que j'apprécie particulièrement.
Il s'agit de « Online Image Resizer ».
J'ai testé plusieurs logiciels de ce type. Celui-ci est le plus souple, le plus clair et le plus complet à mon sens. (Pub gratuite ! ).
 
Pour recadrer l'image au format 16:9, PICASA fait cela très bien et très facilement.
PAINT aussi, mais moins facilement.
Note sur le contenu des images :
 
Les libellés des boutons sont écrits en jaune.
Si l'image comporte des zones blanches ou jaune pâle, certains libellés risquent d'être difficilement lisibles.
C'est le cas sur l'image de gauche : « Tente du chef » n'est pas très visible, sauf si on fait glisser l'écran vers le haut.
On obtiendra un bien meilleur résultat avec un fond plus sombre tel que celui de droite : le jaune se détache mieux.
 
Il se peut aussi que vous ne soyez pas fan des fonds imagés.
Rien n'empêche alors de créer des fonds unis (comme celui de l'écran du tutoriel rapide).
 
  • 4°– Importer les nouvelles images dans l'application ANDROÏD
 
  • en bas de la liste des Medias, clic gauche sur le bouton « Upload Files... » ;
  • « Parcourir... » ;
  • choisir l'image nommée « Image_1.jpg » sur le PC ;
  • valider les deux fenêtres successives ;
⇒ la nouvelle image « Image_1.jpg » vient d'être ajoutée à la liste ;
  • procéder de la même façon pour les 9 autres images.
 
Par contre il y a tout de même une conséquence intéressante :
Si on a plusieurs applications sur le même appareil ANDROÏD, chaque application ANDROÏD gère sa propre base de données et donc les données des différentes applications n'interfèrent pas entre elles :
⇒ chaque application garde l'aspect de ses propres boutons ;
⇒ chaque application garde l'identifiant de son HC-05.
 
5°– Ré-installer l'application ANDROÏD
 
Il suffit maintenant de générer le fichier « .apk » de l'application ANDROÏD comme c'est décrit dans l'article
« 09-Générer le fichier .apk ».
Installer la nouvelle mouture de la télécommande sur l'appareil ANDROÏD et personnaliser le fond d'écran.
 
Note :
Si on modifie l'application ANDROÏD dans MIT App Inventor 2, mais sans changer son nom de projet (c'est le cas quand on modifie l'application sans la dupliquer), elle sera importée sur l'appareil ANDROÏD sous son nom déjà existant :
  • l'identifiant du HC-05 utilisé est alors conservé. Sympa !
  • l'aspect des boutons (allumés ou éteints) est lui aussi conservé.
     
... tout simplement parce que la base de données qui contient ces renseignements est attachée au nom du fichier informatique de l'application et qu'une réinstallation « par dessus » ne détruit pas cette base de données.
 
Merci ANDROÏD !
 
 
 
 
Dans « 10 - Installer d'autres fonds d'écran », nous avons vu comment remplacer un jeu d'images de fonds d'écran.
De la même façon il est possible de changer l'aspect des boutons.



 
Dans l'application ANDROÏD les boutons s'appellent respectivement « BtnGreen.png » et « BtnRed.png », et correspondent aux images ci-dessous :
 
Pour remplacer les boutons d'origine par d'autres, comme ceux-ci par exemple :
... il faut récupérer les images de ces boutons et les renommer respectivement « BtnGreen.png » et « BtnRed.png ».
 
Ensuite, comme on l'a fait pour les fonds d'écran :
  • supprimer « BtnGreen.png » et « BtnRed.png » de la liste des Medias ;
  • « Uploader » les nouveaux boutons ;
  • re-installer l'application ANDROÏD.
 
 
 
Attention :
 
Les nouveaux vont apparaître aplatis à l'écran.
Aller dans « Designer » et retoucher les valeurs de « Height » et « Width » de chaque bouton, pour arrondir leur aspect.
 
 
 
On n'est déjà plus dans de la modification «non intrusive » mais dans des manipulations de mise au point de l'application, et c'est un autre sport.
 
Pas très difficile. Juste un peu long.
 
Note :
De la même façon on peut changer les sons utilisés dans l'application.
 
 
 
 
Dans « 05-Côté appli ANDROÏD » nous avons vu comment introduire le code d'identification du HC-05.
 
Cet identifiant est inscrit dans la base de données de la télécommande ANDROÏD.
Il est donc mémorisé même après extinction de l'application, et même après l'installation d'une version modifiée de l'application.
 
Supposons maintenant que nous ayons besoin de changer cet identifiant :
  • soit parce qu'on associe un autre HC-05 à cette application là ;
  • soit parce qu'on veut provisoirement prendre la main sur un autre ensemble « HC-05 ⇒ ARDUINO » (celui qu'un camarade a installé sur son réseau) pour faire des essais ;
 
 
 
 ◄ voici à quoi ressemble l'écran d'accueil lors du premier démarrage.





 
Voici à quoi il ressemble lors de
tous les démarrage suivants ► 
 
 
 
En haut à gauche de l'écran d'accueil il y a un bouton rouge tout rond.

 
  • appui long sur ce bouton ⇒ l'écran de notification apparaît (comme on l'a vu dans l'article n°5), mais cette fois on n'a plus « (HC-05 non déclaré) » mais l'identifiant du HC-05 en cours.
 
  • taper le nouvel identifiant puis valider les deux boites de notification.
⇒ c'est fait : le nouvel identifiant apparaît à la place de l'ancien.
 
 
 
On peut donc à tout moment changer l'identifiant enregistré dans une application.
Cependant on ne peut pas changer l'identifiant si la liaison BLE est active : dans ce cas là, l'icône Bluetooth remplace le bouton rouge ce qui rend ce dernier volontairement inaccessible.

 
Note :
Il n'est pas nécessaire que l'ensemble « HC-05 ⇒ ARDUINO » correspondant soit sous tension pour opérer le changement de l'identifiant sur l'application ANDROÏD.
 
 
 
L'application «TELECOMMANDE_16_CANAUX» contient un tutoriel rapide.
Ci-dessous les liens vers un tutoriel imprimable et un peu plus complet, sous deux formes :
 
Ces tutoriels correspondent à un clone de l'application «TELECOMMANDE_16_CANAUX» que j'ai personnalisé pour un de mes camarades de BB1601.
C'est ce qui explique les images de fonds différentes.
 
Il existe aussi une petite video :
 (faut bien s'amuser un peu ! )
 
 
 
 
 
 
Peut-on ouvrir plusieurs applications BLE en même temps, sur le même appareil ANDROÏD ?
Oui.
Il y a certainement un nombre limite.
Pour essayer, j'ai laissé ouvertes trois applications de télécommandes sur le même appareil ANDROÏD et j'ai pu commander les trois HC-05, en passant d'une application à l'autre, sans perdre les liaisons BLE avec chacun des HC-05.
 
Peut-on dialoguer avec le même HC-05 à partir de 2 appareils ANDROÏD différents en même temps ?
Non, pas en même temps.
Si on veut prendre en main la télécommande d'un ensemble « HC-05 ⇒ ARDUINO » depuis un autre appareil, il faut d'abord couper la communication BLE correspondante sur le premier.
 
Puis-je prendre la main sur un ensemble « HC-05 ⇒ ARDUINO » d'un de mes camarades
sans être obligé d'installer « sa » version de l'application sur mon propre appareil ANDROÏD ?
 
Oui.
(Pour autant que l'ergonomie des deux applications soit la même).
Il suffit de changer provisoirement l'identifiant du HC-05.
Ceci est décrit plus haut dans «12 – Déclarer un autre HC-05».
 
Quelles sont les conséquences de la désinstallation puis ré-installation d'une application ?
  • on perd l'identifiant du HC-05 ;
  • on revient au fond d'écran d'origine ;
  • on perd les libellés des boutons ;
     
L'application redevient vierge de tout réglage personnalisé. C'est le retour aux réglages « usine ».
Par contre, quand on installe une version modifiée « par dessus » l'ancienne, tous les réglages sont conservés.
 
Peut-on changer l'identifiant du HC-05, même provisoirement ?
Oui.
Voir plus haut «12-Déclarer un autre HC-05».
 
Ce type de télécommande est-il adapté pour commander les éclairages de voitures voyageurs, par exemple ?
« possible » : oui ;
« adapté » : non.
En théorie on peut le faire, et ainsi concurrencer les décodeurs d'accessoires DCC.
En pratique il faut disposer de suffisamment de place pour loger dans le véhicule un ARDUINO NANO et un HC-05 — équivalents en moins cher d'un décodeur d'accessoires DCC — mais on n'utilisera qu'une ou deux des 16 sorties disponibles pour commander l'éclairage.
De plus cela implique d'avoir une application ANDROÏD par voiture !
Aïe !
⇒ c'est beaucoup de contraintes pour peu d'effet.
Ou alors on constitue une rame indivisible, avec une liaison électrique entre toutes les voitures (ouille ! la filasse !).
Un de mes camarades de club envisage de faire cela, mais à l'échelle 1:43.
 
Alternative :
Dans le cas de récepteurs mobiles embarqués (voitures, locos, wagons...), une télécommande par signal infrarouge codé (codes TV Sony par exemple) est bien plus efficace.
 
 
Peut-on faire la même chose avec un iphone ou un ipad ?
Non, pas aussi facilement.
Tout d'abord l'application ANDROÏD n'est pas portable sur IOS d'Apple.
Ensuite je ne connais aucun logiciel du genre de « MIT App Inventor » qui permette à des novices comme moi de créer facilement ce genre d'application sur IOS.
Un bon programmeur sur IOS qui n'a pas peur d'aligner les lignes de code peut sans aucun doute y arriver, mais l'application ainsi obtenue sera-t-elle aussi adaptable et modifiable par vos soins que celle proposée dans cette série d'articles ? J'en doute.
 
Il semble ce pendant qu'un appel soit fait par le MIT pour aider à transposer App Inventor sur IOS (l'info date de fin 2017).
Peut-être qu'un jour...
 
Peut-on envisager d'utiliser la WiFi plutôt que Bluetooth ?
Oui.
  • la portée de la télécommande serait bien supérieure ;
  • on pourrait commander les accessoires par internet ;
 
Mais...
  • il faut disposer d'une borne WiFi, et en exposition c'est peu probable ;
  • la programmation et la mise en œuvre sont bien plus complexe ;
  • le matériel est beaucoup plus coûteux ;
 
... et puis quel est l'intérêt de pouvoir commander par internet des accessoires qu'on a sous les yeux ?

 

 

© 2020 par Hubert SPERI – Créé avec Wix.com

WIX.png

Ce site ne contient aucun fichier avec des données personnelles et ne stocke aucune donnée personnelle lorsqu'on se connecte.

INYO_3.png
This site was designed with the
.com
website builder. Create your website today.
Start Now