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

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

[Arduino] - 로스트 아크를 위한 4x4 키패드



게임을 즐길때는 nkey 싱글핸드 게이밍 키보드를 주로 사용한다.
fps rpg 를 가리지 않고 대부분의 게임에서 만족스러운 키보드다.
하지만 게임 중에는 한 두개 정도의 키가 부족해서 불편한 경우도있어 아쉬운 점도 있었다.
그때든 생각이 10개정도의 키만 따로 빼놓고 쓰고 싶다였다.
그렇게 만들게 된 것이 검은사막에 쓸려고 만든 4x4 키패드였는데 검은사막을 안하게되면서 키패드의 활용도가 점점 없어져갔다.

최근에 즐기기 시작한 게임이 새겼는데 바로 로스트 아크다.
rpg 게임 답게 열어봐야할 창들이 많고 단축키들도 없어서는 안되는 키들이였다.
옷장속에 있던 4x4 키패드를 다시 꺼내와 한 손 키보드에 없는 키들만 모아서 키맵핑을 해주었다.



키 배열을 따로 외우기 싫기 때문에 쿼티 키보드의 배열을 신경써서 만들었다.
로스트 아크는 Alt를 이용한 조합키가 대부분이다.
Alt 넣고보니 옆자리가 비고 쓸쓸해 보여서 Ctrl도 넣어주었다.
투명한 키는 return이다.



또 함께 사용할 기회가 생겼다니 쓰레기를 만든것 같지 않아 기분이 좋다.
이 키패드는 매크로 기능은 포함하고 있지 않고 단순한 키입력만 구현되어있다.
예전코드는 여기에서 확인 할 수 있다.

  • 로스트 아크 4x4 키패드 소스코드

/* @file Keypad.ino
|| @version 1.1
|| @author Heejoong
|| #2018-12-04
*/
#include <Keyboard.h>
const byte ROWS = 4;  //four rows
const byte COLS = 4;  //four columns
//define keypad
uint8_t keyPad[ROWS][COLS] = {
  {'l','k','j','h'}, //1
  {'i','u','y','t'}, //0
  {'m','n','c',KEY_RETURN}, //2
  {KEY_LEFT_ALT,KEY_LEFT_CTRL,'x','z'}  //3
};
byte aPin[ROWS] = {A0, A1, A9, A10}; //connect to the row pin
byte dPin[COLS] = {0 ,1 ,2 ,3}; //connect to the col pin
void setup() {
  Serial.begin(9600);
  Keyboard.begin();
  for(char a = 0 ;a < 4 ;a++ ){
      pinMode(aPin[a], INPUT_PULLUP);
  }
  for(char d = 0 ;d < 4 ;d++ ){
      pinMode(dPin[d], OUTPUT);
  }
}
void loop() {
  for (char x = 0; x < 4; x++) {
    for(char y = 0; y < 4; y++) {
      digitalWrite(x, LOW);
      if (digitalRead(aPin[y])) Keyboard.release(keyPad[x][y]);
      else Keyboard.press(keyPad[x][y]);
      digitalWrite(x, HIGH);
    }
  }
}
cs

Comments

Popular posts from this blog

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

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

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