Outils pour utilisateurs

Outils du site


evenements:obc2012:dikogeek

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
obc2012:dikogeek [2013/05/02 14:46] – [Technique] florianhobc2012:dikogeek [2013/05/08 14:02] – [Code source] florianh
Ligne 61: Ligne 61:
   - Etc.   - Etc.
  
-=== Vidéo ===+==== Vidéo  ==== 
  
 J'ai testé différente manières de lire une vidéo sous Raspi. \\ \\ J'ai testé différente manières de lire une vidéo sous Raspi. \\ \\
Ligne 80: Ligne 81:
 Je vous laisse rajouter des idées si vous avez de l'expérience là dedans. Je vous laisse rajouter des idées si vous avez de l'expérience là dedans.
  
-=== Interaction homme/machine ===+ 
 +=== Vos idées === 
 + 
 +  * C'est par ici 
 + 
 +==== Interaction homme/machine ====
  
 Nous aurons probablement besoins d'utiliser au moins une trentaine de bouton... \\ \\ Nous aurons probablement besoins d'utiliser au moins une trentaine de bouton... \\ \\
Ligne 90: Ligne 96:
   * Utiliser un clavier PS2 ou USB et utiliser le contrôle du clavier   * Utiliser un clavier PS2 ou USB et utiliser le contrôle du clavier
   * Registre à décalage    * Registre à décalage 
 +
 +=== Vos idées ===
 +
 +  * C'est par ici
 +
 +===== Code source =====
 +<code>
 +#!/usr/bin/python2.7
 +# -*-coding:Utf-8 -*
 +
 +#Import des librairies nécessaires
 +import sys
 +import os
 +import pygame
 +from pygame.locals import *
 +import RPi.GPIO as GPIO  
 +GPIO.setmode(GPIO.BCM)  
 +
 +#Configuration de deux ports du GPIO (inter)
 +GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)  
 +GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_UP)  
 +
 +pygame.init()
 +pygame.mixer.quit()
 +pygame.display.init()
 +
 +played = 0
 +
 +def accueil():
 +    ecran = pygame.display.set_mode((0, 0), pygame.FULLSCREEN) #Crée la fenêtre de tracé
 +    image = pygame.image.load("./obc.jpg") #charge une image à partir d'un fichier
 +    ecran.blit(image, (0,40)) #Colle l'image en haut à gauche de la fenêtre de tracé (ici, l'ecran)
 +    pygame.display.flip() #L'affichage devient effectif : l'image est rendue visible.
 +
 +accueil()
 +
 +#Fonction appelé lors d'un appuie bouton
 +def fct_movie(channel):  
 +    print ('Lancement clip', channel)
 +    global played
 +
 +    if played == 1:
 + global movie
 + movie.stop()
 +        pygame.time.delay(2000)
 +
 +    played = 1
 +    fchannel = "videos/"+str(channel)+".mpg"
 +    movie = pygame.movie.Movie(fchannel)
 +    screen = pygame.display.set_mode((0, 0), FULLSCREEN)
 +    movie.set_display(screen)
 +    pygame.event.set_allowed((QUIT, KEYDOWN))
 +    pygame.time.set_timer(USEREVENT, 1000)
 +    pygame.display.flip()
 +    movie.play()
 +    while movie.get_busy():
 +        evt = pygame.event.wait()
 +        if evt.type == QUIT:
 +            break
 +        if evt.type == KEYDOWN and evt.unicode == QUIT_CHAR:
 +            break
 +    if movie.get_busy() == 0:
 +        movie.stop()
 + accueil()
 +    pygame.time.set_timer(USEREVENT, 0)
 +
 +#Configuration des deux ports GPIO, fonction de callback, debounce de 600ms + condo de 0,1nF sur l'inter
 +GPIO.add_event_detect(17, GPIO.FALLING, callback=fct_movie, bouncetime=600)  
 +GPIO.add_event_detect(23, GPIO.FALLING, callback=fct_movie, bouncetime=600)  
 +
 +#Permet de bloquer le programme pour éviter qu'il se termine tout seul
 +raw_input("> ")
 +</code>
 +
 +
 +
  
evenements/obc2012/dikogeek.txt · Dernière modification : 2024/04/26 14:48 de 127.0.0.1