Durante los meses de noviembre y diciembre de 2009 los participantes de los talleres de robótica pueden participar en el mini-concurso POV organizado por la rama.
El mini-concurso consiste en construir un POV usando la placa principal y los módulos construidos en los talleres. Con él se deberá mostrar un texto o una imagen en el aire utilizando unos pocos LEDs (habitualmente se utilizan entre 4 y 8).
Normativa
Esta normativa podría ser modificada en cualquier momento por los organizadores de los talleres:
- Solamente se pueden utilizar placas principales y módulos construidos durante los talleres. No se pueden diseñar otros circuitos electrónicos ni hacer modificaciones a los circuitos originales.
- Se pueden utilizar múltiples módulos similares en el circuito.
- Se permite programar los circuitos en cualquier lenguaje de programación y cualquier compilador.
- Se puede utilizar como base el código fuente de ejemplo disponible, pero el código desarrollado por cada participante no podrá ser compartido con otros participantes hasta el final del concurso.
- Sólo pueden presentarse los participantes de los talleres de robótica.
- Los POVs deberán terminarse antes de que termine el año, aunque los ganadores serán los primeros que lo terminen.
- Los organizadores de los talleres y la junta directiva de la Rama no pueden participar.
- El código fuente de los circuitos ganadores deberá ser entregado a los organizadores. Este código fuente será publicado en internet.
Premios
- Un servo Futaba S3003 para la persona que los construya más rápidamente.
- Los organizadores, si lo consideran oportuno, podrán dar más premios a otros participantes en función de la calidad, utilidad, o cualquier otro factor.
Ganador: Beltrán
POV construido usando una placa principal (MBP18), siete LEDs (LTIND-A) y cuatro botones (SISW-SPST).
#include <pic16f88.h> typedef unsigned int config; config at _CONFIG1 __CONFIG = _CP_OFF & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_IO; void delay(){ long i; // for(i=0; i<1; i++){} } void main(){ unsigned char doing = 1; unsigned char msg = 0; unsigned char msgsw = 0; ANSEL = 0; TRISA = 0xFF; TRISA7 = 0; TRISB = 0; RA7 = 1; PORTB = 0b00000000; while(1){ if(msgsw){ switch(msg){ case 0: PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b01111110; delay(); delay(); PORTB=0b01001010; delay(); delay(); PORTB=0b01001100; delay(); delay(); PORTB=0b00110000; delay(); delay(); PORTB=0b00000000; delay(); delay(); PORTB=0b01111110; delay(); delay(); PORTB=0b01001010; delay(); delay(); PORTB=0b01001010; delay(); delay(); PORTB=0b01000010; delay(); delay(); PORTB=0b00000000; delay(); delay(); PORTB=0b01111110; delay(); delay(); PORTB=0b01000000; delay(); delay(); PORTB=0b01000000; delay(); delay(); PORTB=0b01000000; delay(); delay(); PORTB=0b00000010; delay(); delay(); PORTB=0b01111110; delay(); delay(); PORTB=0b01111110; delay(); delay(); PORTB=0b00000010; delay(); delay(); PORTB=0b00000000; delay(); delay(); PORTB=0b01111110; delay(); delay(); PORTB=0b00010010; delay(); delay(); PORTB=0b00101100; delay(); delay(); PORTB=0b01000010; delay(); delay(); PORTB=0b00000000; delay(); delay(); PORTB=0b01111110; delay(); delay(); PORTB=0b00010010; delay(); delay(); PORTB=0b00010010; delay(); delay(); PORTB=0b01111110; delay(); delay(); PORTB=0b00000000; delay(); delay(); PORTB=0b01111110; delay(); delay(); PORTB=0b00001100; delay(); delay(); PORTB=0b00110000; delay(); delay(); PORTB=0b01111110; delay(); delay(); PORTB=0b00000000; delay(); delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); break; case 1: PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB = 0b11111110; delay(); PORTB = 0b10010010; delay(); PORTB = 0b00010000; delay(); PORTB = 0b10010010; delay(); PORTB = 0b11111110; delay(); PORTB = 0b10000010; delay(); PORTB = 0b00000000; delay(); PORTB = 0b01110000; delay(); PORTB = 0b10001000; delay(); PORTB = 0b10001000; delay(); PORTB = 0b10001000; delay(); PORTB = 0b01110000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b10000000; delay(); PORTB = 0b10000010; delay(); PORTB = 0b11111110; delay(); PORTB = 0b10000000; delay(); PORTB = 0b10000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b11010000; delay(); PORTB = 0b10101000; delay(); PORTB = 0b10101000; delay(); PORTB = 0b10101000; delay(); PORTB = 0b11110000; delay(); PORTB = 0b10000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b10000010; delay(); PORTB = 0b11111110; delay(); PORTB = 0b10001110; delay(); PORTB = 0b00010000; delay(); PORTB = 0b10001110; delay(); PORTB = 0b11111110; delay(); PORTB = 0b10000010; delay(); PORTB = 0b00001000; delay(); PORTB = 0b01111000; delay(); PORTB = 0b10000000; delay(); PORTB = 0b10000000; delay(); PORTB = 0b01001000; delay(); PORTB = 0b11111000; delay(); PORTB = 0b10000000; delay(); PORTB = 0b10001000; delay(); PORTB = 0b11111000; delay(); PORTB = 0b10010000; delay(); PORTB = 0b00001000; delay(); PORTB = 0b10001000; delay(); PORTB = 0b11110000; delay(); PORTB = 0b10000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b01110000; delay(); PORTB = 0b10001000; delay(); PORTB = 0b10001000; delay(); PORTB = 0b10010010; delay(); PORTB = 0b11111110; delay(); PORTB = 0b10000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b01110000; delay(); PORTB = 0b10001000; delay(); PORTB = 0b10001000; delay(); PORTB = 0b10001000; delay(); PORTB = 0b01110000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); break; case 2: PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB = 0b10000010; delay(); PORTB = 0b11111110; delay(); PORTB = 0b10010010; delay(); PORTB = 0b10010010; delay(); PORTB = 0b10010010; delay(); PORTB = 0b01101100; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00011000; delay(); PORTB = 0b00111100; delay(); PORTB = 0b01111100; delay(); PORTB = 0b11111000; delay(); PORTB = 0b01111100; delay(); PORTB = 0b00111100; delay(); PORTB = 0b00011000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b10000010; delay(); PORTB = 0b11111110; delay(); PORTB = 0b10001110; delay(); PORTB = 0b00110000; delay(); PORTB = 0b11000010; delay(); PORTB = 0b11111110; delay(); PORTB = 0b00000010; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); break; case 3: PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB = 0b11111111; delay(); PORTB = 0b00111100; delay(); PORTB = 0b00111100; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00111100; delay(); PORTB = 0b00111100; delay(); PORTB = 0b11111111; delay(); PORTB = 0b11111111; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00100100; delay(); PORTB = 0b00100100; delay(); PORTB = 0b00111100; delay(); PORTB = 0b00111100; delay(); PORTB = 0b11111111; delay(); PORTB = 0b11111111; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00100100; delay(); PORTB = 0b00100100; delay(); PORTB = 0b00111100; delay(); PORTB = 0b00111100; delay(); PORTB = 0b11111111; delay(); PORTB = 0b11111111; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00000000; delay(); PORTB = 0b00100100; delay(); PORTB = 0b00100100; delay(); PORTB = 0b00111100; delay(); PORTB = 0b00111100; delay(); PORTB = 0b11111111; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); PORTB=0b00000000; delay(); break; } } if(RA0 == 0) {msgsw = 0; RA7 = 1;} //Rojo - apagar (piloto on). if(RA1 == 0) {msgsw = 1; RA7 = 0;} //Verde - encender (piloto off). if(RA2 == 0) {msg++; if(msg > 3) {msg = 0;} delay();} //Negro1 - Mensaje siguiente. if(RA3 == 0) {msg--; if(msg < 0) {msg = 3;} delay();} //Negro2 - Mensaje previo. } }