0. 재료
1. 모양 구상
2. 키캡 구입
3. 디자인
4. 키 배열 ← 여기까지 1단계 : http://www.kbdmania.net/xe/tipandtech/8635141
5. 조립 & 납땜 ← 여기까지 2단계
6. 아두이노 프로그래밍 ← 여기까지 3단계


자 그럼 오늘은 5번 조립과 납땜을 해보도록 하겠습니다.


오늘도 굉장히 간단합니다. 이론? 그건 저도 몰라요. 되니까 하는겁니다.



---



IMG_9891.JPG




지난시간 그려서 주문한 아크릴 판이 배달왔습니다. 여러분 것도 배달이 왔나요?

IMG_9904.JPG




그럼 마찬가지로 배달온 스위치를 끼워봅니다.

제가 지난시간, 스위치 크기는 14*14mm이나 아크릴 판에는 13.9*13.9로 줄여서 그리라고 했던 것 기억하시나요. 레이저커팅을 하면 레이저가 녹여내는 '톱날 굵기'가 생겨서 그림으로 그린 것 보다 살짝 더 파내기 때문입니다. 이러한 손실분은 레이저 출력에 따라서도 달라집니다. 일전에 윗판 두께 5T에서 13.9*13.9로 했더니 스위치가 아주 딱 맞았는데요...

IMG_9908.JPG



이번엔 3T로 했더니 13.9도 너무 큰지 스위치가 헐렁이더군요... 젠장!을 외치며 글루건으로 붙여버립니다. 여러분은 5T로 하실땐 13.9, 3T로 하실땐 13.8로 하시길... 아무튼 가공된 아크릴을 조립하려고 하면 생각치 못한 부분에서 측정 오류가 생깁니다. 고쳐쓸 수 있을 정도라면 고쳐서 쓰시고 아니면 다시 그려서 주문하는게 원래 아크릴입니다.


이제 얼른 저항을 땜질해봅시다.


IMG_0002.JPG




지난 시간 "아날로그 핀" 이야기를 하면서 키 여러 개가 한 줄로 묶인다고 말씀을 드렸습니다. 아두이노 "비틀"을 쓰게 되면 총 5묶음이 되고 "늘소미노 하나"를 쓰면 총 9묶음이 가능하다고 했지요. 저는 5묶음에 각 12키씩이 달리는 상태입니다. 그러면

스위치1 - 저항 - 스위치2 - 저항 - 스위치3 - 저항 - 스위치4 - 저항 - 스위치5 - 저항 - 스위치6 - 저항 - 스위치7 - 저항 - 스위치8 - 저항 - 스위치9 - 저항 - 스위치10 - 저항 - 스위치11 - 저항 - 스위치12

와 같이 스위치 12개에 저항은 11개가 필요하게 됩니다. 이런식으로 스위치 다리 두 개 중에 하나를 이용해서 저항을 쭉 붙여나가면 되겠습니다.

IMG_0003.JPG



두번째 저항도 붙였습니다. 저항에는 극성이 없으므로 방향은 관계가 없고 우리는 모든 저항을 다 10k옴으로 통일했으니 구분을 할 필요도 없습니다. 참고로 사진에 저항은 황토색인데 이건 오차율 5%짜리 후진거고 여러분은 오차율 1%짜리 하늘색으로 사시기 바랍니다. 큰 차이는 없지만요.

IMG_0006.JPG



세번째 저항도 붙였습니다. 벌써 키 네 개를 연결했네요. 지난 시간 그려본 키 배열 표를 좌우반전해서 인쇄해놓고 보면서 하시면 좋습니다. 저항은 다리가 기니까 별도의 전선을 쓰지 않아도 키를 연결할 충분한 길이가 됩니다.

IMG_0007.JPG





다섯번째 저항은 한 칸 건너뛰니 다리를 접어가면서 붙여줍니다. 소시지 부분이 실제 저항이므로 소시지만 건너가면 저항도 통과한 것이니 꼭 그 다음 저항을 스위치에 땜하실 필요가 없습니다. 사진의 다섯번째 저항도 네번째 저항의 다리에 땜했습니다.

IMG_0008.JPG




자 이런식으로 벌써 저항 10개, 스위치 11개의 뗌이 끝났습니다. 다른 스위치 하나는 멀리 있어서 전선을 써야하므로 나중에 몰아서 하겠습니다. 이제 둘째줄 땜에 들어가시죠.


IMG_0011.JPG



둘째줄 부터는 첫째줄과 줄이 겹쳐서 저항 다리가 꼬이게 됩니다. 이때에는 당황치 마시고 저항 몸통을 활용하시면 됩니다. 저항 다리에는 전기가 통하지만 몸통에는 전기가 통하지 않습니다. 그러니까 건너가야 할 부분에 저항을 놓고 좌 우로 다리 길이를 맞춰서 잘라 붙이면 별도로 절연을 하지 않아도 그냥 저항만 갖고서 절연이 됩니다.


