본문 바로가기

Gadgets

[BITMAN] 즐겁게 춤을 춰보자~!

반응형
사용자 삽입 이미지

예전에 저는 얼리어답터에서 출간된 “아이디어 퍼주는 스푼”이라는 책을 구입한 적이 있습니다. 아마 군대에 다녀와서 구입을 했었던 것 같은데 그때에는 막 얼리어답터라는 단어가 시대의 흐름을 타기 시작했던 무렵이었습니다. 그 “아이디어 퍼주는 스푼”이라는 책에는 정말 그 당시에는 꽤나 특이했던 제품들이 많이 소개가 되어있습니다. 그 중에서도 가장 제 눈에 띄었던 제품은 바로 TOMY사에서 제작된 BITMAN이라는 제품이었습니다. (TOMY사는 최근에 I-SOBOT이라는 로봇을 만든 회사이기도 합니다.) 자체적으로 음악이 나오고 그 음악에 맞추어서 DOT MATRIX안의 사람이 춤을 추는 제품이었는데 특이한 것은 4방향을 감지하는 센서가 있어서 춤을 추다가 옆으로 돌리면 연관된 동작으로 다른 방향으로 몸을 틀어서 춤을 추는 제품이었는데 그 당시 너무 가지고 싶어서 알아보니 국내에는 정식으로 발매가 되지 않아서 구매대행으로 약10만원 정도에 구입할 수 있었습니다. 그러나 군 제대 후 가난했던 저에게는 너무 부담이 되어서 꾹 참고 있었습니다. 그러다나 학교 복학 후 수업시간에 재료값을 주고 자신이 만드는 것을 만들 수 있는 시간이 있어서 하나 자작해 보았습니다.

사용자 삽입 이미지

위에 있는 미려한 BITMAN과는 달리 제가 만든 것은 조금 초라한 외관을 가지고 있습니다. 그러나 이것은 만드는 데는 정말 생각보다 많은 시간과 노력이 들어갈지 처음에는 몰랐습니다. 우선 전면은 8 x 8 dot matrix가 크게 위치해 있습니다. 제작 목표는 dot matrix 크기에 모든 부품을 몰아서 넣어 보자! 하는 마음으로 만들기 시작했기 때문에 회로가 조금 조잡해지고 나중에 디버깅하는데 몹시 힘이 들었습니다.

사용자 삽입 이미지

dot matrix 옆에는 리셋 스위치와 컴퓨터에서 작업한 프로그램을 bitman으로 전송하기 위한 6pin 단자가 있는 것을 알 수 있습니다. 저는 컴퓨터의 프린터 포트를 이용해서 CPU에 데이터를 전송했는데 요즘에는 어떨지 모르겠네요. 혹시 USB로 하는 제품이 나왔는지 궁금합니다. 그리고 혹시 자작을 위해서 정격 5V 전압이 필요하신 분은 안쓰는 USB 케이블을 하나 절단하시면 안에 있는 전선 중에 검정색, 붉은색 전선이 있는데 이것을 이용하시면 5V를 사용하실 수 있습니다.

사용자 삽입 이미지

제가 사용한 8 x 8 dot matirx입니다. 머 대단한 것은 아니고 LED가 많이 필요하기 때문에 이것은 이러한 LED를 모아서 하나의 회로로 만들어서 사용하기 편리하게 해주는 부품입니다. 총 64개의 LED가 내장이 되어 있는데 제가 구입한 제품은 3가지 컬러를 구현할 수 있는 제품이었지만 이상하게 동시에 여러 컬러를 한꺼번에 표시할 수는 없었습니다.(공부가 부족했습니다. ㅜㅜ) 그리고 뒤에는 핀 넘버가 적혀있지 않아서 제가 임의로 적어 놓았습니다. 핀이 많이 때문에 한 번 헷갈리기 시작하면 대책이 없습니다.


회로도입니다. 이것을 보고 만능기판에 납땜을 하기 시작하는 것입니다. 이게 회로는 간단해 보이지만 데이터 링크가 많이 때문에 단순작업이 조금 많습니다. 한 4-5시간 정도 납 연기를 맡으면서 작업을 하다 보면 제 영혼은 어느덧 저 멀리 개념을 찾아 떠나곤 했었습니다. 그나저나 납 연기를 많이 마셨는데 건강에는 어떨지 모르겠네요. (나이를 먹으니 이제 이런 것이 고민이 되는 군요.)

사용자 삽입 이미지

몇 시간의 작업 끝에 드디어 완성이 되었습니다. 모든 부품들이 오밀조밀하게 붙이려고 최대한 노력을 했고 선들이 어지럽게 널려 있는 것을 확인하실 수 있습니다. 부품의 기본 사이즈가 있기 때문에 더 줄일 수는 없었습니다. 만약 휴대폰 등에 사용되는 smd 타입을 쓰시면 더 줄이실 수도 있을 것 같습니다만 사람의 손과 눈으로 납땜하기에는 쉽지가 않습니다.

사용자 삽입 이미지

