{"id":1644,"date":"2021-06-06T08:26:53","date_gmt":"2021-06-06T07:26:53","guid":{"rendered":"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/?p=1644"},"modified":"2021-06-10T10:32:59","modified_gmt":"2021-06-10T09:32:59","slug":"projet-rubiks-cube-2021-antoine-nolan-nicolas","status":"publish","type":"post","link":"https:\/\/blog.univ-angers.fr\/polytech_2A\/2021\/06\/06\/projet-rubiks-cube-2021-antoine-nolan-nicolas\/","title":{"rendered":"Projet Rubiks Cube 2021 Antoine Nolan Nicolas"},"content":{"rendered":"<p><strong>Pr\u00e9sentation du projet:<\/strong><\/p>\n<p>Bonjour, nous sommes Antoine Nicolas et Nolan, \u00e9tudiants en deuxi\u00e8me ann\u00e9e pr\u00e9paratoire int\u00e9gr\u00e9e de Polytech Angers. Dans l\u2019objectif de r\u00e9aliser une armoire \u00e0 \u00e9nigmes pour le futur escape Polytech nous \u00e9tions charg\u00e9s de concevoir une de ces \u00e9nigmes qui n\u2019\u00e9tait autre que la r\u00e9solution d\u2019un Rubik\u2019s Cube. \tIl ne fallait pas simplement r\u00e9soudre le Rubik\u2019s Cube \u00e0 la main (ce serait trop simple) mais il fallait le r\u00e9soudre \u00e0 l\u2019aide d\u2019un robot qui ferait tourner ces faces gr\u00e2ce \u00e0 des boutons.<\/p>\n<p><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2021\/06\/rubiks-cube.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2021\/06\/rubiks-cube-300x300.jpg\" alt=\"rubik&#039;s cube\" width=\"300\" height=\"300\" class=\"aligncenter size-medium wp-image-1645\" srcset=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/rubiks-cube-300x300.jpg 300w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/rubiks-cube-150x150.jpg 150w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/rubiks-cube.jpg 474w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><strong>Phase de conception:<\/strong><\/p>\n<p>Nous avons aussi pens\u00e9 \u00e0 la mani\u00e8re dont nous allions faire tourner le Rubik\u2019s cube. Nous avons opt\u00e9 pour 6 servomoteurs \u00e0 rotation continue qui seront contr\u00f4l\u00e9s par un Arduino. Ils ont l\u2019avantage de pouvoir tourner comme son nom l\u2019indique en continu et dans les deux sens de rotation contrairement \u00e0 d\u2019autres moteurs qui ne peuvent tourner qu\u2019\u00e0 270\u00b0. Pour conna\u00eetre la force qu\u2019il faudrait exercer pour faire tourner les faces du Rubik\u2019s cube, nous avons effectu\u00e9 des tests simples \u00e0 Polytech, ce qui nous a permis d\u2019avoir des servomoteurs suffisamment puissants et ainsi ne pas commander des servomoteurs inadapt\u00e9s. Afin de cr\u00e9er une interface homme-machine affordante, nous avons pens\u00e9 \u00e0 des boutons qui auraient la m\u00eame couleur que la face que l\u2019utilisateur souhaite faire tourner. De plus, nous avons r\u00e9fl\u00e9chi \u00e0 un switch qui permet de faire tourner les faces dans les deux sens. Nous avons \u00e9galement r\u00e9fl\u00e9chi \u00e0 un boitier de contr\u00f4le qui permettrait de ranger l\u2019Arduino et la breadboard afin d\u2019avoir un rendu plus agr\u00e9able \u00e0 utiliser et \u00e0 regarder.  Enfin, nous avons pens\u00e9 \u00e0 mettre un miroir \u00e0 l\u2019arri\u00e8re de la structure afin de voir le Rubik\u2019s cube dans son ensemble.<\/p>\n<p><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2021\/06\/servomoteur.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2021\/06\/servomoteur-300x300.jpg\" alt=\"servomoteur\" width=\"300\" height=\"300\" class=\"aligncenter size-medium wp-image-1646\" srcset=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/servomoteur-300x300.jpg 300w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/servomoteur-150x150.jpg 150w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/servomoteur.jpg 474w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><strong>Conception Assist\u00e9e par ordinateur:<\/strong><\/p>\n<p>Nous avons ensuite r\u00e9fl\u00e9chi sur la forme de la structure qui pourrait accueillir le Rubik\u2019s cube. Nous avons opt\u00e9 pour trois formes diff\u00e9rentes, chacune avec ses avantages et ses inconv\u00e9nients. La premi\u00e8re est simple \u00e0 construire mais pr\u00e9sente des probl\u00e8mes pour accueillir les servomoteurs, il faut r\u00e9aliser un porte-\u00e0-faux assez important afin d\u2019aligner les moteurs avec le centre du Rubik\u2019s cube. La seconde est simple \u00e0 construire avec une installation facile des servomoteurs, mais les pi\u00e8ces pour la construire ne sont pas disponibles chez notre fournisseur ; il nous fallait des cubes qui puissent relier 4 barres pour former une croix. Enfin, la derni\u00e8re structure est r\u00e9alisable avec les pi\u00e8ces disponibles et permet de monter les servomoteurs. Cependant elle est relativement compliqu\u00e9e \u00e0 monter car il est compliqu\u00e9 de centrer parfaitement les servomoteurs.<br \/>\nPour mieux visualiser nos id\u00e9es, un travail de mod\u00e9lisation 3D a \u00e9t\u00e9 effectu\u00e9. Nous avons mod\u00e9lis\u00e9 les pi\u00e8ces pr\u00e9sentes sur le site du fournisseur \u00e0 l\u2019\u00e9chelle quand les dimensions \u00e9taient disponibles. Cela nous a permis d\u2019\u00e9viter des probl\u00e8mes futurs, comme des erreurs de mesures, des probl\u00e8mes li\u00e9s \u00e0 des dimensions inconnues\u2026<br \/>\nVoici les images de nos trois structures :<\/p>\n<p><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2021\/06\/tableau-structure.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2021\/06\/tableau-structure.png\" alt=\"tableau structure\" width=\"1220\" height=\"437\" class=\"aligncenter size-full wp-image-1649\" srcset=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/tableau-structure.png 1220w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/tableau-structure-300x107.png 300w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/tableau-structure-1024x366.png 1024w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/tableau-structure-500x179.png 500w\" sizes=\"auto, (max-width: 1220px) 100vw, 1220px\" \/><\/a><\/p>\n<p><strong>Code:<\/strong><\/p>\n<p>Simultan\u00e9ment avec la mod\u00e9lisation 3D, nous avons cr\u00e9\u00e9 le code Arduino qui nous permettra de faire pivoter nos faces suite \u00e0 un appui sur un bouton. Le code est relativement simple, il fait tourner le moteur quand l\u2019utilisateur appuie sur le bouton. Il y a en plus un d\u00e9lai entre chaque appui de bouton afin de ne pas faire tourner deux faces en m\u00eame temps et de risquer de casser le Rubik\u2019s cube.<\/p>\n<p><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2021\/06\/code1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2021\/06\/code1.png\" alt=\"code\" width=\"643\" height=\"315\" class=\"aligncenter size-full wp-image-1650\" srcset=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/code1.png 643w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/code1-300x146.png 300w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/code1-500x244.png 500w\" sizes=\"auto, (max-width: 643px) 100vw, 643px\" \/><\/a><\/p>\n<p><strong>Assemblage:<\/strong><\/p>\n<p>Une fois la forme de la structure choisie et le code r\u00e9alis\u00e9, nous avons command\u00e9 nos pi\u00e8ces et nous les avons assembl\u00e9es pour commencer \u00e0 faire des tests gr\u00e2ce \u00e0 l\u2019Arduino.<br \/>\nNous avons viss\u00e9 les barres ensemble gr\u00e2ce \u00e0 des cubes pr\u00e9vus \u00e0 cet effet. Une fois cela fait, nous avons mis les servomoteurs dans leur support que nous avons fix\u00e9s aux \u00e9querres. Ensuite, nous avons plac\u00e9 les \u00e9querres afin que l\u2019axe de rotation des servomoteurs soit parfaitement align\u00e9 avec le centre des faces du Rubik\u2019s cube. Pour tenir le Rubik\u2019s cube, nous avons viss\u00e9 des entretoises sur les servomoteurs. Ces entretoises sont ensuite mises en contraintes dans des bouchons en li\u00e8ge qui sont coll\u00e9s au centre des diff\u00e9rentes faces du Rubik\u2019s cube. En parall\u00e8le, nous avons ajust\u00e9 le temps que mettaient les servomoteurs pour faire tourner les faces de 90\u00b0.<br \/>\nEnfin, nous avons eu quelques id\u00e9es afin de rendre le syst\u00e8me plus ergonomique. Par exemple, nous avons pens\u00e9 \u00e0 cr\u00e9er une bo\u00eete dans le style des contr\u00f4leurs de borne d\u2019arcade permettant d\u2019accueillir l\u2019Arduino et les boutons afin que les c\u00e2bles soient rang\u00e9s de fa\u00e7on optimale. <\/p>\n<p><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2021\/06\/structure-et-boitier.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2021\/06\/structure-et-boitier.png\" alt=\"structure et boitier\" width=\"562\" height=\"488\" class=\"aligncenter size-full wp-image-1651\" srcset=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/structure-et-boitier.png 562w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/structure-et-boitier-300x260.png 300w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/structure-et-boitier-345x300.png 345w\" sizes=\"auto, (max-width: 562px) 100vw, 562px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2021\/06\/strcuture-assembl\u00e9e-2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2021\/06\/strcuture-assembl\u00e9e-2.jpg\" alt=\"strcuture assembl\u00e9e (2)\" width=\"318\" height=\"346\" class=\"aligncenter size-full wp-image-1655\" srcset=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/strcuture-assembl\u00e9e-2.jpg 318w, https:\/\/blog.univ-angers.fr\/polytech_2A\/files\/2021\/06\/strcuture-assembl\u00e9e-2-275x300.jpg 275w\" sizes=\"auto, (max-width: 318px) 100vw, 318px\" \/><\/a><\/p>\n<p><strong>Probl\u00e8mes rencontr\u00e9s:<\/strong><\/p>\n<p>Nous avons rencontr\u00e9 quelques probl\u00e8mes lors de la conception et de la r\u00e9alisation de notre projet. Pour commencer, \u00e9voquons les probl\u00e8mes ayant attrait \u00e0 l\u2019aspect fonctionnel de notre projet. Notre premi\u00e8re structure n\u2019\u00e9tait pas adapt\u00e9e pour faire tourner les faces avec les servomoteurs car il fallait les d\u00e9porter sur une trop longue distance, ce qui aurait apport\u00e9 des forces et des moments sur la structure et les servomoteurs suppl\u00e9mentaires, ce que nous voulions absolument \u00e9viter afin de faire tourner au mieux le Rubik\u2019s cube. Pour la seconde structure, nous avons eu des probl\u00e8mes concernant les pi\u00e8ces propos\u00e9es par le fournisseur avec lequel nous devions travailler. Nous avons donc cr\u00e9\u00e9 une nouvelle forme pour notre structure, ce qui nous a permis de monter les servomoteurs avec les pi\u00e8ces disponibles. Cependant, cette derni\u00e8re a \u00e9t\u00e9 tr\u00e8s compliqu\u00e9e \u00e0 construire car il faut \u00eatre tr\u00e8s pr\u00e9cis dans l\u2019installation de nos servomoteurs. Enfin, le probl\u00e8me reste que deux servomoteurs sont un peu d\u00e9port\u00e9s de l\u2019axe du Rubik\u2019s cube. Ce probl\u00e8me se corrige un minimum avec les supports de servomoteurs mais cela ne reste pas parfaitement centr\u00e9.<\/p>\n<p>Nous avons \u00e9galement rencontr\u00e9 des difficult\u00e9s li\u00e9es \u00e0 la logistique. Le temps de livraison de nos pi\u00e8ces a \u00e9t\u00e9 tr\u00e8s long. En effet, nous avons attendu un mois pour que les pi\u00e8ces n\u00e9cessaires \u00e0 la construction de la structure et les servomoteurs arrivent. Nous ne pouvions donc rien entreprendre de nouveau car nous ne pouvions pas savoir si de nouvelles difficult\u00e9s allaient se pr\u00e9senter. Ce probl\u00e8me s\u2019est r\u00e9it\u00e9r\u00e9 avec un nouveau mois d\u2019attente pour les derni\u00e8res pi\u00e8ces qui nous manquaient.<\/p>\n<p>Nous avons aussi rencontr\u00e9 un probl\u00e8me concernant les servomoteurs car rien n\u2019indiquait sur le site du fournisseur leur mani\u00e8re de fonctionner, c\u2019est-\u00e0-dire que nous ne savions pas qu\u2019ils ne se contr\u00f4laient que par la vitesse et non gr\u00e2ce \u00e0 sa position angulaire. Nous avons donc test\u00e9 tous les servomoteurs afin de r\u00e9gler les vitesses dans le but de faire un angle de 90\u00b0 suite \u00e0 un appui sur un bouton.<br \/>\nCependant, la friction ne nous permettait pas de r\u00e9aliser des angles de 90\u00b0 \u00e0 chaque fois donc nous avons utilis\u00e9 des servomoteurs \u00e0 contr\u00f4le angulaire qui ne peuvent tourner que de 270\u00b0 mais qui permettent quand m\u00eame d\u2019avoir toutes les configurations pour r\u00e9soudre le Rubik\u2019s cube. Cependant, nous avons rencontr\u00e9 un probl\u00e8me avec les entretoises qui tiennent le Rubik\u2019s cube. Elles se d\u00e9vissent lorsque l\u2019on les tourne dans un certain sens, il a donc fallu coller les entretoises au moteur. <\/p>\n<p>Nous avons donc command\u00e9 et mont\u00e9 les nouveaux servomoteurs \u00e0 contr\u00f4le angulaire, nous nous sommes malheureusement rendu compte que ces servomoteurs ne tournent pas parfaitement \u00e0 270\u00b0, nous avons 2 \u00e0 3\u00b0 de d\u00e9calage ce qui nous emp\u00eache de parfaitement utiliser notre solveur de Rubik\u2019s cube.<br \/>\nDe plus, nous avons d\u00fb changer de \u00ab type \u00bb de Rubik\u2019s cube car nous avions commenc\u00e9 avec un cube \u00ab blanc \u00bb. En effet, quand nous faisions tourner les faces, le cube central tournait dans le vide donc nous n\u2019arrivions pas \u00e0 faire tourner la face. Nous avons donc opt\u00e9 pour le mod\u00e8le \u00ab noir \u00bb, qui lui est plus rigide mais qui peut \u00eatre plus compliqu\u00e9 \u00e0 faire tourner.<\/p>\n<p>Nous avons eu aussi un servomoteur qui \u00e9tait d\u00e9fectueux; d\u00e8s que nous le branchions, il cr\u00e9ait un court-circuit ce qui \u00e9teignait l\u2019Arduino instantan\u00e9ment.<br \/>\nNous avons donc rencontr\u00e9 des difficult\u00e9s de montages assez importantes. En effet, nous devions fixer le Rubik\u2019s cube \u00e0 tous les servomoteurs tout en nous assurant que les servomoteurs tiennent \u00e0 la structure, ce qui n\u2019\u00e9tait pas une mince affaire. <\/p>\n<p><strong>Vid\u00e9o du solveur de Rubiks Cube en action:<\/strong><\/p>\n<div style=\"width: 584px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-1644-1\" width=\"584\" height=\"329\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2021\/06\/Vid\u00e9o-projet-en-action.mp4?_=1\" \/><\/p><p>Votre navigateur ne prend pas en charge les vid\u00e9os HTML5.<br \/>     Voici <a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2021\/06\/Vid\u00e9o-projet-en-action.mov\">un lien pour t\u00e9l\u00e9charger la vid\u00e9o<\/a>.<\/p><p><a href=\"https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2021\/06\/Vid\u00e9o-projet-en-action.mp4\">https:\/\/blog.univ-angers.fr\/istiaprojetsei2\/files\/2021\/06\/Vid\u00e9o-projet-en-action.mp4<\/a><\/video><\/div>\n<p><strong>Conclusion :<\/strong><\/p>\n<p>Le r\u00e9sultat final est conforme au cahier des charges car il permet \u00e0 une personne de r\u00e9soudre le Rubik\u2019s cube par l&#8217;interm\u00e9diaire de servomoteurs. Cependant, il serait possible d&#8217;am\u00e9liorer de nombreux points afin de rendre l\u2019utilisation de notre syst\u00e8me plus facile et plus rapide. Pour commencer, le syst\u00e8me frotte donc nous perdons en rapidit\u00e9. Il nous faudrait donc un moyen afin de rendre la rotation du Rubik\u2019s cube plus fluide ou de mieux centrer nos servomoteurs. Nous pourrions aussi surement am\u00e9liorer la visibilit\u00e9 en ayant un moyen de voir le Rubik\u2019s cube sans l\u2019interm\u00e9diaire d\u2019un miroir, pourquoi pas une cam\u00e9ra qui nous permettrait de voir toutes les faces du Rubik\u2019s cube en m\u00eame temps gr\u00e2ce \u00e0 un moniteur externe. Enfin, nous pourrions avoir un tableau de jeu plus agr\u00e9able pour l\u2019utilisateur, c\u2019est-\u00e0-dire un tableau de jeu qui pourrait plus ressembler \u00e0 ceux des bornes d\u2019arcade avec des boutons plus gros donc plus faciles \u00e0 manipuler.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pr\u00e9sentation du projet: Bonjour, nous sommes Antoine Nicolas et Nolan, \u00e9tudiants en deuxi\u00e8me ann\u00e9e pr\u00e9paratoire int\u00e9gr\u00e9e de Polytech Angers. Dans l\u2019objectif de r\u00e9aliser une armoire \u00e0 \u00e9nigmes pour le futur escape Polytech nous \u00e9tions charg\u00e9s de concevoir une de ces &hellip; <a href=\"https:\/\/blog.univ-angers.fr\/polytech_2A\/2021\/06\/06\/projet-rubiks-cube-2021-antoine-nolan-nicolas\/\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":76338,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[344],"tags":[193,26,192,243,104],"class_list":["post-1644","post","type-post","status-publish","format-standard","hentry","category-344","tag-angers","tag-cao","tag-polytech","tag-polytech-angers","tag-projet-ei2"],"_links":{"self":[{"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/posts\/1644","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/users\/76338"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/comments?post=1644"}],"version-history":[{"count":1,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/posts\/1644\/revisions"}],"predecessor-version":[{"id":1654,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/posts\/1644\/revisions\/1654"}],"wp:attachment":[{"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/media?parent=1644"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/categories?post=1644"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/polytech_2A\/wp-json\/wp\/v2\/tags?post=1644"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}