Tạo các nút tắt tùy chỉnh của riêng bạn với Arduino

Tạo các nút tắt tùy chỉnh của riêng bạn với Arduino

Arduino khiêm tốn có thể làm được nhiều thứ, nhưng bạn có biết nó có thể mô phỏng bàn phím USB không? Bạn có thể kết hợp các phím tắt dài khó nhớ đó thành một phím tắt tùy chỉnh duy nhất, với mạch đơn giản này. Đây là kết quả cuối cùng:





Bạn chưa từng sử dụng Arduino trước đây? Kiểm tra của chúng tôi Bắt đầu khóa hướng dẫn đầu tiên.





Những gì bạn cần

Đây là những gì bạn cần để thực hiện dự án này:





  • 1 x Arduino Pro Micro.
  • Nút tạm thời hoặc nút bàn phím.
  • Điện trở 10K ohm.
  • Các loại dây móc nối.
  • 1 x 220 ohm điện trở.
  • 1 x 5mm (0,197 inch) LED.
  • Giá đỡ 1 x 5mm LED.

Bạn sẽ cần một Arduino rất cụ thể cho dự án này. Tôi đang sử dụng một Pro Micro , vì chúng rất nhỏ và rẻ, bạn cần một Arduino có USB-Serial được tích hợp trong bộ xử lý (Atmega32u4). Có thể xây dựng dự án này với các Arduinos khác, chẳng hạn như UNO hoặc Nano, tuy nhiên, nó đòi hỏi rất nhiều công việc khó khăn để flash lại bios và tìm cách bắt mọi thứ hoạt động. Bản sao của các mẫu Arduino khác thường không hoạt động, nhưng bản sao Pro Micro cũng tốt.

Bảng mạch mô-đun OSOYOO Pro Micro ATmega32U4 5V / 16MHz với đầu cắm 2 hàng chân Thay thế bằng ATmega328 Pro Mini cho Arduino MUA NGAY TRÊN AMAZON

Bạn sẽ cần một nút tạm thời, một điện trở 10K ohm và dây nối thích hợp cho mỗi nút bạn muốn sử dụng. Tôi đang sử dụng công tắc bàn phím cơ Cherry MX cho các nút tắt thực tế, mặc dù không tí nào chuyển đổi sẽ làm, miễn là nó là tạm thời và không chốt.



Bạn có thể cần một vài mục khác tùy thuộc vào cách bạn xây dựng cái này. Nếu bạn muốn thử nghiệm nó, bạn sẽ cần một breadboard không hàn . Thật đáng để chi tiền cho một thứ tốt - đôi khi chúng có thể rất không đáng tin cậy. Nếu bạn muốn đóng hộp này, bạn sẽ muốn mua một số tấm bìa cứng.

Xây dựng kế hoạch

Đây là cách điều này sẽ hoạt động. Arduino sẽ được lập trình để hoạt động giống như một bàn phím USB - theo như máy tính của bạn có liên quan. Một số nút được kết nối với Arduino sẽ gửi các lệnh chính đến máy tính của bạn. Bạn sẽ chỉ nhấn một nút, nhưng máy tính của bạn sẽ nghĩ rằng bạn đã nhấn Mọi điều > F4 , Ví dụ.





Chọn một công tắc

Có một số biến thể của thiết bị chuyển mạch dòng MX. Trang web này cung cấp một phần giới thiệu tuyệt vời, tuy nhiên về cơ bản chúng giảm tiếng ồn và áp lực. Một số kiểu máy yêu cầu nhiều lực hơn để nhấn và một số kiểu máy phát ra tiếng 'lách cách' cơ học khi nhấn. Tôi đã sử dụng Cherry MX Browns, không tạo ra tiếng ồn khi nhấn. Chúng đều có cùng kích thước, vì vậy hãy chọn bất kỳ mẫu nào bạn thích (hoặc kết hợp và kết hợp) mà không cần lo lắng.

Tất nhiên, bạn cũng sẽ cần mua một số mũ chính và có cả một thế giới thiết kế tùy chỉnh ra khỏi đó để lựa chọn - chúng tôi đã mua từ KeyboardCo ở Vương quốc Anh





Trường hợp

