Projets:Application multimètre parlant

De wikilab
Application multimètre parlant

400pxLa propriété « A image principale » (comme le type de page) avec la valeur d’entrée « File: » contient des caractères non valides ou est incomplète, et donc peut provoquer des résultats inattendus lors d’une requête ou d’un processus d’annotation.

Informations
Description Application pour PC en Python 3 qui permet d'accéder aux mesures d'un Multimètre OWON16 via liaison BLE. Compatible avec NVDA
Catégorie Malvoyance
Etat d'avancement En cours
Techniques BLE, Python"Python" n’est pas dans la liste (android, appinventor, arduino, BLE, bluetooth, bricolage, couture, découpe laser, esp, fixation, ...) de valeurs autorisées pour la propriété "A techniques".
Durée de fabrication
Coût matériel De 10 à 50 euros
Niveau
Licence by-sa
Date de création 2023-01-10
Équipe
Porteur de projet Francois LB
Contributeurs Elektron, Francois LB, Sébastien (Atelier partagé fablab Betton), Ylc
Fabmanager Delphine
Référent documentation Delphine, Francois LB
Partenaires: L'atelier partagé (Betton)
Nom humanlab Humanlab_MHK
Documentation
Statut de la documentation Partielle
Relecture de la documentation Non vérifiée

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 :

Ecran affichant le détail des données transmises
  • 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 :


Description de service et de notification


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é :


Screenshot from 2024-10-04 10-15-59.png


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 :

Screenshot from 2024-10-04 10-16-05.png


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

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