IMG_0012.JPG



앞서서 저항 다리를 이용한 건너뛰기 기법을 군데군데 쓰면서 대부분의 스위치 땜질이 끝났습니다. 아직 안 된 스위치들은 묶음끼리의 거리가 멀어서 연결을 못했거나  '디지털핀'에 저항 없이 1:1로 붙는 스위치 뿐이네요.

IMG_0013.JPG



그럼 일단 거리가 멀어서 저항 다리로는 길이가 부족했던 스위치들을 전선을 이용해서 이어줍니다. 이로서 모든 '아날로그핀' 스위치들이 다 이어졌습니다! 전선을 쓰고 나니까 갑자기 복잡해보이네요. 그냥 지난 시간에 했던 키 배열을 실제로 구현한 것 뿐입니다.


IMG_0014.JPG



그리고 대망의 아두이노! 이제 스위치 묶음을 아두이노에 연결할 차례입니다. 연결하기 쉽게 일단 위에 땜빵을 놓으시고...

IMG_0015.JPG



전선을 빨간선(디지털) 검정선(아날로그)을 썼더니 마치 사진 한 장에 많은 것이 진행된 것 같네요. 아까 좌우반전해서 인쇄해둔 종이를 보면서 어느 한쪽 끝을 아두이노에 붙이는겁니다. 좌우는 관계가 없습니다. a, b, c, d, e 5키짜리 줄을 아두이노에 붙인다고 했을 때 a쪽을 붙여도 되고 e쪽을 붙여도 됩니다.

참고로 잘 보시면 테두리에 +두개, -두개, A0, A1, A2, D9, D10, D11 이렇게 여덟개가 있을겁니다. 이중에 A0, A1, A2, D9, D10 이렇게 다섯 개가 아날로그핀입니다. 저항으로 엮어둔 다섯 묶음이 각각 이 다섯 개의 핀으로 들어가지면 됩니다. 마찬가지로 어느 묶음이 어느 핀에 꼽히든 관계 없습니다.

그리고 테두리의 D11과 중앙의 SCL, SDA, TX, TR 이렇게 다섯 개가 디지털 핀입니다. 컨트롤이나 알트나 쉬프트처럼 디지털 핀으로 쓰기로 한 스위치들은 여기에 땜질을 하시면 되겠습니다.

'늘소미노 하나' 처럼 핀이 더 많다면 A0~A5까지의 6개핀 + D8~D10까지의 3개핀 총 9개 핀이 아날로그 핀입니다. D0~D7 + D11~D13의 11개 핀이 디지털 핀입니다.

IMG_0018.JPG



마지막으로 스위치 다리 두 개중에 남은 하나를 전부 엮어서 -에 붙여줘야합니다. 철사를 이용해서 가로로 그냥 쭉 붙여줘버릴 생각이므로 혹시 중간중간 저항다리가 겹치는 부분이 있다면, 우선 테이프를 붙이거나 글루건으로 덮어서 닿지 않게 해줍니다.

IMG_0019.JPG


철사를 이용해서 한줄로 쭉~ 이어줍니다. 아두이노의 -에 붙이시면 되겠습니다. 설명을 깜빡했는데 저는 그사이에 몰래 캡스락 LED도 달아줬습니다. LED 쓰실땐 아두이노 핀에 직접 붙이셔도 실수만 안하면 상관 없으나 행여 LED가 아주 귀하다거나 한 개 밖에 없으시다거나 하시면 5볼트에  LED 붙일 때 쓰는 200~300옴 저항을 하나 추가하시기 바랍니다.

여기까지 하셨으면 드디어 납땜은 끝입니다. 이제 프로그래밍만 하면 됩니다.

만, 이 과정에서 납땜에 실수가 있었을 수도 있습니다. 따라서 땜질이 잘 됐나 확인하는 절차까지만 소개를 하겠습니다.

가장 확실한건 지난 시간 말씀드린 '멀티미터'를 이용하는 방법입니다. 다이얼을 돌리다보면 소리 아이콘같은게 있는데, 멀티미터에 달린 발 두 개로 전선의 양쪽 끝에 갖다대어서 전기가 통하면 삐- 하는 소리가 들리는 기능이 있습니다. 이걸 여기저기 갖다대면서 붙었나 떨어졌나 확인하는겁니다.

다른 한 가지 방법은 그냥 되는지 해보는겁니다!


---


PC에 아두이노를 USB 케이블로 연결합니다.

그러면 막 열심히 설치하는척 할겁니다. 제어판 - 시스템 - 장치관리자 - COM포트 에 가보시면 "아두이노 레오나르도" 라는게 뜨긴 떴는데 아마 드라이버가 없다고 멈춰있을겁니다. (참고로 이건 인식시킨 뒤 프로그래밍 하기 위한 부분입니다. 프로그래밍 넣을때만 제외하고 앞으로 드라이버 없어도 키보드/마우스로 쓰실 수 있습니다)

