View  Edit  Attributes  History  Attach  Print  Search

ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
Python > Shell > ATELIERS Python + Qt > PyQt apps > PyQt+Arduino | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | Les Mini-PC |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |

Programmer le pcDuino : Pyduino : périphériques : Afficher la valeur saisie à l'aide d'un numpad (clavier numérique )

Par X. HINAULT - Juillet 2013

Ce que l'on va faire ici

  • Dans ce code, la saisie d'une valeur numérique sur un numpad sera affichée dans la console. Ce code permet de voir comment il est simple de saisir des valeurs numériques entières ou décimales, positives ou négatives, à l'aide d'un simple numpad : le montage se réduit à l'essentiel, à savoir connecter le numpad sur le port USB, laissant disponible toutes les broches E/S !
  • 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 4x4 (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

Schéma fonctionnel

  • Le numpad numérique est utilisé seul ici :

Matériel nécessaire

Système

  • Le pcDuino
  • Un clavier numérique (numpad) :

E/S

  • Pas utilisées.

Instructions de montage

  • Simplement connecter le Numpad sur un port USB.

Le montage à réaliser

Le fichier *.yno

Copier/coller ce code dans l'IDE Pyduino


# exemple pyDuino - par X. HINAULT - www.mon-club-elec.fr
# Juin 2013 - Tous droits réservés - GPLv3

# test input

# entete declarative

#--- setup ---
def setup():
        return  # si vide

# -- fin setup --

# -- loop --
def loop():

        # try.. except.. permet d'éviter le blocage si erreur de saisie
        try:
                reponse=input("Veuillez saisir une valeur : ")  # 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) )

# -- fin loop --
 

Ce code est également disponible ici :

Le fichier *.py

Copier/coller ce code dans l'éditeur Geany :


#!/usr/bin/python
# -*- 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

# test input

from pyduino import * # importe les fonctions Arduino pour Python

# entete declarative

#--- setup ---
def setup():
        return  # si vide

# -- fin setup --

# -- loop --
def loop():

        # try.. except.. permet d'éviter le blocage si erreur de saisie
        try:
                reponse=input("Veuillez saisir une valeur : ")  # 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) )

# -- 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/0.functions/Input.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 ou décimale, négative ou positive et valider avec entrée. La valeur saisie doit s'afficher.
  • 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.