Entradas

Mostrando entradas de 2007

El truco del hombre del tiempo

Imagen
Tras mas de un mes atareado hoy voy a desvelar la "magia" que permite al hombre del tiempo, entre otros, para superponerse a un fondo virtual. Básicamente el objetivo consiste en reemplazar unas zonas de la imagen original, y sustituirlas por fragmentos de una segunda imagen. La técnica mas comun es el chroma key. Esta es la famosa técnica en la que los actores realizan su papel delante de paredes verdes "fosfi" y azules. Seguro que todos hemos visto esto en el "como se hizo" de algún DVD. Después de tomarse la imagen original, se procesa pixel a pixel, substituyendo el color que hemos puesto de fondo por nuestra imagen virtual, donde Anakin y ObiWan se dan leches sin parar sobre magma incandescente. Así de primeras puede parecer sencillo, pero en la práctica surgen dificultades. Paso a explicar el algoritmo donde se apreciará con mas facilidad donde reside el problemilla. Recorremos el fotograma en cuestión pixel a pixel, si el pixel tiene el valor RGB q

Una cita con la naturaleza

Imagen
Como ya adelantaba la semana pasada, he aprovechado la festividad del 9 de Octubre para hacer una escapada mtb por tierras Valencianas. La escapada ha sido un auténtico éxito; buen tiempo, hermosos paisajes, ruta divertida... La ruta está bastante bien definida, puesto que transcurre en su mayoría por carriles bici. Además, si no dispones de vehículo o manera de transportar las bicis en él, no es problema, ya que esta ruta tiene la especial peculiaridad de poder valerse del transporte público tanto en la ida como en su regreso. El recorrido nace donde finaliza la linea de metro con destino a Lliria. Desde este histórico pueblo pedaleamos dirección Olocau, valiéndonos de un magnifico carril bici que une sendos pueblos. Una vez visitado Olocau, ya por terrenos algo mas abruptos, realizamos un divertido descenso hasta la localidad de Bétera. Aunque no recomiendo la ruta para principiantes, puesto que tiene dos ascensos pronunciados, sus casi 35 km si son altamente recomendables para cualq

Fallo de diseño

Imagen
Vaya ! Ando algo atascado con el scalextric digital casero. La etapa lógica se ha comportado bien, pero en la etapa de potencia es donde no consigo pasar. Tras un medio-éxito con un L298, decidí simplificar el esquema usando transistores en su lugar. Me decanté por un TIP-41, sinceramente sin tener las ideas demasiado claras. Monté un pequeño prototipo y no parecía hacer mención alguna. Polímetro en mano me percaté que el voltaje que proporcionaba la etapa lógica era de no mas de 4.8 V, voltaje que creo que es insuficiente para que el tip-41 abra entre colector y emisor. Bueno...de los errores se aprende, ahora manos a la obra en busca de una solución. Mientras tanto, dejo colgada un esquema de lo que es la etapa lógica para una sola pista (extenderlo a dos es replicar parte del circuito, no tiene demasiado misterio). Por supuesto se admiten críticas ! :D Aprovecho para adelantar que en este primer puente de octubre voy a marcarme una pequeña ruta BTT por tierras Valencianas, y de paso

Contacto en 3,2,1.... BANG !!!

Imagen
Para que luego digan que la electrónica es aburrida. Cual cerdo en barro me he reido hoy al ver explotar un pequeño integrado. Si es que... los datasheets no estan llenos de cifras para impresionar a los novatos, esas cifras estan para algo. Y cuando no respetas o no te da al gana respetarlas pasa lo que debe de pasar. En mi caso una pequeñita explosión. Estabamos usando un L293 a modo de etapa de potencia, faltos de un transistor que encajara mejor ahi. Y se nos ha ido la mano con la corriente, supongo que fruto de las prisas y la ignorancia dando como resultado un pequeño cráter en la superficie del integrado. Imagen que obviamente adjunto con orgullo :D Según mi colega, una burbuja del aire que se ha dilatado debido a las altas temperaturas ha sido la causante de tal explosión. Y yo los habia visto medio derretirse, pero esto... ha sido gracioso !!! Y tu?? Que has hecho explotar en esta vida ?? :_D

Cacharreando con PyGame

Imagen
Como echo de menos mi adolescencia, cuando tenía mas horas para programar juegos. Antaño (1999) surgió un lenguaje de programación llamado DIV Games Studio que causó furor entre la comunidad hispana de programadores. Como toda idea revolucionaria, tenía sus seguidores y sus detractores, pero el caso es que se llegó a editar una revista sobre DIV, y noche tras noche nos reuníamos cerca del centenar de usuarios en el irc-hispano para hablar sobre la programación de videojuegos. Pero la empresa que sacó DIV al mercado cerró al poco de sacar su segunda versión, y esto sentenció la vida de este lenguaje. La gente lejos de quedarse de brazos cruzados, trató de mantener al dia este lenguaje y surgieron varios proyectos con su versión libre de DIV (Fenix y eDIV). A varios colaboradores de sendos proyectos he tenido el gusto de charlar con ellos y aprovecho para mandarles un saludo :) Aunque proyectos como Fenix han conseguido mantener el lenguaje DIV hasta nuestros dias, su poca aceptación fue

