Makey Makey + Raspberry Pi로 완전한 USB 키보드를 만들 수 있습니까?


15

나는 최근에 일부 금속 부품으로부터 완전한 USB 스팀 펑크 스타일 키보드를 만들기를 희망하면서 Makey Makey (Arduino Leonardo / ATMega32u4 기반)를 구입했습니다 . 도착하기 전에 세부 정보를 다시 읽고 가능한 입력이 18 개뿐이므로 85+ 키가 작동하지 않는다는 것을 깨달았습니다. 라즈베리 파이로 짐승을 어떻게 만들 수 있을지 아는 사람이 있습니까? ( 이전 게시물에서 매우 쉽게 연결됨 )


대단해.
Jivings

1
RPi가 arduino보다 적은 입력을 가지고 있다는 것을 알고있는 한 각 키에 대한 입력 대신 행렬을 사용하고 18 개의 입력을 사용하여 81 개의 키 (9x9 매트릭스)를 처리 할 수 ​​있으므로 도움이되지 않을 것이라고 생각합니다.
Craig

@Craig 따라서 다음과 같은 입력을 결합하는 것을 의미합니다. arduino.cc/playground/Main/KeypadTutorial
sventechie

@sventech 예. 나는 makey makey에 익숙하지 않으므로 높은 저항 스위칭이 매트릭스와 어떻게 상호 작용하는지 모르겠습니다.
Craig

답변:


6

Makey Makey를 사용하지 않고 키보드 만 만들려면 Raspberry Pi의 GPIO 기능을 사용하여 키보드를 만들 수 있습니다. 그러나 이전에 언급했듯이 Raspberry Pi에는 실제로 유용한 키보드를 만들기에 충분한 핀이 없습니다.

그러나 2 개의 IC를 추가하려는 경우 키가 많은 키보드를 만들 수 있으므로 모든 키에 대한 기능을 구현하는 데 문제가 있습니다!

내 제안은 2 I2C IC를 Raspberry Pi의 I2C 버스에 연결하고이를 사용하여 자체 스캔 매트릭스를 만드는 것입니다.

하나의 PCF8574를 사용하는 경우 8 개의 I / O 핀을 사용할 수 있으며 PCF8575를 사용하면 16 개의 I / O 핀도 사용할 수 있습니다. 결합하면 다음과 같은 스캔 매트릭스를 얻을 수 있습니다.

  • 64 키 : (2x PCF8574)
  • 128 개의 키 : (1x PCF8574 및 1x PCF8575)
  • 256 키 : (2x PCF8575)

항상 하나는 출력으로, 하나는 입력으로 사용해야합니다. 출력에서 비트 0에서 비트 n (7 또는 15)으로 비트를 '보행'하게하면 행렬의 열이됩니다. 다른 한편으로 당신은 지속적으로 입력 값을 읽고 이것들은 행렬의 행입니다. 활성화 된 출력 비트와 '1'의 입력 비트 조합은 누르는 키입니다.

스캔 매트릭스의 원리

실제로 매트릭스를 생성하는 것이 가장 효과적이며, 매트릭스에 넣을 때마다 다이오드를 추가하는 것을 잊지 마십시오.이 다이오드 (일반 1N4148은 잘 작동합니다)는 양극과 함께 배치해야합니다 스위치에, 음극은 행 라인에. 이 다이오드에서 0.6V의 전압 강하가 문제가되지 않아야하며, 나머지 (3.3V-0.6V) 2.7V는 여전히 논리적 인 '1'이어야합니다.

실제 스캔 매트릭스

이 트럭이 다이오드를로드하는 이유는 키의 고스트 및 마스킹과 같은 것을 방지하기 때문입니다. 고 스팅은 세 개 이상의 키를 동시에 누르면 더 많은 행에 논리적 '1'이 있기 때문에 완전히 다른 키로 해석 될 수 있습니다. 마스킹은 여러 키를 눌렀다가 놓은 경우 해당 키의 행이 여전히 논리적 인 '1'이므로 (일부 상황에서) 감지되지 않는 효과입니다.

고 스팅 예제

사진은 고 스팅의 예를 보여줍니다. 버튼 A, B, D가 눌려져 있고 열 1 (버튼 A의 경우) 외에 열 2 (버튼 C의 경우)도 높지만 열 1이 활성화 된 순간 올바르지 않습니다.

전체 하드웨어 모험을 마친 후에는 리눅스에서 키보드를 실제로 사용하려면 커널 드라이버를 작성하거나 수정해야합니다. 좋은 출발점이 링크 될 수 있습니다 TCA6416 I2C IO 확장기에 키 드라이버 이 비슷한 생각이지만, 만 16 키 키패드를 사용합니다.

희망이 조금 도움이되기를 바랍니다.


3

실제로 입력 할 수 있도록 전체 키보드를 만들려면 USB 키보드에서 IC를 꺼두는 것이 가장 좋습니다. PCB를 볼 수없는 곳에 시스템 자체에 매장 된 PCB 자체를 유지하고 스위치에 와이어를 연결하거나 동일한 매트릭스로 사용자 정의 무언가를 제작하십시오.

전기 매트릭스를 실제로 변경 해야하는 경우 자신의 디자인을 처음부터 새로 만들어야 할 수도 있지만 실제로는 필요하지 않습니다.

커스텀 보드를 사용하더라도 USB 키보드로 열거되고 기능하는 것으로 끝날 수 있으므로 커스텀 드라이버가 필요 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.