본문 바로가기

Arduino(아두이노)

버섯돌이의 4*4*4 LED 큐브 키트 조립

 

버섯돌이의 DIY

4*4*4 단색 LED 큐브

Created Date: 2016.09.08
Modified Date: 2016.09.09
revision 1.0

키워드 : 아두이노, LED 큐브, LED CUBE, 4*4*4 큐브, 아두이노용 큐브 키트, Arduino Cube Kit

 

들어가며..

안녕하세요 버섯돌이 유재성입니다.


지난 시간의 3*3*3 큐브의 경우에는 프레임부터 케이스까지 직접 모든 것을 만들었었습니다.

3*3*3 큐브의 경우에는 한 층의 핀이 3*3으로 9개뿐이 안되기 때문에 아두이노에 직접 연결해도 됩니다만...

4*4*4 큐브의 경우에는 한 층의 핀이 16개나 필요하며, 층 선택을 위한 핀도 4개나 필요합니다.


4*4*4 큐브를 구현하려면 최소 20개의 핀이 필요한 데 단순히 큐브만 구현할 것인지...

다른 기능을 위해 추가로 사용되는 핀이 있는지에 따라 필요한 핀의 개수와 사용 가능한 아두이노 제품의 종류가 달라질 것입니다.

SN74HC595 IC는 8비트 쉬프트 레지스터로서 아두이노의 핀 3개로 8개의 출력을 제어할 수 있습니다.

(동시에 출력되는 것은 아니고 8비트의 직렬 입력을 하나씩 쉬프트 하면서 병렬로 출력합니다.)

그래서 큐브에 사용되는 핀을 최대한 줄이기 위해서는 보통 SN74HC595 같은 쉬프트 레지스터를 이용해서 제어하게 됩니다.

반대로, 아두이노의 적은 핀을 최대한 활용하기 위해 SN74HC595를 이용한다고 생각해도 되겠지요.


8*8*8처럼 제어해야 할 LED의 수가 많으면 거의 필수적으로 사용하는 IC라고 보시면 되겠습니다만

SN74HC595는 이 글의 주제는 아니니 관심 있는 분들은 관련 자료를 찾아 보시기 바랍니다.

혹시 몰라서 데이터 시트하고 아두이노 공식 튜토리얼 링크는 맨 마지막의 참고 자료에 남겨 놓습니다.


위와 같은 IC를 비롯하여 다양한 부분을 신경 쓰게 되면 4*4*4 큐브를 만들 때 배선이 너무 지저분 해집니다.

그래서 3*3*3은 직접 만들고 4*4*4는 아두이노로 간단하게 코딩만 연습할 겸 오래전에 4*4*4 KIT를 구매했었습니다.^^;;


그럼.. 본론으로 돌아와서....

지난 강좌까지는 각 층을 먼저 만든 후 최종적으로 층을 하나씩 쌓아가는 형태로 만들었습니다만..

이번 강좌에서는 4*4*4 Kit 제품을 이용하여 모든 층을 먼저 만든 후 열을 이어 나가는 형태를 소개해 드립니다.

지난 강좌에서는 대충 언급만 했었고 이 방식의 경우에도 지금처럼 LED가 하늘을 바라보는 방식도 있고...

기존 층을 쌓는 방식과 비슷한 형태로 만들면서 LED를 90도 꺾어서 최종 형상이 하늘이 아니라 정면을 바라보는 방식도 있더군요.

각자 편한 방법을 찾아서 활용하시기 바라며 저는 제품에 포함된 사각 LED의 방식에 대해서 설명드립니다.

정보 차원에서 공유하는 자료이니 단순히 참고만 하세요.



작업 틀 제작..

3*3*3 큐브에서도 편하게 작업하기 위해 틀을 만들었었습니다.

이번 방식의 경우에는 기판을 이용해야 하기 때문에 LED의 간격이 정해져 있어서 틀이 없으면 아무래도 조금은 불편합니다.


제가 구매한 제품의 조립 설명서를 보면 각 LED의 간격이 가로*세로 모두 2Cm로 되어 있다고 나와있습니다.

