본문 바로가기

Arduino(아두이노)

버섯돌이의 3*3*3 LED 큐브2 - 제작 및 동작 원리와 간단한 코드 설명

 

버섯돌이의 DIY

3*3*3 단색 LED 큐브2 - 제작, 동작원리, 코드 설명

Created Date: 2016.09.05
Modified Date: 2016.09.06
revision 1.0

키워드 : 아두이노, LED 큐브, LED CUBE, 3*3*3 큐브, RGB 큐브, RGB CUBE

 

들어가며..

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


지난 시간에 만들었던 3*3*3 LED 큐브 제작 과정에서 간단히 글로만 설명드렸던 부분에 대한 내용을 보완하며,

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

기존 큐브는 이미 선물했기에 시간이 되면 간단한 제어 방식에 대한 강좌를 작성하려고 큐브를 하나 더 만들었습니다.


기존에 작성했던 공유된 글에는 이미지 첨부도 안 되고 기존 강좌도 내용이 충분히 길어서 별도의 글로 새로 작성합니다.


부득이 본 강좌에서 다루기에 쓸데없는 부분이나 내용이 길어지는 부분은 별도로 작성한 글의 링크를 제공하며

이전 글들로 옮겨 다니면서 읽으면 귀찮기 때문에 가급적 이 글만으로도 작업하는데 무리가 없도록 할 예정입니다.


큐브 외형을 작업하는 절차와 아주 간단한 원리에 대해서는 기존에 작성한 글들에도 미흡한 부분은

조금씩 보충한 면이 없잖아 있기에 본 글에서 부족한 부분은 기존 강좌와 병행하셔서 보시기 바랍니다.


본 강좌에서는 간단하게 큐브를 만들기 위한 내용과 함께 케이스를 활용(?)하는 방법과...

좀 더 쉽게 만들기 위해 저렴한 아두이노 호환 kIT에 대한 정보를 다룹니다.



만들 작품..

지난 시간에는 샌드위치 케이스를 사용했으나 이번에는 원래 사용하려고 했었던 아크릴 과자 케이스를 이용했습니다.

제과점에 보면 아이들이 좋아하는 아크릴 케이스에 담겨있는 비싼 쿠키들이 있습니다.ㅜㅜ


 


이번에는 가급적 큐브 외형 외에는 납땜을 자제하고, 아두이노와의 연결은 모두 헤더 핀을 이용하려다 보니 조금 지저분해졌네요.ㅜㅜ



준비물..

역시나 이번에도 큐브 연습용으로서 최소한의 부품만 사용하기 때문에 다른 분들은 참고만 하시기 바랍니다.^^;;;

LED 27개 (초보자분들은 가급적 한 가지 색상을 사용하시기 바랍니다.)

- 각 LED에 사용할 저항 9개 (저는 생략했습니다만 사용하는 게 좋을 것 같습니다.)

- 각 층 제어에 사용할 저항 3개 (각자 사용하는 LED에 맞는 저항을 사용하시기 바랍니다. 아마? 100옴 전/후?)

- 아두이노 프로 미니 (아두이노 우노 등 어떤 것이든 무관)

- 인두기 & 납 & 배선(&점퍼선)

  

아크릴 케이스 (옵션)  

   

  저는 쿠키를 먹고 남은 55*63*95mm 사이즈의 과자 케이스를 사용했습니다.



주의사항..
다량의 LED를 사용할 경우 적절한 저항 사용 및 전류 증폭을 위한 TR 등이 필요합니다만 제 능력 밖이며~~(다른 강좌들 참고~)
제 경우 3mm 짜리 LED를 3*3*3의 최소한으로 사용하기 때문에 저항이나 전류는 전혀 신경을 쓰지 않았습니다.
따라서, 이로 인한 문제가 발생할 수 있으니 단순히 참고만 하시기 바랍니다.!!!

참고로, 잘 못된 저항을 사용했다가 제가 고생한 내용은 아래 글을 참고 하시기 바랍니다.
저 같은 초보 분들은 시간적 여유가 되면 한 번쯤 읽어 보시는 것도 좋을 것 같네요.

필요한 경우 참고 자료의 링크 들을 참고하셔서 사용하는 LED에 맞는 저항값을 사용하시기 바랍니다.

