Etape 2: Commencer le code de piratage...
Pour modifier le code signifie conversion arduino code, dans un tableur,
séparation des données spécifiques, manipuler les tableaux, puis remettre choses ensemble et le coller dans un éditeur de texte. Pour coussin avec des zéros pour garder les colonnes alignées, vous devez mettre en forme des colonnes pour utiliser des zéros, puis plus tard, vous devrez échanger ces zéros pour les espaces ou le compilateur va grincer chez vous. Il faut aussi faire attention lorsque vous collez des informations dans la feuille de calcul. Parfois vous devez vous assurer que vous collez uniquement les données, pas la formule ou le lien. D’autres fois, que vous devez veillez à copier les liaisons vers le bas d’une ligne, colonne ou une matrice. J’ai fini par faire plusieurs processus et plusieurs feuilles de calcul pour toutes les données. J’ai eu besoin de 8 cartes de données (4 pour cathode commune et 4 pour anode commune). Je vais probablement finir par changer pour 2 cartes et une ligne pour régler le départ value(z=z+1,2,3) z et un autre pour empêcher le problème de débordement (plus de 192 alors z = z-192).
Il y a plusieurs dossiers qui contiennent divers bouts de code qui ce cube LED de fonctionner, et il y a quelques tables des informations que vous pourriez manipuler pour changer la façon dont il fonctionne. Le fichier cubeplex.h contient la table de flushbuffer, qui est ce que j’ai choisi de modifier.
Voici quelques exemples de ligne de la mémoire tampon affleurante.
Si (_cube_buffer [0]! = 0) flushElement (copy_frame, 4, 8, _cube_buffer [0]) ;
Si (_cube_buffer [1]! = 0) flushElement (copy_frame, 16, 4, _cube_buffer [1]) ;
Si (_cube_buffer [2]! = 0) flushElement (copy_frame, 12, 16, _cube_buffer [2]) ;
Si (_cube_buffer [3]! = 0) flushElement (copy_frame, 8,12, _cube_buffer [3]) ;
Vous pouvez voir chaque ligne est sérialisée aux deux extrémités, mais au milieu de la ligne, il y a une paire de nombres qui sont uniques à chaque ligne. Vous pouvez également remarquer qu’il y a les numéros, de remplissage des espaces pour que les choses s’alignent bien, ceci est important lorsque vous manipulez les données plus tard.
Ce tableau du code établit une relation entre des paires de nombre et la séquence à la lumière de chaque LED. Les numéros dans les paires représentent les broches du microcontrôleur, mais plus tard se traduits pour les adresses de port pour l’éclairage rapide.
Chaque LED peut être contrôlée dans cette table, et aucune combinaison numéro ne sera répété. La séquence devrait rester le même, mais les nombre paires qui représentent les broches du microcontrôleur devra être ré-arrangé pour travailler avec anode commune LEDs avec le code original (anode commune) et le câblage. J’utilise habituellement un éditeur de texte pour écrire des programmes, mais dans ce cas, un éditeur de texte ne fonctionne pas bien pour manipuler les données. Étant donné que j’étais face à un tableau de nombres, 2 colonnes en 192 lignes, une feuille de calcul semblent les plus propices.
Ce n’est pas la première fois que je l’ai fait, c’est la deuxième fois que je l’ai fait, c’était un peu plus facile cette fois. L’autre fois que je l’ai fait a été de créer 4 table pour compenser comment le cube est orienté avec le câblage du cube. Selon comment vous connectez les fils, il y a 4 façons courantes de le faire, chaque table fonctionne avec chacun des 4 façons que vous pouvez configurer ces fils.
Pour faire un cube anode commune à travailler avec le logiciel de cathode commune, vous naturellement suppose qu’inverser les broches ferait exactement ce que vous voulez, mais si vous regardez comment complex grand nombre de look de schémas charlieplexed LED, on pourrait penser qu’inverser les broches ne peut pas faire la bonne chose à tous.
Lorsque vous examinez un la le LED spires, vous trouvez qu’il utilise 4 pins à LED de lumière 12, c’est l’idéal en ce que toutes les combinaisons possibles des façons de brancher un singe positif et une seule borne négative, seront traduira par une LED est allumée. La formule pour calculer combien de LED peut être allumé depuis un certain nombre de broches du microcontrôleur, est N carré moins N ou N fois (N-1). Une flèche unique possède des 4 fils, donc le maximum il peut contrôler est 12 LED (4 x 4 = 16, 16-4 = 12, ou 4 fois 3 = 12. 4 LEDs RGB signifie un total de 12 LED. Le cube est loin d’être idéale, puisqu’il utilise 16 broches pour 192 LEDs de contrôle, encore le nombre max de LED devrait être un 240, si elles étaient câblés en un mode d’idée.
Quand vous regardez le code, vous pouvez voir que chaque 4 lignes est un groupe, car ces broches du microcontrôleur 4 contrôlent une flèche unique.
Maintenant regardons comment s’y prendre pour la manipulation des données avec un tableur et un éditeur de texte, d’obtenir les résultats souhaités.