안녕하세요, 고고메이커 입니다.

 

*시작에 앞서, 한글시계의 원작자님은 이호민 님입니다.

*제가 공유하는 모든 파일과 자료들을 개인 블로그에 올리시거나 무단 복제&도용하지 않으시길 바랍니다.

 

글의 내용이 많아 총 5편으로 나누었습니다

1. 프로젝트 소개

2. 외부, 내부 설계

3. 하드웨어 구현

4. 소프트웨어 구현

5. 향후 개선점(Ver.2, Ver.3)

 

-서론

한글시계 v1제작기 글은 이 글을 마지막으로 끝이 났습니다~!! (아주 즐겁군요)

그러나, 한글시계 v1을 제작하면서 많이 아쉬운 부분들이 있었기에, 아쉬운 점을 개선하고 새로운 기능을 추가한 v2, v3를 계획중에 있습니다!

-본론

우선 v2는 v1의 가장 큰 단점인 아두이노가 밖에 나와있다는 점을 개선시켜 아두이노를 한글시계 내부에 배치할 것입니다. 아무래도 전자부품이 밖에 노출된다면 문제점이 많겠죠? 그러한 것을 깔끔하게 해결할 것입니다.

또한, 알람 기능을 추가, 한글시계로 알람을 설정하면, 해당 시간에 부저로 소리가 나는 등의 알람기능을 구현할 것입니다.

마지막으로 외부 밝기에 반응하여 한글시계의 밝기가 변하는 자동 밝기 조절 기능을 추가할 것입니다.

v3는 시계의 본질적인 기능에 집중하기보다, 다른 시계&제품들과 차별성을 두는 기능들을 추가하려 합니다. 현재 계획 중인 것은 한글시계 안에 온습도 센서를 탑재하여 집안의 온습도를 표시하여 주고, 와이파이 모듈을 활용, 미세먼지 데이터를 받아와서 보여주며, 가능하다면 한글시계 배열도 바꾸려 합니다.

-결론

길고도 긴 한글시계를 향한 여정이 모두 끝마쳤습니다!

잘은 못 썼지만, 제가 적은 이 글이 조금이나마 읽는 분들에게 도움이 되면 하는 바람입니다.

 

이상 고고메이커였습니다.

다음 글에서 만나요~!

안녕하세요, 고고메이커 입니다.

 

*시작에 앞서, 한글시계의 원작자님은 이호민 님입니다.

*제가 공유하는 모든 파일과 자료들을 개인 블로그에 올리시거나 무단 복제&도용하지 않으시길 바랍니다.

 

글의 내용이 많아 총 5편으로 나누었습니다

1. 프로젝트 소개

2. 외부, 내부 설계

3. 하드웨어 구현

4. 소프트웨어 구현

5. 향후 개선점(Ver.2, Ver.3)

 

한글시계 코드, Visual Studio로 2달정도 작업하였다.

-서론

이번 글에서는 한글시계 소프트웨어 구현에 대해 이야기해 보려 합니다.

두 달 걸릴 일이 아니었음에도, 온전히 한글시계에만 집중하고 살 순 없었기에, 하루하루 조금씩 조금씩 코딩하다 보니 이렇게 시간이 오래 걸렸네요...

저번 글에서 핵심적인 하드웨어를 조립하였다면, 그 하드웨어를 제어하는 소프트웨어에 대해 알아봅시다.

*코드는 개인의 상황에 따라 정상적으로 작동되지 않을 수도 있습니다.

저는 visual studio community 2019에서 코딩하였고, 윈도 10 home 64bit, Arduino ver.1.8.13입니다.

아두이노 ide에서 업로딩 하였을 때, 정상작동하는 것은 확인하였습니다.

 

-본론

65535. 제작자는 코딩을 어떻게 하였는가

저는 차근차근 하나하나 코딩해 나갔습니다.

1. 우선, 다 조립이 되고 난 후, 네오픽셀이 잘 작동되는지 보기 위해, 네오픽셀 테스트 코드를 사용해 보면서 문제없는지 테스트해 보고,

2. 네오픽셀에 시간을 표시할 수 있는 코드들을 먼저 작성한 후

3. 그 당시 DS1302를 가지고 있었어서 그걸 이용해 코딩을 진행, 성공했다.

- 그러나, 이렇게 짠 코드에는 치명적 오류가 있었기에 오류를 고침과 동시에 시계에 몇 가지 기능을 추가하게 된다.

4. 우선 표시되는 오류를 1차적으로 해결하고

5. 버튼을 추가한 후, 버튼 2개를 가지고 하나는 LED, 하나는 시간을 제어할 수 있도록 코딩했다.

- 그러나 버튼 1개에서 2가지 동작을 하도록 구현해야 했고, 이것은 굉장히 힘들었다.

- 구글링을 해보고 별짓을 다 해봐도 해결이 안 되었다...

- 엎친데 덮친 격으로 RTC모듈마저 오차값이 너무 커 실사용이 불가능할 정도가 되어 내부 millis함수를 사용하여 시계를 만들기로 하였다.

6. 내부 millis함수로 시계를 사용할 수 있게 하였고

7. 버튼 문제에 거의 한 달을 쏟은 결과 성공할 수 있었다.

8. 시간을 millis로 재는 것이 아닌, DS3231 모듈을 이용하기 위하여 또다시 코드를 변경하고

9. 이로 인해 발생한, 그리고 최종 테스트하며 발생한 문제들을 모두 잡아내는 데 성공한다.

 

특히, 가장 뿌듯했던 순간은 버튼이 제대로 동작할 때였는데, 묵은 체증이 싹 가시는 것 같았다.

0. 전반적으로

아두이노 코드 파일이 2개로 나뉘어 있는 것을 볼 수 있습니다. 위에서 보는 것과 같이, 코드를 메인 파트와 함수 파트로 나눠 두었는데, 이렇게 함으로써 코드를 전반적으로 동시에 보기 쉽고 관리하기 좋게 만들었습니다.

코드는 3 부분으로 나눠 설명할 수 있을 것 같습니다.

1. 해더 파일, 변수 선언

2. void setup(), void loop()

3. 사용자 지정 함수

 

그런데, 코드는 설명할 게 너무 많기도 하고, 자료를 올려놓으면 직접 분석을 해 보는 것이 훨씬 빠를 것 같아 코드만 올려놓습니다.

혹시라도 코드에 대해 추가로 알고 싶은 점이 있으시다면 댓글로 문의 바랍니다.

 

-결론

어찌 된 건지 더 싱겁게 끝나버렸네요...

이상 고고메이커였습니다!

다음 글에서 만나요~

 

@코드@

두 파일은 연결된 파일들입니다.

han_clock.ino
0.00MB
main_functions.ino
0.01MB

안녕하세요, 고고메이커 입니다.

 

*시작에 앞서, 한글시계의 원작자님은 이호민 님입니다.

*제가 공유하는 모든 파일과 자료들을 개인 블로그에 올리시거나 무단 복제&도용하지 않으시길 바랍니다.

 

글의 내용이 많아 총 5편으로 나누었습니다

1. 프로젝트 소개

2. 외부, 내부 설계

3. 하드웨어 구현

4. 소프트웨어 구현

5. 향후 개선점(Ver.2, Ver.3)

한글시계 회로

-서론

이번 글에서는 한글시계 하드웨어 구현에 대해 얘기해 보고자 합니다.

저번 글에서 외관에 대해 이야기를 했다면, 이번 시간에는 핵심 장치인 전자회로에 대해 알아봅시다.

*제가 올린 자료와 다른 부품을 사용하거나 제 자료와 다르게 회로를 연결하셨다면 정상적인 작동을 보장할 수 없습니다.

-본론

0. 부품

우선, 전자회로를 만들기 위해서는 재료가 필요하겠지요?

리스트에 걸린 링크들은 제가 구매한 곳들의 링크입니다.

※홍보나 후원, 광고는 일체 없습니다

재료:

아두이노 나노의 경우 가격 아끼시려면 핀 납땜 안 되신 것을 구매하시면 됩니다. 사실 이걸 추천합니다마는, 난이도가 상당히 높기에, 그다지 권하지는 않습니다.(브레드보드에 직결하는 나노의 특성상 브레드보드의 가용 핀이 많이 줄어들게 됩니다. 그렇기에 회로 구성을 할 때 어려움을 겪을 수 있습니다)

RTC모듈은 DS3231을 사용하시는 것을 추천드립니다. 우선 일반적으로 구할 수 있는 RTC모듈 중에는 정확도가 가장 높기 때문입니다. 혹시라도 이 시계를 제작 후 실사용(1년 이상)을 하실 분들은 DS3231 모듈의 특성상 처리를 해야 하는 부분이 있습니다. 해당 부분에 대해 정확히 숙지하고 조치를 취하시거나, 다른 RTC부품을 이용하시는 것을 권장합니다.

(진짜 정보인지는 모르겠으나, 혹시나 때문에 적어둡니다)

네오픽셀은 RGB모듈을 구매하시기 바랍니다. RGBW모듈 구매 시 코드가 맞지 않기에 상당 부분 수정되어야 합니다.

저항은 네오픽셀의 신호 단자를 보호하기 위함입니다. 없어도 작동은 되나 위험합니다.

네오픽셀은 전원에 100~1000uF 콘덴서를 연결하는 것을 권장합니다. 혹시라도 콘덴서를 연결하실 분은 구매하시면 되겠습니다. 그러나, 네오픽셀 전원이 아두이노 내부 전원을 받아 동작하기에, 혹시라도 이렇게 회로를 구성하였을 때, 무슨 문제가 생길지 정확히 모르기에 저로서는 추천드리지 않습니다(아시는 분 있으면 댓글로 알려주시면 감사하겠습니다).

 

1. 회로 그림

회로그림. fritzing을 통해 그렸다.

 

각종 회로 사진, 회로 설명을 읽으면서 한 번씩 참고하면 도움이 될 것이다.
한글시계 내부 네오픽셀 배치

하나하나 살펴봅시다.

회로는 간단합니다.

나노는 그냥 브레드보드에 꽂으면 되는데, 반드시 디지털 핀이 많은 쪽에 3칸이 남도록 해서 꽂아야 합니다.

텍트 버튼은 아두이노 나노의 2,3번 핀과 연결이 됩니다. 그리고 저항이 연결되지 않고 버튼의 한쪽은 아두이노와 한쪽은 그라운드와 연결이 되어 있는 것을 볼 수 있는데, 이는 아두이노 내부 풀업 저항을 사용하기 때문입니다.

RTC는 그림 안에서 핀 배열 때문에 실제 연결되는 것과는 반대로 돌려져 있습니다. 그러나 실제 조립 시 선을 위의 그림처럼 연결한다면 문제가 생기지 않습니다.

버튼은 여러 가지 기타 사정으로 선 연결이 이상한데, 신호선은 위의 회로도처럼 연결해야 하지만, 그라운드는 딱히 관계없습니다.

네오픽셀 신호선은 회로를 배치할 공간이 없어 어쩔 수 없이 전원선이 들어가는 부분을 사용하게 되었습니다.

콘덴서는 사용하려면 위의 그림과 같이 배치하면 됩니다.

선은 최대한 깔끔하게 작업하기 위해 24 AWG단선을 길이에 맞게 잘라 사용하였습니다.

2. 네오픽셀의 고정

네오픽셀의 경우, 한글시계가 6*6배열이기에, 네오픽셀 스트립을 LED 6개씩 총 6개를 잘라서 각각의 스트립들을 선을 연결해 배치하였습니다.

-결론

글을 쓰다 보니 내용이 참... 별로 없네요 ㅎ.ㅎ

이상 고고메이커였습니다!
다음 글에서 만나요~

안녕하세요, 고고메이커 입니다.

 

*시작에 앞서, 한글시계의 원작자님은 이호민 님입니다.

*제가 공유하는 모든 파일과 자료들을 개인 블로그에 올리시거나 무단 복제&도용하지 않으시길 바랍니다.

 

글의 내용이 많아 총 5편으로 나누었습니다

1. 프로젝트 소개

2. 외부, 내부 설계

3. 하드웨어 구현

4. 소프트웨어 구현

5. 향후 개선점(Ver.2, Ver.3)

한글시계 설계, fusion360으로 하였다

서론-

이번 글에서는 한글시계의 전체 디자인에 대해 얘기해 보고자 합니다.

디자인은 크게 4파트로 나눠 작업을 하였습니다.

1. 한글시계 판 디자인

2. 한글시계 내부 디자인

3. 한글시계 외부 케이스 디자인

4. 한글시계 받침 디자인

 

이 모든 것들을 설계하고 고치고 설계하고 고치고....

대락 한 달 정도 걸린 것 같습니다.

한 번 어떻게 하였는지 보러 가시죠~

 

본론-

0. 전체적인 설계의 방향

다음 글에서 자세하게 얘기하겠지만, 저는 네오픽셀 스트립을 이용하여 시계의 불이 켜지는 것을 구현하였습니다. 그렇기에 네오픽셀 스트립의 네오픽셀칩 간격에 맞춰 불이 켜져야 하는 한글시계의 간격이 정해져야 했는데요, 

이 간격을 바탕으로 한글시계 배치 디자인의 수치는 결정되었고, 나머지 파트는 그냥 끼워맞추기 식으로(...) 만들었습니다.

각 부품들의 경우

한글시계 판은 3T MDF 레이저 커팅

외부 케이스, 내부 부품은 3D 프린팅

받침대는 3D 프린팅

으로 제작하였습니다.

1. 한글시계 판 디자인

한글시계 디자인, 하면서 내 컴퓨터가 힘들어 하는 것을 느꼈다.

아마 가장 까다로운 부분이 아니었나 싶습니다. 한글시계의 6*6 배열을 만드는 것이었는데, 각각의 한글을 간격을 맞추어야 했고, 그러면서 최대한 크기는 작게 하려고 했습니다.

제가 사용한 네오픽셀 스트립의 네오픽셀칩 간격은 16.7mm, 그러므로 각 글자들의 간격도 16.7mm에 근접한 17mm로 설계하였습니다.

 

우선, 한글의 배열 같은 경우,

1: 17mm로 격자로 그린 후에,

2: 각각의 칸 안에 글자를 생성하고,

3: 글자를 정 중앙에 위치시킨 후,

4: explode를 한 다음에

5: 물 마시고 화장실 갔다 와서

6: 레이저 커팅하였을 때 글자가 제 모양을 유지할 수 있게 바깥과 이어 준다(ㅇ의 경우 레이저 커팅하면 ㅇ 내부가 잘려나가기에, 바깥과 이어주어야 합니다)

이렇게 하면 끝입니다...

그리고, 한글시계 프로그램에서 위로해주는 문구가 나오는 점을 따와서 하단 부분에 '때로는 쉼도 필요해'와 쉼표를 넣었습니다.

 

글자들의 경우 나눔 폰트? 인가(기억이 잘 안 납니다)를 사용하였고, made by gogomaker는 여하튼 저작권 문제에는 걸리지 않는 폰트 사용한 것으로 기억합니다.

쉼표는 직접 인터넷의 쉼표 일러스트를 보고 따라 그리고, 다듬었습니다.

 

한글시계 판 바깥은 외부 케이스와 조립된다는 느낌을 주기 위해(결속되기 위해) 지그재그로 설계하였고, 중간중간에 있는 사각형의 경우, 뒤의 판과 결합하기 위한 구멍입니다(가장 밑에서 참고)

 

판의 디자인에 가장 많은 시간을 쏟아부었고, 판 디자인은 1차 디자인 후 레이저 커팅을 통해 문제점을 파악한 후 2차로 재설계한 것이 현재 사용하는 한글시계 판입니다.

 

※레이저 커팅할 때, 자신의 레이저커팅기의 레이저 두께와 기타 설정 등을 잘 알아보고 만드시길 바랍니다.

※글씨의 경우 상당히 얇기에, 레이저커팅기의 레이저 두께가 조금만 두꺼워도 글씨가 제대로 새겨지지 않는 문제가 생길 수 있습니다.

2. 한글시계 내부 디자인

칸막이 상단 디자인

한글시계 내부 디자인은 크게 2가지로 나뉩니다.

LED의 빛이 다른 곳으로 새 나가지 않게 할 칸막이, LED의 빛을 부드럽게 만들어 줄 디퓨저* 이렇게 2개가 있습니다.

*디퓨저: 강한 빛을 부드럽게 확산시켜주는 장치

 

칸막이의 각각의 칸은 LED의 위치에 맞게 만들었습니다. 벽은 2T이며, 빛을 가리는 역할을 확실하게 하기 위해 검은색 PLA 필라멘트, 채움 100%로 제작했습니다.

위쪽을 보면 작은 직육면체가 5개 튀어나와 있는 것을 볼 수 있는데, 이것을 통하여 디퓨저와 한글시계 판이 보다 정확하게 고정될 수 있게 됩니다.

밑의 설계를 보게 되면, 가로로는 길게 튀어나와 있고, 세로로는 일정하게 들어가 있는 것을 볼 수 있는데, 이것은 네오픽셀이 지나가는 자리를 만들기 위함입니다.

 

디퓨저는 그 역할을 충실히 하기 위해, 칸막이와 시계판 사이에 흰색 PLA 필라멘트로 1T 두께로 제작했습니다.

(흰색이 아니라면 색이 왜곡될 수 있습니다. 반드시 흰색을 사용해 주세요!)

 

3. 한글시계 외부 케이스 디자인

한글시계 외부 케이스 디자인, 잘 되어있다.

한글시계 외부 케이스는 한글시계의 모든 것들이 안에 들어가야 하기에 잘 설계했습니다(...)

우선, 상단에 한글시계 판이 위에 고정되도록, 홈 모양을 만들었습니다. 그리고 하단은, 칸막이가 들어갈 수 있게 설계하였습니다. 그리고 좌우로는 네오픽셀을 연결한 선을 위한 공간이 또한 필요하기에, 그것 또한 생각하여 설계하였습니다.

