French Utiliser l'application Android Arduino BlueControl pour gérer des applications B4R

klaus

Expert
Licensed User
Longtime User
J'avais aussi vu que le programme se plante, si l'on presse sur un bouton avant que les deux appareils ne soient connectés.
Mais je n'avais pas encore pris le temps de corriger.
La même chose se produit aussi si on déplace le curseur.
Je propose donc:
- d'agrandir le Panel pnlButtons
- de placer les deux Labels lblMotorSpeed0 et lblMotorSpeed ainsi que skbMotorSpeed sur pnlButtons.
- de placer un Panel, pnlHide semi-transparent et visible, au dessus de pnlButtons.
- d'ajouter un événement Click pour pnlHide, qui 'consomme les événements des Views situées derrière.
- d'ajouter pnlHide.Visible = False sous Status = "connected" et pnlHide.Visible = True sous Status = "disconnected".
Le fait de mettre pnlHide au dessus de pnlButtons avec une routine événement permet de laisser pnlButtons visible et de désactiver les événements des Views qui se trouvent derrière.

Dans ta proposition tu changes la propriété pnlButtons.Visible et aussi la proriété pnlButtons.Enabled.
Lorsqu'un View a été mise sur Visible = False il n'est pas nécessaire de mettre Enabled = False, car les événements pour une View invisible sont automatiquement désactivés.
Visible = False et Enabled = False n'a à mon avis pas de sens.
Mais, Visible = True et Enabled = False a un sens, celui de laisser la View visible mais de désactiver les événements.
C'est ce que je fais indirectement avec pnlHide.
Car pnlHide.Visible = True revient à mettre toutes les Views, qui se situent derrière, à Enabled = False, mais avec une seule View.
Ceci permet de voir les fonctions possibles, mais inactives.
En général, je préfère de ne mettre à disposition de l'utilisateur que les fonctions actices et de cacher celles qui ne sont pas disponibles en fonction de l'état dans lequel se trouve le programme.
Mais, dans ce cas ci, je préfère que l'utilsatateur voie ce qui est à disposition mais pas encore actif, sinon il pourrait se poser la question sur l'utilité du programme.

Ci-joint, une nouvelle version, je crois que j'y ai incorporé toutes tes suggestions.

Cordialement.
Klaus
 

Attachments

  • HC05DCMotorB4A.zip
    11.7 KB · Views: 156

Marc DANIEL

Well-Known Member
Licensed User
Bonjour et merci Klaus. J'ai bien lu et compris tes arguments. Ton efficacité reste celle d'un pro. Excellent journée. Bien cordialement.
Marc
 

klaus

Expert
Licensed User
Longtime User
Salut Marc,
J'ai pas mal travaillé aujourd'hui sur le même sujet.
Ci joint un nouveau projet, qui fonctionne aussi sur mon smartphone avec Android 11 et qui est base sur ce projet de Erel.
Peux-tu s.t.p. l'essayer pour vérifier s'il fonctionne aussi chez toi?.
Le programme B4R n'a pas changé, en principe, à moins que j'y ai rajouté des conneries, ce qui, chez moi, n'est pas impossible.
En te remerciant par avance et cordialement.

Ce sera cette version qui sera publiée dans le livret et je vais réécrire les deux autres HC-05 projets, du livret, en conséquence.

Klaus
 

Attachments

  • BluetoothTest.zip
    11.2 KB · Views: 148

Marc DANIEL

Well-Known Member
Licensed User
Bonsoir Klaus,

Je viens d'essayer ton nouveau projet. Tout fonctionne bien. Aucun problème avec mon vieux Smartphone (Android 9). Il me semble juste que l'appairage a pris plus de temps et semblait plus compliqué qu'avec ta version précédente et ensuite le moteur a fonctionné sans différence par rapport au projet précédent.

Un détail que j'ai oublié de te communiquer et qui se vérifie avec les deux programmes, lors de la première utilisation, le moteur ne réagit pas à la première utilisation du bouton ON/OFF, il démarre avec le bouton "Direction" mais ensuite le moteur obéit bien aux "ordres" donnés par les deux boutons.

C'est un peu comme s'il attendait une initialisation ???

Mais lorsque l'on se reconnecte une autre fois, il semble que cette fois-ci, le bouton "ON" lance bien le moteur. Il faut que je vérifie si ce phénomène se produit seulement lors de la première connexion.

Quand on quitte l'application sans arrêter le moteur, il continue à tourner mais ça faisait la même chose avec l'application précédente et aussi avec le variateur de lumière LEDDimmer, la LED restait allumée après déconnexion jusqu'à un RESET ou le débranchement de la carte Arduino.

Restant à ta disposition,
Cordialement.
Marc
 
Last edited:

klaus

Expert
Licensed User
Longtime User
1. Le problème de la lenteur de la connexion vient du fait que pour mon smartphone le programme doit attendre la fin du temps pour la recherche d'appareils à proximité.
Pour accélérer le processus tu peux supprimer l'apostrophe dans cette ligne pour la rendre active Admin.CancelDiscovery :
B4X:
'unfortunately we must wait for the end of discovery
'with the call below, my device does not connect.
Admin.CancelDiscovery
Cette ligne stoppe la recherche dès que le HC-05 est trouvé, ce qui fonctionne sur ma tablette.
Mais, mon smartphone avec Android 11 plante avec cette ligne !?
Je vais envoyer les deux programmes à Erel pour savoir s'il y une solution B4A ou si c'est une erreur dans Android ou certains appareils.
Pour le moment j'ai mis un test. Si la version SDK est <= 24 (Android 11) on appelle Admin.CancelDiscovery sinon on attend.

2. Résolu, ça vient du fait qu'au démarrage les bornes 2 et 7 du L293D, qui définissent la direction sont à 0, ce qui correspond à moteur arrêté.
Dans le programme B4R j'ai ajouté deux lignes qui définissent une direction au départ.

3. J'ai ajouté dans Activity_Pause l'arrêt du moteur.

Ce qui est intéressant dans nos échanges c'est que, actuellement, moi je vois les programmes en tant que développeur avec la vue principale que la communication fonctionne et que les différentes fonctions soient bien transmises.
Toi, tu les vois en tant qu'utilisateur avec la vue principale leur fonctionnalité logique, conviviale et cohérente.
Je n'ai pas encore changé me casquette développeur par celle d'utilisateur, ce que fais habituellement.

Ci-joint, les dernières versions. Il faut absolument que je commande un L293D pour pouvoir tester ces programmes de manière concrète.

Cordialement.
Klaus
 

Attachments

  • HC05DCMotorBAR.zip
    1.1 KB · Views: 145
  • BluetoothTest1.zip
    11.4 KB · Views: 150

Marc DANIEL

Well-Known Member
Licensed User
OK Klaus, je vais effectuer des essais avec tes nouvelles modifs !

J'ai des L293D à revendre ayant commandé par erreur deux cartes de commande pour 4 moteurs dont je n'avais pas besoin et sur lesquelles j'ai pu extraire 4 modules L293D heureusement non soudés, juste emboîtés... Je pourrai essayer de t'en poster un ou deux ? (J'ai voulu les retourner mais j'avais balancé les emballages ...)

L293Dx2.jpg

En fait ces cartes (shields) s'emboîtent exactement sur une carte ARDUINO UNO mais je n'ai pas trouvé les modes d'emploi précis et surtout en français ...
 

Marc DANIEL

Well-Known Member
Licensed User
Montage.jpg


J'ai refait ton montage en supprimant tous mes anciens branchements, sur une demi-breadboard cette fois-ci
 
Top