Différences entre versions de « Projets:Application multimètre parlant »

De wikilab
(Page blanchie)
Balise : Blanchiment
Ligne 1 : Ligne 1 :
{{Infobox projet
 
|Description=Application Android qui permet d'accéder aux mesures d'un Multimètre OWON16 via liaison BLE. Compatible avec NVDA
 
|Porteur de projet=Ylc
 
|Contributeurs=Elektron, Ylc
 
|Fabmanager=Delphine
 
|Référent documentation=Delphine, Ylc
 
|Catégorie de handicap=Malvoyance
 
|Etat d'avancement=Réalisés
 
|Statut de la documentation=Complète
 
|Relecture de la documentation=Non vérifiée
 
|Techniques=BLE, appinventor, application
 
|Durée de fabrication=de 0 à 2 h
 
|Coût matériel=De 10 à 50 euros
 
|Niveau=Facile
 
|Licence=by-sa
 
|Projet date=2023-01-10
 
|Nom humanlab=Humanlab_MHK
 
}}
 
== Description du projet ==
 
===Brève description des fonctionnalité du programme sur smartphone énonçant vocalement les mesure faites par un multimètre OWON 16B ou 18B===
 
Les multimètres OWON 16B ou 18b ont la capacité d’émettre en Bluetooth les données affichées.
 
  
 
L’application OWON_v2 développée sous App Inventor se connecte donc automatiquement au multimètre lorsque celui-ci est allumé et que sa fonction Bluetooth est activée. Elle est destinée aux personnes mal-voyantes pour lesquelles la lecture de l’écran du multimètre est impossible.
 
 
 
Elle affiche les informations qui permettent cette connexion automatique.
 
Il s’agit de l’adresse mac du multimètre ainsi que les UUID du service et de sa caractéristique effectuant la notification des données en BLE.
 
 
 
L’écran affiche le détail des données transmises dans le flot de données BLE. Ce sont :
 
 
 
* Le nombre de décimales de la valeur mesurée,
 
* Si cette mesure est en dépassement de capacité  ou non
 
* La position du sélecteur ou le type de mesure effectué
 
* Si le mode « Hold » est activé ou non
 
* Si le mode relatif est activé ou non
 
* Si le mode « range auto » est activé ou non
 
* Si la batterie est faible ou non
 
* Le résultat signé de la mesure
 
 
 
La moitié inférieure de l’écran constitue un énorme bouton (accessible de ce fait facilement par une personne mal voyante).
 
 
 
Si on presse brièvement sur ce bouton on entend l’énoncé de la mesure en cours.
 
 
 
Si cette mesure est en dépassement de capacité, un message vocal le signalant se substitue à la valeur.
 
 
 
Si on presse plus longuement ce même bouton, la liste des champs listés ci-dessus sont énumérés avec la valeur de leur état actuel.
 
 
 
 
Tout changement de position du sélecteur sur le multimètre déclenche automatiquement l’énoncé du type de mesure. (millivolts, volts, ohms, hertz, ...etc).
 
 
 
Tout appui sur un bouton du multimètre modifiant le type de mesure ou son état provoque automatiquement l’annonce vocale de ce changement avec son nouvel état.
 
 
 
Si la batterie et faible un message d’alerte vocale se fait entendre automatiquement toutes les 5 minutes.
 
 
 
Nb : si par erreur on tourne le sélecteur dans le mauvais sens et qu’on éteint le multimètre, il suffit de le rallumer et de réactiver la fonction BLE pour que le smartphone s’y reconnecte automatiquement.
 
 
 
===Annexe 1 : Transmission BLE===
 
Le multimètre est identifié par son adresse MAC.  (Par exemple : A6:C0:80:90:2D:DB)
 
Il suffit de donc changer celle-ci pour utiliser un autre multimètre.
 
Par contre les identifiants de service et de notification sont toujours les mêmes.
 
C’est cet ensemble MAC / UUID service / UUID caractéristique qui permet la connexion automatique du smartphone au multimètre.
 
 
 
UUID du service :                                        0000fff0-0000-1000-8000-00805f9b34fb
 
 
UUID de la caractéristique de notification :  0000fff4-0000-1000-8000-00805f9b34fb
 
 
Les données émises par le multimètre sont constituées d’un ensemble de 6 octets au format Little endian par groupes de 2 octets avec dans chaque octet le bit de poids le plus faible à droite.
 
 
 
En voici la description :
 
 
 
[[File:Screenshot from 2024-10-04 10-15-39.png|700px|vignette|gauche|Description de service et de notification]]
 
