evenements:obc2012:dikogeek
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
obc2012:dikogeek [2013/05/02 14:42] – florianh | obc2012:dikogeek [2013/05/09 16:42] – [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 70: | Ligne 71: | ||
- PyGame | - PyGame | ||
- En faisant des appels système dans des programmes Python | - En faisant des appels système dans des programmes Python | ||
- | - On peut utiliser OmxPlayer et passer en paramètre la vidéo souhaité | + | - On peut utiliser OmxPlayer |
\\ \\ | \\ \\ | ||
J'ai trouvé les librairies python complexe à mettre sur pieds. Il faut les bonnes versions, compiler certaines fois car les packages ne sont pas bons. Bref complexe, mais l' | J'ai trouvé les librairies python complexe à mettre sur pieds. Il faut les bonnes versions, compiler certaines fois car les packages ne sont pas bons. Bref complexe, mais l' | ||
Ligne 80: | Ligne 81: | ||
Je vous laisse rajouter des idées si vous avez de l' | Je vous laisse rajouter des idées si vous avez de l' | ||
- | === Interaction homme/ | + | |
+ | === Vos idées === | ||
+ | |||
+ | * C'est par ici | ||
+ | |||
+ | ==== Interaction homme/ | ||
Nous aurons probablement besoins d' | Nous aurons probablement besoins d' | ||
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 ===== | ||
+ | < | ||
+ | # | ||
+ | # -*-coding: | ||
+ | |||
+ | #Import des librairies nécessaires | ||
+ | import select | ||
+ | import sys, tty, termios | ||
+ | import os | ||
+ | import pygame | ||
+ | import subprocess, signal | ||
+ | from subprocess import Popen, PIPE | ||
+ | from pygame.locals import * | ||
+ | import RPi.GPIO as GPIO | ||
+ | GPIO.setmode(GPIO.BCM) | ||
+ | |||
+ | # | ||
+ | GPIO.setup(23, | ||
+ | GPIO.setup(17, | ||
+ | |||
+ | pygame.init() | ||
+ | pygame.display.init() | ||
+ | |||
+ | def accueil(): | ||
+ | ecran = pygame.display.set_mode((0, | ||
+ | image = pygame.image.load(" | ||
+ | ecran.blit(image, | ||
+ | pygame.display.flip() # | ||
+ | |||
+ | def getch(): | ||
+ | fd = sys.stdin.fileno() | ||
+ | old_settings = termios.tcgetattr(fd) | ||
+ | try: | ||
+ | tty.setraw(sys.stdin.fileno()) | ||
+ | ch = sys.stdin.read(1) | ||
+ | finally: | ||
+ | termios.tcsetattr(fd, | ||
+ | return ch | ||
+ | |||
+ | #accueil() | ||
+ | |||
+ | #Fonction appelé lors d'un appuie bouton | ||
+ | def fct_movie(channel): | ||
+ | print (' | ||
+ | #Lancement d'un sous process pour récuperer la liste des processes en cours | ||
+ | p = subprocess.Popen([' | ||
+ | out, err = p.communicate() | ||
+ | |||
+ | #Listing des process | ||
+ | for line in out.splitlines(): | ||
+ | #On recherche si le lecteur video est en route | ||
+ | if ' | ||
+ | pid = int(line.split(None, | ||
+ | #On Kill le process | ||
+ | os.kill(pid, | ||
+ | #Lencement d'un sous process pour lancer le clip | ||
+ | p = subprocess.Popen([' | ||
+ | .mp4' | ||
+ | #Vérifie si le process se termine naturellement | ||
+ | retcode = p.wait() | ||
+ | |||
+ | if retcode is not None: | ||
+ | accueil() | ||
+ | |||
+ | # | ||
+ | GPIO.add_event_detect(17, | ||
+ | GPIO.add_event_detect(23, | ||
+ | |||
+ | done = False | ||
+ | while not done: | ||
+ | print (" | ||
+ | if getch() == " | ||
+ | | ||
+ | | ||
+ | if getch() == " | ||
+ | | ||
+ | | ||
+ | |||
+ | # for event in pygame.event.get(): | ||
+ | # if event.type == KEYDOWN: | ||
+ | # keys = pygame.key.get_pressed() | ||
+ | # | ||
+ | # if (keys[K_a]): | ||
+ | # print(" | ||
+ | # fct_movie(17) | ||
+ | # if (keys[K_b]): | ||
+ | # print(" | ||
+ | # fct_movie(23) | ||
+ | # if (event.key == K_ESCAPE): | ||
+ | # done = True | ||
+ | |||
+ | |||
+ | pygame.display.quit() | ||
+ | pygame.quit() | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
evenements/obc2012/dikogeek.txt · Dernière modification : 2024/04/26 14:48 de 127.0.0.1