Un macropad avec le RP2040 et CircuitPython.
VoirICIPour un article sur mon site web avec des photos.
La plupart des macropads DIY que j'ai pu trouver sur Internet étaient soit trop chers, soit avaient trop de fonctionnalités pour mes besoins (potentiomètres, affichages, etc.).
Mes objectifs étaient les suivants :
Facile à programmer, peu cher à fabriquer, adapté aux débutants pour la soudure et l'impression 3D. Pas plus grand qu'un pavé numérique.
Processusseur
J'ai choisi le Seeed XIAO RP2040 pour sa taille, ses entrées
Les commutateurs de clavier.
J'ai conçu ceci pour être compatible avec les modèles Cherry MX à 3 et 5 broches. Ceux-ci sont facilement disponibles en paquets de 10 ou plus.
Carte de circuit imprimé.
J'ai conçu la carte de circuit imprimé avec KiCAD et je les ai fait fabriquer par OSHPark et JLCPCB. C'est une carte de circuit imprimé standard à deux couches (avant et arrière). Vous pouvez télécharger les fichiers.ICIet les faire fabriquer par un service de votre choix.
Code
Le code est écrit en Circuit Python en utilisant la bibliothèque HID d'Adafruit. En gros, tout ordinateur auquel il est branché le verra comme un clavier. Il peut être programmé pour envoyer n'importe quelle frappe de touche ou combinaison de frappes de touche pour obtenir ce que vous voulez. Le code est disponible au téléchargement.ICIsur Github.
Composants.
Matériaux :
1 x Carte de circuit imprimé 1 x Seeed XIAO RP2040 10 x Interrupteurs à clé (Cherry MX) et touches de clavier 2 x LED adressables (WS2812B) 1 x Résistance de 220 Ohms Boîtier imprimé en 3D Plaque d'interrupteur Boîtier LED 2 vis Couvercle (optionnel)
Assemblée.
Étape 1 : Souder le Seeed XIAO RP2040 à la carte de circuit imprimé.
Commençons par souder l'une des plaques d'angle de la carte. Faites fondre la soudure avec votre fer à souder et glissez le RP2040 en place. Soudez ensuite l'angle opposé, puis continuez autour de la puce. Assurez-vous de procéder par étapes et de lui accorder un peu de temps pour refroidir afin de ne pas endommager quoi que ce soit.
Étape 2 : Souder les commutateurs à clavier.
Si vous utilisez le boîtier imprimé en 3D, insérez les commutateurs de clé dans la plaque de commutateur. Lorsque tous les commutateurs sont complètement insérés, placez l'assemblage à l'avant de la carte de circuit imprimé de sorte que toutes les broches passent par leurs trous respectifs. Soudez les commutateurs à l'arrière.
Si vous n'utilisez pas le boîtier imprimé en 3D, il suffit de souder les commutateurs comme d'habitude.
REMARQUE : Soyez très prudent de ne pas surchauffer les commutateurs. Mettez le fer à souder en marche pendant le minimum de temps possible et passez d'une broche à l'autre rapidement.
À ce moment, soudez le résisteur de 220 Ohm entre les trous marqués à l'arrière de la carte.
Étape 3 : Souder l'assemblage des LED.
2 des LED adressables sont nécessaires pour cette construction. Elles doivent être soudées comme indiqué ci-dessous. Soudez un connecteur à 3 broches sur le côté d'entrée de la première LED. Soudez-le aux 3 trous marqués sur la carte.
Étape 4 : Créer le diffuseur LED.
Si vous imprimez dans une couleur claire (par exemple, blanc, jaune, etc.), vous pouvez imprimer le "boîtier LED v2 avec diffuseur.stl". Cela a une seule couche imprimée en haut à travers laquelle la lumière peut briller.
Si vous imprimez avec une couleur plus foncée (par exemple, noir, gris, rouge, etc.), vous devriez imprimer le fichier "led housing v2.stl". Cela nécessite un diffuseur que vous pouvez fabriquer avec des morceaux de plastique. J'ai utilisé une découpe d'un emballage en plastique transparent que j'ai retiré de ma poubelle.
Coupez le plastique de façon à ce qu'il s'adapte à l'intérieur du boîtier LED. Egratignez la surface avec du papier de verre fin (320 ou plus) pour "matifier" le plastique et créer un effet diffusant. Fixez le diffuseur en place à l'intérieur avec de la super-colle ou de la colle chaude.
Étape 5 : Assemblage.
Placez l'assemblage de la carte de circuit imprimé dans le boîtier. Insérez une vis dans le fond pour le fixer.
Ensuite, mettez le diffuseur en place et ajoutez l'autre vis du haut. Ajoutez les touches de votre choix.
Comment utiliser
Par défaut, il y a 3 fichiers de couche sur l'appareil. Dans ces fichiers, il y a une zone pour écrire du code pour chacun des 9 boutons. Pour l'ordre de la grille de boutons, le coin supérieur gauche est le bouton 1 et le coin inférieur droit est le bouton 9. Par exemple :
def layer1button3():
Le code pour le bouton 3 (en haut à droite) sur la couche 1 (verte) va sous cette ligne.
Pour changer de couche, utilisez le bouton situé en haut à gauche, à côté des lumières. Par défaut :
Niveau 1 : Vert Niveau 2 : Cyan Niveau 3 : Violet Pendant que le code s'exécute, l'une des lumières passera à l'orange. Lorsque cette lumière reviendra à la couleur du niveau, la macro aura été complétée.
Lorsqu'il est branché, il y aura une double lumière blanche clignotante pour indiquer un démarrage réussi.
Si un feu rouge est affiché, il y a une erreur avec le code. Retournez à la modification la plus récente et recherchez une erreur de formatage (assurez-vous de suivre les exemples) ou utilisez un outil comme Thonny pour obtenir des messages d'erreur.
Les couleurs et le comportement peuvent être modifiés en éditant 'main.py'. Cependant, un nombre infini de couches peut être ajouté (limité uniquement par l'espace de stockage). Pour ce faire, dé-commenter les lignes 22 et 35 dans main.py (à partir de layer_4 import*). Ensuite, copier et coller les lignes 184 à 246 dans main.py et modifier les valeurs en conséquence (remplacer layer_3 par layer_4, etc.). Ass
Enfin, faites une copie du fichier 'layer_3.py', renommez-le en 'layer_4.py', et modifiez les valeurs en conséquence.
Cela peut être fait un nombre de fois illimité pour ajouter plus de couches.
Programmation
Inclus dans les fichiers de code se trouve EXEMPLES.txt, qui comprend des exemples (évidemment) de différentes tâches qui peuvent être programmées.
Il y a 3 commandes de base qui peuvent être combinées pour effectuer une tâche. Ce sont :
time.sleep() layout.write(' ') keyboard.send()
time.sleep
La commande la plus simple, identique à 'wait'. Le temps est en SECONDES. Si vous vouliez attendre 100 ms, vous écririez :
time.sleep(0.1)
layout.write
Cette commande tape une chaîne de caractères. Par exemple, si vous voulez qu'un bouton tape votre e-mail, vous écririez :
layout.write('example@example.com')
clavier.envoyer
Cette commande exécute un code clé ou une combinaison de codes clés sur un clavier. Le fichier KEYCODES.TXT répertorie tous les codes clés possibles.
Par exemple, si vous vouliez un bouton pour copier du texte dans votre navigateur, ouvrir un nouvel onglet et rechercher ce texte, vous écririez :
clavier.send(Keycode.CONTROL,Keycode.C) #Copier le texte sélectionné. time.sleep(0.1) #Attendre 100 ms. clavier.send(Keycode.CONTROL,Keycode.T) #Raccourci pour un nouvel onglet. time.sleep(0.1) #Attendre 100 ms. clavier.send(Keycode.CONTROL,Keycode.V) #Coller le texte. time.sleep(0.1) #Attendre 100 ms. clavier.send(Keycode.RETURN) #Entrer
Si vous vouliez appuyer sur le raccourci CTRL+SHIFT+P, vous écririez :
clavier.send(Keycode.CONTROL,Keycode.SHIFT,Keycode.P)
Ces commandes peuvent être combinées pour faire à peu près tout.
Catégorie : Ordinateur.Tags
Source du modèle