Tôi đã in 3D trường hợp này và bạn có thể tải xuống .STL các tập tin từ Thingiverse . Đừng lo lắng nếu bạn không sở hữu một máy in 3D, bạn vẫn có thể xây dựng cái này. Nhiều trang web cung cấp dịch vụ in 3D, chẳng hạn như Trung tâm 3D hoặc Đường định hình . Ngoài ra, đây là một trường hợp rất đơn giản, bạn có thể tự làm từ nhựa, cá, gỗ hoặc thậm chí là bìa cứng. Nếu bạn muốn thực sự tiết kiệm, Cherry MX bán một bộ thử / lấy mẫu công tắc được thiết lập trên Amazon ( Vương quốc Anh ). Bạn sẽ cần 4 bu lông M5 x 35mm và 4 đai ốc M5. Tất nhiên, bạn có thể thay thế những thứ này bằng một giải pháp thay thế phù hợp mà bạn có.

Bàn phím tối đa Keycap, Cherry MX Switch, Tester Kit (9 switch Pro Sampler Tester Kit) MUA NGAY TRÊN AMAZON

Nếu bạn đang sản xuất vỏ của riêng mình, có một chi tiết quan trọng bạn cần biết: Công tắc Cherry MX là một thiết bị đẩy vào các lỗ gắn của chúng. Chúng yêu cầu một lỗ lắp hình vuông 14 x 14mm (0,551 inch), với tấm không dày hơn 1,5mm (0,059 inch). Đi lệch quá xa so với các kích thước này và các thiết bị chuyển mạch của bạn có thể không còn gắn kết chính xác.

Hộp đựng được in 3D gồm hai phần, phần trên và phần dưới. Đẩy công tắc Cherry MX vào các lỗ vuông:

Đảm bảo rằng bạn lắp các công tắc đúng cách. Mặt trên có dòng chữ 'CHERRY' và phía dưới có một rãnh nhỏ. Chèn một đèn LED 3mm vào khe nhỏ này:

Bạn có thể thấy rằng các đèn LED trông tốt nhất được gắn 'lộn ngược'. Đây là trường hợp cho keycaps mà tôi đã sử dụng và nó không ảnh hưởng đến công tắc.

Bây giờ bạn sẽ có chín công tắc với 9 LEDS. Không cần phải dán bất kỳ bộ phận nào trong số này vào. Chất hàn sẽ giữ các đèn LED và ma sát sẽ giữ các công tắc.

Tiếp theo, vặn vào đế gắn đèn LED (bây giờ hãy tháo đèn LED ra). Bạn sẽ hoàn thành việc lắp ráp vỏ máy sau này, khi mạch đã được xây dựng xong.

Mạch

Mạch này được xây dựng trên bảng dải. Điều này là tuyệt vời để xây dựng các mạch bán cố định mà không cần chi phí cho bảng mạch in (PCB). Nó chỉ đơn giản là một mảnh sợi thủy tinh với các rãnh đồng chạy song song theo một hướng. Các rãnh này có thể được hàn, cũng như cắt. Cắt một đường có thể được thực hiện bằng một công cụ đặc biệt hoặc một mũi khoan nhỏ.

Bạn không quá tự tin khi hàn? Hãy xem những dự án đơn giản này trước.

Đây là bố cục bảng dải (không bao gồm các khách hàng tiềm năng):

Đảm bảo rằng bạn đã cắt các dấu vết dưới các điện trở và Arduino. Vì có thể rất khó đọc mạch dải bảng, đây là phiên bản bảng mạch:

Nó là một sự phù hợp chặt chẽ để ép tất cả các thành phần vào một không gian nhỏ như vậy. Cắt các góc của bảng kẻ sọc của bạn như sau:

Cái này sẽ nằm gọn trong đáy hộp:

Đảm bảo rằng các bản nhạc đang chạy theo chiều dọc.

Kết nối cực dương ( chân dài, tích cực ) của đèn LED với điện trở 200 ohm và sau đó đến +5 V. Kết nối Cathode ( chân ngắn, tiêu cực ) xuống đất. Che chân bằng kiểu dáng co nhiệt và sau đó đẩy vào giá đỡ đèn LED. Không cần bất kỳ loại keo nào, tuy nhiên giá đỡ đèn LED của bạn có thể không phải là loại đẩy phù hợp, vì vậy bạn có thể cần phải điều chỉnh các hướng dẫn này.

