Comparativa entre un Bingo de tipo electrónico y otro de tipo mecánico (bombo con bolas). Generación del número aleatorio en el Bingo electrónico. Actualización del firmware, con el fin de mejorar las animaciones, incorporando un test numérico.
¿Cómo se genera el número?
La generación del número aleatorio se basa en el modo de funcionamiento del sistema mecánico, mediante la extracción de una bola numerada del bombo. En un Bingo tradicional (mecánico), al principio hay 90 bolas numeradas dentro del bombo, y en cada extracción el número de bolas va disminuyendo de una en una.
En este Bingo electrónico, la generación del número se hace siguiendo estos pasos:
- El micro-controlador utiliza un contador (Timer) que modifica su valor a una velocidad de 2 millones de valores por segundo aproximadamente (0,5 uSeg).
- El valor del número máximo de este contador se limita en función a la cantidad de números que faltan por salir en el Bingo. Al principio el número máximo es 90 y va decreciendo a medida que se van extrayendo los números (igual que el número de bolas de un bombo mecánico).
- En el momento que se pulsa el botón, el micro-controlador toma el valor del número generado por el contador, y este valor lo asigna al ‘hueco libre’ que queda en la tabla de números que faltan por salir.
- Con ese valor, el micro-controlador busca el ‘hueco libre’ dentro de la tabla de números, empezando desde el número 1 hasta el 90, y luego asigna esta posición de ‘hueco libre’ al número real… ocupando el hueco y mostrando el número real en el display de 7 segmentos
De esta manera, las probabilidades de salir un número determinado son las mismas que en un bombo mecánico (es totalmente aleatorio). Por otra parte, se evita la generación de números ya extraídos.
Actualización del firmware
En esta actualización del firmware (v3) se añaden nuevas animaciones:
- Al mostrar un nuevo número, parpadean en modo alterno el número del display y el diodo LED del panel.
- Cuando el Bingo está en modo inicio (mostrando dos guiones en el display) y está así durante más de un minuto, se genera una animación en el panel LED. En esta versión, se incluye un test numérico, tanto en el panel LED como en el display de 7 segmentos.
Puedes descargar la nueva versión del firmware desde el siguiente enlace:
apreciado amigo he visto este montaje de bingo y el caso es que me gustaria saber como descuentas las bolas y hace el random con las que quedan,serias tan amable de enviarme el programa para que vea como lo haces,muy agradecido y saludos
Desde la web puedes descargar el firmware, aunque está compilado. Lo programé en ensamblador hace mucho tiempo, y no sé si tendré el programa fuente, pero es muy sencillo. Creo que el método lo expliqué en alguno de los vídeos que publiqué en relación al bingo. Lo hice asociando un bit de la memoria RAM con cada bola, los cuales se asocian al número por su poción. Al inicio de la partida pones todos los bit a cero. El número aleatorio lo puedes extraer partiendo de algún contador Timer, convertido o truncado posteriormente para obtener un número próximo al número total de las bolas que tiene el bingo. Cuando pulsas toma ese valor aleatorio, y recorres todos los bit de la RAM descontando uno del número aleatorio cada vez que encuentres un cero, rotando hasta que el valor del número aleatorio sea cero. En ese punto, cambias el bit de cero a uno y muestras su posición como número en el bingo. Al cambiar el valor de cada posición, de cero a uno, ya estás descontando el número de bolas que faltan por salir.