S.A.R.C.A.S.M, la machine de résolution automatique de Rubik’s Cube légèrement agaçante
(github.com/vindar)- S.A.R.C.A.S.M est un robot imprimé en 3D capable de scanner et de résoudre un Rubik’s Cube, tout en ajoutant des commentaires vocaux sarcastiques
- Il utilise un microcontrôleur Teensy 4.1 et une ESP32-CAM pour la vision et le contrôle
- Un écran ILI9341 permet d’afficher des graphismes 2D/3D, des animations et de la synchronisation labiale, tandis qu’un éclairage RGBW est synchronisé avec l’audio
- Une synthèse vocale TTS basée sur espeak-ng génère directement la voix sur l’appareil, avec une collection de répliques sarcastiques
- Pour faire tenir l’ensemble du code en RAM, il faut modifier les fichiers du cœur Teensy, et le projet est actuellement publié dans un état inachevé
Aperçu du projet
-
S.A.R.C.A.S.M (Slightly Annoying Rubik’s Cube Automatic Solving Machine) est un robot qui résout automatiquement un Rubik’s Cube
- Il se compose d’une structure matérielle réalisée avec une imprimante 3D et d’un système de contrôle basé sur Teensy
- Il scanne le cube, calcule la solution, puis émet des réactions vocales sarcastiques pendant la résolution
-
Le dépôt inclut le code et les schémas électroniques, et des informations complémentaires sont disponibles dans le fil du forum Teensy
- Lien du forum : https://forum.pjrc.com/index.php/…
Vidéos de démonstration
- Clip court : https://youtube.com/shorts/Xer4mPZZH8E
- Démonstration complète : https://youtu.be/WV52RtuWXk0
Matériel principal et fonctionnalités
- Utilise un Teensy 4.1 comme contrôleur principal, avec une ESP32-CAM pour la capture d’image
- L’écran ILI9341 permet des graphismes 2D et 3D personnalisés, des animations et la synchronisation labiale
- Des moteurs pas à pas et servomoteurs manipulent le cube, avec des capteurs de position pour détecter les erreurs
- L’éclairage RGBW est synchronisé avec l’audio pour produire des effets visuels
- Une synthèse vocale TTS basée sur espeak-ng génère la voix directement sur l’appareil, avec une collection de répliques sarcastiques
Instructions de modification du code
- Il faut modifier les fichiers du cœur Teensy pour faire tenir l’ensemble du code en RAM
- Dans les fichiers
cores/teensy4/usb_serial.cetcores/teensy4/usb_serial2.c,
il faut supprimer l’attributDMAMEMplacé devant les définitions des tableauxtxbuffer[]etrx_buffer[]
- Dans les fichiers
Points d’attention
- Le projet est actuellement en cours de développement, et l’état du dépôt est désordonné et incomplet
- Cet état pourrait rester tel quel jusqu’à ce que le développeur ait le temps d’y revenir
1 commentaires
Commentaires Hacker News
J’utilisais un Raspberry Pi 2 W, et il fonctionnait bien pour mélanger et résoudre un cube 3x3x3 avec seulement deux servomoteurs
J’y ai consacré beaucoup de temps, mais c’était vraiment un projet très plaisant. Ça me fait plaisir de voir que d’autres l’apprécient
J’ai rassemblé des détails sur le matériel et le logiciel dans ce message du forum Teensy
Comme je ne savais pas le résoudre, j’ai commandé un livret d’explications, mais j’ai reçu un livret sur la théorie des groupes (group theory). C’était beaucoup trop difficile pour mon cerveau d’ado de l’époque
On peut voir la vidéo YouTube et l’article de Purdue
Il y a aussi une démo plus longue
Comme je vis dans le monde du logiciel, je me demande à quel point ce serait difficile de construire quelque chose comme ça soi-même
En tant qu’amateur de cubes, c’est aussi parfait comme dispositif pour briser la glace au bureau. Un collègue qui passe pourrait mélanger le cube et le jeter dans la machine, et tout le monde trouverait ça amusant
Les cubers passent bien plus de temps à mélanger qu’à résoudre. C’est le mélange qu’il faut automatiser
Ce serait formidable d’avoir un appareil capable de mettre automatiquement le cube dans un état précis pour s’entraîner à répéter certains algorithmes
On a l’impression que ça prend longtemps, mais en réalité la différence n’est pas si grande
J’ai fait une expérience similaire autrefois, et quand je tournais vite il ne revenait jamais à l’état résolu. J’ai probablement inséré par erreur une double rotation (U2) ou mal compté le nombre de tours
Pour l’explication mathématique, voir la page 41 de ce document
Si tu tournais dans le sens opposé, alors 63 répétitions suffisent. Voir ce lien
Les mouvements de ce robot-ci ressemblent beaucoup à ceux de mon ancien travail. J’aime particulièrement l’affichage à l’écran
Les humains font ces deux choses en parallèle, mais un robot exécute des mouvements déjà calculés, donc le temps dépend uniquement de la vitesse
J’aimerais voir davantage de robots dans l’esprit d’Adams