1 points par GN⁺ 2025-11-02 | 1 commentaires | Partager sur WhatsApp
  • 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

Vidéos de démonstration

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.c et cores/teensy4/usb_serial2.c,
      il faut supprimer l’attribut DMAMEM placé devant les définitions des tableaux txbuffer[] et rx_buffer[]

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

 
GN⁺ 2025-11-02
Commentaires Hacker News
  • J’ai construit moi-même Cubotino il y a quelques années. La structure est similaire, et je l’ai mis sur un dépôt GitHub
    J’utilisais un Raspberry Pi 2 W, et il fonctionnait bien pour mélanger et résoudre un cube 3x3x3 avec seulement deux servomoteurs
  • Bonjour à tous. Je suis le créateur de SARCASM. Merci à l’OP de l’avoir partagé
    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
    • Vraiment magnifique. Je me souviens avoir été le premier enfant à apporter un Rubik’s Cube à l’école dans les années 70.
      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
    • J’ai l’impression qu’en emportant ça dans les années 1920 avec une machine à remonter le temps, en le mettant dans une vitrine et en faisant payer 5 cents la démonstration, on deviendrait riche
    • Je me demande si tu pourrais partager les fichiers STL de la coque et du bras. C’est un projet vraiment remarquable
    • Je compatis, moi aussi il m’est arrivé de justifier le temps passé sur un projet à cause de son nom
  • Pour info, le record Guinness du robot Rubik’s Cube le plus rapide est de 103 millisecondes
    On peut voir la vidéo YouTube et l’article de Purdue
    • Je me demande combien de cubes ont explosé pendant la construction de ce robot
    • C’est impressionnant, et en même temps légèrement dingue
    • Un solveur robotique est moins un problème mental qu’un problème physique. Avec juste des photos des arêtes supérieures et inférieures du cube, on peut le résoudre en quelques nanosecondes
  • Le design est vraiment superbe. La vidéo de démo est excellente aussi
    • C’est le projet le plus charmant que j’aie vu récemment
      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
  • Moi, j’ai besoin d’une machine qui mélange automatiquement. Avec deux cubes, l’un serait mélangé pendant que l’autre est en train d’être résolu
    Les cubers passent bien plus de temps à mélanger qu’à résoudre. C’est le mélange qu’il faut automatiser
    • Moi aussi, je pense que c’est la partie la plus difficile. Pour résoudre vite, il faut apprendre beaucoup de schémas
      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
    • Je ne connais pas bien ce domaine, mais je me demande s’il existe des faces de cube numériques. Un cube physique dont on pourrait changer instantanément les couleurs
    • Jusqu’à un certain niveau, mélanger est aussi un bon entraînement. Si on mélange selon un algorithme défini, on termine en moins de 30 mouvements
      On a l’impression que ça prend longtemps, mais en réalité la différence n’est pas si grande
    • Je me dis qu’il suffirait peut-être de faire tourner la machine de résolution à l’envers
  • Une explication plus détaillée du projet se trouve dans ce message du forum
  • J’aimerais poser une question à HN. Je pensais qu’en partant d’un cube résolu et en tournant alternativement deux faces adjacentes dans le même sens, il finirait un jour par revenir à l’état résolu, mais même après plusieurs centaines de tours ce n’est pas arrivé. Je me demande pourquoi
    • Par exemple, la combinaison RU a un ordre de 105 dans le groupe cyclique. Autrement dit, il faut effectuer 210 rotations au total (105 sur chaque face) pour revenir à l’état d’origine
      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
    • Il faut répéter exactement 105 fois. Voir ce lien de visualisation
      Si tu tournais dans le sens opposé, alors 63 répétitions suffisent. Voir ce lien
  • Il y a 16 ans, j’ai réalisé cette vidéo d’un robot cube
    Les mouvements de ce robot-ci ressemblent beaucoup à ceux de mon ancien travail. J’aime particulièrement l’affichage à l’écran
  • La résolution du cube se divise en deux étapes — calculer les mouvements et exécuter les mouvements
    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
  • La personnalité du créateur transparaît directement dans le logiciel. Douglas Adams aurait certainement adoré ça
    J’aimerais voir davantage de robots dans l’esprit d’Adams
    • J’espère voir davantage de robots pleins de personnalité venant d’Unsirious Cybernetics