Empezamos con Python !

Imagen
Bueno, acabados los exámenes, nos ponemos manos a la obra con los videojuegos y python. Antes de empezar a picar código sin mas, repasemos la estructura habitual de un juego: A diferencia del software convencional, en los videojuegos es habitual que el código vaya tan rápido como sea posible con el fin de tener FPS generosos. Con lo cual, una primera aproximación seria: Inicialización del juego y carga de recursos (sonidos, imágenes,...) Un bucle donde se dibuja y se le da vida al juego, optimizado en la medida de lo posible. Descarga y cierre del juego. Aquí la parte que mas chicha tiene es la segunda. Ese bucle que le da la vidilla a nuestro juego, a su vez consta de otros tres apartados: Lectura de dispositivos de entrada (teclados,ratones, joysticks...) Cálculo del juego, posiciones de los personajes, física ... Dibujado de la escena Si alguien anda algo perdido, que imagine por un momento como funcionan las reproducciones en los cines, todos los fotogramas de la película son proye

Próximamente... Programación de juegos con Python

Cuantas veces has visto un videojuego y has creido poder hacerlo mejor? Cuantas de esas veces te han echado atrás los escasos conocimientos de programación? Nunca mais ! Devuelve a la biblioteca ese libro de programación en C del tamaño de un coco, desinstala esos 12Gb de Visual Studio y grábate a fuego esto: "Python". Python yo lo defino como el BASIC de los tiempos modernos. Es un lenguaje fácil de aprender, moderno, altamente productivo y... bueno, obviamente no es tan rápido como C/C++, pero no debe de ser un problema. El espectro de aplicaciones que se pueden llevar a cabo con python es muy amplio, este tiene soporte para interfaces gráficas (via Qt,Gtk e Wx entre otras), threads, comunicaciones, Bases de datos, audio, OpenGL... y está portado a un gran número de sistemas operativos ! Como el tema a tratar es la programación de videojuegos, nos valdremos de la libreria pygame . El nombre ya lo dice todo, python & juegos :D Aunque he de remarcar que pygame solo cubr

Haiku

Imagen
Hoy voy a dar a conocer este gran proyecto, que aunque no soy colaborador de el, he estado muy metido en el tema y quiero compartir mis conocimientos :) Haiku es una reimplementación partiendo desde 0 de un sistema operativo llamado BeOS. Sin entrar demasiado en rodeos, corrian los años 90 cuando un grupo de ingenieros de Mac abandonaban sus instalaciones para fundar una compañia de software: Be Inc. Este atrevido grupo de ingenieros dieron luz a un sistema operativo muy moderno que haria correr los rumores. No reaprobechaba ni núcleos ya existentes ni servidores gráficos, a lo cual muchos hoy dia siguen tachando de una estupidez, pero los resultados hablaban por si mismos.BeOS no solo soportaba threads, sino que hacia uso intensivo de ellos, las aplicaciones se rompian facilmente en 4 o 5 hilos, los servicios del sistema e incluso el mismo núcleo trabajaba con múltiples hilos. Antaño no existian procesadores multicore, en su lugar existian placas multiprocesador lo cual es en esencia

Valley Of The Wind

Imagen
El valle del viento (en adelante VOTW) es el nombre de otro de mis proyéctos en los que llevo ya tiempo trabajando. El nombre se lo puse en honor al mítico film y manga : Nausicaa del valle del viento ( Kaze no tani no Naushika ) El film quizás es prescindible pero el manga no dejo de recomendarlo para otakus y no tan otakus. Bueno, sin irse mas por las ramas, votw es un trazador de rayos que comencé después de implementar un primitivo trazador para una asignatura de clase. Aunque sea una definición pobre, un trazador de rayos sintetiza escenas realistas tratando de simular el comportamiento de la luz y su intereracción con los objetos. Uno de los mayores problemas en el trazado de rayos es que el computo es muy elevado y es imprescindible un código eficiente y emplear grafos de escena para reducir el computo. Como efectos básicos implemento texturas, bump mapping y sombras arrojadas. Para mejorar el realismo primero probe con tecnicas de sombreado estocástico, como Ambient Occlusion.

Funciona!!!

