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 : Video : L'appui sur un BP déclenche la lecture d'un fichier video en plein écran.

Par X. HINAULT - Juin 2013

Ce que l'on va faire ici

  • Dans ce code, l'appui sur un bouton poussoir va redémarrer la lecture d'une vidéo au début, à l'aide de ma librairie Pyduino Multimedia.
  • L'intérêt majeur de ce code est de poser les bases d'applications "low cost" de muséographie : à tout moment, l'utilisateur peut relancer le clip vidéo par l'appui sur un simple bouton poussoir. Avec cette solution, n'importe quel écran HDMI pourra être transformé instantanément en support de muséographie, potentiellement interactif.
  • Pour plus de détails sur la lecture de fichiers vidéo, voir l'instruction Pyduino playVideo()

Pré-requis

Fichiers vidéos de test

Quelques exemples

  • Pour vous simplifier la vie, je vous propose une archive contenant quelques fichiers vidéos utilisables : à télécharger directement avec les commandes suivantes sur le mini-pc :
$ cd home/ubuntu/sources/video
$ wget -4 http://www.mon-club-elec.fr/mes_videos/plancton_cnrs_fr.mp4
$ wget -4 http://www.mon-club-elec.fr/mes_videos/incendium_vimeo.mp4

Où placer les fichiers vidéo ?

  • Par défaut, la librairie Pyduino utilise les chemins suivants :
    • sources/text/
    • sources/audio/
    • sources/images/
    • sources/videos/
  • Ces répertoires peuvent être modifiés à votre convenance.

En pratique, placer les vidéos à lire dans le répertoire /home/user/sources/videos

Schéma fonctionnel

  • L'entrée numérique redéclenche la lecture d'un fichier vidéo.
  • Pour plus de détails sur la lecture de fichiers vidéo, voir l'instruction Pyduino playVideo()

Matériel nécessaire

Système

  • Le pcDuino
  • une sortie vidéo + son opérationnelle : la sortie HDMI connectée à un écran HDMI

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

# bouton poussoir relance vidéo

from pyduinoMultimedia import * # importe les fonctions Arduino pour Python

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

filepathVideo=""

#noLoop=True

#--- setup ---
def setup():

        # exemples de video :  
        # cd home/ubuntu/sources/video
        # wget -4 http://www.mon-club-elec.fr/mes_videos/plancton_cnrs_fr.mp4
        # wget -4 http://www.mon-club-elec.fr/mes_videos/incendium_vimeo.mp4

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

        global filepathVideo, filename

        filepathVideo=homePath()+sourcesPath(VIDEO)
        #filename="plancton_cnrs_fr.mp4"
        filename="incendium_vimeo.mp4"
        print filepathVideo+filename

        playVideo(filepathVideo+filename)

# -- fin setup --

# -- loop --
def loop():

        global filepathVideo, filename

        if(digitalRead(BP)==APPUI): # si appui
                Serial.println("Appui BP!")
                Serial.println("Joue la video :  " +filepathVideo+filename)
                stopVideo() # stoppe video deja lancee
                playVideo(filepathVideo+filename)
                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/Audio/digitalReadPlaySound.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
  • Dès le lancement, la vidéo doit se lancer.
  • A tout moment, un appui sur le bouton poussoir déclenche à nouveau la vidéo.

Discussion technique

  • On pourra lancer ce script au démarrage : Comment lancer un programme Pyduino ou Python automatiquement au démarrage ?
  • Si on souhaite que la transition lors de l'appui sur le BP ne montre pas le bureau, il suffit d'ouvrir une fenêtre terminal avec fond noir, de la dimensionner en plein écran et de la positionner "Toujours au dessus" : lors de la relance, on ne verra rien d'autre. On pourra aussi masquer la barre des tâches.
  • Il sera facile de contrôler plusieurs mini-Pc utilisés en tant que base de muséographie à partir d'un poste central de contrôle...