저는 장시간 사용보다는 잠깐 짧게 켜 놓고 큐브의 동작 원리 학습이 주 목적이었기에 전류 량 및 저항 등을 무시했으니
아두이노에 직접 연결해서 단 시간 사용에는 크게 문제가 생길 것 같지는 않지만 그래도 혹시 모르며...
제대로(?) 만드실 분들은 저항과 TR을 사용한 다른 작품들을 참고하시기 바랍니다.^^
기존 강좌에 참고할 만한 자료들에 대한 링크를 제공했었습니다.


큐브 동작 방식 결정..
큐브를 만드는 방법은 각 층을 먼저 만들고 난후 층을 쌓아 올리는 방식과 각 열을 먼저 만들어서 열끼리 합치는 방법이 있는데
제 경우에는 각 층을 먼저 만든 후 층층이 쌓아 올리는 방식으로 진행합니다.

그리고, LED 큐브를 만들 때 어떤 형태로 제어할지에 따라서 공통으로 사용할 LED의 극성(+/-)을 결정해야 합니다.

저는 층별로 LED의 플러스 핀을 하나로 묶어서 아두이노의 아날로그 핀에 연결해서 원하는 층을 선택하는 용도로 사용하고,

LED의 마이너스 핀 9개를 아두이노의 디지털 핀에 직접 연결해서 개별 LED의 On/Off를 제어할 예정입니다.

이때, 동일한 위치에 속하는 각 LED의 마이너스 핀은 각각의 층과 하나로 연결되어있습니다.

(즉, 1층의 1번 LED, 2층의 1번 LED, 3층의 1번 LED는 마이너스 핀이 서로 연결합니다.)


따라서, 각층의 마이너스 핀 9개는 세로로 세워 놓고, 9개의 플러스 핀은 모두 눕혀서 서로 연결하면 됩니다.

즉, 플러스 핀은 같은 층의 LED끼리 모두 연결하고, 마이너스 핀은 같은 열(세로)의 LED끼리 층을 쌓아서 연결합니다.

이해가 안 되면 "큐브 쌓아 올리기.." 항목의 마지막 영상인 원리 설명 영상을 참고 하시기 바랍니다.

(영상을 먼저 보고 난 후 작업하시는 게 이해하기 더 쉬울 수도 있습니다.)


위와 같은 구조에서 아두이노에서의 제어 방법을 간단히 설명드리면...

층 선택에 사용된 LED 핀은 플러스 핀이며, 9개의 LED를 제어하기 위한 핀은 마이너스 핀입니다.

따라서, LED에 불이 켜지기 위해서는 아두이노의 층 선택 핀에 플러스를(즉, HIGH 상태)

불을 켜고 싶은 LED의 마이너스 핀에는 마이너스(즉, LOW 상태) 값을 설정하면 되겠죠?

(LED 하나를 아두이노로 켰다/껐다 하는 예제를 생각하시면 됩니다.)

 


작업 틀 만들기..
PCB 기판 등에서 직접 납땜을 해도 상관없으나 좀 더 편하고 예쁘게 만들기 위해서는 작업 틀을 만들면 좋습니다.

처음에는 3mm LED를 PCB 기판 기준으로 2칸 간격으로 하면 크기도 아담하고 웬만한 음료수 병에는 들어가는 크기더군요.^^
사용하실 케이스의 크기에 맞게 결정하시면 되겠습니다.
참고로, 2칸 간격으로는 제가 사용하는 과자 케이스에 4*4*4 형태의 큐브도 넣을 수 있었습니다.

하지만, 납땜 없이 만드는 방법처럼 LED와 LED 사이의 좁은 간격으로 인해 니퍼 사용을 많이 해야 해서...

니퍼를 최대한 사용하지 않기 위해 LED 다리의 끝부분이 좀 더 타이트하도록 PCB 구멍 8칸인 1.8Cm로 최종 결정하고

두 꺼운 과자 박스에 1.8Cm 간격으로 가로*세로 3칸의 그림을 그리고 십자드라이버로 LED 위치에 구멍을 뚫어 줍니다.


LED 몸통을 넣을 수만 있으면 되기 때문에 과자 박스나 택배 박스 등 두꺼운 종이 박스를 이용하시면 됩니다.
가로/세로 간격과 구멍 위치를 정확하게 뚫으면 작업이 상당히 쉽고 큐브가 예쁘게 만들어집니다.