Bạn có thể muốn sử dụng đèn LED hai màu ở đây thay thế - điều này sẽ cho phép bạn thiết lập hai hoặc nhiều bộ chuyển mạch, với một đèn LED trạng thái có màu khác nhau cho mỗi ngân hàng.

Bây giờ đã đến lúc hàn tất cả các đèn LED cho keycaps. Chúng chỉ được sử dụng để làm cho các phím phát sáng, vì vậy bạn có thể bỏ qua chúng nếu muốn và chúng không phải được kết nối với pin kỹ thuật số mà chỉ có nguồn. Kết nối tất cả các cực dương với nhau và tất cả các cực âm với nhau. Rút kinh nghiệm từ sai lầm của tôi - làm điều này dễ dàng hơn nhiều trước khi đấu dây các công tắc! Kết nối các cực dương với +5 V thông qua điện trở 220 ohm và cực âm với đất. Các đèn LED này được nối song song với nhau. Đây là mạch chỉ dành cho các LEDS này:

Sử dụng một đoạn ống co nhiệt nhỏ để che kết nối giữa các đèn LED và Arduino:

Bật nguồn Arduino để kiểm tra tất cả các đèn LED hoạt động. Bạn không cần phải tải lên bất kỳ mã nào. Nếu bất kỳ đèn LED nào không hoạt động, hãy đi và kiểm tra kỹ hệ thống dây điện của bạn.

Bây giờ nối dây các công tắc. Chúng phải được kết nối thông qua một điện trở 10k, nếu không Arduino sẽ chết. Đây được gọi là đường tắt - +5 V đi thẳng vào mặt đất, và tất cả những gì còn lại của Arduino của bạn sẽ tan thành mây khói (tin tôi đi, tôi đã giết một con rồi nên bạn không cần phải làm thế). Đây là mạch cho một công tắc:

Mạch này giống nhau cho tất cả chín công tắc. Kết nối các công tắc với các chân kỹ thuật số từ hai đến mười, mỗi chân có điện trở 10K của riêng chúng với đất. Hãy cẩn thận khi hàn các thiết bị chuyển mạch Cherry MX, chúng có thể hơi dễ vỡ, tôi đã bị gãy nhiều chân. Bạn có thể muốn hàn những thứ này trực tiếp vào một số tấm bảng khác, tuy nhiên các dây dẫn sau vẫn phù hợp.

Đó là nó cho hệ thống dây điện. Bạn có thể muốn gắn một ổ cắm USB loại B, tuy nhiên, các chân nhỏ trên chúng thường khá khó hàn. Nếu bạn không muốn làm điều này, đừng lo lắng. Đầu nối Micro USB trên Arduino vừa khít với lỗ trên khung máy. Nếu bạn hơi bối rối về các loại USB khác nhau, hãy chắc chắn rằng bạn hiểu sự khác biệt .

Cuối cùng, kiểm tra lại mạch của bạn là chính xác. Một đoạn ngắn có thể dễ dàng phá hủy một Arduino, và nó có thể dễ dàng thực hiện bằng cách sử dụng bảng rút gọn.

Mật mã

Bây giờ kiểm tra các mạch là chính xác. Bạn nên làm điều này trước khi tiếp tục, vì vậy bạn có thể khắc phục bất kỳ sự cố nào ngay bây giờ trong khi bạn có thể. Tải lên mã kiểm tra này (đừng quên chọn đúng bảng và cổng từ Công cụ > BảngCông cụ > Hải cảng menu):

const int buttons[] = {2,3,4,5,6,7,8,9,10}; // array of all button pins
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
for(int i = 2; i <11; ++i) {
if(digitalRead(i) == HIGH) {
// software de-bounce improves accuracy
delay(10);
if(digitalRead(i) == HIGH) {
// check switches
Serial.print ('input');
Serial.println(i);
delay(250);
}
}
}
}

Bạn có thể cần phải thay đổi các chân cắm nếu bạn đã sửa đổi mạch.

Sau khi tải lên, hãy mở màn hình nối tiếp ( trên cùng bên phải > Màn hình nối tiếp ). Nhấn từng nút một. Bạn sẽ thấy màn hình nối tiếp hiển thị số nút bạn đã nhấn. Cũng giống như với đèn LED, nếu máy tính của bạn phàn nàn về việc tạo ra quá nhiều dòng điện hoặc đèn LED tắt khi bạn nhấn một nút, hãy ngắt kết nối ngay lập tức! Bạn bị đoản mạch ở đâu đó, hãy kiểm tra lại mạch điện có đúng không và không có chập giữa các kết nối.

