ASRock BC-250 보드 RAZER CORE X CHROMA 에 설치하기 5

주문 제작 하였던 브라켓이 도착하였다.  재질은 철이 아니고 알루미늄이라 그런지 상당히 가볍고 잘못하면 휘어질 것 같은 느낌이 든다. 제작하고 수령하기 까지 거의 3주라는 긴 시간이 걸렸다. 원래 이렇게 까지 걸리진 않는데 원인은 가공 엔지니어로 부터 온 메일을 확인하지 않고 3일이나 흐른 뒤에 답장을 하였고, 연말 기간도 걸려서 늦어져 버렸다. BC-250 카드에 기존 브라켓을 제거하고 새로 설계한 브라켓을 달아보니 아주 잘 맞았다. 버튼도 잘 눌리고 이더넷, USB, DP 포트 모두 사용에 문제가 없다. 이렇게 보고 나서 알아차린 부분이지만 하단 쪽에 고정 다리를 추가한다는 것을 빼먹었다. 다시 만드는 건 금액도 만만치 않았기 때문에 수정해서 발주를 다시 넣지는 않을 예정이고 튼튼하게 고정하기 위해 다른 솔루션을 찾아 보려고 한다. 사실 브라켓을 설계한 건 설치 문제도 있지만 완성된 시스템이 외관상으로 봤을 때 튀는 부분 없이 완성도가 높아 보이길 원했기 때문이다. 이렇게 보니 모양도 그럴싸하고 원래 이런 제품일지도 모른다는 착각도 든다. 타공 모양도 벌집 모양으로 했으면 더 완벽했겠지만 만드는 동안에는 그런 생각 없이 만들었기 때문에 큰 후회는 없다. 장착 되어있던 USB 허브 보드 대신 사용될 PCB도 도착하였다. 기존 허브 보드와 비교하자면 사이즈만 많이 커졌지만 브라켓과 호환이 되는지 확인하였고 장착하는 데는 문제가 없을 것으로 예상하고 있다.  지금 보니 오디오 앰프가 꼭 있어야 했는지 살짝 욕심이 과했다는 생각도 든다. 조립에 사용될 부품들은 아직 수급 중이며 차근차근 조립을 해 나갈 예정이다. 먼저 설계했던 PSU 전원 컨트롤 보드는 다음과 같이 장착 되었고 주요 동작에는 큰 이상이 없으나 몇 가지 수정 사항이 생겼다. 수정 사항은 허브 보드을 새로 설계하면서 발생한 것으로 두 보드 간에 별도의 통신 선이 연결된다. 사실 이렇게 기능을 분리할 필요는 없었는데 첫 번째로 만든 보드에서 하드웨어 적으로 누락된 기능이 있기 때문에 허...

[Arduino] - 4x4 기계식 키패드 만들기


스위치 16개, 아두이노 비틀 1개, 다이오드 16개, 게임할때 있으면 편할것 같아서 시작했다.
처음 시작할때는 있는거로 만들어보려다 삽질도 많이하고 일단 쓸만한 프로그램을 만들게 되었다. 블루투스 모듈을 HID로 펌웨어를 바꾸고 아두이노 나노로 작동하는 키패드였다.

그러다 게임도 잘 안하고 열정도 식어버려서 오른쪽 상태로 방치하다가 블루투스에 물이 떨어지면서 못쓰게 되었다.

손쉬운 작업은 아니였는데, 나름 신경써서 만들었든데, 그렇게 가버렸다.



최근 아두이노 비틀을 손에 넣게 되면서 다시 만들게 되었다.
역시 정신적 육체적으로 힘들어 질 땐 돈을 쓰면 편하다.

다이오드가 넘쳐나기 때문에 다이오드를 사용했다.

작업은 기계식 스위치의 핀 2개 중 1개는 다이오드에 연결해주는걸로 시작했다.
다이오드의 '-'에 해당하는 곳을 한 쪽 핀에 연결했다.



다이오드의 '+'에 해당하는 부분은 옆에있는 다이오드의 '-'에 연결해준다.
다이오드를 4개씩 가로로 묶었다면, 다이오드가 없는 핀은 4개씩 세로로 와이어를 이용해 묶어주면된다.

4x4 행렬이라 생각하면 쉽다.
주의할 점은 가로선과 세로선은 서로 연결이 되어있으면 안된다.
배선작업은 본인 자유다. 꼭 이렇게 할 필요는 없다.


아두이노 비틀 핀아웃