3개의 층 만들기..

LED의 경우 아래처럼 +와 -의 극성이 존재합니다.


일반적으로 LED의 +극성을 애노드(Anode), -극성을 캐소드(Cathode)라고 부릅니다만...
저를 비롯하여 용어가 익숙치 않은 분은 강좌를 보면서 계속 에노드가 뭐였지??
캐소드가 뭐였지? 하면서 다시 앞의 내용을 찾아 봐야 하므로 편의상 마이너스 핀, 플러스 핀으로 부르겠습니다.

보통은 그림에서 빨간 전구 안을 보시면 일직선으로 길쭉한 부분이 +이고 기역 자로 꺾여있는 부분이 -입니다만...

LED 다리의 길이나 전구 모양만으로는 100% 정확하지 않기 때문에 반드시 극성을 직접 확인하시기 바랍니다.


나중에 고생하므로 작업 전에 사용할 LED가 모두 정상 동작하는지도 확인해야 합니다.

극성 확인 및 동작 확인 작업은 시계 전지 또는 동전 전지로 불리는 동그란 코인셀을 이용하면 편하게 확인할 수 있습니다.

 


위에서 만든 작업 틀에 LED 9개를 넣고 아래 사진과 같은 형태가 되도록 다리를 구부려서 납땜 합니다.

 

거리를 정확하게 직선으로 잘 맞췄으면 니퍼를 사용하지 않아도 딱 맞고 납땜도 편합니다만..

잘 보시면 저는 자를 이용해도 살짝 삐뚤어지져서 니퍼 작업이 일부 필요하거나 완성된 큐브가 조금 삐뚤어지더군요.

그래서 큐브 작업에는 3D 프린터가 있으면 베스트..ㅜㅜ

연필로 그은 선 때문에 LED 다리가 구분이 안 될 수 있어서 일부러 플래시를 터뜨려서 촬영했습니다만...

아래 사진의 화살표 방향과 극성을 참고 하셔서 구부리면 됩니다.


위에서 설명했듯이 LED의 플러스 핀은 전원 공급으로 사용하니 모두 연결하고 마이너스 핀은 그대로 세워 놓습니다.

쉽게 생각해서, 3*3*3 큐브라서 한 줄에 LED가 3개씩 들어가니 가로 줄은 전부 우측으로 연결한 상태에서

세로 줄은 각 라인에서 LED 한 개만 연결해도 LED 9개의 플러스 핀은 모두 연결된 상태가 됩니다.

다만, LED 다리를 모두 우측 방향으로 구부리면 각 라인 별로 가로줄은 플러스 핀이 연결되었으나,
세로 줄의 경우에는 별도의 배선이나 철사를 이용해서 각 라인을 서로 연결해야 하니 작업하기 귀찮기에 위처럼 구부립니다.

도움이 될지 몰라서 간단하게 영상에 담아 봤습니다.


각 LED가 촘촘하게 연결된 상태가 아니라서 여러 층으로 쌓아 올리면 빈 공간으로 인해 허약하겠죠?

필요하다면 연결되지 않은 빈 공간도 와이어를 이용해서 촘촘하게 납땜을 하셔도 됩니다만 필수는 아닙니다.


저는 나중에 아두이노를 분리하기 쉽도록 큐브 밑에서 아두이노와 연결되는 핀을 가급적 납땜보다는

헤더 핀을 사용해서 연결하고 큐브의 틀도 보강할 겸 각 층에 사용할 저항을 아래처럼 납땜했습니다.

But.. 저항값을 잘 못 사용해서 엄청나게 고생했다는....(상단 링크 참고)


꼭 저 위치에 저항을 납땜할 필요는 없으므로 미관이 중요하면 저항은 큐브 밑에 납땜하는 게 더 좋습니다.^^

특히나, 적절한 저항값을 잘 모르는 분들은 가급적 큐브에 납땜하기보다는 큐브가 완성된 후에 따로 납땜하시기 바랍니다.

모양이 중요한 분들은 층 선택용 핀과의 결선은 눈에 잘 안 보이는 에나멜 선으로 처리하는 것도 좋은 것 같습니다.


참고로, 작업하시기 전에 작업 틀에 넣었을 때 LED의 좌/우 세로가 반듯하게 정렬되었는지 확인하고 작업하시기 바랍니다.^^

LED 다리는 휘어도 상관없지만 LED 배치부터 휘어있으면 나중에 맞추기 귀찮아집니다.(저는 모양은 이미 포기..^^)


3*3*3의 3층짜리 큐브이므로 위와 같은 모양을 아래처럼 총 3개를 만들어야 합니다.

 


개별 큐브 상태 테스트.. 

큐브를 쌓아 올리면 사망한 LED를 수정하기 힘들어지기 때문에 큐브 모양을 완성하기 전에 LED가 정상인지 한 번 더 확인합니다.

저항 쪽에 플러스 전원을 공급하고 마이너스 전원으로 LED를 하나씩 선택하면서 확인하면 됩니다.


LED 구동 전압이 낮기 때문에 낮은 전압이 아니면 가급적 적당한 저항을 통해서 전압을 가하시기 바랍니다.

최종적으로 층 선택 핀에 저항을 연결하실 경우에는 사용 예정인 저항을 이용해서 테스트하시면 됩니다.


다시 촬영하지 않았으므로 기존 강좌에 올렸던 영상을 참고 하시기 바랍니다.

 

참고로, 테스터기가 있는 분들은 테스터기를 이용하시면 편하고 좋습니다.


기존에는 개별 LED만 테스트했었는데 LED 색상을 섞었더니 오동작 하는 경우가 있어서...

반드시, 9개의 LED가 모두 동시에 불이 켜지는지도 함께 테스트하시기 바랍니다.

브레드 보드에 연결해서 테스트하시면 수월하지만 브레드 보드가 없으면 준비물의 배선 그림에서

A 번에 해당하는 점퍼(듀폰) 케이블을 이용해서 원하는 LED를 하나로 묶어서 테스트하면 편합니다.



큐브 쌓아 올리기..

이제 가장 큰 고비인 3개로 분리된 각 층의 결과물을 한 층 한 층 쌓아 올릴 차례입니다.

층은 편하게 마이너스 핀 9개만 세로로 연결해서 쌓아 올리면 됩니다.

즉, 말 그대로 포개어 놓는다는 느낌으로 세로로 세워 놓고 뗌 질하면 됩니다


다만, 마이너스 핀을 그대로 세워 놓았기 때문에 층을 쌓을 때 아래층의 LED 몸통에 마이너스 핀이 걸립니다. ---;;

즉, 1층과 2층을 예로 들면, 1 층과 2 층의 마이너스 핀은 플러스 핀처럼 일직선상에 존재하지 않고

중간에 LED 몸통이 가로막고 있어서 예쁜 모양을 유지하면서 납땜 하는 게 쉽지 않을 것입니다.


이제, 마이너스 핀이 LED 몸통 밖으로 나가도록 'ㄱ'자 형태로 구부려서 모양을 잡아 놓으면 층을 쌓기도 수월합니다.

 

저는 외형은 크게 신경 쓰지 않아서 대충 했지만..

최종적으로 층을 쌓아 올리기 전에 마이너스 핀의 간격을 반듯하게 잘 맞추셔야 층을 쌓을 때 예쁘게 나옵니다.

각 LED 간격을 비롯해서 LED 다리가 올곧은지 맞추시기 바랍니다.


카메라 포커스 상태가 안 좋아서 최대한 편집을 했지만 도움이 될지 모르겠군요.

대충 이런 식으로 마이너스 핀을 꺾어 놓으면 층을 쌓을 때 납땜 공간도 생기고 세워 놓기도 편합니다.


바깥 면의 납땜할 다리 두 곳 정도를 테이프로 미리 고정하시면 납땜하기 쉽습니다.

테이프를 붙이기 귀찮으면 인두기에 납을 살짝 묻힌 후 두 곳 정도를 살짝 콕~ 찍으셔서 가볍게 붙인 후 작업해도 좋습니다.


지금처럼 마이너스 핀을 95도로 꺾는 작업이 귀찮다면 첫 번째 강좌처럼 납땜할 LED의 다리가 몸통을 비껴갈 수 있도록

마이너스 핀의 끝부분만 살짝 45도 각도로 꺾어서 납땜을 해도 되고,

대충 한쪽 다리를 먼저 납땜한 후 강제로 비틀어서 납땜을 하셔도 됩니다만 틀의 형태를 맞추는 게 쉽지는 않습니다.


작업이 가장 쉬웠던 방법은 역시 납땜 공간을 쉽게 확보할 수 있도록 마이너스 핀을 구부리는 방법이 가장 수월하더군요.

최종 완성된 모습은 대충 아래처럼 생겼습니다.

 

별도의 전류 증폭 작업이 없으므로 이제 아두이노와 연결만 하면 되므로 실질적인 큐브 작업은 이것으로 끝입니다.^^

기존에도 여러 번 설명했기에 어렵지 않으리라 봅니다만..

처음 접하시는 분들은 어려울 수 있으니 이번에도 여러 각도에서 촬영했으니 참고 하시기 바랍니다.

 

이번에도 앞의 과정과 동일하게 납땜하면서 사망한 LED는 없는지 모든 LED가 정상적으로 동작하는지 테스트합니다.

다시 촬영하기 귀찮아서 기존 강좌에서 테스트하는 영상을 일부 편집했습니다.

 

역시나 영상에는 없지만 전체 LED(9개)를 선택하고 모두 동시에 동작하는지 확인하시기 바랍니다.

계속 얘기하지만, 현재가 최종 형태라서 층을 제어하는 플러스 핀에 보호 저항을 이용하실 분들은...

테스트하는 층에 전원을 공급할 때 사용하실 저항을 연결해서 테스트하시기 바랍니다.


워낙 간단한 구조라서 문제 소지가 없지만 저항값을 잘 못 사용하면 나중에 큐브를 제어할 때...

프로그램의 버그인지... 큐브 설계상의 버그인지 원인을 찾는데 저처럼 엄청난 삽질을 해야 할 수 있습니다.ㅜㅜ


테스트 방법을 잘 모르시는 분들을 위해 제어 코드도 감안해서 간단하게 원리를 설명합니다.

영상을 참고하시면 조금은 도움이 되리라 봅니다.



아두이노와 연결 방법..

제 경우 강좌의 편의를 위해 일부러 저항이 보이는 면을 기준으로 작업했습니다.

 

핀 배치는 정면을 바라본 상태에서 흰색 : 1,2,3 / 파란색 : 4,5,6 / 빨간색 : 7,8,9 형태로 배치했습니다.
아두이노는 디지털 핀이 2번부터 시작하므로 핀 1~9까지를 아두이노의 디지털핀 2~10번에 연결합니다.

그리고 사진에서 각 층별로 플러스 핀을 하나로 묶어서 저항과 연결된 층 선택용 핀의 경우...
밑에서부터 1층이며, 1층부터 차례대로 아두이노의 아날로그 핀인 A0, A1, A2에 연결합니다.

저는 초반에 설명했듯이 아두이노와는 납땜 없이 연결하기 위해 아래와 같은 Dupont 케이블을 사용했습니다.

 

케이스 없이 작업하실 분들은 다음과 같은 원리를 활용하셔서 제어 하시면 됩니다.
아두이노의 아날로그 핀과 연결된 LED 핀은 플러스 핀이며, 디지털 핀과 연결된 LED 핀은 마이너스 핀입니다.
따라서, LED에 불이 켜지기 위해서는 아날로그 핀과 디지털 핀의 pinMode를 모두 OUTPUT으로 설정하신 후
불을 켜고 싶은 의 아날로그 핀을 플러스인 HIGH 상태로 만드시고,

불을 켜고 싶은 LED의 마이너스 핀을 마이너스인 LOW 상태로 값을 설정하면 되겠죠?

큐브를 생각할 필요 없이 아두이노에 LED 하나를 연결했다고 생각하시면 이해가 쉽습니다.


처음에는 모든 LED의 불을 끄고 시작하니 대충 아래처럼 초기화하면 되겠죠..

//층 초기화

pinMode(A0, OUTPUT);  digitalWrite(A0, LOW);  //1층

pinMode(A1, OUTPUT);  digitalWrite(A1, LOW);  //2층

pinMode(A2, OUTPUT);  digitalWrite(A2, LOW);  //3층


//LED 9개 초기화

pinMode(2, OUTPUT);  digitalWrite(2, HIGH); // 1번 LED

.     .     .     .     .

.     .     .     .     .

.     .     .     .     .

pinMode(10, OUTPUT);  digitalWrite(10, HIGH); // 9번 LED



핀맵으로 사용된 위 사진을 기준으로..

1층의 하얀색 LED인 1번 LED를 켜고 싶으면...

digitalWrite(A0HIGH); digitalWrite(2LOW); // 1번 LED


1층의 하얀색 LED인 1번, 2번, 3번 LED를 켜고 싶으면...

digitalWrite(A0HIGH); // 1층 On

digitalWrite(2LOW); // 1번 LED

digitalWrite(3LOW); // 2번 LED

digitalWrite(4LOW); // 2번 LED


1층, 2층, 3층의 하얀색 LED인 1번 LED를 켜고 싶으면...

digitalWrite(A0HIGH); digitalWrite(A1HIGH); digitalWrite(A2HIGH); digitalWrite(2LOW);


대충 이런 형태로 LED를 제어하시면 됩니다만...
좀 더 화려하게(?) 제어하고 싶으면 특정 패턴들을 함수로 만드셔서 호출하시고...
배열이나 바이너리 등 기타 방법을 이용하셔서 편하게 원하는 모양을 꾸미시면 됩니다.
원하는 형태의 패턴을 만드는 것도 상당히 피곤한 작업입니다.*^^*

큐브 제어와 관련된 세부적인 내용은 기회가 되면 다음 시간에 설명하기로 하며...
3*3*3 큐브의 화려한(?) 소스는 기존 시간에 설명드렸던 코드를 참고 하시기 바랍니다.

 

큐브 케이스 작업..

기존에는 샌드위치 케이스를 사용했지만 이번에는 쿠키를 먹고 남은 55*63*95mm 사이즈의 과자 케이스를 사용했습니다.

 

작업상 케이스의 밑면이 상단을 향하고 있으므로 케이스 선정시 사진처럼 바닥면에 글씨가 써져있으면...

은근히 신경 쓰이고 미관상 안 좋을 수 있으니 가급적 글씨가 없는 제품이 좋으리라 봅니다.

샌드위치 케이스도 그랬지만 막상 큐브가 동작할 때에는 크게 신경 쓰이지는 않습니다.


케이스에 붙어있는 스티커를 제거하고 남은 끈적거리는 접착제는 지포 라이터 기름이나 스카치테이프로 제거하면 됩니다.


아크릴 케이스 안에서 큐브를 예쁘게 올려놓을 밑받침을 만듭니다.
제 경우 PCB 기판이나 딱딱한 포맥스를 사용하려다 집에 뒹굴어 다니는 아주 얇은 폼 보드 같은 스티로폼이 보이더군요.
재단하기도 쉽고 표면이 깨끗해서 아래처럼 아크릴 케이스 크기에 맞게 그림을 그린 후 재단합니다.


즉, 아두이노가 들어갈 수 있도록 아래와 같은 형태의 박스를 만듭니다.


잘 들어가는지 아크릴 케이스에 넣어 봅니다.

저는 너무 헐겁지 않고 살짝 뻑뻑한 느낌으로 들어가도록 했습니다.


이런 식으로 올려서 사용합니다.


케이스 크기에 맞게 재단했으므로 밖으로 나가는 저항 다리도 구부려 줍니다.



최종 적으로 큐브 모양 및 위치가 적당한지 케이스에 넣어서 확인해 봅니다


납땜을 하지 않을 예정이라 가급적 견고하게 고정하기 위해 각 핀에 순간 접작체를 뿌렸습니다.



스티로폼 전용 풀이나 에폭시를 사용하려다 에폭시는 너무 귀찮아서 순간접착제를 사용했는데..
풋!!! 역시나 예상대로 순간접착제가 닿는 순간 녹기 시작하는군요.^^
좌측 하단의 저항을 보면 심하게 녹은 게 보일 것입니다.^^;;

 

순간접착제가 투명 색이고 스티로폼이라 접착제 티가 안 날 것 같아서 사용했는데.. 살짝 망했네요..-_-;;

에폭시를 섞기에는 귀찮아서 그냥 순간접착제로 강행합니다.^^;;(아주 조금씩만 사용하면 녹지 않습니다.-_-;;)
사실, 밑면에서 한 번 더 고정할 예정이라 굳이 윗면에서 접착제를 이용해서 접착할 필요는 없습니다.

그리고 스티로폼 밑면에서 글루건으로 모든 핀을 단단하게 고정합니다.

 

이렇게 밑면에서 글루건으로 고정만 해도 충분했습니다만... 혹시라도 나중에 빠지면 귀찮아서..^^;;
어쩔 수 없이 녹아내린 부분을 보강할 겸 제품 윗면의 일부에도 글루 건으로 도배했습니다.

아두이노와 연결 방법에서 설명했던 결선 방법대로 듀폰 케이블을 이용해서 편하게 연결합니다.
 
글루건의 장점은 나중에 쉽게 벗겨 낼 수 있기에 부담 없이 듀폰 케이블을 글루건으로 도배합니다.
원래는 공간을 최대한 활용하고 불 필요한 쇼트를 방지하기 위해 듀폰 케이블을 꼽은 후 가로로 눕혀서 고정하려고 했었습니다만
일부 녹아내린 부분이 있어서 눕히다가 스티로폼이 깨지면 피곤하니 저는 듀폰 케이블을 세로로 세운 상태로 고정했습니다.
참고로 케이스에 넣기 전에 작업을 완료 한 후 케이스에 넣는 게 좀 더 작업하기에 편합니다.

아두이노에 3*3*3 큐브 코드를 업로드해서 정상적으로 연결했는지 중간 점검을 해 봅니다.

영상만 봐서는 얼핏 정상인 것처럼 보이지만...
층 선택에 사용된 470옴의 LED 보호용 저항값이 너무 높아서 빨간색 LED와 연계된 동작이 오동작하고 있는 영상입니다.^^;;
아쉽게도, 빨간색 LED와 다른색 LED가 함께 켜지지 않습니다.
보다 자세한 내용은 주의 사항에 있는 저항 관련 링크 글을 참고하시기 바랍니다.

제 경우 흰색과 파란색 LED는 구동 전압이 비슷하지만 빨간색 LED만 다르더군요.
정상적으로 동작할 수 있도록 7,8,9번의 빨간색 LED에 22옴의 저항을 추가로 달았습니다.


납땜 없이 보호 저항을 달고 싶으면 저런 방식으로 듀폰 케이블 두 개를 이용해서 연결하면 될 듯싶습니다.
사진은 일부로 보기 좋게 저렇게 달았을 뿐 저항 다리를 짧게 잘라서 연결하면 소켓에 최대한 바짝 붙일 수 있습니다.
아니면 한쪽은 길게 한쪽은 짧게 해서 듀폰 케이블을 서로 바짝 붙게 해서 폭을 줄일 수 도 있으니 적당한 방법을 이용하세요.

혹시 모를 쇼트를 방지하기 위해 글루건으로 한번 감싸주거나 절연 테이프로 감으면 좋습니다.

저는 수축 튜브가 조금 남아서 글루건으로 빈 공간을 대충 채운 후에 예쁘게(?) 수축 튜브로 마무리했습니다.
저항을 여러 개 연결해야 하면 공간이 부족할 수 있으니 우측 사진처럼 저항을 가로로 놓지 말고...
듀폰 케이블 두 개를 바짝 붙여서 저항이 세로로 세워지도록 하면 공간을 많이 절약할 수 있습니다.
이제 완성되었으니 케이스에 넣고 뚜껑을 닫으면 됩니다.^^


케이스 작업-전원 및 업로드 커넥터..
아이들이 갖고 놀면서 코딩 교육에도 활용할 용도라서 전원 부분이 신경 쓰이더군요.
처음에는 리듐 배터리를 내장하려고 했으나 배터리 관리 문제와 스텝 업 회로 내장에 따른 빈 공간이 걸리더군요.
그래서, 그냥 편하게 외부에서 마이크로 5핀 USB 케이블로 전원을 공급받는 방식으로 결정했습니다.
USB 전원을 이용하기 때문에 5v라서 위 저항 사진의 아두이노에 표시된 +/- 부분에 직접 공급합니다

먼저, 마이크로 5핀 케이블을 연결하기 위한 단자를 만듭니다.