Nếu mọi thứ đều hoạt động, hãy tiếp tục và đặt mạch vào hộp. Bạn có thể muốn sử dụng một chút keo để giữ mạch ở vị trí (mặc dù các dây được giữ chặt chẽ). Nắp cũng được vặn chặt.

Để làm cho Arduino trông giống như một bàn phím rất đơn giản. Nếu bạn đang sử dụng Nano hoặc UNO, bạn sẽ lập trình lại Arduino của mình bằng Cập nhật chương trình cơ sở thiết bị (DFU). Điều này thường được sử dụng để flash phần sụn mới cho Arduino. Bạn sẽ sử dụng nó để cài đặt Arduino với một phần mềm cơ sở mới giúp nó hoạt động như một bàn phím. Điều này sẽ không được đề cập ở đây, vì nó là một nhiệm vụ khá phức tạp. Các Trang web Arduino có một hướng dẫn tốt cho việc này.

Arduino Pro Micro thực hiện bước này rất dễ dàng. Logic cần thiết để mô phỏng bàn phím USB đã được tích hợp sẵn trong bộ xử lý, vì vậy nó đơn giản như viết một số mã!

Đầu tiên, hãy thiết lập các phím:

int keys[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};

Đây là một mảng chứa tất cả các chân mà các nút được kết nối. Nếu bạn đã sử dụng nhiều hoặc ít nút hơn hoặc sử dụng các chân khác nhau, hãy thay đổi các giá trị tại đây.

Một mảng là tập hợp những thứ có cùng chí hướng. Máy tính có thể tối ưu hóa mã của bạn để truy cập chúng nhanh chóng và chúng tăng tốc quá trình viết mã.

Bây giờ khởi tạo tất cả các chân làm đầu vào:

void setup() {
// put your setup code here, to run once:
Keyboard.begin(); // setup keyboard
for (int i = 2; i <11; ++i) {
// initilize pins
pinMode(i, INPUT);
}
}

Điều này cho Arduino biết rằng tất cả các chân trong mảng đều là đầu vào. Một vòng lặp được sử dụng để làm điều này, vì vậy thay vì viết pinMode (2, INPUT) chín lần, bạn chỉ phải viết nó một lần. Điều này cũng gọi Keyboard.begin . Điều này thiết lập một chức năng được tích hợp trong thư viện Arduino, được thiết kế đặc biệt để mô phỏng bàn phím.

Tạo một phương thức được gọi là readButton :

boolean readButton(int pin) {
// check and debounce buttons
if (digitalRead(pin) == HIGH) {
delay(10);
if (digitalRead(pin) == HIGH) {
return true;
}
}
return false;
}

Thao tác này cần ghim và kiểm tra xem nó đã được ấn hay chưa. Nó chỉ đơn giản là trở lại THẬT hoặc SAI . Nó cũng chứa một số gỡ lỗi phần mềm - một sự chậm trễ đơn giản và sau đó kiểm tra lại công tắc để đảm bảo rằng nút thực sự đã được nhấn.

Bây giờ một vòng lặp for khác được gọi là bên trong void loop () :

void loop() {
// put your main code here, to run repeatedly:
for (int i = 2; i <11; ++i) {
// check buttons
if(readButton(i)) {
doAction(i);
}
}
}

Một lần nữa, điều này sẽ xem xét mọi phần tử trong mảng và kiểm tra xem nó đã được nhấn chưa. Nó thực hiện điều này được gọi là readButton phương pháp bạn đã tạo trước đó. Nếu một nút đã được nhấn, nó sẽ chuyển số pin đó sang một phương thức khác được gọi là doAction :

void doAction(int pin) {
// perform tasks
switch (pin) {
case 2:
Keyboard.println('drive.google.com');
break;
case 3:
Keyboard.println('makeuseof.com');
break;
case 4:
// CMD + T (new tab, Chrome)
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('t');
delay(100);
Keyboard.releaseAll();
break;
case 5:
// your task here
break;
case 6:
// your task here
break;
case 7:
// your task here
break;
case 8:
// your task here
break;
case 9:
// your task here
break;
}
}