이를 잘 숙지하고 아두이노 비틀에 연결해야한다.
마지막으로 프로그램을 만들어 아두이노에 업로드 해주면 된다.

아래는 예제 코드중 하나다.
219~235의 숫자들은 아무거나 집어 넣은게 아니라 numpad 키값이다.
/* @file Keypad.ino
|| @version 1.0
|| @author Heejoong
|| #2018-08-09
*/
#include <Keyboard.h>
void setup() {
  Serial.begin(9600);
  Keyboard.begin();
  pinMode(A0, INPUT_PULLUP);
  pinMode(A1, INPUT_PULLUP);
  //pinMode(A2, INPUT_PULLUP);
  pinMode(A9, INPUT_PULLUP);
  pinMode(A10, INPUT_PULLUP);
  pinMode(0, OUTPUT);
  pinMode(1, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  //pinMode(11, OUTPUT);
}
void loop() {
digitalWrite(1, LOW);
  if (digitalRead(A10)) Keyboard.release('7');
  else Keyboard.press('7');
  if (digitalRead(A9))  Keyboard.release('8');
  else Keyboard.press('8');
  if (digitalRead(A1))  Keyboard.release('9');
  else Keyboard.press('9');
  if (digitalRead(A0))  Keyboard.release('0');
  else Keyboard.press('0');
  digitalWrite(1, HIGH);
  
  digitalWrite(0, LOW);
  if (digitalRead(A10)) Keyboard.release(231);
  else Keyboard.press(231);
  if (digitalRead(A9)) Keyboard.release(232);
  else Keyboard.press(232);
  if (digitalRead(A1)) Keyboard.release(233);
  else Keyboard.press(233);
  if (digitalRead(A0)) Keyboard.release(222);
  else Keyboard.press(222);
  digitalWrite(0, HIGH);
  digitalWrite(2, LOW);
  if (digitalRead(A10)) Keyboard.release(228);
  else Keyboard.press(228);
  if (digitalRead(A9)) Keyboard.release(229);
  else Keyboard.press(229);
  if (digitalRead(A1)) Keyboard.release(230);
  else Keyboard.press(230);
  if (digitalRead(A0)) Keyboard.release(223);
  else Keyboard.press(223);
  digitalWrite(2, HIGH);
  digitalWrite(3, LOW);
  if (digitalRead(A10)) Keyboard.release(225);
  else Keyboard.press(225);
  if (digitalRead(A9)) Keyboard.release(226);
  else Keyboard.press(226);
  if (digitalRead(A1)) Keyboard.release(227);
  else Keyboard.press(227);
  if (digitalRead(A0)) Keyboard.release(234);
  else Keyboard.press(234);
  digitalWrite(3, HIGH);
}
cs
이 앞으로는 LED를 추가하건 모드를 추가하건 취향껏 만들면된다.

키패드 v1.1 소스코드

Comments

  1. 안녕하세요 블루노 비틀 키보드제작 관련해서 질문이 있는데.. 혹시 메일 드려도 될까요...?ㅜㅜ

    ReplyDelete
  2. 안녕하세요 블루노 비틀 키보드 제작 관련해서 질문 드리고 싶습니다..ㅜㅜ 혹시 메일 드려도 괜찮을까요?

    ReplyDelete
    Replies
    1. 질문하셔도 됩니다. :)
      메일 주소는 제 프로필에 있습니다.

      Delete
    2. 기다리셨을 텐데 메일 답변이 늦어 죄송합니다.
      다소 급하게 작성하느라 지금보니 오타가 많았네요. ^^;

      그리고 메일 답변에 언급하지는 않았지만 첫번쩨 그림 중 우측에 있는 사진의 블루투스 모듈과 키패드가 연결되어있는 아두이노 나노는 블루투스로 작동하는 키패드가 맞습니다.

      하지만 HC-05 모듈의 펌웨어를 리라이팅 해야 HID장치로서 사용이 가능합니다. 이 방법은 다소 복잡할 수 있기 때문에 언급하지 않았습니다.

      Delete
  3. 비틀연결하신 사진도 있었으면 좋았겠지만... 고민해서 연결해보겠습니다.

    ReplyDelete

Post a Comment

좋은하루되세요. ^^

Popular posts from this blog

[POE] - 패스 오브 엑자일 획득키 F 의 사용법 (Path of Exile)

[AD보드] - 맥북 패널을 모니터로 만들기 ( LP154WP4-TLA1 )

[Arduino] - HC-06를 이용해 PC 와 Arduino 블루투스 연결