뒷면입니다. 뒷면은 더 초라해 지는 군요. 이론적으로 생각을 해서 회로도를 그리고 그 회로도를 기반으로 해서 회로를 만들다 보면 이론과 실제의 괴리 같은 것이 항상 발행하게 되어 있습니다. 그래서 debug 작업을 거쳐야 하는데 사진에서 보는 것과 같이 debug가 진행이 되면 될수록 회로는 더 복잡해지고 볼품이 없어집니다. 나중에 너무 고치다보면 멀 고쳤는지도 잊어버려서 아예 새로 만드는 게 더 빠를 수도 있습니다. 예전에 친구랑 같이 and, or와 같은 가장 기본적인 gate만 이용해서 시계를 만든 적이 있었는데 각자 8시간 정도씩 작업해서 절반씩 만들었는데 친구께 동작을 안 해서 디버깅을 2시간 정도했는데도 원인을 찾지 못해서 결국에는 다시 만들어야 했습니다. 그때 어찌나 웃었던지..^^;

사용자 삽입 이미지

CPU는 이전에 “도망가는 알람시계” 편에서 보았던 CPU와 같은 종류의 AT90S8535라는 CPU를 사용했습니다. 그 당시에 가장 무난하게 사용이 되었던 제품이었습니다. 더 고가의 CPU도 있었지만 가격에 무릎을 꿇었습니다. 그러나 내부 메모리의 용량이 작아서 많은 동작을 구현하지는 못했습니다.(외부에 메모리를 더 추가하면 되었지만 귀찮았습니다.....)

사용자 삽입 이미지

맨 왼쪽에 있는 저 넘은 전자회로에서 많이 사용이 되는 레귤레이터입니다. 다리는 3개가 있고 5V이상의 DC전압이 입력이 되면 출력을 5V로 맞춰주고 그 이상의 전압은 열로 바꿔서 소비를 합니다. 그렇기 때문에 너무 높은 전압이 걸리면 타 버리고 평소에도 발열이 상당하기 때문에 방열판을 붙여서 사용하기도 하지만 저 같은 스파르타에게 방열판은 사치에 불과했습니다.

 

사용자 삽입 이미지

LED 64개를 거의 동시에 동작시키기 위해서는 생각보다 많은 전류가 필요합니다. 그래서 전류를 증폭시켜주기 위해서 저는 ULN 2803A이라는 칩을 붙여서 전류를 증폭해 주었습니다. 저게 저래 보여도 상당히 비싼 부품입니다. 저 친구를 달아주지 않으면 LED의 밝기가 약해집니다. 그리고 가장 중요한 부품인 센서가 보입니다. 센서는 가장 앞에 있는 하얀색으로 되어 있는 부품인데 저 안에는 구슬이 하나 들어 있어서 중력으로 구슬이 한쪽으로 내려가면 전류가 통하고 반대로 돌아가면 전류가 통하지 않아서 상하를 구별할 수 있습니다. 그래서 저는 저 센서 2개를 X자로 배치함으로 인해서 4가지의 변수를 만들어서 총 4방향을 인식할 수 있게 만들었습니다. 저 센서는 개당 약 500원 정도 하는데 가격대 성능비가 뛰어난 제품입니다.

사용자 삽입 이미지

맨 뒤쪽에는 dot matrix를 연결하기 위한 커넥터가 보이는 것을 알 수 있습니다. 그리고 중간에 칩이 하나 빠져 있는데 이것은 원래 전류 증폭을 위해서 (+), (-)쪽 모두에 전류 증폭기를 달려고 했는데 가격도 비싸고 계속 칩이 타버려서 결국에는 한쪽에 있는 칩을 빼버리고 집적 연결을 했습니다. 이렇게 회로를 무턱대고 만들다보면 반드시 수정을 할 일 생기게 됩니다. (물론 고수님들은 수정하는 양이 적지요...)



역시 C언어로 제작된 소스입니다. 중간에 보면 dot matrix의 움직임을 표현하는 부분이 배열로 선언이 되어 있는 것을 볼 수 있는데 이 부분이 장난이 아니었습니다. 어느 부분이 불이 켜지고 꺼지느냐에 따라서 그것은 2진수 그림을 그려서 다시 16진수로 변환을 한 다음에 그 값을 위에 있는 소스에 입력을 해주어야 하는데 움직임이 다양해질수록 가뜩이나 머리도 좋지 못한 제가 저 계산을 하고 있자니 인생과 나란 존재는 무엇인가? 하는 고민에 빠지게 되었습니다. 그래서 저는...

사용자 삽입 이미지


계산하는 프로그램을 하나 만들었습니다. 처음에는 어떻게 하면 쉽게 할까? 하고 고민을 하다가 예전에 조금 다루어 본적이 있는 비주얼 베이직으로 하나 만들기로 결심을 했습니다. 처음에는 2진수 16진수 변환하는 부분이 잘 구현이 안 되어서 친구들과 술이나 한잔해야 겠다. 하고 술을 먹고 들어와서 술김에 완성시켜 버렸습니다. 그래서 지금 소스를 봐도 잘 이해가 안 됩니다. 술 먹고 시험을 잘 본다고 하는데 같은 맥락일까요?



작동 하는 영사입니다. 평소에는 팔 벌려 높이뛰기를 하다가 BITMAN을 옆으로 돌리면 옆으로 뛰어가는 동작을 보여줍니다. 지금 다시 봐도 뿌듯하네요.

반응형