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.
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'.
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'.
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.