Mostrando entradas con la etiqueta Pygame. Mostrar todas las entradas
Mostrando entradas con la etiqueta Pygame. Mostrar todas las entradas

jueves, 29 de octubre de 2015


Autor: José Medina.
Competencia: Creatividad e innovación, Competencia oral y escrita.
Asignatura: Interfaces Gráficas de usuario.


El siguiente Blog presentara una serie de ejercicios con los cuales se busca dar a conocer como funciona el Wiimote en una interfaz de programación de aplicaciones básicas traqueando las posiciones x e y de un Led Infrarojo con el wiimote y graficando dichos datos por pantalla para demostrar su funcionamiento en juegos y en la estructura básica de diseño de un Paint, ademas de dar una pequeña reseña sobre su funcionamiento y características.

El Wii Remote (Japonés: Wiiリモコン), también conocido coloquial mente como "El Wiimote", es el controlador principal de la consola Wii. Una característica principal de Wii Remote es su sensor de movimiento, el cual permite a los usuarios interactuar y manipular objetos en la pantalla vía reconocimiento de gestos y señalización mediante el uso del acelerómetro y tecnología de sensores ópticos. Otra característica es su expansión mediante el uso de accesorios. El accesorio principal es el Nunchuk, que complementa al Wii Remote con 2 botones (C y Z) y un joystic. Es necesario para juegos que necesiten una gran cantidad de movimientos, como por ejemplo Super Mario Galaxy.

El WiiMote cuenta con 12 botones.


  • Botón Power = Enciende y apaga la consola.
  • Botón A = Generalmente aceptar, elegir.
  • Botón B = Generalmente retroceder, cancelar.
  • Cruceta = Botones Arriba, abajo, izquierda y derecha
  • Botón Menos (-) = Equivalente al botón Select)
  • Botón Más (+) = Equivalente al botón Start)
  • Botón Home = Abre el Menú HOME
  • Botón 1 = Equivalente al Botón X
  • Botón 2 = Equivalente al Botón Y




Actividad


1.- Programe una interfaz con PyGame y WiiMote, utilizando la librería cwiid, que detecte una Led IR y mueva una imagen de 64x64 por pantalla según el movimiento del Led IR

2.- Programe un Video Juego con PyGame y WiiMote, utilizando la librería cwiid, que detecte un Led IR y mueva una Nave por pantalla de manera horizontal (Izquierda/Derecha) según el movimiento del Led IR. La Nave debe dispar de manera automática 5 rondas de balas cada 1 segundo. 

3.- Igual que el anterior, pero la Nave debe dispar 5 rondas de balas cada vez que se encienda el segundo Led IR. 

4.-Programe una interfaz gráfica que implemente un Escritorio Virtual. Se deben utilizar los siguientes elementos: {cartón de 50x40 cm, una tabla de 50x2cm, 1 listón de 70x2 cm, WiiMote}. Deberá construir la siguiente plataforma. Con la plataforma construida programa un scrip que simule el movimiento del puntero de un Paint y grafiquelo por pantalla.





Reflexión
La presente actividad permite dar una introducción a la librería Cwiid de Python para la programación de aplicaciones analógico digital con Wiimote. La actividad nos permite demostrar la creatividad del programador para afrontar el uso del Wiimote y diseñar una aplicación con una interfaz entretenida e innovadora para afrontar una nueva forma de programación de juegos manejando un sprite y sus funciones con periférico tan conocido como lo es el Wiimote.




















jueves, 1 de octubre de 2015

Captura componentes RGB - Gris mediante Python y PIL 


Autor: José Medina.
Competencia: Creatividad e innovación.
Asignatura: Programación para la Integración de Sistemas.

Descripción de la actividad:

Se presentara a continuación una pequeña pero potente actividad en donde programaremos un pequeño script en python en donde se capturara video en tiempo real y muestre sus componentes RGB (Rojo, Verde, Azul) y Gris en una interfaz de 2 x 2. La idea principal es demostrar el uso y la creatividad del programador para usar python y PIL de modo conjunto.

Antes de comenzar hablaremos un poco sobre que es python y PIL

Python

