Table des matières:

La machine Godot : 4 étapes (avec photos)
La machine Godot : 4 étapes (avec photos)

Vidéo: La machine Godot : 4 étapes (avec photos)

Vidéo: La machine Godot : 4 étapes (avec photos)
Vidéo: Дневник хранящий жуткие тайны. Переход. Джеральд Даррелл. Мистика. Ужасы 2024, Juillet
Anonim
La Machine Godot
La Machine Godot

Qu'est-ce qu'une machine Godot ?

Cela fait partie de l'expérience humaine que nous pouvons nous retrouver dans un état d'attente de quelque chose qui pourrait éventuellement se produire après une longue période d'attente, ou pas du tout.

The Godot Machine est une œuvre d'électro-« art » à énergie solaire qui tente de capturer l'émotion désespérée qui accompagne une attente peut-être inutile.

Le nom est tiré de la célèbre pièce de Samuel Beckett En attendant Godot, dans laquelle deux hommes attendent la venue d'un certain Godot, qui pourrait arriver demain, après-demain ou jamais.

Alors, que fait la Godot Machine ?

  1. 1. Avec un peu de soleil, un circuit Joule Thief commence à charger une batterie de condensateurs.
  2. 2. Une fois chargé à environ 5V, l'Arduino Nano est alimenté.
  3. 3. L'Arduino génère un vrai nombre aléatoire de 20 bits, qui est affiché sur une barre LED de 4 bits.
  4. 4. Ce nombre est comparé à un autre nombre aléatoire, inconnu de tous, qui a été stocké dans l'eeprom la première fois que le circuit a démarré.
  5. 5. Si égale, l'attente est terminée, la machine mémorise ce fait dans l'eeprom et désormais la LED verte et le beeper piezo sont activés (s'il y a assez d'énergie).
  6. 6. Si ce n'est pas égal, espérer, désespérer, répéter.

… aussi, de temps en temps, le nombre généré est rendu audible par le bip, vous n'oubliez donc pas que vous avez une Godot Machine.

Étant donné que la probabilité d'atteindre le nombre de Godot est de 1 sur 2^20 ou d'environ un sur un million, et que la machine n'est pas très rapide, surtout en hiver et en automne, cela peut prendre des années pour le trouver. Votre Godot Machine pourrait même faire partie de votre héritage. En attendant qu'il teste le prochain numéro, vous pouvez fantasmer sur la façon dont vos lointains arrière-arrière-petits-enfants pourraient enfin le voir arriver à son terme. Bref: c'est le cadeau idéal pour les fêtes de fin d'année à venir !

Étape 1: le schéma

Le schéma
Le schéma

La Machine Godot se compose de:

-Un récupérateur d'énergie Joule Thief (Q1) qui charge des condensateurs 9x2200uF. Pour ceux qui souffrent d'hélixaphobie (une angoisse irrationnelle des inducteurs, alors que les condensateurs et les résistances ne posent pas un tel problème), n'ayez crainte car aucun enroulement manuel n'est nécessaire: le couplage est créé en plaçant des inducteurs coaxiaux standard à proximité les uns des autres comme indiqué ici dans le 2ème photo. Astuce géniale!

-Un interrupteur d'alimentation à transistor discret (Q2, Q3, Q4), qui s'allume à 5V1 environ et s'éteint à environ 3,0V. Vous voudrez peut-être régler un peu R2-R4 si vous utilisez différents types de transistors (à usage général).

-Un générateur d'entropie (Q6, Q7, Q8). Ce circuit amplifie le bruit électronique présent dans l'environnement des microvolts aux niveaux de volts. Ce signal est ensuite échantillonné pour amorcer un générateur de nombres aléatoires basé sur le chaos (en lecture). Un morceau de corde de guitare fait office d'antenne.

-Une barre LED avec 4 LED ou 4 LED rouges séparées, un beeper piézo et une LED verte.

Notez que la sortie de l'interrupteur d'alimentation (collecteur de Q4) est connectée à la broche 5V de l'Arduino Nano, PAS à la broche VIN !

Étape 2: Construire la machine Godot

Construire la machine Godot
Construire la machine Godot
Construire la machine Godot
Construire la machine Godot
Construire la machine Godot
Construire la machine Godot

J'ai construit le circuit sur un morceau de perfboard. Rien de spécial là-bas. Le panneau solaire 2V/200mA est un reste d'un autre projet. La marque est Velleman. Il est facile de l'ouvrir à l'aide d'un couteau tranchant, de percer des trous pour les vis, etc. Le circuit imprimé et le panneau solaire sont vissés sur deux morceaux de contreplaqué, comme indiqué sur l'image. L'idée est que le panneau solaire puisse être positionné vers le soleil sur une fenêtre immobile.