5핀 커넥터에 듀폰 케이블을 연결합니다.^^
 

마이크로 5핀 USB 커넥터를 연결할 공간과 큐브 프로그램을 업로드하기 위한 USB To Serial용 커넥터 구멍을 뚫습니다.

접착제로 아크릴 케이스에 USB 커넥터와 듀폰 케이블을 접착합니다.

처음에는 타이트하게 구멍을 뚫었다가 약간 넓어졌는데 빈 공간을 빨대로 메꾸려다 그냥 에폭시로 메꿨습니다.^^


아크릴 케이스에 구멍을 뚫으면서 고생한 내용과 참고할 정보는 아래 글을 참고 하시기 바랍니다.

모두 완성되었으니 조금 예쁘게(?) 꾸밀 겸 뚜껑도 고정할 겸 뚜껑을 덮은 후 검은색 종이테이프로 살짝 감싸줍니다.


끝으로, 연결 단자 부분을 예쁘게 칼로 자르면 끝!!


대충 이런 형태로 사용하게 됩니다.

귀찮게 USB 단자를 납땜할 필요 없고.. 프로그램 업로드를 위해 USB to Serial 같은 것을 사용할 필요 없는
아두이노에 USB 단자가 달려있는 Arduino Micro나 Arduino Nano같은 제품을 사용하면 깔끔하게 좋을 것 같습니다.


위에서 내려다 본 모습입니다.

케이스 바닥면에 글씨가 새겨져있어서 살짝 미관상 안 좋을 수 있습니다.
아크릴 케이스를 선택할 때 참고하시기 바랍니다.


완성된 큐브 테스트..

7,8,9번의 빨간색 LED와 연계 동작에 문제가 있었기에...

큐브가 정상적으로 동작하는 게 확인이 가능한 형태의 소스만 올린 후 가볍게 확인해 봤습니다.


밝은 곳에서 촬영

 

어두운 곳에서 촬영

 

손에 잡히는 아담한 사이즈에 아크릴 케이스에 보관되어 있어서 사용하기 편하고 좋네요.^^



4*4*4 RGB Kit..

단색이 아니라 RGB LED를 이용한 4*4*4 큐브를 상당히(?) 손쉽게 만들 수 있는 저렴한 아두이노 호환 KIT가 있더군요.

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


잠깐 살펴보니 아크릴 케이스에 LED 제어 모듈이 기본 제공되며, RGB LED가 프레임에 납땜되어 있어서...

단순히, 가로/세로 프레임만 결합해서 납땜하면 되는 형태의 상당히 조립이 쉬운 제품으로 보입니다.

저렴한 가격이지만 자금 사정상 구매는 못하고 살펴보면서 자료를 수집했으니 관심 있는 분들은 참고하시기 바랍니다.


큐브를 직접 만드는 것보다는 완성도 높은 큐브를 이용해서 아두이노로 제어하고 싶은 분들에게는 유용해 보입니다.



마치며..

기존 강좌를 간단하게 보완하려다가 예상치 못한 일로 인해 몇 주 동안 삽질 했네요.

그래도 결과물이 아담한 게 마음에 드는군요.

큐브를 제어하는 아두이노 소스 쪽을 조금 더 다룰까 싶은데 귀차니즘과 다른 일들로 기약할 수 없습니다...

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


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

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

[참고 자료]

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

[버섯] 버섯돌이의 3*3*3 LED 큐브 만들기 (큐브 모양 만들기)

[버섯] 버섯돌이의 3*3*3 LED 큐브 제어하기

[버섯] 버섯돌이의 납땜 없이 3*3*3 LED 큐브 만들기1

[버섯] 3*3*3 LED 큐브2 - 아크릴 케이스에 전원 단자 뚫기 삽질
 
[버섯] 3*3*3 LED 큐브2 - 마이크로 5핀 USB 단자 납땜하기

[버섯] 3*3*3 LED 큐브2 - 잘 못된 저항 선택 및 큐브 최종 형상

[추천] 손쉬운 아두이노용 4*4*4 RGB LED 큐브 Kit

LED 저항 계산기

http://www.gst-lcd.com/test_led3.htm


3구 LED모듈 정전압 회로도[기본패턴]

http://www.ledfactory.kr/ab-1659-2