Python-logo-notext.svgPython puede ser utilizado en diversas plataformas y sistemas operativos, entre los que podemos destacar los más populares, cómo Windows, Mac OS X y Linux. Pero, además, Python también puede funcionar en smartphones, Nokia desarrolló un intérprete de esté lenguaje para su sistema operativo Symbian.

¿Tiene Python un ámbito específico? Python permite desarrollar software para aplicaciones científicas, para comunicaciones de red, para aplicaciones de escritorio con interfaz gráfica de usuario (GUI), para crear juegos, para smartphones y por su puesto, para aplicaciones web.

Python es Open Source, cualquiera puede contribuir a su desarrollo y divulgación. Además, no es necesario pagar ninguna licencia para distribuir software desarrollado con esté lenguaje. Hasta su intérprete se distribuye de forma gratuita para diferentes plataformas. 

PIL

Python Image Lybrary también conocido como PIL es una biblioteca open source para la edición de imágenes mediante el uso del lenguaje de programación python en diferentes tipos de archivos de imagen como PPM, PNG, JPEG, GIF, TIFF y BMP. PIL se encuentra disponible para Windows, Mac OS X y Linux siendo su lanzada su ultima version en septiembre del 2009.

PIL ofrece varios procedimientos estándar para la edición de imágenes entre ellos vale destacar:

  • Manipulaciones por pixel
  • Enmascaramiento y manipulación de transparencia.
  • Mejoras como nitidez, ajustes de brillo, contraste o color
  • Re-dimensionado de imágenes y creación de miniaturas.
  • Muchas otras funciones.



Actividad

Como ya se menciono la actividad consiste en combinar python y pygame para realizar la captura de vídeo en tiempo real y filtrar sus componentes RGB y Gris.


Código:


import pygame.camera
from pygame.locals import *
from PIL import Image,ImageOps

OK = 1
pygame.init()


#--- Inicializar y listar camara  ---
pygame.camera.init()
cl = pygame.camera.list_cameras()

#--- Mostrar camara en tamaño 320 x 240  ---
cam = pygame.camera.Camera(cl[0],(320,240))
print "Utilizando camara %s ..." % cl[0] cam.start() sc = pygame.display.set_mode((640,480)) while OK:

#--- Capturar imagen con la camara y guardarla  ---
r = cam.get_image()
pygame.image.save(r,"gris.png")

#--- Cargar Imagen  ---
im = Image.open("gris.png")#ifs)

#--- Salida Gris  ---
 gray=im.convert("L") 
 grays=gray.convert("RGB").tostring("raw","RGB")
 grs=pygame.image.fromstring(grays,(320,240),"RGB")

#--- Salida Roja  ---
 red=ImageOps.colorize(gray,'red','white')
 reds=red.convert("RGB").tostring("raw","RGB")
 rs=pygame.image.fromstring(reds,(320,240),"RGB")

#--- Salida Verde  ---
 green=ImageOps.colorize(gray,'green','WHITE')
 greens=green.convert("RGB").tostring("raw","RGB")
 gs=pygame.image.fromstring(greens,(320,240),"RGB")
 
#--- Salida Azul  ---
 blue=ImageOps.colorize(gray,'blue','WHITE')
 blues=blue.convert("RGB").tostring("raw","RGB")
 bs=pygame.image.fromstring(blues,(320,240),"RGB")

#--- Mostrar Imagen Modificada  --- 
sc.blit(rs,(0,0)) sc.blit(gs,(325,0)) sc.blit(bs,(0,240)) sc.blit(grs,(325,240))

#--- Gestionar cierre ventana  ---
ev = pygame.event.get() for e in ev: if e.type == QUIT or (e.type == KEYDOWN and e.key == K_ESCAPE): cam.stop() OK = 0 pygame.display.flip()
 
 
 
 
 


Reflexión: 

La anterior actividad permite comprender como funciona PIL y pygame mostrando sus funciones para la gestión y manipulación de imágenes en python dándonos un pequeño vistazo de lo potente que pueden ser estas herramientas combinadas y las muchas cosas que podemos lograr gracias a la librería PIL.