실제로 기판의 구멍을 재어 보니 정확하게 2Cm 간격이 아니라 약간씩 다르 더군요.-_-;;;

여기서 작업 틀로 사용할 재료를 선정할 때 살짝 고민이 옵니다.

매뉴얼에는 만능 기판을 이용해서 2칸짜리 핀 헤더를 가로 간격은 7칸 간격, 세로 간격은 6칸 간격으로 배치해서 납땜하고 있지만

핀 헤더 특성상 브레드 보드를 이용하면 굳이 납땜도 필요 없이 심플하게 끝납니다.^^


다만, 일반 브레드보드의 경우 중간중간에 전원 부위가 있어서 핀 헤더를 가로로 2Cm 간격으로 배치할 때 배치가 안됩니다.

 

그래서 위와 같은 브레드보드 중 한쪽의 전원 부위를 제거하고 결합하면 2Cm 간격으로 가로/세로 배치가 쉽습니다.

위의 브레드보드는 가로/세로 방향으로 서로 결합할 수 있는 구조로 되어 있으며 전원 부분도 쉽게 제거가 가능합니다.


개인적으로, 작업 틀은 저처럼 귀찮은 작업을 하지 않으려면 위와 같은 브레드보드를 이용하시길 권해드리며...

저는 혹시라도 납이 떨어지거나 인두로 실수할 경우를 고려해서 과감하게 고생문이 훤한 방식을 선택했습니다.^^;;;

(아무래도 브레드보드는 간격이 일정해서 핀 헤더를 이용해서 LED의 간격을 맞추기가 가장 용이합니다.)


만능 기판이나 브레드보드의 경우에는 구멍(홀)의 간격이 일정합니다만 직접 만들 경우에는 구멍 간격이 중요하지 않습니다.

그래서 2Cm 간격이 아니라 구매한 제품의 보드에 뚫려있는 구멍 간격대로 작업 틀을 만들려고 고민했으나...

어차피 완성된 큐브의 LED 다리는 휘어지고 제가 정확하게 납땜이 안되므로 편하게 2Cm로 통일하기로 했습니다.


지난번과 동일하게 두꺼운 종이를 사용하려고 했는데 핀 헤더를 집어넣으니 약간 흔들거리면서 정확한 간격을 맞추기 힘들더군요.

그래서 좀 더 딱딱한 나무나 포맥스 등을 고려하다가 아래와 같은 훌륭한 재료를 선택했습니다.^^



집에서 뒹굴고 있는 CD 케이스입니다.^^

이번에 귀차니즘을 무릅쓰고 작업 틀을 만드는데 나중에도 활용할 수 있어야 해서 특별히 엄선했습니다.^^

예전에는 엄청나게 많았으나 집안 공간을 확보하기 위해 수백 장을 버리고 깔끔하게 정리해서 이제는 소중한 재료입니다.ㅜㅜ;;

가급적 실패해도 마음이 편하도록 한 쪽면이 깨진 녀석으로 선택했습니다.

CD 케이스가 좋은 이유는 이렇게 속지를 편하게 사용할 수 있다는 것입니다.

(잘 못 그렸으면 얼마든지 다른 종이에 그려서 바꾸면 되니..^^ 다만, 귀찮아서 틀리면 틀린 대로 진행.. 쿨럭..)

참고로, 사진처럼 케이스 앞 부분이 깨졌기 때문에 저는 뒷면에 작업하려고 케이스 밑면에 있는 속지를 꺼냈습니다.

가로*세로 4개의 LED를 배치할 수 있도록 2Cm 간격으로 위치를 표시합니다.

사각 LED를 사용할 예정이라 LED 1개당 핀 헤더가 두 개짜리가 들어가므로 구멍을 두 개씩 표시하려고 했는데...

너무 귀찮기도 하고 어차피 사진에 보이는 것처럼 자를 이용해서 그렸지만 정확한 간격이 안되므로 대충 표시했습니다.^^;;


각자 편한 방식으로 하시더라도 반드시 LED와 LED의 간격이 완벽하게 2Cm간격의 직선을 이뤄야 합니다.