Thao tác này kiểm tra số pin bằng cách sử dụng chuyển tuyên bố. Chuyển đổi câu lệnh (đôi khi được gọi là chuyển trường hợp ) tương tự như một nếu như , tuy nhiên, chúng hữu ích để kiểm tra rằng một thứ (trong trường hợp này là số pin) bằng một trong một số kết quả khác nhau. Về cơ bản, chúng nhanh hơn nhiều để tính toán.

Các thành phần chính bên trong câu lệnh switch này. Bàn phím.println ghi văn bản vào máy tính như thể bạn gõ từng phím. Keyboard.press nhấn và giữ một phím. Đừng quên phát hành chúng bằng cách sử dụng Keyboard.releaseAll sau một thời gian ngắn!

cách tải nhạc từ google play sang máy nghe nhạc mp3

Đây là mã đầy đủ:

int keys[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};
void setup() {
// put your setup code here, to run once:
Keyboard.begin(); // setup keyboard
for (int i = 2; i <11; ++i) {
// initilize pins
pinMode(i, INPUT);
}
}
void loop() {
// put your main code here, to run repeatedly:
for (int i = 2; i <11; ++i) {
// check buttons
if(readButton(i)) {
doAction(i);
}
}
}
boolean readButton(int pin) {
// check and debounce buttons
if (digitalRead(pin) == HIGH) {
delay(10);
if (digitalRead(pin) == HIGH) {
return true;
}
}
return false;
}
void doAction(int pin) {
// perform tasks
switch (pin) {
case 2:
Keyboard.println('drive.google.com');
break;
case 3:
Keyboard.println('makeuseof.com');
break;
case 4:
// CMD + T (new tab, Chrome)
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('t');
delay(100);
Keyboard.releaseAll();
break;
case 5:
// your task here
break;
case 6:
// your task here
break;
case 7:
// your task here
break;
case 8:
// your task here
break;
case 9:
// your task here
break;
}
}

Ngoài tất cả các phím số và chữ cái, Arduino có thể nhấn hầu hết các phím đặc biệt được gọi là Công cụ sửa đổi bàn phím . Chúng đặc biệt hữu ích để nhấn phím tắt. Trang web Arduino có danh sách hữu ích .

Bây giờ tất cả những gì còn lại là tạo một số phím tắt. Bạn có thể ánh xạ điều này với các phím tắt hiện có, chẳng hạn như Mọi điều + F4 (đóng chương trình trong Windows) hoặc Cmd + NS (thoát chương trình macOS). Ngoài ra, hãy đảm bảo rằng bạn đọc hướng dẫn phím tắt cuối cùng , cách tạo phím tắt Windows và mọi lối tắt Chromebook để bắt đầu tạo các phím tắt của riêng bạn.

Bạn đã tạo hộp phím tắt của riêng mình chưa? Hãy cho tôi biết trong phần bình luận, tôi muốn xem một số hình ảnh!

Chúng tôi hy vọng bạn thích các mặt hàng chúng tôi giới thiệu và thảo luận! MUO có quan hệ đối tác liên kết và được tài trợ, vì vậy chúng tôi nhận được một phần doanh thu từ một số giao dịch mua của bạn. Điều này sẽ không ảnh hưởng đến giá bạn phải trả và giúp chúng tôi đưa ra các đề xuất sản phẩm tốt nhất.

Đăng lại Đăng lại tiếng riu ríu E-mail Đây là lý do tại sao FBI ban hành cảnh báo cho Hive Ransomware

FBI đã đưa ra cảnh báo về một loại ransomware đặc biệt khó chịu. Đây là lý do tại sao bạn cần phải đặc biệt cảnh giác với ransomware Hive.

Đọc tiếp
Chủ đề liên quan
  • DIY
  • Bàn phím
  • Các phím tắt bàn phím
  • Arduino
Giới thiệu về tác giả Joe Coburn(136 bài báo đã xuất bản)

Joe tốt nghiệp ngành Khoa học Máy tính tại Đại học Lincoln, Vương quốc Anh. Anh ấy là một nhà phát triển phần mềm chuyên nghiệp và khi anh ấy không lái máy bay không người lái hay viết nhạc, anh ấy thường có thể bị bắt gặp chụp ảnh hoặc sản xuất video.

Xem thêm từ Joe Coburn

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký
Thể LoạI Diy