Bàn phím macropad RP2040 với CircuitPython
Macropad với RP2040 và Circuitpython, hãy xem ở đây để viết trên trang web của tôi với hình ảnh mà hầu hết các macropad DIY tôi có thể
Mô tả
Macropad với RP2040 và CircuitPython
Xem ĐÂY để biết thêm thông tin trên trang web của tôi với hình ảnh
Hầu hết các macropad DIY mà tôi tìm thấy trên internet đều quá đắt hoặc có quá nhiều tính năng cho nhu cầu của tôi (nút điều chỉnh, màn hình, v.v.).
Mục tiêu của tôi như sau:
Dễ lập trình Giá rẻ Dễ dàng hàn và in 3D Không lớn hơn một bàn phím số
Bộ xử lý
Tôi đã chọn Seeed XIAO RP2040 vì kích thước, IO và giá cả. Một bảng đơn có giá dưới 10 đô la ở Mỹ và có đúng số chân GPIO cần thiết cho dự án này. XIAO cũng có thể được hàn với các lỗ castellated để có độ cao thấp.
Công tắc phím
Tôi thiết kế cái này để tương thích với các mẫu Cherry MX 3 và 5 chân. Những cái này dễ dàng có sẵn trong các gói 10 cái hoặc nhiều hơn.
Bảng mạch
Tôi đã thiết kế bảng mạch với KiCAD và đã cho chúng được sản xuất thông qua OSHPark và JLCPCB. Đây là một bảng mạch tiêu chuẩn hai lớp (mặt trước và mặt sau). Bạn có thể tải xuống các tệp ĐÂY và cho chúng được sản xuất thông qua một dịch vụ mà bạn chọn.
Mã
Mã được viết bằng Circuit Python sử dụng thư viện HID của Adafruit. Về cơ bản, bất kỳ máy tính nào mà cái này được cắm vào sẽ nhận diện nó như một bàn phím. Nó có thể được lập trình để gửi bất kỳ phím bấm hoặc tổ hợp phím nào để đạt được điều bạn muốn. Mã có sẵn để tải xuống ĐÂY trên Github.
Thành phần
Vật liệu:
1 x Bảng mạch 1 x Seeed XIAO RP2040 10 x Công tắc phím (Cherry MX) và Nắp phím 2 x LED có thể điều khiển (WS2812B) 1 x Điện trở 220 Ohm Vỏ in 3D Đế công tắc Vỏ LED 2 vít Nắp (tùy chọn)
Lắp ráp
Bước 1: Hàn Seeed XIAO RP2040 vào bảng mạch.
Bắt đầu bằng cách hàn một trong các pad góc trên bo mạch. Đun chảy thiếc bằng mỏ hàn của bạn và trượt RP2040 vào vị trí. Hàn góc đối diện tiếp theo, sau đó tiếp tục xung quanh chip. Đảm bảo bỏ qua một số chỗ và cho nó thời gian để nguội để bạn không làm hỏng bất kỳ thứ gì.
Bước 2: Hàn các công tắc phím
Nếu bạn đang sử dụng vỏ in 3D, hãy chèn các công tắc phím vào bảng công tắc. Khi tất cả các công tắc đã được chèn hoàn toàn, đặt cụm này lên phía trước của bo mạch để tất cả các chân đi qua các lỗ tương ứng của chúng. Hàn các công tắc từ phía sau.
Nếu bạn không sử dụng vỏ in 3D, chỉ cần hàn các công tắc như bình thường.
Lưu ý: Hãy rất cẩn thận để không làm nóng quá mức các công tắc. Đặt mỏ hàn lên trong khoảng thời gian tối thiểu có thể và nhảy từ chân này sang chân khác.
Vào thời điểm này, hàn điện trở 220 Ohm giữa các lỗ được đánh dấu ở mặt sau của bo mạch.
Bước 3: Hàn cụm LED
Cần 2 LED có thể điều chỉnh cho bản dựng này. Chúng nên được hàn như hình dưới đây. Hàn một đầu nối 3 chân vào phía đầu vào của LED đầu tiên. Hàn nó vào 3 lỗ được đánh dấu trên bo mạch.
Bước 4: Tạo bộ khuếch tán LED
Nếu bạn đang in màu sáng (ví dụ: trắng, vàng, v.v.) bạn có thể in "led housing v2 with diffuser.stl". cái này có một lớp in đơn ở phía trên mà ánh sáng có thể chiếu qua.
Nếu bạn đang in với màu tối hơn (ví dụ: đen, xám, đỏ, v.v.) bạn nên in "led housing v2.stl". Điều này yêu cầu một bộ khuếch tán mà bạn có thể làm bằng một số nhựa thải. Tôi đã sử dụng một miếng cắt từ một gói nhựa trong suốt mà tôi đã tìm thấy trong thùng rác của mình.
Cắt nhựa sao cho vừa với bên trong của bộ vỏ LED. Làm nhám bề mặt bằng giấy nhám mịn (320 hoặc cao hơn) để "làm mờ" nhựa và tạo hiệu ứng khuếch tán. Dùng keo siêu dính hoặc keo nóng để cố định bộ khuếch tán từ bên trong.
Bước 5: Lắp ráp
Đặt cụm bo mạch vào trong vỏ. Chèn một vít vào đáy để giữ chặt nó.
Tiếp theo, đặt bộ khuếch tán vào vị trí và thêm ốc vít khác từ phía trên. Thêm keycaps theo lựa chọn của bạn.
Cách Sử Dụng
Theo mặc định, có 3 tệp lớp trên thiết bị. Trong các tệp này, có một khu vực để viết mã cho mỗi 9 nút. Về thứ tự lưới nút, góc trên bên trái là nút 1 và góc dưới bên phải là nút 9. Ví dụ:
def layer1button3():
Mã cho nút 3 (góc trên bên phải) trên lớp 1 (màu xanh lá) nằm dưới dòng này.
Để thay đổi lớp, sử dụng nút ở góc trên bên trái, bên cạnh đèn. Theo mặc định:
Lớp 1: Màu xanh lá Lớp 2: Màu cyan Lớp 3: Màu tím Trong khi mã đang chạy, một trong các đèn sẽ chuyển sang màu cam. Khi đèn này chuyển trở lại màu của lớp, macro đã hoàn thành.
Khi được cắm vào, sẽ có một đèn trắng nhấp nháy hai lần để chỉ ra khởi động thành công.
Nếu có đèn đỏ hiển thị, có một lỗi với mã. Quay lại thay đổi gần nhất và tìm kiếm lỗi định dạng (đảm bảo làm theo các ví dụ) hoặc sử dụng công cụ như Thonny để nhận thông báo lỗi.
Màu sắc và hành vi có thể được thay đổi bằng cách chỉnh sửa ‘main.py’. Có thể thêm một số lớp vô hạn (chỉ bị giới hạn bởi dung lượng lưu trữ). Để làm điều này, bỏ chú thích các dòng 22 và 35 trong main.py (từ layer_4 import*). Sau đó, sao chép và dán các dòng 184 – 246 trong main.py và thay đổi giá trị cho phù hợp (thay thế layer_3 bằng layer_4, v.v.). Đảm bảo rằng lớp 3 trỏ tới lớp 4 (dòng 245), và sau đó làm cho lớp 4 trỏ tới lớp 1.
Cuối cùng, tạo một bản sao của tệp ‘layer_3.py’ và đổi tên thành ‘layer_4.py’, và thay đổi các giá trị bên trong cho phù hợp.
Điều này có thể được thực hiện bất kỳ số lần nào để thêm nhiều lớp hơn.
Lập Trình
Bao gồm trong các tệp mã là EXAMPLES.txt, bao gồm các ví dụ (đương nhiên) về các tác vụ khác nhau có thể được lập trình.
Có 3 lệnh cơ bản có thể được kết hợp để thực hiện một tác vụ. Đây là:
time.sleep() layout.write(' ') keyboard.send()
time.sleep
Lệnh đơn giản nhất, giống như 'wait'. Thời gian tính bằng GIÂY. Nếu bạn muốn chờ 100ms, bạn sẽ viết:
time.sleep(0.1)
layout.write
Lệnh này gõ một chuỗi ký tự. Ví dụ, nếu bạn muốn một nút gõ email của bạn, bạn sẽ viết:
layout.write('[email protected]')
keyboard.send
Lệnh này thực hiện một mã phím hoặc tổ hợp mã phím trên bàn phím. Tệp KEYCODES.TXT liệt kê tất cả các mã phím có thể.
Ví dụ, nếu bạn muốn một nút sao chép văn bản trong trình duyệt của bạn, mở một tab mới và tìm kiếm văn bản đó, bạn sẽ viết:
keyboard.send(Keycode.CONTROL,Keycode.C) #Sao chép văn bản đã chọn time.sleep(0.1) #chờ 100ms keyboard.send(Keycode.CONTROL,Keycode.T) #Phím tắt cho tab mới time.sleep(0.1) #chờ 100ms keyboard.send(Keycode.CONTROL,Keycode.V) #Dán văn bản time.sleep(0.1) #chờ 100ms keyboard.send(Keycode.RETURN) #Nhập
Nếu bạn muốn nhấn tổ hợp phím CTRL+SHIFT+P, bạn sẽ viết:
keyboard.send(Keycode.CONTROL,Keycode.SHIFT,Keycode.P)
Các lệnh này có thể được kết hợp để thực hiện hầu hết mọi thứ.
Danh mục: Máy tính
Giấy phép