이게 중요한 이유가 그래야 LED가 예쁘게 납땜이 되는데.. 아니면 조금씩 삐뚤어지고 작업이 힘들어집니다.

지난 강좌를 보셔서 아시겠지만.. 저는 노력해도 잘 안되기 때문에 대충 만듭니다.^^;;;


CD 케이스에 핀 헤더를 붙일 때 고민을 해야 합니다.

핀 헤더당 다리가 두 개라서 브레드보드처럼 구멍을 뚫어서 삽입 후 고정할까 싶었지만...

일일이 드릴로 구멍을 뚫을 생각을 하니 너무 귀찮기에 일부러 구멍 표시도 한 곳만 했었더랬죠..^^

그래서 핀을 최대한 밀어서 바닥면에 접착제로만 접착하기로 결심하고 아래처럼 접착을 합니다.


저는 예전에 구매했던 401 록타이트 순간접착제를 이용해서 접착했습니다.

핀 헤더의 다리를 최대한 위로 올렸기 때문에 다리가 상당히 길어졌습니다.*^^*V

 

참고로, 지난 시간에도 설명드렸듯이 어떤 핀을 공통으로 사용할지를 결정해야 하는데...

이 제품의 경우에는 지난 시간의 큐브와는 달리 층 선택에 마이너스 핀이 사용됩니다.

즉, 구부려지는 핀이 마이너스 핀입니다.


이제 사각 LED를 아래처럼 핀 헤더의 사이에 끼우고 모양을 잡으면 됩니다. 

기존 3*3*3 강좌에서 보던 것과 얼추 비슷한 형상이지만 이제는 핀 하나가 밑으로 내려가 있습니다.



4개 중에 처음에 만들었을 때에는 신경 안 쓰고 작업을 해 버렸었는데...ㅜㅜ

LED를 고정할 때 머리 높이를 잘 맞추셔야 합니다.(아니면 들쭉날쭉해집니다.)


그리고 사진으로는 구분이 잘 안될 수 있는데 접착제로 모험을 했듯이 핀 헤더가 약간은 삐뚤어져 있습니다.ㅜㅜ

그래서 위 사진처럼 LED의 다리가 가지런하게 맞지 않고 조금씩 삐뚤어지고 있습니다.

특히 가장 아랫줄이 심하며 우측 하단의 LED가 가장 심하죠^^;;

층과 층을 쌓아 올릴 때 특별히 다리를 구부리는 방식이 아니지만 사각 LED 특성상 핀 헤더에 꼽기 쉬우며,

현재는 핀 헤더의 다리를 최대한 높게 올려놓아서 LE를 배치하는 게 쉽습니다.

대충 이런 형태로 LED의 플러스 핀과 마이너스 핀이 달라붙지 않고 떠있게 됩니다.


이해를 돕기 위해 다른 각도에서 촬영했습니다.

 

핀 헤더의 간격과 LED 다리를 잘 구부렸다면 납땜하기 쉬운 구조로 되어있습니다.

하단의 직선인 플러스 핀은 납땜시 조심해야 하므로 상단의 첫 줄의 구부려진 마이너스 다리들을 먼저 납땜합니다.


그리고 다음 줄의 마이너스 핀의 다리를 납땜한 후에 윗줄과 아랫줄의 겹쳐진 플러스 핀을 납땜하면 됩니다.

위처럼 전부 모양을 잡아 놓고 작업해도 되고.. 두 줄씩 쌓아 놓으면서 작업을 해도 됩니다.

얼추 이런 형태로 LED의 다리가 붙지 않고 떠있는 상태가 됩니다.


기존과 동일한 방식으로 총 4개의 모양을 완성합니다.


기존에는 위와 같은 완성된 모양을 층으로 쌓아 올렸습니다만...

이제는 사진처럼 먼저 한쪽 열을 완성합니다.


그리고 두 번째 열을 꽂은 후에 구부려진 마이너스 핀을 서로 납땜하면 됩니다.


겉면 4군데만 납땜하면 되기 때문에 층을 쌓아 올리는 방식보다는 납땜이 쉽습니다.

