Macropad mit RP2040 und CircuitPython
SieheHIERFür einen Bericht auf meiner Website mit Bildern.
Die meisten DIY-Macropads, die ich im Internet finden konnte, waren entweder zu teuer oder hatten zu viele Funktionen für meine Bedürfnisse (Knöpfe, Displays usw.).
Meine Ziele waren wie folgt:
Leicht zu programmieren, billig herzustellen, anfängerfreundliches Löten und 3D-Drucken, nicht größer als ein Numpad.
Prozessor
Ich habe mich für den Seeed XIAO RP2040 aufgrund seiner Größe, seiner E
Tastenschalter
Ich habe dies so konzipiert, dass es mit Cherry MX 3- und 5-Pin-Modellen kompatibel ist. Diese sind in Packungen von 10 oder mehr Stück leicht erhältlich.
Leiterplatte
Ich habe die Leiterplatte mit KiCAD entworfen und sie über OSHPark und JLCPCB herstellen lassen. Es ist eine zweilagige (Vorder- und Rückseite) Standard-Leiterplatte. Sie können die Dateien herunterladen.HIERund lass sie durch einen Dienst deiner Wahl herstellen.
Code
Der Code ist in Circuit Python mit Adafruits HID-Bibliothek geschrieben. Im Grunde wird jeder Computer, an den er angeschlossen ist, ihn als Tastatur erkennen. Er kann so programmiert werden, dass er jeden Tastendruck oder eine Kombination von Tastendrücken sendet, um das zu erreichen, was Sie wollen. Der Code steht zum Download zur Verfügung.HIERauf Github.
Komponenten
Materialien:
1 x Leiterplatte 1 x Seeed XIAO RP2040 10 x Tastenschalter (Cherry MX) und Tastenkappen 2 x adressierbare LEDs (WS2812B) 1 x 220 Ohm Widerstand 3D-gedruckter Gehäusekörper Schalterplatte LED-Gehäuse 2 Schrauben Deckel (optional)
Versammlung
Schritt 1: Löten Sie den Seeed XIAO RP2040 auf die Leiterplatte.
Beginnen Sie damit, eines der Eckpads auf der Platine zu verlöten. Schmelzen Sie das Lötzinn mit Ihrem Lötkolben und schieben Sie den RP2040 an seinen Platz. Löten Sie anschließend die gegenüberliegende Ecke und fahren Sie dann fort, den Chip zu umrunden. Achten Sie darauf, in einer Weise zu arbeiten, die Ihnen genügend Zeit zum Abkühlen lässt, damit Sie nichts verbrennen.
Schritt 2: Löten Sie die Tastenschalter.
Wenn Sie das 3D-gedruckte Gehäuse verwenden, stecken Sie die Tastenschalter in die Schalterplatte. Wenn alle Schalter vollständig eingeführt sind, legen Sie die Baugruppe auf die Vorderseite der Leiterplatte, so dass alle Stifte durch ihre jeweiligen Löcher gehen. Löten Sie die Schalter von der Rückseite aus.
Wenn du das 3D-gedruckte Gehäuse nicht verwendest, löte einfach die Schalter wie gewohnt.
HINWEIS: Achten Sie sehr darauf, die Schalter nicht zu überhitzen. Schalten Sie das Lötgerät so kurz wie möglich ein und springen Sie von Pin zu Pin.
Zu diesem Zeitpunkt löten Sie den 220-Ohm-Widerstand zwischen die markierten Löcher auf der Rückseite des Boards.
Schritt 3: Löten Sie die LED-Baugruppe.
Für diesen Aufbau werden 2 der adressierbaren LEDs benötigt. Sie sollten wie unten gezeigt gelötet werden. Löten Sie einen 3-Pin-Header an die Eingangsseite der ersten LED. Löten Sie dies an die 3 markierten Löcher auf der Platine.
Schritt 4: Erstellen Sie den LED-Diffusor.
Wenn Sie in einer hellen Farbe drucken (z. B. weiß, gelb usw.), können Sie die "led housing v2 with diffuser.stl" drucken. Diese hat eine einzelne gedruckte Schicht an der Oberseite, durch die das Licht scheinen kann.
Wenn Sie mit einer dunkleren Farbe drucken (z. B. schwarz, grau, rot usw.), sollten Sie die "led housing v2.stl" drucken. Dazu benötigen Sie einen Diffusor, den Sie aus etwas Schrottplastik herstellen können. Ich habe einen Ausschnitt aus einer durchsichtigen Plastikverpackung verwendet, den ich aus meinem Müll geholt habe.
Schneide das Plastik so, dass es in das Innere des LED-Gehäuses passt. Schmirgel die Oberfläche mit feinem Schmirgelpapier (320 oder höher), um das Plastik zu "matieren" und den diffusen Effekt zu erzeugen. Klebe den Diffusor entweder mit Sekundenkleber oder Heißkleber von innen fest.
Schritt 5: Montage
Platzieren Sie die Leiterplatten-Montage in das Gehäuse. Führen Sie eine Schraube in den Boden ein, um sie zu befestigen.
Als nächstes setzen Sie den Diffusor ein und fügen die andere Schraube von oben hinzu. Fügen Sie Tastenkappen Ihrer Wahl hinzu.
Wie man es benutzt
Standardmäßig befinden sich 3 Layer-Dateien auf dem Gerät. In diesen Dateien gibt es einen Bereich zum Schreiben von Code für jeden der 9 Knöpfe. Für die Reihenfolge des Knopfgitters ist der obere linke Knopf Knopf 1 und der untere rechte Knopf ist Knopf 9. Zum Beispiel:
def layer1button3():
Der Code für Taste 3 (oben rechts) auf Ebene 1 (grün) geht unter diese Zeile.
Um den Layer zu ändern, verwenden Sie die Schaltfläche ganz oben links, neben den Lichtern. Standardmäßig:
Schicht 1: Grün Schicht 2: Cyan Schicht 3: Violett Während der Code läuft, wird eines der Lichter auf Orange geändert. Wenn dieses Licht wieder auf die Schichtfarbe zurückkehrt, ist das Makro abgeschlossen.
Wenn es angeschlossen ist, wird es ein doppeltes blinkendes weißes Licht geben, um einen erfolgreichen Start anzuzeigen.
Wenn ein rotes Licht angezeigt wird, liegt ein Fehler mit dem Code vor. Gehen Sie zurück zur letzten Änderung und suchen Sie nach einem Formatierungsfehler (stellen Sie sicher, dass Sie die Beispiele befolgen) oder verwenden Sie ein Tool wie Thonny, um Fehlermeldungen zu erhalten.
Farben und Verhalten können durch die Bearbeitung von 'main.py' geändert werden. Es können jedoch unbegrenzt viele Schichten hinzugefügt werden (nur begrenzt durch den Speicherplatz). Um dies zu tun, kommentieren Sie die Zeilen 22 und 35 in main.py (von layer_4 import*) nicht aus. Kopieren und fügen Sie dann die Zeilen 184 - 246 in main.py ein und ändern Sie die Werte entsprechend (ersetzen Sie layer_3 durch layer_
Schließlich erstellen Sie eine Kopie der Datei 'layer_3.py', benennen Sie sie in 'layer_4.py' um, und ändern Sie die Werte entsprechend.
Dies kann beliebig oft durchgeführt werden, um weitere Schichten hinzuzufügen.
Programmierung
In den Code-Dateien ist EXAMPLES.txt enthalten, das Beispiele (versteht sich von selbst) für verschiedene Aufgaben enthält, die programmiert werden können.
Es gibt 3 grundlegende Befehle, die kombiniert werden können, um eine Aufgabe auszuführen. Diese sind:
time.sleep() layout.write(' ') keyboard.send()
time.sleep
Der einfachste Befehl, genau wie 'warten'. Die Zeit ist in SEKUNDEN. Wenn Sie 100 ms warten wollten, würden Sie schreiben:
time.sleep(0.1)
Layout.Schreiben
Dieser Befehl tippt eine Zeichenfolge. Zum Beispiel, wenn du möchtest, dass eine Schaltfläche deine E-Mail tippt, würdest du schreiben:
layout.write('example@example.com')
Tastatur.Senden
Dieser Befehl führt einen Keycode oder eine Kombination von Keycodes auf einer Tastatur aus. Die Datei KEYCODES.TXT listet alle möglichen Keycodes auf.
Zum Beispiel, wenn du einen Button wolltest, um Text in deinem Browser zu kopieren, einen neuen Tab zu öffnen und nach diesem Text zu suchen, würdest du schreiben:
Tastatur.send(Keycode.CONTROL,Keycode.C) #Kopiere ausgewählten Text. time.sleep(0.1) #warte 100ms Tastatur.send(Keycode.CONTROL,Keycode.T) #Shortcut für neuen Tab. time.sleep(0.1) #warte 100ms Tastatur.send(Keycode.CONTROL,Keycode.V) #Füge Text ein. time.sleep(0.1) #warte 100ms Tastatur.send(Keycode.RETURN) #Enter
Wenn du eine Tastenkombination wie CTRL+SHIFT+P drücken wolltest, würdest du schreiben:
Tastatur.send(Keycode.CONTROL,Keycode.SHIFT,Keycode.P)
Diese Befehle können kombiniert werden, um so ziemlich alles zu tun.
Kategorie: ComputerTags
Modellquelle