<br clear=all>
 
 
{| class="wikitable"
 
|+ Description des données
 
|-
 
! pos. !!début !!  longueur!!Contenu 
 
|-
 
| Octet 0 : || 0 || 5 ||  Pos.sélecteur / type de mesure  partie 2
 
|-
 
| Octet 0 :  ||5 || 1 ||  Dépassement de capacité
 
|-
 
| Octet 0 :  || 6 || 2 || Nombre de décimales
 
|-
 
| Octet 1 : || 0 || 8 || Pos.sélecteur / type de mesure  partie 1
 
|-
 
| Octet 2 :|| 0 || 4 || inusité
 
|-
 
| Octet 2 || 4 || 1 || Batterie faible
 
|-
 
| Octet 2  || 5 || 1 || Range auto
 
|-
 
| Octet 2  || 6 || 1 || Mode relatif
 
|-
 
| Octet 2  || 7 || 1 || Mode "hold"
 
|-
 
| Octet 3 || 0 || 8 || inusité
 
|-
 
| Octet 4 || 0 || 8||  Valeur mesurée partie 2
 
|-
 
| Octet 5 || 0 || 1 || Signe
 
|-
 
| Octet 5 || 1 || 7 ||  Valeur mesurée partie 1
 
|}
 
 
 
Pour accéder au type de mesure, il faut donc intervertir les octet 0 et 1 afin d’obtenir un mot de 16 bits  en appliquant le calcul suivant : (octet1 * (2^8)) OR octet0     
 
 
 
Cela nous donnera un mot de 16 bits en Big endian (bit de poids le plus faible à droite) ainsi formé :
 
 
 
[[File:Screenshot from 2024-10-04 10-15-59.png|700px]]
 
 
 
{| class="wikitable"
 
|+ Type de mesure
 
|-
 
! Pos. début  !! Longueur !!  Contenu
 
|-
 
| 0 || 13 || Pos.sélecteur / type de mesure
 
|-
 
| 13 || 1 || Dépassement de capacité
 
|-
 
| 14|| 2|| Nbre de décimales
 
|}
 
 
 
On applique la même transformation aux octets 4 et 5 pour accéder à la valeur de la mesure.
 
 
 
(octet5 * (2^8)) OR octet4   
 
 
 
Ce qui nous donne le mot de 16 bits  suivant :
 
 
[[File:Screenshot from 2024-10-04 10-16-05.png|700px]]
 
 
 
{| class="wikitable"
 
|+ Valeur de la mesure
 
|-
 
! Pos. début  !! Longueur !!  Contenu
 
|-
 
! 0 !! 1 !! Signe
 
|-
 
| 1 || 15 || Valeur mesurée
 
|}
 
 
 
NB : Pour obtenir le signe, il faut tester la valeur de l’octet 5 avant transformation.
 
 
 
Si celui-ci est inférieur à 128, c’est une mesure positive. Sinon il faut multiplier par -1 le résultat.
 
 
 
Exemple : 
 
 
Si octet 5 < 128    valeur = ((octet5 * 2^8) OR octet4) / 10^NbDecimales
 
Sinon  valeur = ((((octet5 - 2^7) * 2^8) OR octet4) / 10^NbDecimales) * -1
 
 
===Annexe 2 : Nouveau multimètre===
 
 
Si c’est la première connexion au multimètre ou si on a changé d’appareil, l’application ne trouvant pas l’appareil par défaut propose après sa tentative de connexion avortée de choisir le nouvel appareil en faisant un SCAN des dispositifs accessibles en BLE.
 
 
 
Il faut allumer le multimètre et activer sa fonction Bluetooth avant d’appuyer sur le bouton SCAN.
 
 
 
Dans la liste proposée, il faut cliquer ensuite sur l’adresse MAC correspondant au multimètre puis d’appuyer sur le bouton CONNEXION.
 
Le multimètre peut être reconnu par son nom qui contient par défaut les lettres « BDM ».
 
 
 
Si l’appareil n’apparaît pas immédiatement dans la listes des dispositifs BLE, il faut faire STOP SCAN puis relancer le scan en appuyant à nouveau sur le bouton SCAN.
 
 
 
Ce nouvel appareil est alors mémorisé et la connexion à celui-ci se fera par la suite de façon toujours automatique sans avoir à refaire de SCAN.
 
 
== Cahier des charges ==
 
* Rendre un multimètre parlant pour qu'une personne malvoyante puisse établir des mesures
 
 
== Analyse de l'existant et liens utiles==
 
 
== Matériel ==
 
* Multimètre Owon 16B ou 18B
 
* Téléphone Android
 
 
==Outils==
 
 
==Coût==
 
* Gratuit
 
 
==Fichiers source==
 
[[Media:OWON_v2pdf.pdf|Télécharger le pdf de la documentation figurant sur cette page]]
 
 
 
[[Media:OWON_V2_aia_apk.zip|Télécharger le fichier .aia et .apk ]]
 
 
 
Le fichier .aia est le fichier source pour ouvrir le projet dans Appinventor
 
 
 
Le fichier .apk est le fichier pour installer l'application
 
 
==Retours utilisateurs==
 

Version du 4 novembre 2024 à 10:39