케이스 바닥을 보게 되면, 구멍이 나 있는 것을 볼 수 있는데, 저 구멍으로 네오픽셀 선이 나가게 됩니다.

4. 한글시계 받침 디자인

한글시계 받침대 디자인

마지막으로 한글시계 받침대는 갑자기 설계한 거라 그다지 질이 좋지는 않습니다...

다 완성해 놓고 보니 각을 좀 주는 게 좋을 것 같아 급하게 설계하게 되었습니다.

중간의 수직으로 파여 있는 부분이 한글시계가 들어가는 부분이고, 위로 튀어나온 것은 한글시계의 뒤쪽을 받혀주게 됩니다.

한글시계이기에, 나랏말싸미를 새겼고, 양 옆으로 '한글'의 초성인 ㅎ, ㄱ을 새겼습니다.

5. 전체적으로

이런 식으로 조립이 됩니다.

 

-결론

이상 고고메이커였습니다.

다음 글에서 만나요~!

*추가적으로 필요한 정보나 궁금한 점 있으시다면 댓글로 문의 부탁드립니다

 

@설계 파일@

받침대.stl
0.44MB
외부 케이스.stl
0.02MB
칸막이.stl
0.07MB
디퓨저.stl
0.02MB
clock panel.dxf
1.25MB

안녕하세요, 고고메이커 입니다.

 

*시작에 앞서, 한글시계의 원작자님은 이호민 님입니다.

*제가 공유하는 모든 파일과 자료들을 개인 블로그에 올리시거나 무단 복제&도용하지 않으시길 바랍니다.

 

글의 내용이 많아 총 4편으로 나누었습니다

1. 프로젝트 소개

2. 외부, 내부 설계

3. 하드웨어 구현

4. 소프트웨어 구현

5. 향후 개선점(Ver.2, Ver.3)

 

-서론

한글시계 홈페이지

한글시계, 한글로 시간을 나타내는 시계이죠.

이호민 작가님이 만드신 오픈 소스 SW/HW 프로젝트입니다.

 

저는 제 방의 인테리어용품을 찾아보다 한글시계를 알게 되었는데, 예쁘긴 한데, 제가 원하는 사이즈보다 많이 크고 가격 또한 비싸더라고요.

하지만 필요한 건 내 환경에 맞게 만들어 쓰는 사람으로서 그냥 하나 만들기로 하였습니다.

 

그렇게 거의 6개월의 대장정이 시작되었습니다...

-본론

직접 만든 한글시계

 

한글시계의 배열을 새로 만드는 것은 상당히 어려웠기에 기존의 한글시계 프로그램의 배열을 그대로 베껴와 사용하였습니다.(이 점은 많이 아쉽네요..)

 

제가 만드는 한글시계는 '한글시계 아두이노'라고 검색해서 나오는 것들과는 몇 가지 차이점이 존재합니다.

1. 1분 단위의 시간 표현이 가능하다. - 다른 5*5 배열의 한글시계를 보면 5분 단위로 시간을 표시하게 됩니다. 그렇게 된다면 시간을 알기는 어렵게 되겠지요. 그러한 점 때문에 저는 6*6 배열을 이용하여 1분 단위로 제작하였습니다.

2. 고정밀 RTC모듈 사용 - 이로써 1년에 수 분 내로 오차가 많이 나지 않는 시계를 사용할 수 있습니다.

3. 다양한 LED 색상 지정 및 밝기 변경 - LED의 경우 사용자가 직접 12색을 고를 수 있으며, 무작위 색 모드 또한 적용되어 있습니다.

4. 간편한 버튼 조작 - 실사용이 가능한 수준으로 만들기 위하여 버튼 2개로 시간 조절 및 LED 조절이 가능하게 만들었습니다.

또한, 한글시계 배열을 제외한 모든 것은 제가 직접 설계하였습니다.

 

그리고, 차후에 v2, v3도 만들 예정입니다. 기대해 주세요!

 

v2 개선안: (예정)

1. CDS센서를 이용하여 주변조도에 맞게 LED의 밝기를 바꿈

2. 알람 기능 추가

3. 추가적 디자인 개선(회로를 내부에 배치)

 

v3 개선안: (예정)

1. 온습도 센서 및 미세먼지 센서를 이용하여 디지털 온도계와 미세먼지 측정기로도 활용

 

이상 고고메이커였습니다.

다음 글에서 만나요~!

+ Recent posts