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 pour le pcDuino, il est possible de contrôler des périphériques externes. Dans cet article, nous allons voir comment programmer le pcDuino pour fixer la durée d’allumage d’une LED par saisie d’une valeur à l’aide d’un numpad, ce qui peut être utile pour créer un « minuteur » à 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 )
Ce que l’on va faire ici
- Dans ce code, la saisie d’une valeur numérique sur un numpad va fixer la durée d’allumage d’une broche E/S en sortie. L’intérêt ici est de montrer comment contrôler facilement à l’aide d’un clavier numérique USB un dispositif devant être mis sous tension un temps précis.
- Remarquer que l’on utilise ici la fonction input() qui permet la saisie d’une valeur à la différence de l’instruction raw_input() qui permet la saisie d’une chaîne.
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é ici avec une LED en sortie sur la broche 3 permettant de visualiser la mise sous tension de la sortie E/S :
Matériel nécessaire
Système
- Le pcDuino
- Un clavier numérique (numpad) :

E/S
- une plaque d’essai pour montage sans soudures,

- des straps,

- une LED rouge 5mm,

- une résistance 1/4w de 270 Ohms environ,

Instructions de montage
- Connecter le Numpad sur un port USB.
- Connecter sur une broche E/S une LED et sa résistance (270 Ohms) en série connectée au 0V
Le montage à réaliser
Le fichier *.py
Copier/coller ce code dans l’éditeur Geany :
# -*- coding: utf-8 -*-
# exemple pyDuino – par X. HINAULT – www.mon-club-elec.fr
# Juin 2013 – Tous droits réservés – GPLv3
# voir : https://github.com/sensor56/pyDuino
# la saisie d’une valeur fixe la duree d’allumage d’une LED
from pyduino import * # importe les fonctions Arduino pour Python
# entete declarative
LED=3 # broche utilisée pour la LED
#— setup —
def setup():
pinMode(LED,OUTPUT) # met la broche en sortie
Serial.println(« ——————« )
# — fin setup —
# — loop —
def loop():
# try.. except.. permet d’éviter le blocage si erreur de saisie
try:
reponse=input(« Veuillez saisir une valeur en secondes (0-100) : ») # attention : encadrer chaine avec « »
# sinon elle sera consideree comme le nom d’une variable – voir raw_input pour saisie de chaine
except: # erreur
print (« Veuillez recommencer ! »)
return # sort de la fonction loop
print (« Vous avez saisi : « + str(reponse) )
duree=constrain(reponse,0,100)
print « Duree = « + str(duree) + » secondes »
# allumage de la LED
Serial.println(« Allume la LED »)
digitalWrite(LED,HIGH) #allume la LED
Serial.println(« Attente de « + str(duree) + » secondes… »)
delay(duree*1000) # pause (en ms !!)
Serial.println(« Eteint la LED »)
digitalWrite(LED,LOW) # eteint la LED
Serial.println(« ——————« )
# — 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/Periph/InputLEDMinuteur.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 :
- saisir une valeur entière comprise entre 0 et 100 secondes et valider avec entrée. La valeur saisie doit s’afficher.
- la LED s’allume la durée voulue.

- 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.
Discussion technique
- L’utilisation de try… except… permet d’éviter tout blocage en cas d’erreur de saisie.
Articles similaires:
- Programmer le pcDuino : Pyduino : périphériques : Afficher la valeur saisie à l’aide d’un numpad (clavier numérique )
- 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 : Allumer/éteindre sorties numériques à l’aide d’un numpad (clavier numérique )
- Programmer le pcDuino : Pyduino : périphériques : Fixer la largeur d’une impulsion PWM par saisie d’une valeur à l’aide d’un numpad (clavier numérique )
Articles Liés
- Javascript : Graphique Dygraphs simple
Le Javascript est un langage de programmation très populaire et puissant qui permet aux développeurs…
- Javascript : Afficher 6 widgets graphiques fournis par une librairie graphique externe.
Le Javascript est un langage de programmation très populaire qui permet aux développeurs de créer…
- Programmer le pcDuino : Voix : Capturer une image webcam à la voix (en mode connecté) avec LED de visualisation !
Le pcDuino est un système informatique open source qui offre aux utilisateurs une variété de…