Différences entre versions de « Projets:Read For Me V3 »

De wikiup
Sauter à la navigation Sauter à la recherche
Ligne 10 : Ligne 10 :
  
 
* Puis développé lors de l'événement "Focus Vision" : [[Projets:Read For Me V2|Read_For_Me_V2]]
 
* Puis développé lors de l'événement "Focus Vision" : [[Projets:Read For Me V2|Read_For_Me_V2]]
 +
 +
[[File:RFM3_V2.jpg | 700px | Photo: Prototype Read_For_Me version 2 / Focus Vision]]
  
 
=== Version actuelle ===
 
=== Version actuelle ===
  
 
Le code est disponible sur [https://github.com/myhumankit/PiTextReader github].
 
Le code est disponible sur [https://github.com/myhumankit/PiTextReader github].
 +
 +
=== Objectif du Fabrikarium ===
 +
 +
 +
1. Design
 +
* Revoir le design pour augmenter la stabilité
 +
 +
2. Fonctionnalités
 +
* Améliorer le séquencement
 +
* Améliorer l'OCR (multicolomne)
 +
* Rendre fonctionnel le bouton On/Off
 +
* Ajouter un haut parleur
 +
 +
3. Performance
 +
* Améliorer les performances
 +
 +
Autres pistes et questions :
 +
* Détection automatique de l'orientation du texte (portrait/paysage)
  
 
== Cahier des charges ==
 
== Cahier des charges ==
Ligne 24 : Ligne 44 :
  
 
== Equipe (Porteur de projet et contributeurs) ==
 
== Equipe (Porteur de projet et contributeurs) ==
 +
 +
[[File:RFM3_equipe.jpg|700px|Photo de l'équipe]]
  
 
* Porteurs du projet : François, Laurence
 
* Porteurs du projet : François, Laurence
Ligne 30 : Ligne 52 :
 
* Responsable de documentation : Laurent
 
* Responsable de documentation : Laurent
  
== Matériel nécessaire ==
+
== Matériel nécessaire et coût==
  
* 1 Raspberry pi 4 modèle B
+
* 1 Raspberry pi 4 ou 3 modèle B
 
* 1 caméra pour Raspberry Pi
 
* 1 caméra pour Raspberry Pi
 +
* 1 batterie 5V USB avec deux sorties USB
 +
* du ruban LED RVB addressable
 
* 1 enceinte
 
* 1 enceinte
* 1 batterie 5V USB avec deux sorties USB
+
* 1 circuit d'amplification
 
* CP peuplier
 
* CP peuplier
 
* filament PLA pour impression 3d
 
* filament PLA pour impression 3d
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
!scope="col"| Référence
 +
!scope="col"| coût unitaire
 +
!scope="col"| nombre
 +
!scope="col"| coût
 +
!scope="col"| liens
 +
|-
 +
| Raspberry pi 4
 +
| 60€
 +
| 1
 +
| 60€
 +
| [https://www.kubii.fr/cartes-raspberry-pi/2771-nouveau-raspberry-pi-4-modele-b-2gb-0765756931175.html kubii.fr]
 +
|-
 +
| Carte microSD 16Go
 +
| 10€
 +
| 1
 +
| 10€
 +
|
 +
|-
 +
| Module caméra Raspberry pi
 +
| 27,90€
 +
| 1
 +
| 27,90€
 +
| [https://www.kubii.fr/cameras-accessoires/1653-module-camera-v2-8mp-kubii-5060214370240.html kubii.fr]
 +
|-
 +
| Nappe Cable pour module caméra
 +
| 1€
 +
| 1
 +
| 1€
 +
| [https://www.kubii.fr/site-entier/432-nappe-cable-pour-raspberry-pi-camera-kubii-3272496001411.html#/30-dimensions-610mm_x_16mm_24_x_0_6 kubii.fr]
 +
|-
 +
| Ampli audio mono
 +
| 14,90€
 +
| 1
 +
| 14,90€
 +
| [https://www.gotronic.fr/art-module-ampli-audio-gravity-dfr0064-19310.htm gotronic] [https://wiki.dfrobot.com/386AMP_audio_amplifier_Module__SKU__DFR0064_ doc]
 +
|-
 +
| Haut parleur 80mm 5W 4ohms
 +
| 10,00€
 +
| 1
 +
| 10,00€
 +
|
 +
|-
 +
| Batterie portable USB 2 ports
 +
| 20€
 +
| 1
 +
| 20€
 +
|
 +
|-
 +
| Boutons poussoirs
 +
| 0.5€
 +
| 11
 +
| 5.5€
 +
|
 +
|-
 +
| Ruban led 2 x 8cm
 +
| 5€
 +
| 1
 +
| 5€
 +
|
 +
|-
 +
| Prise jack 3.5mm stéréo
 +
| 1€
 +
| 1
 +
| 1€
 +
|
 +
|-
 +
| Mini câble USB-A/USB-C
 +
| 2€
 +
| 1
 +
| 2€
 +
|
 +
|}
 +
 +
* Stripboard pour fixer les boutons poussoir au boitier.
 +
* Quelques petites vis pour fixer le Raspi au boitier
  
 
==Outils nécessaires==
 
==Outils nécessaires==
 +
 +
* Imprimante 3d
 +
* Découpeuse laser
 +
* Fer à souder
  
 
==Coût==
 
==Coût==
Ligne 46 : Ligne 152 :
  
 
==Fichiers source==
 
==Fichiers source==
 +
 +
===Sources + fichiers machine===
 +
 +
 +
 +
===Remarque===
 +
 +
Trois logiciels propriétaires on été utilisés pour les deux prototypes.
 +
* <code>Catia</code> pour le prototype 1
 +
* <code>Sketchup</code> pour le prototype 2
 +
* <code>Solidworks</code> pour les boutons
 +
 +
Les fichiers de sortie sont exploitables sans accès à ces logiciels (dxf pour les découpes et stl pour les impressions) mais c'est plus compliqué avec les fichier sources natifs de chaque logiciel.
 +
 +
Catia et solidworks peuvent produire des step, qui ne sont pas maillés contrairement au stl, mais qui ne permettent pas d'accéder aux "primitives" de modélisation.
  
 
===Prototype 1===
 
===Prototype 1===
  
====Fichiers découpés / usiné pendant le fabrikarium====
+
* Découpe CP 3mm pour le boitier (fichier <code>RFM_proto1_decoupe_boitier.dxf|svg</code>)
 +
[[File:RFM3_proto1_decoupe.png|700px|Prototype 1 : fichier de découpe]]
 +
* Impression bras support de caméra en deux parties
 +
[[File:RFM3_proto1_impression.png|700px|Prototype 1 : impressions]]
  
====Sources====
 
  
 
===Prototype 2===
 
===Prototype 2===
  
====Fichiers découpés / usiné pendant le fabrikarium====
+
* Découpe CP 3mm pour le boitier (fichier <code>RFM_proto2_decoupe_CP_3mm.svg</code>)
 +
[[File:RFM3_proto2_decoupe.png|700px|Prototype 2 : fichier de découpe]]
 +
* Impression entretoises et support de caméra
 +
[[File:RFM3_proto2_impression.png|700px|Prototype 2 : impressions]]
  
====Sources====
 
  
 
==Etapes de fabrication pas à pas==
 
==Etapes de fabrication pas à pas==
 +
 +
===Prototype 1===
 +
 +
'''1.Découpe et impression des pièces'''
 +
Voir les fichiers source plus haut.
 +
 +
'''2.Assemblage du boîtier'''
 +
 +
Pour ce prototype, les différents éléments sont fixés au pistolet à colle.
 +
 +
[[File:RFM3_proto1_collage1.jpg|345px|Photo: collage du boitier]][[File:RFM3_proto1_collage2.jpg|345px|Photo: collage du boitier]]
 +
 +
===Prototype 2===
 +
 +
'''1.Découpe et impression des pièces'''
 +
Voir les fichiers sources plus haut.
 +
 +
[[File:RFM3_proto2_hardware.jpg|700px|Photo: Impressions et quincaillerie pour le prototype2]]
 +
 +
'''2.Assemblage du boîtier'''
 +
 +
Pour ce prototype, les différents éléments sont fixés à la superglue, et maintenus en place avec du ruban adhésif de peinture pendant la prise de la colle.
 +
 +
[[File:RFM3_proto2_collage.jpg|700px|Photo: Collage du boitier pour le prototype 2]]
  
 
==Durée de fabrication du prototype final==
 
==Durée de fabrication du prototype final==
Ligne 77 : Ligne 226 :
 
==== Prototype 1 ====
 
==== Prototype 1 ====
  
[hoto
+
[[File:RFM3_proto1_final.jpg | 700px |Photo du prototype 1]]
 +
 
 
==== Prototype 2 ====
 
==== Prototype 2 ====
 +
[[File:RFM3_proto2_final1.jpg | 345px |Photo du prototype 2]] [[File:RFM3_proto2_final2.jpg | 345px |Photo du prototype 2]]
 +
 +
 +
[[File:RFM3_proto2_anim.gif| 700px | Dépliage du prototype 2]]
  
 
===Hardware===
 
===Hardware===
  
====Changement de capteur====
+
 
 +
====Changement de capteur====  
 +
<span style="color:#FFFFFF; background:#00C000; padding:5px"> Testé et fonctionnel</span>
  
 
Il y a des problème de qualité optique avec le capteur actuel pour laquelle une partie de la page est floue.
 
Il y a des problème de qualité optique avec le capteur actuel pour laquelle une partie de la page est floue.
 
On essaie donc une nouvelle raspicam version 2.1 avec 8 megapixels au lieu de 5, et les résultats semblent effectivement bien meilleurs.
 
On essaie donc une nouvelle raspicam version 2.1 avec 8 megapixels au lieu de 5, et les résultats semblent effectivement bien meilleurs.
  
====Éclairage leds====
+
====Éclairage leds====  
 +
<span style="color:#FFFFFF; background:#00C000; padding:5px"> Testé et fonctionnel</span>
 +
 
 +
Des leds avaient été ajoutée à la V1 puis retirées pour la V2. Elles semblent néanmoins indispensable si la lumière ambiante est insuffisante ou pour éviter les ombres projetées si elle est trop importante.
 +
 
 +
Pour le Fabrikarium, nous disposons de ruban de leds RVB addressables. L'utilisation de leds addressables complexifie un peu la partie logicielle mais simplifie le circuit puisqu'elle ne necessite pas de circuit supplémentaire pour gérer la luminosité.
 +
 
 +
Nous nous appuyons sur la documentation de NeoPixels sur Raspberry Pi par [https://learn.adafruit.com/neopixels-on-raspberry-pi/python-usage Adafruit].
  
====Haut parleur et prise jack 3.5mm====
+
Après une série d'essais, il semble que seul la broche <code>GPIO21</code> permet de faire fonctionner le ruban.
  
 +
====Haut parleur et prise jack 3.5mm====
 +
<span style="color:#FFFFFF; background:#FFA500; padding:5px">partiellement fonctionnel</span>
 +
 +
La version 1 avait un haut parleur intégré.
 +
La version 2 un haut parleur amplifié externe relié directement au Raspi par un jack stéréo 3,5mm ce qui rends la conception électronique beaucoup plus simple. Pour cette version 3 nous souhaitons donner le choix à l'utilisateur.
 +
 +
Il y a donc un haut parleur interne, qui est désactivé lorsqu'un cable est connecté sur la prise jack du boitier.
 +
 +
[https://www.cuidevices.com/blog/understanding-audio-jack-switches-and-schematics Documentation pour faire un by pass avec un jack]
 +
 +
====Fabrication d'une rallong pour la nappe/câble du capteur====
 +
<span style="color:#FFFFFF; background:#CC0000; padding:5px">Non fonctionnel</span>
 +
 +
Malgré un courage, une abnégation et une dextérité hors norme, Jean-Jacques n'est pas parvenu à réaliser une rallonge fonctionnelle pour la nappe du capteur.
 +
 +
[[File:RFM3_nappe1.jpg|345px|Photo: Récupération d'un connecteur de nappe sur un Raspi]][[File:RFM3_nappe2.jpg|345px|Photo: Connexion de la rallonge]]
  
 
===Software===
 
===Software===
  
 
==== Bouton On/Off ====
 
==== Bouton On/Off ====
 +
<span style="color:#FFFFFF; background:#00C000; padding:5px"> Testé et fonctionnel</span>
  
 
En ajoutant une ligne dans le fichier de configuration du Raspi, il est possible de configurer la broche GPIO3 comme bouton On/Off d'un ordinateur. Cela pose cependant un pblème : si l'extinction est gérée directement par le Raspi, on ne peut pas prévenir les fausses manipulations, ni même prévenir l'utilisateur que le Raspi est effectivement éteint.
 
En ajoutant une ligne dans le fichier de configuration du Raspi, il est possible de configurer la broche GPIO3 comme bouton On/Off d'un ordinateur. Cela pose cependant un pblème : si l'extinction est gérée directement par le Raspi, on ne peut pas prévenir les fausses manipulations, ni même prévenir l'utilisateur que le Raspi est effectivement éteint.
  
L'astuce est donc de conserver la même broche que celle qui permet d'allumer le Raspi (<tt>GPIO3</tt>) pour appeler une fonction dans <tt>PiTextReader</tt>. Au premier appui, on peut donc demander à l'utilisateur d'appuyer une seconde fois pour confirmer l'extinction.
+
L'astuce est donc de conserver la même broche que celle qui permet d'allumer le Raspi (<code>GPIO3</code>) pour appeler une fonction dans <code>PiTextReader</code>. Au premier appui, on peut donc demander à l'utilisateur d'appuyer une seconde fois pour confirmer l'extinction.
  
 
==== Pico TTs ====
 
==== Pico TTs ====
 +
<span style="color:#FFFFFF; background:#00C000; padding:5px"> Testé et fonctionnel</span>
  
Transformer un fichier texte <tt>text.txt</tt> en fichier audio <tt>text.wav</tt>
+
Transformer un fichier texte <code>text.txt</code> en fichier audio <code>text.wav</code>
 
<pre>
 
<pre>
 
/usr/bin/pico2wave -l fr-FR -w /tmp/text.wav < /tmp/text.txt
 
/usr/bin/pico2wave -l fr-FR -w /tmp/text.wav < /tmp/text.txt
Ligne 108 : Ligne 289 :
  
 
====Nettoyage du script====
 
====Nettoyage du script====
 +
<span style="color:#FFFFFF; background:#00C000; padding:5px"> Testé et fonctionnel</span>
  
Le script python principale est <tt>pitextreader.py</tt>. Afin de faciliter les futurs développements et deboggage, il est décidé de le rendre plus modulaire.
+
Le script python principale est <code>pitextreader.py</code>. Afin de faciliter les futurs développements et deboggage, il est décidé de le rendre plus modulaire.
  
 
===== Séparation en plusieurs fichiers =====
 
===== Séparation en plusieurs fichiers =====
  
* <tt>pitextreader.py</tt> est toujours le script principal, mais il ne contient plus qu'une fonction qui fait le lien entre l'application et les boutons du raspberry pi.
+
* <code>pitextreader.py</code> est toujours le script principal, mais il ne contient plus qu'une fonction qui fait le lien entre l'application et les boutons du raspberry pi.
* <tt>app.py<tt> contient le coeur du logiciel, c'est-à-dire l'objet <tt>settings</tt> qui gère les paramètres de lecture et d'enregistrement, et l'association entre les broches du raspberry pi et les fonctions de callback
+
* <code>app.py</code> contient le coeur du logiciel, c'est-à-dire l'objet <code>settings</code> qui gère les paramètres de lecture et d'enregistrement, et l'association entre les broches du raspberry pi et les fonctions de callback
* <tt>constantes.py<tt> contient toute la configuration :
+
* <code>constantes.py</code> contient toute la configuration :
 
** numéro des broches du GPIO
 
** numéro des broches du GPIO
 
** liens vers les dossiers et fichiers (sons et fichier de sauvegarde de la configuration)
 
** liens vers les dossiers et fichiers (sons et fichier de sauvegarde de la configuration)
 
** toutes les commandes bash au format texte comme par exemple les commandes pour faire déclencher la prise de vue ou l'OCR.
 
** toutes les commandes bash au format texte comme par exemple les commandes pour faire déclencher la prise de vue ou l'OCR.
* <tt>logger.py</tt> contient les outils de logs qui permettent d'écrire la sortie standard en même temps dans un fichier et dans la console
+
* <code>logger.py</code> contient les outils de logs qui permettent d'écrire la sortie standard en même temps dans un fichier et dans la console
* <tt>reader.py</tt> contient les fonctions de prise de vue et de traitement des données jusqu'à l'obtention d'un fichier audio.
+
* <code>reader.py</code> contient les fonctions de prise de vue et de traitement des données jusqu'à l'obtention d'un fichier audio.
* <tt>player.py</tt> contient un objet permettant le lire les fichiers audio et de modifier les paramètres de lecture en direct via <tt>mplayer</tt>
+
* <code>player.py</code> contient un objet permettant le lire les fichiers audio et de modifier les paramètres de lecture en direct via <code>mplayer</code>
 +
 
 +
==Conclusion du Fabrikarium==
  
 
==Journal de bord==
 
==Journal de bord==

Version du 28 octobre 2021 à 13:59

Description du projet

Le but est de créer une machine à lire capable d’acquérir le texte à partir d'une capture d'image et de le lire au moyen d’une synthèse vocale.

Historique du projet

  • Puis développé lors de l'événement "Focus Vision" : Read_For_Me_V2

Photo: Prototype Read_For_Me version 2 / Focus Vision

Version actuelle

Le code est disponible sur github.

Objectif du Fabrikarium

1. Design

  • Revoir le design pour augmenter la stabilité

2. Fonctionnalités

  • Améliorer le séquencement
  • Améliorer l'OCR (multicolomne)
  • Rendre fonctionnel le bouton On/Off
  • Ajouter un haut parleur

3. Performance

  • Améliorer les performances

Autres pistes et questions :

  • Détection automatique de l'orientation du texte (portrait/paysage)

Cahier des charges

Voir le cahier des charges de la V1

Analyse de l'existant

Voir l'analyse de l'existant de la V1

Equipe (Porteur de projet et contributeurs)

Photo de l'équipe

  • Porteurs du projet : François, Laurence
  • Concepteurs/contributeurs : Jean-Jacques, Audrey, Roger, Marie, Déborah, Quentin, Florian, Rémi
  • Fabmanager référent :
  • Responsable de documentation : Laurent

Matériel nécessaire et coût

  • 1 Raspberry pi 4 ou 3 modèle B
  • 1 caméra pour Raspberry Pi
  • 1 batterie 5V USB avec deux sorties USB
  • du ruban LED RVB addressable
  • 1 enceinte
  • 1 circuit d'amplification
  • CP peuplier
  • filament PLA pour impression 3d
Référence coût unitaire nombre coût liens
Raspberry pi 4 60€ 1 60€ kubii.fr
Carte microSD 16Go 10€ 1 10€
Module caméra Raspberry pi 27,90€ 1 27,90€ kubii.fr
Nappe Cable pour module caméra 1€ 1 1€ kubii.fr
Ampli audio mono 14,90€ 1 14,90€ gotronic doc
Haut parleur 80mm 5W 4ohms 10,00€ 1 10,00€
Batterie portable USB 2 ports 20€ 1 20€
Boutons poussoirs 0.5€ 11 5.5€
Ruban led 2 x 8cm 5€ 1 5€
Prise jack 3.5mm stéréo 1€ 1 1€
Mini câble USB-A/USB-C 2€ 1 2€
  • Stripboard pour fixer les boutons poussoir au boitier.
  • Quelques petites vis pour fixer le Raspi au boitier

Outils nécessaires

  • Imprimante 3d
  • Découpeuse laser
  • Fer à souder

Coût

Délai estimé

Fichiers source

Sources + fichiers machine

Remarque

Trois logiciels propriétaires on été utilisés pour les deux prototypes.

  • Catia pour le prototype 1
  • Sketchup pour le prototype 2
  • Solidworks pour les boutons

Les fichiers de sortie sont exploitables sans accès à ces logiciels (dxf pour les découpes et stl pour les impressions) mais c'est plus compliqué avec les fichier sources natifs de chaque logiciel.

Catia et solidworks peuvent produire des step, qui ne sont pas maillés contrairement au stl, mais qui ne permettent pas d'accéder aux "primitives" de modélisation.

Prototype 1

  • Découpe CP 3mm pour le boitier (fichier RFM_proto1_decoupe_boitier.dxf|svg)

Prototype 1 : fichier de découpe

  • Impression bras support de caméra en deux parties

Prototype 1 : impressions


Prototype 2

  • Découpe CP 3mm pour le boitier (fichier RFM_proto2_decoupe_CP_3mm.svg)

Prototype 2 : fichier de découpe

  • Impression entretoises et support de caméra

Prototype 2 : impressions


Etapes de fabrication pas à pas

Prototype 1

1.Découpe et impression des pièces Voir les fichiers source plus haut.

2.Assemblage du boîtier

Pour ce prototype, les différents éléments sont fixés au pistolet à colle.

Photo: collage du boitierPhoto: collage du boitier

Prototype 2

1.Découpe et impression des pièces Voir les fichiers sources plus haut.

Photo: Impressions et quincaillerie pour le prototype2

2.Assemblage du boîtier

Pour ce prototype, les différents éléments sont fixés à la superglue, et maintenus en place avec du ruban adhésif de peinture pendant la prise de la colle.

Photo: Collage du boitier pour le prototype 2

Durée de fabrication du prototype final

Développement du Fabrikarium 2021

Design

Au regard du retour d'expérience sur les deux prototypes précédent au format "table", on décide d'abandonner l'idée et de revenir sur un boitier directement posé sur la table.

Problème : nous ne disposons pas d'une nappe suffisament longue pour la déporter par dessus la feuille.

Il est donc décidé de partir sur deux prototype :

  • Prototype 1 - à plat: boîtier posé sur la table avec un bras articulé pour déporter la caméra au dessus de la feuille
  • Prototype 2 - chevalet : boîtier posé sur un côté et sur deux pieds rétractables avec la caméra proche du Raspberry Pi mais qui permet néanmoins plus de stabilité.

Prototype 1

Photo du prototype 1

Prototype 2

Photo du prototype 2 Photo du prototype 2


Dépliage du prototype 2

Hardware

Changement de capteur

Testé et fonctionnel

Il y a des problème de qualité optique avec le capteur actuel pour laquelle une partie de la page est floue. On essaie donc une nouvelle raspicam version 2.1 avec 8 megapixels au lieu de 5, et les résultats semblent effectivement bien meilleurs.

Éclairage leds

Testé et fonctionnel

Des leds avaient été ajoutée à la V1 puis retirées pour la V2. Elles semblent néanmoins indispensable si la lumière ambiante est insuffisante ou pour éviter les ombres projetées si elle est trop importante.

Pour le Fabrikarium, nous disposons de ruban de leds RVB addressables. L'utilisation de leds addressables complexifie un peu la partie logicielle mais simplifie le circuit puisqu'elle ne necessite pas de circuit supplémentaire pour gérer la luminosité.

Nous nous appuyons sur la documentation de NeoPixels sur Raspberry Pi par Adafruit.

Après une série d'essais, il semble que seul la broche GPIO21 permet de faire fonctionner le ruban.

Haut parleur et prise jack 3.5mm

partiellement fonctionnel

La version 1 avait un haut parleur intégré. La version 2 un haut parleur amplifié externe relié directement au Raspi par un jack stéréo 3,5mm ce qui rends la conception électronique beaucoup plus simple. Pour cette version 3 nous souhaitons donner le choix à l'utilisateur.

Il y a donc un haut parleur interne, qui est désactivé lorsqu'un cable est connecté sur la prise jack du boitier.

Documentation pour faire un by pass avec un jack

Fabrication d'une rallong pour la nappe/câble du capteur

Non fonctionnel

Malgré un courage, une abnégation et une dextérité hors norme, Jean-Jacques n'est pas parvenu à réaliser une rallonge fonctionnelle pour la nappe du capteur.

Photo: Récupération d'un connecteur de nappe sur un RaspiPhoto: Connexion de la rallonge

Software

Bouton On/Off

Testé et fonctionnel

En ajoutant une ligne dans le fichier de configuration du Raspi, il est possible de configurer la broche GPIO3 comme bouton On/Off d'un ordinateur. Cela pose cependant un pblème : si l'extinction est gérée directement par le Raspi, on ne peut pas prévenir les fausses manipulations, ni même prévenir l'utilisateur que le Raspi est effectivement éteint.

L'astuce est donc de conserver la même broche que celle qui permet d'allumer le Raspi (GPIO3) pour appeler une fonction dans PiTextReader. Au premier appui, on peut donc demander à l'utilisateur d'appuyer une seconde fois pour confirmer l'extinction.

Pico TTs

Testé et fonctionnel

Transformer un fichier texte text.txt en fichier audio text.wav

/usr/bin/pico2wave -l fr-FR -w /tmp/text.wav < /tmp/text.txt

Nettoyage du script

Testé et fonctionnel

Le script python principale est pitextreader.py. Afin de faciliter les futurs développements et deboggage, il est décidé de le rendre plus modulaire.

Séparation en plusieurs fichiers
  • pitextreader.py est toujours le script principal, mais il ne contient plus qu'une fonction qui fait le lien entre l'application et les boutons du raspberry pi.
  • app.py contient le coeur du logiciel, c'est-à-dire l'objet settings qui gère les paramètres de lecture et d'enregistrement, et l'association entre les broches du raspberry pi et les fonctions de callback
  • constantes.py contient toute la configuration :
    • numéro des broches du GPIO
    • liens vers les dossiers et fichiers (sons et fichier de sauvegarde de la configuration)
    • toutes les commandes bash au format texte comme par exemple les commandes pour faire déclencher la prise de vue ou l'OCR.
  • logger.py contient les outils de logs qui permettent d'écrire la sortie standard en même temps dans un fichier et dans la console
  • reader.py contient les fonctions de prise de vue et de traitement des données jusqu'à l'obtention d'un fichier audio.
  • player.py contient un objet permettant le lire les fichiers audio et de modifier les paramètres de lecture en direct via mplayer

Conclusion du Fabrikarium

Journal de bord

Mardi matin

Présentation du projet et tour de table

Définition des enjeux

  • Design
    • Ergonomie
    • Marquage
  • Optique
    • Choix de l'optique
    • éclairage
  • Logiciel
    • Séquencement
    • Power On/Off
    • OCR
    • Gestion du format portrait / paysage

Répartition en 2 équipes et demi

  • Équipe Design : Laurence, Dorian, Quentin, Audrey, Rémi
  • Equipe optique : Deborah, Roger, Marie

- test de différentes optique et mise au point

  • Équipe logiciel : Jean Jacques

- Remise en route du prototype V2

Mardi après-midi

Design : développement de deux versions

  • Version penchée
  • Version avec le boitier posé sur la table

OCR

  • Test de tesseract avec le nouveau capteur et raspberry pi 4.
  • Mise en place d'une procédure de test avec 4 images

Leds

Ajout et contrôle de ruban led rgb

Bouton on/off

Allumer / éteindre le raspberry à partir du GPIO

Mercredi

Design

  • (Re)design des boutons
  • Dessin des deux versions

Code

  • Refactoring PiTextReader
  • Démarrage automatique

Électronique

  • Haut-parleur et amplification
  • Fabrication d'une longue nappe pour la caméra

Documentation

  • Mise à jour du script d'installation
  • Mise à jour de la page V1