Bueno, tal y como adelantaba ayer, esta mañana he sustituido el L293 por el mas potente L298. El resultado ha sido mejor del que me imaginaba, la verdad aunque hemos tenido un lapsus de última hora. La señal PWM mueve los coches sensacionalmente, y eso que aún no está del todo ajustada. Al usar el puerto paralelo para comunicarme con el PIC, dispongo de 8 bits para especificar la velocidad en dos pistas, con lo que nos quedamos con 4 bits por pista, osea, 16 posibles niveles de PWM. Como yo en su dia, supongo que pensareis: "solo 16 velocidades?? Vaya patraña!!" Aunque conozco la manera de sacar hasta 64 niveles... con 16 ni se nota, ni saltos ni escalones, una conducción suave con un dualshock de ps2. Como todo no iba a ser perfecto, algo ha fallado en el L298 y ha empezado a dejar pasar corriente destrozando nuestras ilusiones :( No se, creo que no he tomado las suficientes protecciones a la hora de proteger el integrado y me lo he cargado. Es lo que tiene la ignorancia :D

Scalextric pseudo-digital casi funcionando!!!

Imagen
Pues no, no habia desaparecido, he estado trabajando en el scalextric pseudo-digital, que me ha dado mas problemas de los que esperaba, la mayoria de ellos debido a mi inexperiencia programando PICS y a mis escasos conocimientos de electrónica. El caso es que tras varios dias con resultados nulos, al borde de abandonar el proyecto, y justo anoche conseguí que el pic generara un PWM. Por cierto... que sufrido se hacen estas cosas sin un osciloscópio. Y el caso es que la comunicación PIC-PC no estaba funcionando bien debido a un mal diseño del hardware (a grandes rasgos...que habia metido la pata). Esta mañana soldador en mano le he dado solución. Me he construido un pequeño vehículo con Lego y a probar. Como es costumbre en informáticos atrapados, me he puesto a dar brincos por toda la buhardilla dejandome llevar por la emoción. Como todo no iba a ser perfecto, al usar un L293 como etapa de potencia, al montar una pista de scalextric para hacer una prueba, iba algo lento. Como se dice n

Escapadita con MTB

Ayer hice la primera escapadita con la bici, despues del accidente que tube el octubre pasado y que me obligó a dejar el deporte durante un par de meses. Algo mas de dos horas por una ruta de senderismo que cubre Monserrat y Montroy. Para los interesados, la ruta es la PRV-272. Es una ruta mixta, cubre desde zonas perfectamente asfaltadas hasta senderos totalmente olvidados donde la vegetación se abre paso. Amén de los pedrulos que si no te fijas terminas la jornada en la UVI. Pero vamos, en general acaba resultando facilona y a buen ritmo facilmente se hace en 45 minutos. El año pasado mi colega y yo tratamos de llegar hasta el mar desde mi xalet (Monserrat) evitando vias con trafico. El mayor problema, no es la distancia (25km en linea recta), si no que tenemos la Albufera como obstáculo y su laberíntico entramado de senderos entre campos de arroz. La misión fracasó :( Pero no contentos con el resultado aprobechamos el frio del invierno para estudiar rutas alternativas en los mapas,

Scalextric pseudo-digital

Hara cosa de un par de Navidades, los chicos de Tecnitoys presentaron su nuevo "Scalextric digital". No tardaron en responder los foros de slot, donde se empezo a discutir sobre la viabilidad del asunto, a la vez que las marcas rivales se apresuraban en sacar su version digital al mercado. Bien, el sistema digital incorpora nuevas posibilidades al slot de toda la vida, pero supongo que por cuestiones de mercado, Scalextric hizo su nuevo sistema totalmente incompatible con el material ya existente. Lease coches, pistas, mandos y transformadores. Con lo cual, no fuimos pocos los que nos comimos un "full" mientras maldeciamos a Tecnitoys. Historias aparte, hace poco decidí convertir mi obsoleto scalextric en una versión pseudo-digital !! La polémica está asegurada señores !! La idea consiste en que sea un PC el que controle directamente la velocidad de los coches, mientras que los jugadores en vez de usar el tradicional mando, ahora pilotan con un joystick o pad para P

Presentación

Bueno, pues estreno blog !!! Supongo que lo mas correcto es presentar el blog, y a mi mismo. Si de algo se me da bien, es hablar poco y escribir menos asi que sere breve :D La idea de este blog es narrar los proyectos en los que trabajo a fin de que otros puedan tomar ideas o aportar sugerencias :) En lo referente a mi, pues bueno, soy un estudiante de ingeniería Informática de Valencia aficionado a la informática (vaya, que obvio ¬¬), a los deportes, la mecánica y bueno...casi cualquier cosa creativa. Mañana ignaguraré el blog con algo de mas chicha técnica. Un saludo a todos, en especial a mi novia ^_^