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.
}
}






