C'est une machine qui lance trois dés dans un plateau, avec un moteur pas à pas, puis lit les résultats en utilisant OpenCV. Toute la programmation est faite en Python, le code est principalement copié de projets plus anciens et de ChatGPT.
Le code fonctionne en utilisant la détection de blob pour trouver des points sur les dés, et dbscan pour les regrouper en dés séparés. Les "séparateurs" dans le plateau sont nécessaires pour que cela fonctionne.
Le matériel utilisé est un moteur pas à pas ordinaire, et un circuit de pilote DRV8825. Un Raspberry Pi 4 et une caméra Pi 3. À part quelques vis M4/M2.5, la plupart des autres pièces sont imprimées en 3D à l'aide de PLA et de PETG.
Moteur pas à pas.
J'utilise un moteur pas à pas bipolaire, NEMA 17. Il est conçu pour 1,5 A, mais je le limite à 500 mA avec le DRV8825. Le circuit d'entraînement est alimenté en 12 V.
Construction
J'ai choisi cette version comme machine finale, car elle est plus rapide et donne de meilleurs résultats que les autres machines que j'ai construites. Elle ne nécessite pas de pièces spéciales telles que du verre ou des roulements.
La machine est assemblée avec de la colle CA et de l'adhésif thermofusible sur une planche d'étagère.
Des améliorations à apporter.
-
La caméra a besoin d'un angle un peu plus large, comme la Pi Camera 3 Wide.
-
Pour réduire les niveaux de bruit, un fond en caoutchouc devrait être utilisé dans le plateau.
-
Liste les dés en indiquant dans quelle voie ils sont placés.
Génération de nombres aléatoires.
Pour obtenir de bons nombres aléatoires à partir de lancers de dés qui donnent une valeur de 1 à 6, vous pouvez utiliser le modulo, mais il y a des choses à éviter. Si vous avez besoin d'une valeur aléatoire de 0 à 27, vous devriez lancer trois dés (d1-d3) dans un ordre, et faire ce qui suit :
(d1 - 1) * 36 + (d2 - 1) * 6 + (d3 -1) * 1Si la valeur est supérieure à 196, relancez les dés et supprimez les nombres, sinon il y aura un biais de modulo dans les résultats. Après cela, vous modulez le nombre avec 28. Exemple :
-
Le premier dés lancé : 4
-
Deuxième dés lancé : 3
-
Le troisième dé lancé : 2
121 modulo 28 = 9
标签
模型来源
