Mục lục:
- Quân nhu
- Bước 1: Mạch điện
- Bước 2: Lắp ráp
- Bước 3: Lập trình
- Bước 4: Định cấu hình phím tắt
- Bước 5: Cải tiến
Video: Bàn phím lập trình: 5 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
Trong dự án này, tôi sẽ trình bày cách tạo bàn phím lập trình tương đối đơn giản và rẻ tiền để ánh xạ các phím tắt, ứng dụng được sử dụng nhiều nhất của bạn và hơn thế nữa.
Bàn phím này được phát hiện là bàn phím trong tất cả các hệ điều hành chính, không cần trình điều khiển bổ sung.
Quân nhu
- Bộ mã hóa vòng quay.
- Rất nhiều nút nhấn (tùy thuộc vào nhu cầu của bạn).
- Arduino Pro Micro, Arduino Leonardo hoặc bất kỳ bảng phát triển nào khác có MCU Atmega32U4.
- Dây, thuốc hàn, mỏ hàn, v.v.
- (Tùy chọn) Một số đế nặng để giữ bàn phím không bị trượt, tôi đang sử dụng ổ cứng 3.5 "cũ
Bước 1: Mạch điện
Tôi đã chọn sử dụng bảng phát triển Arduino Pro Micro với MCU Atmega32U4 có 18 chân kỹ thuật số có thể sử dụng được.
Các chân để kết nối các nút nhấn và bộ mã hóa quay được chọn không có thứ tự cụ thể nào, nhưng cần lưu ý một số điều:
- Tất cả các chân có khả năng đọc kỹ thuật số đều có thanh kéo bên trong cho phép giảm thiểu điện trở kéo xuống bên ngoài. Tất nhiên mã phải được cập nhật cho phù hợp, vì nó mong đợi trạng thái của pin đi từ thấp đến cao khi nhấn các nút nhấn.
- Trong ví dụ thư viện encoder.h lưu ý rằng hiệu suất tốt nhất của bộ mã hóa đạt được khi cả hai chân kết nối với các chân có khả năng ngắt MCU. Hầu hết các chân tương tự của Atmega32U4 không có khả năng ngắt.
- Giá trị điện trở kéo xuống chính xác không quan trọng lắm, bất cứ thứ gì từ 1 kΩ đến 100 kΩ đều hoạt động tốt. Giá trị điện trở lớn hơn cho phép tiêu tán công suất nhỏ hơn nhưng dẫn đến phản ứng của chân chậm hơn với sự thay đổi điện áp. Chỉ cần chọn bất kỳ giá trị nào bạn có điện trở nhất.
- Bộ mã hóa cơ học không phải là thứ đáng tin cậy nhất vì sự mài mòn tiếp xúc và nảy. Đó là lý do tại sao một giải pháp gỡ lỗi tốt là cần thiết. Giá trị tụ điện đã chọn của tôi và thời gian trễ trong mã có thể sẽ không cung cấp kết quả tốt nhất cho bạn. Vì vậy, một chút thử nghiệm là cần thiết. Hoặc chuyển sang một thứ gì đó như bộ mã hóa quang học, nhưng giá của nó cao hơn đáng kể.
Bước 2: Lắp ráp
Tôi muốn làm cho bàn phím trông sạch sẽ nhất có thể, vì vậy tôi đã hàn tất cả các thành phần ở mặt sau của bo mạch nguyên mẫu. Tôi nghĩ rằng bàn phím sẽ tiện dụng hơn nếu nó được sử dụng ở góc nhỏ. Đó là lý do tại sao tôi hàn Arduino Pro Micro trên bo mạch riêng biệt và kết nối tất cả các chân kỹ thuật số bằng dây với các nút nhấn. Nó thuận tiện hơn để kết nối cáp USB theo cách đó.
Tôi tìm thấy ổ cứng 3.5 cũ để sử dụng làm giá đỡ cho bàn phím, nó khá nặng và ngăn hình dạng bảng trượt trên bàn khi thao tác (miếng chống trượt cũng giúp ích được). Ngoài ra, nó còn có các lỗ vít 3 mm thuận tiện để tôi vặn các chân đế bằng đồng và cố định bảng ở một góc nhỏ.
Bước 3: Lập trình
Mã được viết bằng Arduino IDE. Bạn sẽ cần cài đặt 2 thư viện:
- Bộ mã hóa bởi Paul Stoffregen
- Bàn phím của Arduino
Để biên dịch cho Atmega32U4, bạn cũng cần cài đặt tập tin board Arduino Pro Micro, Sparkfun có hướng dẫn rất hay về cách làm điều đó.
Một điều cần lưu ý trước là hãy cẩn thận không để lại "phím bấm" trong mã của bạn. Điều này đã xảy ra với tôi và MCU đã liên tục gửi thư rác một số tổ hợp phím bấm. Cách duy nhất tôi biết cách khắc phục điều này là ghi lại bộ nạp khởi động vào MCU. Nếu bạn sẽ kết thúc như tôi, bạn có thể làm theo hướng dẫn này để ghi boot-loader, bạn sẽ cần một bảng arduino khác để sử dụng như một lập trình viên.
Trong vòng lặp chính, đầu tiên MCU đọc từng trạng thái của nút nhấn, nếu phát hiện thấy sự thay đổi trạng thái từ THẤP đến CAO, hàm keyboard_shortcut (i) được thực thi. Biến i là id của nút nhấn, tổng số nút nhấn được xác định bởi ALL_BUTTONS (trong trường hợp của tôi là 15). Khi được thực thi, keyboard_shortcut (i) gửi CTRL + SHIFT và sau đó là một ký tự được ánh xạ tới id nút: 1-> A, 2-> B, 3-> C, v.v. Một số kết hợp như CTRL + SHIFT + N bị bỏ qua vì nó đã được sử dụng trong Windows10 theo mặc định (trong trường hợp này là để tạo một thư mục mới). Đây là danh sách tất cả các phím tắt mặc định của Windows. Sau thời gian trễ ngắn, MCU sẽ gửi tín hiệu để giải phóng tất cả các phím và chức năng thoát trở lại vòng lặp chính.
Sau khi tất cả các nút được chọn, MCU sẽ kiểm tra xem vị trí bộ mã hóa quay có thay đổi hay không và nếu có, keyboard_shortcut (i) được thực thi với id duy nhất.
Nút bộ mã hóa nhấn biến boolean encoderButtonFlag đảo ngược. Khi xoay bộ mã hóa, các phím tắt khác nhau được gửi đến PC, tùy thuộc vào hướng quay và giá trị encoderButtonFlag.
Nếu debugFlag được đặt thành 1, thông báo gỡ lỗi sẽ được gửi qua UART tới màn hình nối tiếp.
Bước 4: Định cấu hình phím tắt
Những gì mỗi phím tắt làm là tùy thuộc vào bạn, tất cả chúng ta đều có các tùy chọn khác nhau. Tôi sẽ cung cấp những phím tắt nào tôi đã tự cấu hình để làm ví dụ. Tôi đang sử dụng Linux Mint 19.3 với trình quản lý máy tính để bàn xfce4, vì vậy các ví dụ của tôi chủ yếu liên quan đến các tập lệnh bash, nhưng tôi cũng sẽ hiển thị một số ví dụ cơ bản cho Windows10.
Trong hình đầu tiên, bạn có thể thấy những tập lệnh nào tôi đã ánh xạ tới các phím tắt nào. Nó được thực hiện từ menu cài đặt xfce, quá trình này sẽ diễn ra ngay lập tức. Bạn có thể tìm thấy các tập lệnh này trong kho lưu trữ GitHub của tôi
6 nút nhấn nhỏ hơn ở phía dưới dùng để khởi động các ứng dụng như trình duyệt web hoặc trình quản lý tệp, một số ứng dụng này được gọi từ tập lệnh start_only_one_app.sh, lấy tên tất cả các ứng dụng đã bắt đầu và tìm kiếm ứng dụng bạn muốn khởi động. Nếu cửa sổ ứng dụng đã tồn tại, nó sẽ được lấy tiêu điểm, phiên bản mới khác của ứng dụng sẽ được khởi động.
Các tập lệnh khác:
- 2nd_display_control.sh - BẬT / TẮT màn hình thứ hai.
- moon_lamp.sh - BẬT / TẮT Đèn Mặt Trăng của tôi.
- pc_load.sh - tạo bong bóng thông báo với nhiệt độ và mức sử dụng CPU và GPU hiện tại.
- shutdown.sh - khởi tạo tắt máy tính với độ trễ 1 phút và tạo bong bóng thông báo trong đó thời gian còn lại được hiển thị.
- spec_vpn.sh - kết nối với máy chủ OpenVPN cụ thể hoặc nếu kết nối đã tồn tại, hãy ngắt kết nối khỏi máy chủ.
- shortcut_controll.sh - lấy lệnh (cộng, trừ, tab, đóng) làm đối số, phát hiện cửa sổ nào hiện được lấy tiêu điểm và nếu ứng dụng cụ thể được tìm thấy đang hoạt động sẽ thực hiện hành động điều khiển. Ví dụ: để mở tab mới trong trình soạn thảo văn bản sublime phím tắt mặc định là "CTRL + N" và trong thiết bị đầu cuối xfce - "CTRL + T", vì vậy tập lệnh này cho phép mở tab mới trong sublime và terminal bằng cùng một nút nhấn.
Chức năng đầu tiên của bộ mã hóa vòng quay là điều khiển âm lượng, chức năng thứ hai là điều khiển thu phóng cửa sổ đang hoạt động thông qua shortcut_controll.sh.
Đối với hệ điều hành Windows, bạn có thể ánh xạ các phím tắt đến các ứng dụng thông qua cửa sổ thuộc tính chương trình như trong hình thứ hai. Đối với bất kỳ điều gì khác, bạn sẽ muốn sử dụng AutoHotkey. Đó là ngôn ngữ kịch bản tự động hóa dành cho Windows.
Một số ví dụ đơn giản về cú pháp AHK:
;Kiểm soát âm lượng
^ + t:: Gửi {Volume_Up}
trở lại
^ + v:: Gửi {Volume_Down}
trở lại
; Đóng cửa sổ đang hoạt động
^ + h:: WinGetTitle, Title, A
PostMessage, 0x112, 0xF060,,% Title%
trở lại
;Tắt máy tính
^ + b:: Chạy tắt máy / s
Bước 5: Cải tiến
Một số cải tiến có thể có:
- Các nút nhấn chất lượng tốt hơn.
- PCB nguyên mẫu sẽ uốn cong khá nhiều khi các nút được nhấn.
- Ánh sáng RGB để thay đổi màu sắc tùy thuộc vào chức năng bộ mã hóa quay được đặt thành.
- Nhiều nút hơn (sử dụng IC mở rộng IO).
- Bộ mã hóa quay tốt hơn (hoặc giải pháp gỡ lỗi tốt hơn).
Đề xuất:
(gần như) Lập trình viên MIDI SysEx CC đa năng (và Trình tự lập trình tự ): 7 bước (có Hình ảnh)
(gần như) Lập trình viên MIDI SysEx CC đa năng (và Trình lập trình …): Vào giữa những năm tám mươi, các bộ sản xuất tổng hợp bắt đầu " ít hơn là tốt hơn " quá trình dẫn đến synths barebone. Điều này cho phép giảm chi phí về mặt sản xuất, nhưng làm cho quá trình vá lỗi trở nên thành công nếu không muốn nói là không thể sử dụng cuối cùng
DoReMiQuencer - Trình tự theo trình tự MIDI có thể lập trình với bàn phím: 7 bước
DoReMiQuencer - Bộ điều khiển MIDI có thể lập trình với bàn phím: Thiết bị này được tạo ra để sử dụng với VCVRack, một bộ tổng hợp mô-đun ảo do VCV tạo ra, nhưng có thể hoạt động như một bộ điều khiển MIDI mục đích chung. Nó hoạt động như một bộ tuần tự MIDI hoặc bàn phím, tùy thuộc vào chế độ đã chọn. Các nốt MIDI được ánh xạ tới ke
Bàn phím lập trình Cardboard: 8 bước (có hình ảnh)
Bàn phím có thể lập trình Cardboard: Khi công nghệ phát triển, mọi người ngày càng muốn mọi thứ trở nên ảo hơn, tuy nhiên đôi khi việc có một thứ vật lý mà bạn có thể chạm và tương tác bằng tay của mình sẽ thực tế và tiện lợi hơn. Một ví dụ của
Bộ lập trình LED RGB có thể lập trình (sử dụng Arduino và Adafruit Trellis): 7 bước (có hình ảnh)
Bộ lập trình LED RGB có thể lập trình (sử dụng Arduino và Adafruit Trellis): Các con trai của tôi muốn các dải LED màu để thắp sáng bàn làm việc của chúng và tôi không muốn sử dụng bộ điều khiển dải RGB đóng hộp, vì tôi biết chúng sẽ cảm thấy nhàm chán với các mẫu cố định những bộ điều khiển này có. Tôi cũng nghĩ rằng đó sẽ là một cơ hội tuyệt vời để tạo ra
Hướng dẫn lập trình thú vị cho nhà thiết kế - Kiểm soát quy trình chương trình- Tuyên bố vòng lặp: 8 bước
Hướng dẫn lập trình thú vị cho nhà thiết kế - Điều khiển quy trình chương trình- Tuyên bố vòng lặp: Điều khiển quy trình chương trình- Tuyên bố vòng lặp Từ chương này, bạn sẽ tiếp xúc với một điểm kiến thức quan trọng và mạnh mẽ - Câu lệnh vòng lặp. Trước khi đọc chương này, nếu bạn muốn vẽ 10.000 vòng tròn trong chương trình, bạn chỉ có thể thực hiện với một