제 경우 가로/세로 정렬을 크게 신경 쓰지 않아서 사진에서는 살짝 휘어있는데 잘 펴주시면 납땜하기 쉽도록 달라붙습니다.

작업 틀을 만들어서 작업할 때 간격이 중요한 이유이기도 합니다.^^


나머지도 비슷한 방식으로 해서 4개를 모두 연결합니다.


한 쪽면만 납땜되어 있는 상태라 틀에서 작업하실 때 LED의 머리 높이만 잘 맞추셨으면 가로/세로를 맞추기 쉽습니다.

잘 안 맞는 부분은 대충 롱로우즈나 손으로 살짝 눌러서 위치를 잡아 주시면 됩니다.^^


가로/세로 배열의 찌그러짐은 제 능력 밖이라 외관에 큰 신경은 안 썼지만...

층 선택 핀을 점퍼 선으로 연결하려니 눈에 튀어서 이번에는 그 부분을 조금은 신경을 써봤습니다.^^;;

위 사진에서 표시한 것처럼 층을 선택하는 핀의 경우 첫 층은 저항 다리를 잘라서 해결했습니다.^^


그 외 2층부터 4층까지는 아래처럼 에나멜선을 이용했습니다.


사진으로는 잘 안 보일 수 있는데 원래 점퍼 선을 썼다가 자르고 다시 에나멜 선으로 작업했습니다.

기판에 꽂아야 하니 저항 핀을 잘랐는데 혹시라도 끊어질지 몰라서 수축 튜브로 감쌌으나 보기 싫어서 하나만 했네요.^^;;


대충 이런 식으로 되어있습니다.


에나멜 선이라서 육안으로는 거의 보이지 않네요.^^


KIT를 이용해서 만들었지만...

여기까지의 제작 과정은 굳이 KIT와 상관없이 다들 비슷하기 때문에 참고하시라고 자세히 적어 봤습니다.

그 이후의 과정은 직접 만드시는 분들은 적절히 납땜하시면 될 것 같습니다.^^;;


동작 모습..

기본 제공되는 샘플만 올려봤습니다.

다행히 정상적으로 동작하는군요.*^^*

 

원래 가운데 축을 중심으로 회전하는 데 육안으로는 멋지지만...

어째 촬영 스킬이 떨어져서 그런지 회전하는 게 단순히 깜빡 거리는 것으로 보이네요.


혹시나 해서 책상 밑으로 기어가서 약간은 어둡게 촬영했는데 큰 차이가 없군요.^^;;;

 


마치며..

아침에 납땜이 끝나서 영상 촬영하고는 책장에 올려놓으려다 떨어뜨렸더니 큐브가 완전히 찌그러졌습니다.ㅜㅜ

안그래도 아두이노 우노용인데 아쉽게도 이번에 우노에 사용한 아크릴 케이스가 높이가 안 맞네요.ㅜㅜ;;

부득이 아두이노 메가에 올렸더니 저 상태로 아들이나 딸 앞에 보여줬다가는 바로 박살 날 듯싶고....

아두이노 케이스를 벗겨야 할 것 같은데 큐브 케이스를 어떻게 해야 할지 살짝 고민이네요.


ㅋㅋ..이럴 줄 알았으면 차라리 케이스가 제공되는 큐브 키트를 구매할 걸 그랬나 싶기도 하지만 DIY는 고생길이니~ *^^*

http://blog.naver.com/dev4unet/220804869359


큐브에 관심 있는 분들께 조금이라도 도움이 되었길 바랍니다.


본문 수정 시 가급적 공유한 곳의 글 들도 함께 수정하려고 노력합니다만 누락되는 경우가 많습니다.^^;;;

작성한지 오래된 강좌는 가급적 원본 글도 함께 참고 하시기 바랍니다.

[참고 자료]

[목차] 버섯돌이와 함께하는 아두이노(Arduino) 기초 목차
 

SN74HC595 쉬프트 레지스터 데이터 시트

http://www.ti.com/lit/ds/symlink/sn74hc595.pdf


SN74HC595를 사용하는 아두이노 공식 튜토리얼

https://www.arduino.cc/en/Tutorial/ShiftOut