Le pcDuino est une plateforme de développement open source qui permet aux développeurs de créer des applications et des systèmes embarqués. Avec Pyduino, un langage de programmation Python spécialement conçu pour le pcDuino, les développeurs peuvent facilement créer des applications et des systèmes embarqués. Dans ce tutoriel, nous allons apprendre à utiliser le pcDuino et Pyduino pour tester un code secret saisi à l’aide d’un numpad (clavier numérique) et d’une synthèse vocale. Nous verrons comment connecter le numpad et la synthèse vocale au pcDuino, comment écrire le code Python pour tester le code secret et comment tester le code.
Programmer le pcDuino : Pyduino : périphériques : Tester un code secret saisi à l’aide d’un numpad (clavier numérique ) et synthèse vocale.
Ce que l’on va faire ici
- Dans ce code, un message en synthese vocale invitera à saisir un code : si la chaîne correspond au code pré-enregistré, un message en synthèse vocale l’indiquera, et dans le cas contraire, un nouvel essai sera possible.
- Remarquer que l’on utilise ici l’instruction raw_input() qui permet la saisie d’une chaîne à la différence de la fonction input() qui permet la saisie d’une valeur.
- Remarquer également avec quelle simplicité Pyduino permet d’ajouter la synthèse vocale à un code : il s’agit essentiellement ici de la reprise d’un code précédent sans synthèse vocale, auquel on ajoute quelques lignes avec l’instructions speak().
- Cet exemple pose les bases pour réaliser des applications interactives avec synthèse vocale, potentiellement sans écran.
Noter que l’utilisation d’un keypad numérique USB (ou numpad) permet de remplacer simplement et avantageusement (ne coûte que quelques euros) un clavier numérique matriciel 4×4 (avec signes d’opération et touche de validation!), même si aucun écran n’est connecté, tant que le programme Pyduino a le focus, ce qui est obligatoirement le cas une fois le programme lancé, tant qu’on n’utilise pas de souris ! De plus, le code de gestion du clavier est très simple, puisqu’il est géré par le système !

Pré-requis
- un mini-PC (pcDuino conseillé) avec système Lubuntu opérationnel. Voir si besoin la page d’accueil du pcDuino
- Langage Python (2.7) et l’IDE Pyduino ou l’éditeur Geany installés. Voir si besoin : Logiciel pour développer avec Pyduino
- ma librairie pyDuino installée : voir si besoin : Télécharger et installer Pyduino sur le pcDuino
Schéma fonctionnel
- Le numpad numérique est utilisé ainsi que la synthèse vocale :
Matériel nécessaire
Système
- Le pcDuino
- Un clavier numérique (numpad) :

- une sortie son opérationnelle :
- soit la sortie audio HDMI connectée à un écran HDMI
- soit la sortie audio jack intégrée si elle existe (raspberryPi)
- soit une carte son USB disposant d’une sortie audio
E/S
- Pas utilisées.
Instructions de montage
- Connecter le Numpad sur un port USB.
- Connecter la sortie son soit sur un écran (HDMI) soit sur des enceintes.
Le montage à réaliser
Le fichier *.yno
Copier/coller ce code dans l’IDE Pyduino
Ce code est également disponible ici :
Le fichier *.py
Copier/coller ce code dans l’éditeur Geany :
# -*- coding: utf-8 -*-
# exemple pyDuino – par X. HINAULT – www.mon-club-elec.fr
# Juillet 2013 – Tous droits réservés – GPLv3
# voir : https://github.com/sensor56/pyDuino
# tester un code secret saisi dans un numpad aevc synthese vocale
#from pyduino import * # importe les fonctions Arduino pour Python
from pyduinoMultimedia import * # importe les fonctions Arduino pour Python
# entete declarative
code=« *123+ »
#— setup —
def setup():
return # si vide
# — fin setup —
# — loop —
def loop():
# try.. except.. permet d’éviter le blocage si erreur de saisie
try:
speak(« Veuillez saisir votre code ! »)
reponse=raw_input(« Veuillez saisir le code : « )
except: # erreur
print (« Veuillez recommencer ! »)
speak(« Une erreur est survenue. Veuillez recommencer ! »)
return # sort de la fonction loop
print (« Vous avez saisi : « + reponse )
if reponse==code :
print (« Code bon ! »)
speak(« Le code est exact ! »)
pass
else :
print (« Code faux ! »)
speak(« Le code saisi est faux. Veuillez recommencer ! »)
return # sort de loop
# si le code est bon on se trouve ici…
print (« Felicitations ! « )
speak (« Failicitations »)
# stoppe loop
global noLoop
noLoop=True
# — fin loop —
#— obligatoire pour lancement du code —
if __name__==« __main__ »: # pour rendre le code executable
setup() # appelle la fonction main
while not noLoop: loop() # appelle fonction loop sans fin
Ce code est également disponible ici : https://raw.github.com/sensor56/pyduino-exemples/master/Voice/Raw_inputNumpadCodeSpeak.py
Utilisation
- Réaliser le montage et connecter le clavier sur le port USB
- Appuyer sur le bouton exécuter dans Geany
- Une fenêtre de Terminal doit apparaître :
- un message en synthèse vocale invite à saisir un code secret, ici *123+
- saisir le code secret et valider avec <entrée>
- les messages voulus sont produits en synthèse vocale en fonction du résultat.

- Une fois, le programme lancé, plus besoin d’accès VNC, ni d’écran : il est possible de saisir des valeurs utilisables par le programme à partir du seul numpad.
- Simple et efficace.
Discussion technique
- L’utilisation de try… except… permet d’éviter tout blocage en cas d’erreur de saisie.
Articles similaires:
- Programmer le pcDuino : Pyduino : Synthèse vocale : Synthèse vocale d’une valeur saisie sur un numpad (clavier numérique )
- Programmer le pcDuino : Pyduino : périphériques : Tester un code secret saisi à l’aide d’un numpad (clavier numérique )
- Programmer le pcDuino : Pyduino : périphériques : Afficher la valeur saisie à l’aide d’un numpad (clavier numérique )
- Programmer le pcDuino : Pyduino : périphériques : Fixer la durée d’allumage d’une LED par saisie d’une valeur à l’aide d’un numpad (« minuteur » à clavier numérique )
- http://web.archive.org/web/20210804223007/http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ATELIERSPYDUINOSYSTUSBNumpad
Articles Liés
- Programmer le pcDuino : Pyduino : Réseau : Créer un serveur TCP / Http générant une page HTML intégrant un code Javascript affichant une courbe progressive dans un canva.
Le pcDuino est une plateforme de développement open source qui permet aux développeurs de créer…
- Programmer le pcDuino : Pyduino : Reconnaissance vocale : Allumer/éteindre des sorties numériques à l'aide de la reconnaissance vocale (mode connecté).
Le pcDuino est une plateforme de développement open source qui permet aux développeurs de créer…
- jQuery :
jQuery est une bibliothèque JavaScript open source très populaire qui permet aux développeurs web de…