Tôi có thể tạo bàn phím USB đầy đủ với Makey Makey + Raspberry Pi không


15

Gần đây tôi đã mua Makey Makey (dựa trên Arduino Leonardo / ATMega32u4), với hy vọng xây dựng một bàn phím kiểu USB steampunk đầy đủ từ một số bộ phận kim loại. Trước khi nó đến tôi đã đọc lại các chi tiết và nhận ra nó chỉ có 18 đầu vào có thể, vì vậy hơn 85 phím sẽ không hoạt động. Có ai có ý tưởng làm thế nào tôi có thể tạo ra một con thú như vậy, có thể với Raspberry Pi không? (kết nối khá dễ dàng, từ các bài viết trước )


Điều đó thật tuyệt vời.
Jivings

1
Thay vì đầu vào cho mỗi khóa, bạn có thể sử dụng ma trận và sử dụng 18 đầu vào để xử lý 81 khóa (ma trận 9x9) theo như tôi biết RPi có ít đầu vào hơn arduino nên tôi không nghĩ nó sẽ giúp ích.
Craig

@Craig vì vậy bạn có nghĩa là kết hợp các đầu vào như thế này: arduino.cc/playground/Main/KeypadTutorial
sventechie

@sventech có. Tôi không quen thuộc với makey makey vì vậy tôi không biết chuyển đổi điện trở cao của nó sẽ tương tác với ma trận như thế nào.
Craig

Câu trả lời:


6

Nếu bạn chỉ muốn tạo một bàn phím, mà không cần sử dụng Makey Makey, bạn có thể làm điều đó bằng chức năng GPIO của Raspberry Pi. Nhưng giống như đã nhận xét trước đó, Raspberry Pi không có đủ chân để tạo ra một bàn phím thực sự hữu ích.

Tuy nhiên, nếu bạn sẵn sàng thêm 2 IC, bạn có thể tạo cho mình một bàn phím có quá nhiều phím mà bạn sẽ gặp vấn đề khi đưa ra chức năng cho mọi phím!

Đề xuất của tôi là kết nối 2 IC I2C với bus I2C trên Raspberry Pi và sử dụng chúng để tạo ma trận quét của riêng bạn.

Nếu bạn sử dụng một PCF8574, bạn có sẵn 8 chân I / O, nếu bạn nhận được PCF8575, bạn thậm chí có sẵn 16 chân I / O. Bằng cách kết hợp sau đó bạn có thể có được một ma trận quét gồm:

  • 64 phím: (2x PCF8574)
  • 128 phím: (1x PCF8574 & 1x PCF8575)
  • 256 phím: (2x PCF8575)

Bạn phải luôn luôn sử dụng một trong số chúng làm đầu ra và một làm đầu vào. Trên đầu ra, bạn để một bit 'walk' từ bit 0 đến bit n (7 hoặc 15), đây là các cột của ma trận. Mặt khác, bạn liên tục đọc giá trị của đầu vào và đây là các hàng của ma trận. Sự kết hợp của bit đầu ra nào đang hoạt động và bit đầu vào nào là '1' là phím được nhấn.

nguyên lý ma trận quét

Trên thực tế, việc tạo ma trận là công việc hiệu quả nhất và trong khi bạn đang ở đó, đừng quên thêm một diode sau mỗi công tắc bạn đặt vào ma trận, diode này (1N4148 bình thường sẽ hoạt động tốt) cần được đặt với cực dương đến công tắc và cực âm cho dòng hàng. Việc giảm điện áp 0,6V so với diode này không phải là vấn đề, còn lại (3,3V-0,6V) 2,7V vẫn phải là logic '1'.

ma trận quét thực tế

Lý do cho khối lượng xe tải điốt này là vì nó sẽ ngăn chặn những thứ như bóng ma và che giấu chìa khóa. Bóng ma là hiệu ứng nếu bạn nhấn nhiều hơn ba phím cùng một lúc, có thể nó được hiểu là một khóa hoàn toàn khác vì nhiều hàng sẽ có logic '1'. Tạo mặt nạ là hiệu ứng mà nếu bạn có nhiều phím được nhấn và nhả một phím thì điều này sẽ (trong một số trường hợp) không được phát hiện vì hàng cho phím đó vẫn là logic '1'.

ví dụ bóng ma

Hình ảnh cho thấy một ví dụ về bóng mờ, các nút A, B, D được nhấn và bên cạnh Hàng 1 (đối với nút A) còn Hàng 2 (đối với nút C) ở mức cao, tại thời điểm Cột 1 đang hoạt động, điều này không đúng.

Sau cuộc phiêu lưu toàn bộ phần cứng, bạn cần viết hoặc điều chỉnh trình điều khiển hạt nhân để thực sự sử dụng bàn phím trong linux. Một điểm khởi đầu tốt đẹp có thể là liên kết này: Trình điều khiển cho các phím trên bộ mở rộng TCA6416 I2C IO , đây là một ý tưởng tương tự, nhưng chỉ sử dụng bàn phím 16 phím.

Hy vọng điều này sẽ giúp bạn một chút.


3

Nếu bạn muốn tạo một bàn phím đầy đủ để thực sự gõ, có lẽ bạn nên tắt IC từ bàn phím USB. Giữ lại PCB được chôn sâu trong hệ thống của bạn, nơi nó không thể nhìn thấy và chạy dây tới các công tắc của bạn hoặc chế tạo thứ gì đó tùy chỉnh với cùng một ma trận.

Nếu bạn thực sự cần thay đổi ma trận điện thì bạn có thể cần phải tự thiết kế từ đầu, nhưng nếu không thì không thực sự cần thiết.

Ngay cả với một bảng tùy chỉnh, bạn vẫn có thể kết thúc với một cái gì đó liệt kê và hoạt động như một bàn phím USB, loại bỏ sự cần thiết của trình điều khiển tùy chỉnh.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.