Tabla de contenido:
- Paso 1: el esquema
- Paso 2: construcción de la máquina Godot
- Paso 3: El código: ¿Números aleatorios del caos?
- Paso 4: ¡Maravíllate con tu máquina Godot
Video: La máquina Godot: 4 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
¿Qué es una máquina Godot?
Es parte de la experiencia humana que podemos encontrarnos en un estado de espera por algo que eventualmente podría suceder después de un largo tiempo de espera, o que no suceda en absoluto.
La máquina Godot es una pieza de "arte" eléctrico que funciona con energía solar y que intenta capturar la emoción desesperada que acompaña a la espera posiblemente inútil.
El nombre proviene de la famosa obra de Samuel Beckett Esperando a Godot, en la que dos hombres esperan la llegada de un cierto Godot, que podría llegar mañana, pasado o nunca.
Entonces, ¿qué hace la máquina Godot?
- 1. Con un poco de sol, un circuito Joule Thief comienza a cargar un banco de condensadores.
- 2. Una vez cargado a aproximadamente 5 V, el Arduino Nano se enciende.
- 3. El Arduino genera un número aleatorio verdadero de 20 bits, que se muestra en una barra LED de 4 bits.
- 4. Este número se compara con otro número aleatorio, desconocido para todos, que se almacenó en eeprom la primera vez que arrancó el circuito.
- 5. Si es igual, se acaba la espera, la máquina almacena este hecho en eeprom y a partir de ahora se activan el LED verde y el zumbador piezoeléctrico (si hay suficiente energía).
- 6. Si no es igual, esperanza, desesperación, repite.
… También, de vez en cuando el número generado se hace audible por el beeper, por lo que en realidad no te olvidas de que tienes una máquina Godot.
Dado que la probabilidad de alcanzar el número de Godot es 1 sobre 2 ^ 20 o aproximadamente una en un millón, y la máquina no es muy rápida, especialmente en invierno y otoño, podría llevar años encontrarla. Su máquina Godot incluso podría convertirse en parte de su herencia. Mientras espera a que pruebe el siguiente número, puede fantasear acerca de cómo sus tataranietos lejanos pueden finalmente verlo llegar a su conclusión. En resumen: ¡es el regalo ideal para la próxima temporada navideña!
Paso 1: el esquema
La máquina Godot consta de:
-Un recolector de energía Joule Thief (Q1) que carga condensadores de 9x2200uF. Para aquellos que sufren de helixaphobia (una angustia irracional de los inductores, mientras que los condensadores y resistencias no plantean ese problema), no temas, ya que no se requiere devanado manual: el acoplamiento se crea colocando inductores coaxiales estándar en las proximidades de cada uno como se muestra aquí en la 2da foto. ¡Truco impresionante!
-Un interruptor de alimentación de transistor discreto (Q2, Q3, Q4), que se enciende a 5V1 aproximadamente y se apaga a aproximadamente 3.0V. Es posible que desee ajustar un poco R2-R4 si usa diferentes tipos de transistores (de propósito general).
-Un generador de entropía (Q6, Q7, Q8). Este circuito amplifica el ruido electrónico presente en el ambiente desde microvoltios hasta niveles de voltios. Luego, esa señal se muestrea para sembrar un generador de números aleatorios basado en el caos (lectura). Un trozo de cuerda de guitarra actúa como antena.
-Una barra de LED con 4 LED o 4 LED rojos separados, un zumbador piezoeléctrico y un LED verde.
Tenga en cuenta que la salida del interruptor de encendido (colector de Q4) está conectada al pin 5V del Arduino Nano, ¡NO al pin VIN!
Paso 2: construcción de la máquina Godot
Construí el circuito en una pieza de perfboard. No hay nada especial ahí. El panel solar de 2V / 200mA es un sobrante de otro proyecto. La marca es Velleman. Es fácil hacer palanca con un cuchillo afilado para perforar agujeros para tornillos, etc. La placa de circuito y el panel solar se atornillan a dos piezas de madera contrachapada, como se muestra en la imagen. La idea es que el panel solar se pueda colocar hacia el sol en una ventana fija.
Paso 3: El código: ¿Números aleatorios del caos?
¿Cómo se hacen los números aleatorios? Bueno, ¡están hechos con matemáticas!
En lugar de usar la función de generador de números aleatorios de Arduino random (), decidí escribir mi propio Generador de números aleatorios (RNG), solo por diversión.
Se basa en el mapa logístico, que es el ejemplo más simple de caos determinista. Así es como funciona:
Suponga que x es un valor real entre 0 y 1, luego calcule: x * r * (1-x), donde r = 3.9. El resultado es la siguiente 'x'. Repetir ad infinitum. Esto le dará una serie de números entre 0 y 1, como en la primera imagen, donde este proceso se inicia para el valor inicial de x = 0.1 (rojo) y también x = 0.1001 (azul).
Ahora, aquí está la parte interesante: no importa qué tan cerca elija dos condiciones iniciales diferentes, si no son exactamente iguales, la serie de números resultante eventualmente divergerá. Esto se denomina "Dependencia sensible de las condiciones iniciales".
Matemáticamente, la ecuación del mapa x * r * (1-x) es una parábola. Como se muestra en la segunda figura, puede determinar gráficamente la serie x usando lo que se conoce como construcción de telaraña: comience desde x en el eje horizontal, encuentre el valor de la función en el eje y, luego refleje contra una línea recta en 45 ángulo de grados que pasa por el origen. Repetir. Como se muestra para las series roja y azul, incluso si están cerca inicialmente, divergen completamente después de aproximadamente 30 iteraciones.
Ahora, ¿de dónde viene el número 'r = 3.9'? Resulta que para valores bajos de r, obtenemos solo dos valores x alternos. Aumentar el parámetro r cambiará en algún momento a una oscilación entre 4, 8, 16 valores, etc. Estas ramificaciones o bifurcaciones se producen cada vez más rápidamente a medida que aumenta r, en lo que se denomina una "ruta de duplicación del período hacia el caos". Una gráfica con r en el eje horizontal y muchas iteraciones x superpuestas verticalmente dará como resultado lo que se conoce como una gráfica de bifurcación (tercera figura). Para r = 3.9, el mapa es completamente caótico.
Entonces, si calculamos muchas actualizaciones x y tomamos muestras de ellas, ¿obtenemos un número aleatorio? Pues no, en este punto sería un Pseudo generador de números aleatorios (PRNG), ya que si siempre partimos del mismo valor inicial (después de salir del reset), siempre obtendríamos la misma secuencia; también conocido como caos determinista. Aquí es donde entra el generador de entropía, que siembra el mapa logístico con un número creado a partir del ruido eléctrico que se encuentra en el medio ambiente.
En palabras, el código generador de números aleatorios hace esto:
- Mida el voltaje del generador de entropía en el pin A0. Conserve solo los 4 bits menos significativos.
- Cambie estos 4 bits a un valor de 'semilla', repita 8 veces para obtener una semilla de punto flotante de 32 bits.
- Cambiar la escala de la semilla entre 0 y 1.
- Calcular el promedio de esta semilla yx, el estado actual del mapa logístico.
- Avanzar en el mapa logístico muchos (64) pasos.
- Extraiga un solo bit del estado x del mapa logístico comprobando algún decimal insignificante.
- Cambie ese bit al resultado final.
- Repita todos los pasos anteriores 20 veces.
Nota: En el código, Serial.println y Serial.begin no están comentados. Elimine // para comprobar los números aleatorios generados en el monitor de serie.
Para ser justos, no he verificado estadísticamente la calidad de los números aleatorios (por ejemplo, el conjunto de pruebas NIST) pero parecen estar bien.
Paso 4: ¡Maravíllate con tu máquina Godot
Disfrute de su máquina Godot y por favor comparta, comente y / o pregunte si algo no está claro.
Mientras espera que se encuentre el número de Godot, ¡vote por este Instructable en el concurso Made With Math! ¡Gracias!
Finalista en el concurso Made with Math
Recomendado:
Máquina de votación biométrica basada en huellas dactilares con Arduino: 4 pasos (con imágenes)
Máquina de votación biométrica basada en huellas dactilares que utiliza Arduino: Todos conocemos la máquina de votación electrónica existente en la que el usuario tiene que presionar un botón para emitir el voto. Pero estas máquinas han sido criticadas por templar desde el principio. Así que el gobierno planea introducir una base de huellas dactilares
Máquina de LEVITACIÓN ULTRASÓNICA con ARDUINO: 8 pasos (con imágenes)
Máquina de LEVITACIÓN ULTRASÓNICA Usando ARDUINO: Es muy interesante ver algo flotando en el aire o en el espacio libre como naves espaciales alienígenas. de eso se trata exactamente un proyecto antigravedad. El objeto (básicamente un pequeño trozo de papel o termocol) se coloca entre dos trans ultrasónicos
Smokin '- Máquina de humo con control remoto a bajo precio: 5 pasos (con imágenes)
Smokin '- Máquina de humo con control remoto a bajo precio: Este es un breve instructivo sobre cómo hacer una pequeña máquina de humo relativamente pequeña, controlable a distancia, barata y divertida, que se puede usar para bromear con amigos, hacer trucos de magia, probar flujos de aire o lo que sea. descargo de responsabilidad: esta compilación contiene
Máquina de cócteles con GUI Raspberry: 7 pasos (con imágenes)
Máquina de cócteles con GUI Raspberry: ¿Te gusta la tecnología y la fiesta? ¡Este proyecto está hecho para ti! En este tutorial crearemos una máquina de cócteles automatizada con una interfaz gráfica.¡Todo controlado por la frambuesa! EDITAR: ¡Hice una nueva más fácil y barata el enlace aquí
Máquina recreativa con cambio de marquesina LED: 5 pasos (con imágenes)
Máquina recreativa con cambio de marquesina LED: Piezas requeridas: Puede cortar con láser el soporte de marquesina LED utilizando los archivos en el Instructable o para aquellos que no tienen acceso a un cortador láser, también está disponible completamente ensamblado. Marquesina LED