3.Sound
Cette solution comporte un module Dfplayer, avec une carte SD pour les sons et un amplificateur.
Le tout est commandé par une liaison serie (uart) fournie par le microprocesseur UI.
La dictée de nombres a été écrite en python sur base des programmes C++ de V5.
Formater obligatoirement avec https://www.sdcard.org/downloads/
Ceci est la version linux:
https://www.sdcard.org/downloads/sd-memory-card-formatter-for-linux/
Utilisation par mon laptop:
la procédure 2_wav_robert utilise le programme pico2wave pour transformer une liste de textes en fichiers '.WAV,' avec le programme sox pour ajuster les fins de fichier.
Ces programmes sont spécifiques à linux.
On peut également utiliser un programme tel que Audacity pour dicter chaque message.
J'ai un folder 'SND_special' avec des bruits spéciaux.
Il faut créer ou vider le folder 'SND', y ajouter les bruits spéciaux puis utiliser 2_wav_robert pour créer tous les autres sons.
Les fichiers .wav sont écrits en 16khz mono
Dfplayer est bizarre: il n'utilise pas le nom du fichier, seulement l'ordre dans lequel ils ont été écrits sur une carte sd fraîchement formatée.
Utiliser le programme df_load.py pour écrire un à un chaque fichier du folder 'SND' sur la carte SD. Ce programme crée un dictionnaire qu'il écrit dans le folder de développement sous le nom defindex.json.
key = 'nom du fichier'
contenu=
Un programme envoie un message sous la forme d'une liste dont les éléments sont recopiés tels que vers le lcd , chaque élément de la liste est affiché sur une ligne de l'écran.
Utilisé pour commander le module dfplayer.
Dfplayer.py : https://github.com/ShrimpingIt/micropython-dfplayer/blob/master/dfplayer.py
Il comporte un main() utilisé pour valider la génération des sons
Le programme sound.py traite ce 'nombre' et le transforme en une suite d'index des fichiers son , qui sont écrites dans une file d'attente (liste dfq) .
Cette file d'attente est vidée par le driver dfplayer, normalement avec asyncio.
Inspiré par les programmes V5 ..core/sound.cpp et sound_fr.cpp ,voir RCCL_N2W
La division entière existe en python avec // 1000//3 => 333
dfrobot.png pins
Le processeur UI est un microprocesseur pico.
La liaison serial avec le processeur de calcul utilise UART0.
La liaison avec Dfrobot utilise UART1 :