Étape 12 : Carte les LEDs
Cette étape montre comment générer une table des positions physiques pour les groupes de LED. Si vous avez suivi ma mise en page, il y a parfaitement deux étapes vous pouvez ignorer cela parce que le tableau fourni pour vous sera correct.
Tout d’abord, téléchargez le fichier PhysicalLoc.h et jetez un oeil à elle. Il y a un tableau nommé PhysLoc qui prend la forme: [Channel] [ClusterNumber] = {X, Y}. Canal est le canal de sortie de sortie SPI demultiplexed de la Commission de microcontrôleur. ClusterNumber est l’ordre dans lequel les groupes de LED RVB sont disposés dans la chaîne de WS2803s. Le premier cluster RVB sur la carte plus proche de vous au microcontrôleur est 0.
X, Y étant les coordonnées du pôle RVB sur la grille hexagonale.
Il existe en fait trois versions du tableau PhysLoc dans PhysicalLoc.h, mais ils sont séparés par des macros précompilateur #if côté == gauche, #if côté == droit, #if côté == FRONT. Vous devrez remplir tous les trois tableaux. Gauche et droite sont du point de vue d’un cavalier assis à l’arrière.
Grilles hexagonales peuvent prendre un certain s’y habituer si vous connaissez seulement avec grilles cartésiennes. J’utilise un pointu surmonté axial hexagonal repère. C’est comme la grille cartésienne, sauf l’axe des Y est inclinée à angle de 60 degrés. Voici une excellente explication de comment cela fonctionne : redblobgames.com/grids/hexagons/#coordinates.
Utilisation sec effacer marqueur et étiquette chaque des hexagones sur le panier d’achat selon les deux schémas fournis. Utiliser le même modèle pour les côtés droit et gauche.
Télécharger RaveCart_MappingHelper.zip. Cela contient le code C et les fichiers de projet MPLABX. Compilez le code et le programme de l’un de vos PIC18F4550s. Le code fera un cluster LED deviennent blancs à la fois. Le reste est éteint. Il commence à canal0 cluster0, puis monte à cluster 119 (le dernier groupe de RVB du 20e Conseil). Après cela, il commence le processus de nouveau au canal 1 et ainsi de suite. Vous n’avez probablement 20 panneaux dans une chaîne, il n’y aura aucun amas activés pendant un certain temps à la fin de chaque balayage des canaux. Il y a un délai de dix secondes entre le déplacement vers le prochain cluster. Utiliser ce temps pour enregistrer les coordonnées que vous avez écrit sur le cluster illuminé dans le tableau PhysLoc.
Par exemple, si les trois premiers clusters RVB qui s’allument sur le côté gauche sont [1,14] [1,13], [2,13] le tableau PhysLoc commencerait comme ceci :
#if côté == gauche
{{{1, 14},
{1, 13},
{2,13},
Si un cluster ne s’allumerait pas parce qu’il ne pouvait pas être placé derrière un trou de mettre {vide, vide} dans son champ. Cela indique le code d’éclairage pour éloigner ce cluster. Sur le dernier groupe de chaque canal entrez {fin, fin}. C’est à dire si une chaîne a huit conseils vous mettez {fin, fin} à index 48 parce que 6 * 8 = 48.
Remplir le tableau ChanLength. Il s’agit de huit chiffres indiquant le nombre de clusters est dans chacun des huit canaux.