클리앙에도 올렸었는데 여기에도 올려봅니다.



 

평소에 일반키보드를 블루투스를 이용해

무선으로 사용할수 있게 하는

모듈이 있으면 좋겠다.. 생각만 했었는데

찾아 보니 비슷한게 있더라구요

http://handheldsci.com/kb

 

허나 디자인과 인터페이스가 맘에 들지않아 

직접 만들어 보았습니다.

 

일단 작동 영상부터 보여드리겠습니다.

 

 

 

장착사진입니다.

KakaoTalk_20170329_013645143.jpg


KakaoTalk_20170329_015552449.jpg


 

KakaoTalk_20170329_013736540.jpg


 

주요 특징

 

  • 150mA 리튬배터리 내장
  • 약 15시간 연속사용가능
  • 스위치를 통해 블루투스 모드 USB모드 선택가능
  • 충전하면서 블루투스 모드 사용가능
  • 충전하면서 USB모드 사용가능
  • 9.8 mm 의 얇은 두께 (스위치 제외 본체 두께)
  • 무게 27.5g

 

 

그리고 저렴한 가격..?

 

부품을 구매하는데에 3만원정도 들인것 같습니다.

KakaoTalk_20170328_214906310.jpg


내부사진입니다. 


 

아두이노 프로미니 3.3v 버전

HC-05 (RN-42 펌웨어 올림)

150mA 리튬배터리

충전 및 승압출력 모듈 (mini d1 battery shield)

4PDT 슬라이드 스위치

USB mini B 케이블

3D printer 출력 케이스

캡처.PNG

sketup 으로 설계한 케이스입니다

 

이상 사용된 부품 리스트였구요

 

USB 허브가 내장된 키보드 혹은 PS/2 프로토콜을 지원하지 않는 키보드

(USB to PS/2 젠더로 변환이 안되는 키보드)는 지원을 하지 않습니다. (HHKB)

기기에서 선이 바로 나오는 모델은

특수한 usb젠더로 사용은 가능하나 (USB mini B female - USB A female)

모양이 빠져서 추천드리지 않습니다.

 

정리하자면 허브기능이 없는

USB mini B 포트를 가지고있는 키보드에서 사용을 권장합니다.

 

아직 부족한점이 많은데

1. capsLock,Numlock,scrlock 키 눌렀을때 키는 적용이 되는데 LED는 안켜짐 (추가적인 개발로 구현가능)

2. 가끔씩 키가 씹히는 버그가 있습니다. (블루투스 딥 슬립 기능 활성화때문으로 추정 혹은 아래 사유때문)

3. 아두이노 상에서 PS/2 신호를 입력받을때 인터럽트를 사용하지 않습니다.
4.  아두이노 슬립기능을 사용하지 않습니다. (추가적인 배터리 성능향상가능)

5. 아두이노와 블루투스 사이의 통신이 소프트웨어시리얼로 통신합니다. 
(하드웨어로 하니 왜인지 모르겠는데 죽어도안되더군요 원인 미상)


KakaoTalk_20170329_013701418.jpg


KakaoTalk_20170329_013720930.jpg


충전시 모습입니다




KakaoTalk_20170329_013715881.jpg


블루투스 켰을때 led입니다

 



개발 히스토리를 조금 쓰자면  

2년전에 어떤 방식이 유선키보드를 무선으로 사용할때 좋을까 고민하다가

처음 본방법은 키보드의 패턴을 모두 끊고

기성 블루투스 키보드의 블루투스 모듈을 가져와서

새로 매트릭스를 납땜해서  만드는것인데

상당히 노가다 작업에 원래 키보드를 대폭 수정해야하고 

 

해당제품에 블루투스 모듈이 종속되고

원상복구가 어렵다는 단점이 있어 스킵했습니다.

 

두번째 본 방법은 기성품의 블루투스 모듈의 메모리에 저장된 키맵을

수정하여 개조하는 방식 이었습니다.

매트리스 패턴의 변화 없이 20여군대만 쉽게 납땜하여 할수있어서

시도했는데 실패 했습니다.

i2c 통신을 후킹해서 나온 신호를 바탕으로

메모리를 뒤져서 수정해야하는데

일부키맵과 블루투스 모듈의 검색되는 이름 변경에 성공했으나

모든 키를 찾을수가 없었습니다.  

 

두번째 방법에 상당히 노력을 많이 했었는데 실패한후

해당 프로젝트에 정이 떨어져 1년간 쉬다가

우연한 계기로 동기 부여되어 보류중인 프로젝트들을  

다시 진행하게 되었습니다.

 

HID 를 지원하는 저렴한 블루투스 모듈을 찾다가 


https://youtu.be/BBqsVKMYz1I

이 영상을 찾았고 해당 유튜버의 블루투스

 

 

키보드 마우스 아답터 제작 영상을 보게됬습니다. 

https://www.youtube.com/watch?v=UJaqHnPR-XE

 

이 영상에서는 PS/2 키보드 와 PS/2 마우스를 지원하는 아답터인데,

대부분의 USB키보드가 ps/2젠더를 지원하고,

특수한 회로 없이 키보드 칩셋에서 지원하기 때문에 

핀배열만 적절하다면 USB키보드도 사용가능할것이라고 생각했습니다.


또한 제가 사용하는 레오폴드사 키보드는 전부 USB mini B 타입으로 되어있어
이런식으로 개발하게 되었습니다.

개발용 모든소스는 위 유튜브 링크에서 구했습니다.
케이스는 스케치업으로 설계하여 3D프린터로 뽑았습니다.



KakaoTalk_20170330_201546564.jpg


 

아마 FC660M 에 물려서 쓸거같습니다.

 




기타 궁금한점은 댓글달아주세요.