Étape 3: Concept
En connectant chaque LED à un registre à décalage et le passage sur un tableau de données de 54 octets à une guirlande de registres à décalage, nous pouvons contrôler nos LED mais nous voulons. À l’aide écrit seulement numérique, les trois diodes dans un LED RBG nous fournissent 8 couleurs au choix : rouge, vert, bleu, Yellow(RG), Violet(RB), Teal(BG) et White(RGB). Si nous nous connectons nos LED systématiquement afin que leur fils correspondent aux broches mêmes sur chaque poste du Registre, alors nous pouvons définir 8 octets, chacun d’eux représentant une couleur à une réception de LED.
Pour faire fonctionner le cube, nous créons un tableau d’octets-54, dans lequel chacun des six couleurs que nous choisissons apparaît à neuf reprises. L’ordre des octets dans ce tableau est important, parce que, lors du démarrage, ce tableau sera obtenir déplacé sur immédiatement et doit porter le cube à un État dans lequel il est déjà résolu. Rotations sont exécutées par permutation des valeurs de tableau de manière un-contre-un et puis passer le tableau à nouveau. Comme chaque voyant correspond toujours au même index dans le tableau, nous pouvons facilement comprendre dont les valeurs doivent être échangés pour obtenir une rotation donnée.
En contrôlant le cube de Rubik, vous devriez trouver qu’il y a exactement douze opérations distinctes qui peuvent être effectuées. Cube de Rubik a six faces, et nous pouvons prendre n’importe quel visage et tourner dans l’une des deux directions. Maintenir une orientation fixe, chaque rotation va changer la position des douze places le long du bord du cube, ainsi que 8 carrés sur une des faces. Ainsi, dans notre code, nous devons avoir des douze sous-routines que chacun échange vingt octets dans le tableau. Pour faire fonctionner le cube, nous avons décidé sur 8 boutons par face, afin que nous puissions tourner ou l’autre des quatre côtés de cette surface dans les deux sens. Pour un cube à six faces et 48 boutons, il y aura quatre séries de douze boutons identiques. Pour tenir compte de cela, nous nous connectons électriquement boutons identiques, afin qu’ils puissent partager une entrée à l’Arduino. Ainsi, nous utilisons 15 broches sur l’Arduino dans l’ensemble. Nous pourrions avoir couper cette numéro bas acheter, traiter les boutons avec un multiplexeur qui nécessite moins d’intrants.