http://arduino.googlecode.com/files/arduino-1.0.2-windows.zip

아두이노를 다운로드 받읍시다. 최신버전이 있으나 키보드 만들때 모종의 이유로 인해 위 1.0.2 버전을 이용하는 것이 좋겠습니다.

다운로드 받아서 압축을 풀고 보시면 drivers 라는 폴더가 있습니다. 아까 설치가 되다 말은 아두이노 레오나르도 드라이버가 여기에 있습니다. 장치관리자에서 '드라이버 업데이트'를 눌러서 이 폴더를 지정해주면 무사히 설치가 완료됩니다.

그리고 아두이노를 실행해보시면!

Untitled-1.png



메모장이나 다름없는 창이 뜹니다.

오른쪽 아래에 아두이노 레오나르도가 몇번인가의 컴포트에 있다고 뜨나요? 안뜨면 안됩니다.

그러면 여기에다가 아래의 코드를 복붙합니다. 자 이때, LED를 연결하신 핀(TX=0, RX=1, SDA=2, SCL=3, D11=11)이 저기 아래 코드중에 빨간줄 다섯 줄중에 한줄 있을겁니다. 그 줄은 꼭 지우고 하시기 바랍니다. 이대로 그냥 하시면 LED에 5볼트가 들어가져서 LED가 녹습니다.

(아래 코드는 비틀 기준입니다. 보시면 똑같은 문장을 핀 수만큼 반복해서 써놓은 것으로, 핀이 더 많으면 복붙 더 해서 숫자 바꿔서 늘려쓰시면 됩니다)

void setup() {
  Serial.begin(115200);
  pinMode(A0, INPUT_PULLUP);
  pinMode(A1, INPUT_PULLUP);
  pinMode(A2, INPUT_PULLUP);
  pinMode(A9, INPUT_PULLUP);
  pinMode(A10, INPUT_PULLUP);
  pinMode(0, INPUT_PULLUP);
  pinMode(1, INPUT_PULLUP);
  pinMode(2, INPUT_PULLUP);
  pinMode(3, INPUT_PULLUP);
  pinMode(11, INPUT_PULLUP);
}

void loop() {
  Serial.print("A0");
  Serial.print("\t");
  Serial.print(analogRead(A0));
  Serial.print("\n");
  Serial.print("A1");
  Serial.print("\t");
  Serial.print(analogRead(A1));
  Serial.print("\n");
  Serial.print("A2");
  Serial.print("\t");
  Serial.print(analogRead(A2));
  Serial.print("\n");
  Serial.print("A9");
  Serial.print("\t");
  Serial.print(analogRead(A9));
  Serial.print("\n");
  Serial.print("A10");
  Serial.print("\t");
  Serial.print(analogRead(A10));
  Serial.print("\n");
  Serial.print("D0");
  Serial.print("\t");
  Serial.print(digitalRead(0));
  Serial.print("\n");
  Serial.print("D1");
  Serial.print("\t");
  Serial.print(digitalRead(1));
  Serial.print("\n");
  Serial.print("D2");
  Serial.print("\t");
  Serial.print(digitalRead(2));
  Serial.print("\n");
  Serial.print("D3");
  Serial.print("\t");
  Serial.print(digitalRead(3));
  Serial.print("\n");
  Serial.print("Da");
  Serial.print("\t");
  Serial.print(digitalRead(11));
  Serial.print("\n");
  delay(100);
}


붙여넣으셨으면 상단 메뉴  Edit 아래에 있는 오른쪽 화살표 "업로드" 를 눌러서 코드를 아두이노 보드에 전송합니다. 그러면 업로드중... 업로드완료 하고 나옵니다. 별 반응은 없습니다.


이제 상단 메뉴 Tools - Serial Monitor 를 누릅니다. 그러면...


Untitled.png



야신난다~ 여러분은 지금 여러분의 키보드가 될 아두이노가 여러분의 컴퓨터에 보내주는 첫 신호를 보고계십니다.

뭔가 숫자가 막 번쩍번쩍거립니다. 다섯개는 한 1000얼마가 번쩍이고 나머지 다섯개는 1이 떴을겁니다(여러분은 1이 다섯개 뜨면 안됩니다. LED핀 하나는 지웠을테니 하나는 0이 떠야합니다)

자 이제 키보드의 키를 눌러보면 키들마다 어떤 값이 들어오게 됩니다. 예를 들어서 A키를 누르면 A0이 500이 되고 B키를 누르면 A2가 700이 되고... 키를 안누르면 다섯개 전부 1023에 가까운 숫자가 나와야 합니다. 실제로는 한 1015 이상만 나오면 됩니다. 근데 세자리 숫자가 나온다 이러면 지금 땜질이 잘못돼서 선이 어디 들러붙어있는 상태입니다. 다시 잘 확인해보세요.

자 이렇게 키를 누르면 일정 대역의 숫자가 받아지는 것을 확인했으면 이제 키보드는 거의 다 만든겁니다.