Étape 24 : Sélection des composants, concevoir le schéma et PCB
Au début de cette instructable j’ai fourni une liste des composants qui seront utilisés dans la partie électronique de ce projet.
Tout comme des informations supplémentaires, la liste des composants fournis est le résultat des trois itérations du schéma et PCB. Rejoindre la conception finale, j’ai conçu trois versions du schéma, les trois versions du CCP, fabriqués manuellement trois BPC énormes doubles faces, y compris le forage, vias et soudage des composants. Il m’a fallu quelques temps pour faire tout cela, mais je n’abandonne pas et atteint une conception finale du travail.
Heureusement pour vous, vous n’aurez à passer par tout cela puisque maintenant la travail de conception est entièrement open source et vous pouvez simplement l’utiliser il ou de travailler dessus pour faire vos propres modifications (différents commutateurs, différentes mises en page, des fonctionnalités supplémentaires, etc.).
Tel que mentionné précédemment, j’ai utilisé KiCAD pour l’électronique et la conception de circuits imprimés. Tous les fichiers projet KiCAD et schéma et PCB en format PDF peut être téléchargé dans mon Github.
Brève explication de l’électronique : HacKeyboard a un microcontrôleur unique, le PIC18F4550, qui a intégré USB. Le mot « microcontrôleur » et la mention « PIC18F4550 » peut sembler compliqué ou étranges mais ce sont essentiellement le même genre de chose comme l' ATMega328 que vous trouverez sur Arduinos, mais d’un autre fabricant, avec une architecture différente et différentes fonctionnalités intégrées. Vu cela dit, le microcontrôleur est responsable de gérer et de contrôler tout le clavier :
- Lecture de la matrice de commutation : En tenant compte du fait qu’un clavier est une grande matrice de commutateurs, chaque colonne et chaque ligne sont reliés à une broche e/s (entrée/sortie) différente sur le microcontrôleur. Le microcontrôleur allume chaque colonne à chaque fois, un par un et les niveaux logiques dans toutes les lignes, évaluation qui passe dans cette colonne sont pressés de lectures. Puis il désactive cette colonne et produit pour le prochain. Cela arrive plusieurs fois par seconde. C’est un processus très rapide qui est toujours en cours d’exécution sur le microcontrôleur. Une fois que les touches sont évaluées il affiche les caractères respectifs via le port USB ;
- Contrôle le lecteur Flash USB caché : Le lecteur flash est alimenté via le MAX682, qui est une charge 5V régulateur de la pompe qui a une broche 'Shutdown'. Pour activer ou désactiver le lecteur flash USB, le microcontrôleur active ou désactive cette broche, tournant on ou off.
- Enregistrer les macros et les principaux journaux : Dans le circuit, il y a un 24AA512 EEPROM série (64 K x 8 bits) qui est une mémoire qui sert à stocker toutes les macros et le journal d’activité clé. Lorsqu’en enregistrement des modes, le microcontrôleur, qui est relié à la mémoire via un protocole série (SPI) envoie à mémoire spécifique positionne les clés qui doivent être stockés. Cette mémoire contient que les données même si vous mettez débranchez le clavier. Dans le firmware par défaut chaque position macro peut stocker jusqu'à 150 octets et le reste de la mémoire est utilisé par l’enregistreur principal. Cela peut facilement être modifié en changeant juste quelques valeurs d’adresse dans le code source fourni.
- Contrôler la LED RGB WS2812B : le microcontrôleur est également chargé de contrôler les LEDs RGB. Ces LEDs ont leur propre protocole série où un « 0 » est représenté par une impulsion avec un certain timing et un « 1 » est représenté par une autre impulsion avec un timing différent (consultez la fiche technique du minutage). Les LEDs ont une accumulation dans la mémoire de 3 octets où ils stockent les 3 valeurs de rouge, vert et bleu. Ces valeurs doivent être dans une plage de 0 à 255. Ils ont aussi un registre à décalage intégré, qui permet de faire passer l’information aux prochaines LEDs. Si vous avez seulement 2 LEDs de WS2812B , vous vous connectez votre microcontrôleur à la broche d’entrée de données d’un seul d'entre eux et vous connecter la broche d’entrée de données de la seconde à la broche de sortie des données de la première. Le microcontrôleur devra ensuite envoyer 6 octets, 3 pour chaque LED, à partir de la deuxième LED (plus éloigné en termes de connexions). La première LED transmettra l’information à la seconde.