Zusammenfassung
Macro-Tastatur für Raspberry Pi Pico. Verwendet 6 Tasten und ein Rotary-Encoder-Modul. Ich habe kein Github, also kann der Code unten gefunden werden, unkommentiert und möglicherweise erfordert Refactoring, da dies ein Wochenendprojekt war. Die Befehle sind hartcodiert und Sie sollten in der Lage sein, die Verkabelung aus dem Code und den Verkabelungsbildern im Druck-Tab des Beitrags abzuleiten. Die
Import-Board
import digitalio
import time
import usb_hid
Von adafruit_hid.keyboard importiere Keyboard.
Von adafruit_hid.keycode importiere Keycode.
import rotaryio
Import-Board
Tastatur=Tastatur(usb_hid.devices)
key1 = digitalio.DigitalInOut(board.GP2)
key1.switch_to_input(pull=digitalio.Pull.DOWN)
key2 = digitalio.DigitalInOut(board.GP3)
key2.switch_to_input(pull=digitalio.Pull.DOWN)
key3 = digitalio.DigitalInOut(board.GP4)
key3.switch_to_input(pull=digitalio.Pull.DOWN)
key4 = digitalio.DigitalInOut(board.GP5)
key4.switch_to_input(pull=digitalio.Pull.DOWN)
key5 = digitalio.DigitalInOut(board.GP6)
key5.switch_to_input(pull=digitalio.Pull.DOWN)
key6 = digitalio.DigitalInOut(board.GP7)
key6.switch_to_input(pull=digitalio.Pull.DOWN)
rotK = digitalio.DigitalInOut(board.GP22)
rotK.switch_to_input(pull=digitalio.Pull.UP)
geklickt = Wahr
pressed = False
Encoder = rotaryio.IncrementalEncoder(board.GP26, board.GP27)
last_position = None
während True:
Wenn nicht (nicht(key1.value) und nicht(key2.value) und nicht(key3.value) und nicht(key4.value) und nicht(key5.value) und nicht(key6.value)) und nicht(pressed):
wenn key1.value:
Tastatur.press(Keycode.LEFT_SHIFT)
Tastatur.press(Keycode.WINDOWS)
Tastatur.press(Keycode.S)
Tastatur.Release(Keycode.S)
Tastatur.Release(Keycode.WINDOWS)
Tastatur.Release(Keycode.LEFT_SHIFT)
wenn key2.value:
Tastatur.press(Keycode.WINDOWS)
time.sleep(0.1)
Tastatur.press(Keycode.S)
time.sleep(0.1)
Tastatur.Release(Keycode.S)
time.sleep(0.1)
Tastatur.Release(Keycode.WINDOWS)
time.sleep(0.1)
Tastatur.press(Keycode.P)
time.sleep(0.1)
Tastatur.Release(Keycode.P)
time.sleep(0.1)
Tastatur.press(Keycode.O)
time.sleep(0.1)
Tastatur.Release(Keycode.O)
time.sleep(0.1)
Tastatur.press(Keycode.W)
time.sleep(0.1)
Tastatur.Release(Keycode.W)
time.sleep(0.1)
Tastatur.press(Keycode.ENTER)
time.sleep(0.1)
Tastatur.Release(Keycode.ENTER)
wenn key3.value:
Tastatur.press(Keycode.WINDOWS)
time.sleep(0.1)
Tastatur.press(Keycode.S)
time.sleep(0.1)
Tastatur.Release(Keycode.S)
time.sleep(0.1)
Tastatur.Release(Keycode.WINDOWS)
time.sleep(0.1)
Tastatur.press(Keycode.T)
time.sleep(0.1)
Tastatur.Release(Keycode.T)
time.sleep(0.1)
Tastatur.press(Keycode.I)
time.sleep(0.1)
Tastatur.Release(Keycode.I)
time.sleep(0.1)
Tastatur.press(Keycode.N)
time.sleep(0.1)
Tastatur.Release(Keycode.N)
time.sleep(0.1)
Tastatur.press(Keycode.ENTER)
time.sleep(0.1)
Tastatur.Release(Keycode.ENTER)
wenn key4.value:
Tastatur.press(Keycode.WINDOWS)
time.sleep(0.1)
Tastatur.press(Keycode.E)
time.sleep(0.1)
Tastatur.Release(Keycode.E)
time.sleep(0.1)
Tastatur.Release(Keycode.WINDOWS)
wenn key5.value:
Tastatur.press(Keycode.WINDOWS)
time.sleep(0.1)
Tastatur.press(Keycode.S)
time.sleep(0.1)
Tastatur.Release(Keycode.S)
time.sleep(0.1)
Tastatur.Release(Keycode.WINDOWS)
time.sleep(0.1)
Tastatur.press(Keycode.C)
time.sleep(0.1)
Tastatur.Release(Keycode.C)
time.sleep(0.1)
Tastatur.press(Keycode.U)
time.sleep(0.1)
Tastatur.Release(Keycode.U)
time.sleep(0.1)
Tastatur.press(Keycode.R)
time.sleep(0.1)
Tastatur.Release(Keycode.R)
time.sleep(0.1)
Tastatur.press(Keycode.ENTER)
time.sleep(0.1)
Tastatur.Release(Keycode.ENTER)
wenn key6.value:
Tastatur.press(Keycode.WINDOWS)
time.sleep(0.1)
Tastatur.press(Keycode.S)
time.sleep(0.1)
Tastatur.Release(Keycode.S)
time.sleep(0.1)
Tastatur.Release(Keycode.WINDOWS)
time.sleep(0.1)
Tastatur.press(Keycode.T)
time.sleep(0.1)
Tastatur.Release(Keycode.T)
time.sleep(0.1)
Tastatur.press(Keycode.H)
time.sleep(0.1)
Tastatur.Release(Keycode.H)
time.sleep(0.1)
Tastatur.press(Keycode.O)
time.sleep(0.1)
Tastatur.Release(Keycode.O)
time.sleep(0.1)
Tastatur.press(Keycode.ENTER)
time.sleep(0.1)
Tastatur.Release(Keycode.ENTER)
pressed = True
print("unten")
Wenn nicht(key1.value) und nicht(key2.value) und nicht(key3.value) und nicht(key4.value) und nicht(key5.value) und nicht(key6.value) und gedrückt:
pressed = False
print("auf")
Wenn nicht (rotK.value) und geklickt:
geklickt = False
Tastatur.press(Keycode.LEFT_ALT)
print("unten")
wenn rotK.value und nicht(geklickt):
geklickt = Wahr
Tastatur.Release(Keycode.LEFT_ALT)
print("auf")
Position = Encoder.Position
wenn last_position None ist oder position nicht gleich last_position ist:
Wenn nicht (angeklickt):
wenn Position > letzte_Position:
Tastatur.press(Keycode.TAB)
Tastatur.Release(Keycode.TAB)
wenn Position < letzte_Position:
Tastatur.press(Keycode.LEFT_SHIFT)
Tastatur.press(Keycode.TAB)
Tastatur.Release(Keycode.TAB)
Tastatur.Release(Keycode.LEFT_SHIFT)
Wenn geklickt wird und last_position nicht gleich None ist:
wenn Position > letzte_Position:
Tastatur.press(Keycode.TAB)
Tastatur.Release(Keycode.TAB)
wenn Position < letzte_Position:
Tastatur.press(Keycode.LEFT_SHIFT)
Tastatur.press(Keycode.TAB)
Tastatur.Release(Keycode.TAB)
Tastatur.Release(Keycode.LEFT_SHIFT)
last_position = Position
Druckeinstellungen
Drucker-Marke:
Creality
Drucker:
Ender 3
Flöße:
Nein.
Unterstützt:
Nein.
Auflösung:
200
Füllung:
38
Nach dem Drucken
32924836
32924837
32924838
32924840
Model Kaynağı