Étape 3: Le code: des nombres aléatoires du chaos ?

Le code: des nombres aléatoires du chaos ?
Le code: des nombres aléatoires du chaos ?
Le code: des nombres aléatoires du chaos ?
Le code: des nombres aléatoires du chaos ?
Le code: des nombres aléatoires du chaos ?
Le code: des nombres aléatoires du chaos ?

Comment sont faits les nombres aléatoires ? Eh bien, ils sont fabriqués avec des mathématiques !

Au lieu d'utiliser la fonction de générateur de nombres aléatoires Arduino random(), j'ai décidé d'écrire mon propre générateur de nombres aléatoires (RNG), juste pour le plaisir.

Il est basé sur la carte logistique, qui est l'exemple le plus simple de chaos déterministe. Voilà comment cela fonctionne:

Supposons que x soit une valeur réelle comprise entre 0 et 1, puis calculez: x*r*(1-x), où r=3,9. Le résultat est votre prochain « x ». Répéter à l'infini. Cela vous donnera une série de nombres entre 0 et 1, comme dans la première image, où ce processus est lancé pour la valeur initiale de x=0.1 (rouge) et aussi x=0.1001 (bleu).

Maintenant, voici la partie cool: peu importe à quel point vous choisissez deux conditions initiales différentes, si elles ne sont pas exactement égales, la série de nombres résultante finira par diverger. C'est ce qu'on appelle la "dépendance sensible aux conditions initiales".

Mathématiquement, l'équation de la carte x*r*(1-x) est une parabole. Comme le montre la 2ème figure, vous pouvez déterminer graphiquement la série x en utilisant ce qu'on appelle une construction en toile d'araignée: partez de x sur l'axe horizontal, trouvez la valeur de la fonction sur l'axe des y, puis réfléchissez contre une ligne droite à 45 degrés d'angle passant par l'origine. Répéter. Comme indiqué pour les séries rouge et bleue, même si proches au départ, elles divergent complètement après environ 30 itérations.

Maintenant, d'où vient le nombre « r=3,9 » ? Il s'avère que pour de faibles valeurs de r, nous n'obtenons que deux valeurs x alternées. L'augmentation du paramètre r passera alors à un moment donné à une oscillation entre 4, 8, 16 valeurs, etc. Ces branchements ou bifurcations se produisent de plus en plus rapidement à mesure que r augmente, dans ce qu'on appelle une "période de doublement vers le chaos". Un tracé avec r sur l'axe horizontal et de nombreux x-itérations superposées verticalement donnera ce qu'on appelle un tracé de bifurcation (3e figure). Pour r=3,9, la carte est totalement chaotique.

Donc, si nous calculons de nombreuses mises à jour x et échantillonnons à partir d'elles, nous obtenons un nombre aléatoire ? Eh bien non, à ce stade, ce serait un générateur de nombres pseudo-aléatoires (PRNG), car si nous partions toujours de la même valeur initiale (après être sorti de la réinitialisation), nous obtiendrions toujours la même séquence; alias chaos déterministe. C'est là qu'intervient le générateur d'entropie, qui alimente la carte logistique avec un nombre créé à partir du bruit électrique présent dans l'environnement.

En mots, le code du générateur de nombres aléatoires fait ceci:

- Mesurer la tension du générateur d'entropie sur la broche A0. Ne gardez que les 4 bits les moins significatifs.

- Décalez ces 4 bits dans une valeur de "graine", répétez 8 fois pour obtenir une graine à virgule flottante de 32 bits.

- Redimensionner la graine entre 0 et 1.

- Calculer la moyenne de cette graine et x, l'état actuel de la carte logistique.

- Avancer la carte logistique de plusieurs (64) étapes.

- Extraire un seul bit de l'état de la carte logistique x en vérifiant quelques décimales insignifiantes.

- Déplacez ce bit dans le résultat final.

- Répétez toutes les étapes ci-dessus 20 fois.

Remarque: Dans le code, Serial.println et Serial.begin sont commentés. Supprimez le // pour vérifier les nombres aléatoires générés sur le moniteur série.

Pour être juste, je n'ai pas vérifié statistiquement la qualité des nombres aléatoires (par exemple, la suite de tests NIST) mais ils semblent être OK.

Étape 4: Émerveillez-vous devant votre machine Godot

Émerveillez-vous devant votre machine Godot !
Émerveillez-vous devant votre machine Godot !

Profitez de votre Godot Machine et partagez, commentez et/ou demandez si quelque chose n'est pas clair.

En attendant que le numéro Godot soit trouvé, veuillez voter pour ce Instructable dans le concours Made With Math ! Merci!

Concours Made with Math
Concours Made with Math
Concours Made with Math
Concours Made with Math

Finaliste du concours Made with Math

Conseillé: