Vue lecture

SARCASM - Ce robot résout un Rubik's Cube en vous insultant

En mai de cette année, des étudiants de Purdue ont battu le record du monde du robot résolveur de Rubik’s Cube grâce à leur machine, Purdubik’s Cube qui a torché un cube en 0.103 secondes !! Plus rapide que moi mais surtout plus rapide qu’un clin d’œil !

Et pendant ce temps, un autre passionné de Rubik’s Cube, Vindar , bossait tranquillement sur SARCASM , un autre robot qui résout aussi des Rubik’s Cubes, sauf que lui, il prend son temps ! Et surtout, il vous clashe pendant qu’il le fait. Il a une voix, des animations, un système d’humeur, et une personnalité de collègue insupportable ! Il est lent, il est sarcastique, il est inutilement compliqué, et c’est exactement pour ça qu’il est génial, vous allez voir !

SARCASM, ça veut dire Slightly Annoying Rubik’s Cube Automatic Solving Machine . Déjà rien que le nom c’est tout un programme. Et ce robot n’a qu’un seul objectif : résoudre des cubes en étant légèrement casse couilles. Pas hyper rapide, pas hyper efficace, juste chiant ce qu’il faut.

Le projet a démarré pendant COVID, quand tout le monde était enfermé chez soi à chercher des trucs à faire. Certains comme moi ont fait de la brioche, d’autres ont regardé Netflix en boucle et Vindar, lui, s’est dit qu’il allait créer un robot qui insulte les gens. Et nous voilà, 5 ans avec un robot qui vanne. Oui, Vindar est du genre persévérant !

Techniquement, SARCASM est un concentré de tech aussi cool qu’absurde. Le cerveau, c’est un Teensy 4.1, un microcontrôleur ARM Cortex-M7 qui tourne à 600 MHz. Pour la vision, il a utilisé une ESP32-CAM qui capture l’état du cubeet un écran ILI9341 pour afficher une tête avec des animations lip-sync. Des moteurs pas à pas (je crois que c’est comme ça qu’on dit ^^) et des servos pour manipuler le cube, des capteurs de position, un chouette éclairage RGBW, deux batteries 18650 Li-ion avec un port de charge USB-C et il a calé tout ça dans un boîtier imprimé en 3D avec un PCB custom.

Mais le logiciel les amis, c’est là que ça devient vraiment foufou car y’a du text-to-speech avec espeak-ng, des graphiques 2D et 3D custom, des animations qui bougent en temps réel et même comme je vous le disais, un système de dialogues basé sur l’humeur du robot, avec randomisation pour que chaque interaction soit différente.

Evidemment, SARCASM dispose aussi d’un algorithme de résolution du cube avec du décodage JPEG en temps réel pour la reconnaissance des couleurs, du multithreading avec gestion d’interruptions, bref, tout ce qu’il faut pour résoudre des Rubik’s Cube et créer une personnalité à cette machine.

Le robot détecte même quand vous vous foirez en manipulant le cube, juste pour pouvoir vous clasher dessus. Chaque détail technique sert un seul objectif qui est de rendre cette machine “vivante”.

Pour faire tenir tout ça, Vindar a dû modifier le noyau du Teensy. Parce que oui, même avec 600 MHz et un ARM Cortex-M7, il fallait optimiser pour que tout rentre dans la RAM et il a mis tout son code en open-source, sous licence GPL-3.0. Après, comme le précise le dev, son code est incomplet et bordélique mais bon, ça fonctionne…

Et surtout, le robot est autonome. Vous posez un cube standard dessus, il le scanne, il calcule, il résout, tout ça offline sans API ou service de cloud.

Le projet a été présenté en détails sur le forum PJRC , la communauté autour des cartes Teensy et les retours sont unanimement positifs ! Puis au moment, celui-là on s’en souviendra !

Merci à Lorenper pour le partage de cette découverte !

  •