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 : Système : L'appui sur un BP exécute une commande système (ligne de commande).

Par X. HINAULT - Juin 2013

Ce que l'on va faire ici

  • Dans ce code, l'appui sur un bouton poussoir va exécuter une ligne de commande système : ici une simple commande ls qui liste le contenu d'un répertoire.
  • L'intérêt majeur ici est de montrer le principe d'utilisation de la ligne de commande à partir du code pyduino : du coup, ce sont toutes les fonctionnalités du système Gnu/Linux qui deviennent ainsi potentiellement disponibles et contrôlables à partir des entrées sorties !!
  • Pour plus de détails, se reporter aux instructions pyduino suivantes :

Pré-requis

Schéma fonctionnel

  • L'entrée numérique déclenche la commande système.

Matériel nécessaire

Système

  • Le pcDuino

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

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

# executer une commande systeme lors appui bouton poussoir

from pyduino 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!")

                # se place dans le repertoire voulu
                #path=homePath() # chemin utilisateur
                path="/home/ubuntu/"
                changedir(path) # se place dans le repertoire voulu

                # afficher le contenu du repertoire avec la commande ls
                Serial.println("Contenu du repertoire " + path )
                executeCmd("ls") # execute la commande

                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://raw.github.com/sensor56/pyduino-exemples/master/System/digitalReadExecuteCmd.py

Utilisation

  • 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, le contenu du répertoire courant s'affiche dans la console.

Discussion technique