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 : Synthèse vocale : L'appui sur un BP déclenche un message en synthèse vocale annonçant l'adresse IP du système.

Par X. HINAULT - Juin 2013

Ce que l'on va faire ici

  • Dans ce code, l'appui sur un bouton poussoir va déclencher un message en synthèse vocale annonçant,, à l'aide de ma librairie Pyduino Multimedia, l'adresse IP du système à l'aide de la librairie Pyduino. Plus exactement, l'adresse IP de l'interface eth0 du système.
  • Il n'est pas nécessaire d'installer quoi que ce soit de plus : les fonctions "réseau" sont directement accessibles depuis la librairie Pyduino !
  • Pour plus de détails, voir la documentation de la fonction Pyduino localIP()
  • Vous remarquerez la simplicité du code obtenu : la librairie Pyduino Multimedia permet d'utiliser la synthèse vocale aussi simplement que d'afficher un message dans la console !

Pré-requis

Schéma fonctionnel

  • L'entrée numérique déclenche la synthèse vocale. Le miniPC est connecté au réseau local.
  • Pour plus de détails sur la synthèse vocale avec la librairie Pyduino Multimedia, voir la fonction speak()

Matériel nécessaire

Système

  • Le pcDuino
  • 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
  • connecté à un réseau local actif associant :
    • un routeur (une box internet typiquement) +/- un switch réseau
    • d'autres postes sur le réseau, notamment un poste fixe ou une tablette.
    • voire un poste distant sur le web

E/S

  • une plaque d'essai pour montage sans soudures,
  • des straps,
  • un bouton poussoir pour CI,

Instructions de montage

  • Connecter un bouton poussoir entre la broche 2 (configurée en entrée avec rappel au plus) et le 0V
  • Connecter la sortie audio
  • Connecter le pcDuino au réseau, ce qui est normalement déjà le cas si vous travaillez en accès VNC !

Le montage à réaliser

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 digitalRead

#from pyduino import * # importe les fonctions Arduino pour Python
from pyduinoMultimedia import * # importe les fonctions Arduino pour Python

# entete declarative
BP=2  # declare la broche a utiliser
APPUI=LOW # valeur broche lors appui

#--- setup ---
def setup():
        pinMode(BP,PULLUP) # met la broche en entree avec rappel au plus actif
        Serial.println("La broche 2 est en entree avec rappel au plus actif !")

# -- fin setup --

# -- loop --
def loop():

        if(digitalRead(BP)==APPUI): # si appui
                Serial.println("Appui BP!")

                Serial.println ("Adresse ip du systeme : " + Ethernet.localIP() ) # affiche l'adresse IP locale

                ipSystem=Ethernet.localIP().split(".") # recupere l'ip sous forme d'une list

                # message console
                print ("Message en synthese vocale :")
                print ("L'adresse I P du systaime est la suivante : ")
                print (ipSystem[0] + ". point. " + ipSystem[1] + ". point. " + ipSystem[2] + ". point. " + ipSystem[3] )

                # synthese vocale
                speak("L'adresse I P du systaime est la suivante : ")
                speak (ipSystem[0] + ". point. " + ipSystem[1] + ". point. " + ipSystem[2] + ". point. " + ipSystem[3] )
                # les "." permettent de ralentir la diction...

                delay(250)  # anti-rebond

        delay(100) # pause entre 2 lecture du BP

# -- 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://github.com/sensor56/pyduino-exemples/blob/master/Voice/digitalReadSpeakEthernetIp.py

Utilisation

  • Vérifier au besoin le bon fonctionnement de la sortie audio au préalable (par exemple en générant un son avec Audacity...)
  • Appuyer sur le bouton exécuter dans Geany
  • Une fenêtre de Terminal vide doit apparaître : lors d'un appui sur le bouton poussoir, un message vocal indique l'adresse IP du système.

Discussion technique

  • Pratique pour connaître l'IP d'un miniPC sans clavier ni écran.
  • Remarquer l'absence d'accent dans les chaînes à synthétiser et l'utilisation de "." pour ralentir la diction.