미라지폰의 플래시를 달아주자 [젠더를 이용한 플래시 자작하기]



뉴하트라는 드라마가 나오기도 전에 저는 미라지폰(SPH-M4800)을 무진장 갖고싶어했더랬지요..
PDA폰에... QWERTY 자판이 붙어있고, 이런저런 잡다한 기능을 추가할수 있는... 마치 손안의 컴퓨터와 함께 전화를 쓸수 있는... 게다가 GPS, WIFI, 블루투스 등등의 첨단기능을 무장하고 있는 미라지폰에 홀딱 반했었죠...
하 지 만 .....
그당시 엄청난 가격.. 학생한테 그런 어마어마한 돈이 있을리가 없지요.. 그냥 그림의 떡이었지요..
그냥 바라만 보았습니다.... 당시 저는 SPH-E1700 이라는 삼성의 처음 슬라이드폰..(애슬이 라고 하죠..)를 쓰고있었습니다... 그러다가 미라지로 바꾸고 싶었지만 엄청난 가격에 밀려 레인폰으로 기변을 하게 됩니다.....
레인폰으로 기변을 하고 조금 있다보니... 간큰 제 동생이 미라지폰으로 바꿨더군요... 24개월 할부로 그 누구와도 상의없이 ;;; 동생의 깡에 놀랐습니다...ㅋㅋ

그리고 20일전.
아부지 카드도 저한테있겠다. 미라지폰도 엄청 싼 가격(제가 구입당시 7만5천원, 12개월 약정.)에 거침없이 질렀습니다..ㅎㅎ
아... 근데 플래시 자작하는포스팅을 하려 했는데 왜 이야기가 여기로빠지나요.....ㅡㅡ; 제자리로 돌아오겠습니다.

미라지는 다 좋은데 3.5파이 오디오 젠더와 카메라 플래시가 없습니다....
그래서 미라지에 3.5파이 오디오젠더를 달아주긴 폰이 아직 너무 쌩쌩하고.. 해서 악세사리로 산 오디오 젠더를 분해해서 카메라 플래시를 자작해보기로 했습니다.  네이버 스마트폰 카페에 어떤분게서 3칩 SMD LED로 만드신 분이 계시더군요.. 저는 3칩인지 몬지 모르지만 일단 그거보다 밝을것 같은 플래시를 만들어봅니다..

일단 제가 오디오 젠더를 하나 샀는데 잘 안쓰게 되더군요..
MP3도 따로 있으니... 블루투스 이어폰도 있으니... 뭐...ㅎㅎ 그래서 그걸 사용하기로 했습니다...

사용자 삽입 이미지

이렇게 생긴놈입니다. (출처 :11번가 제가 샀던 페이지;;;)

상표를 안지웠군요... 괜찮습니다. 제 블로그니깐요. 이미지를 공짜로 갖다썼으니 광고라도 해줘야죠..ㅎㅎ
이놈을 그냥 분해를 합니다... 분해하는 과정을 사진 안찍었습니다.... 알아서 커넥터만 잘 살아남게 때려부시면 됩니다... 그래서 아래와 같은놈이 잘 살아남으면 다행입니다.....

사용자 삽입 이미지

너무 상태가 안좋군요..ㅡㅡ;;; 다 필요 없습니다. 1번, 2번 핀과 14번 핀만 살아남으면 됩니다.
원랜 13, 14번이 VCC 라고 설명되어있었는데 테스터로 찍어보니 13번은 0.82V가 나오더군요..14번핀은 3.8V정도가 출력됩니다... 그래서 13번은 제끼고 14번만 씁니다.... 핀번호는 아래와 같은 순서입니다. 위 사진 방향 기준.

1 3  5  7  9  11  13  15  17  19
2 4  6  8  10 12  14  16  18  20

뭐 이렇습니다.... 위 사진에 살아남은 핀이 연두색 배경으로 된 1,2,14번 핀입니다.

아.. 중간과정 완전 생략이군요.. 작업에 열중하느라 사진을 안찍었나 봅니다.....;;
일단은 아래와 같은 LED를 사용할 예정입니다...

사용자 삽입 이미지

무려 하나에 780원이나 하는 LED 입니다. 하이플럭스 LED이지요. 디바이스마트에서 세일할때 한개 100원에 샀습니다.ㅋㅋ 두당 10개밖에 주문이 안되더군요..ㅡㅡ;; 아쉬웠습니다...
암튼 저놈 무지 밝습니다. 중국산 저리가라 라고 상품설명에 있떠군요...(서울반도체 제품입니다)

사용자 삽입 이미지

작업할 LED바 입니다. 작게 제작하려고 엄청 신경썼습니다...ㅎㅎ 맨 좌측에 빈 공간은 커넥터를 배치할 예정입니다.  하이플럭스 LED가 측정을 해보니 3.4V에서 20mA가 가장 적당하더군요.  공급전압은 3.8V이니 저항은 30옴~40옴 정도가 적당할것 같아 가지고있는것중 가장 근접한 수치인 33옴을 사용하였습니다.

사용자 삽입 이미지

커넥터를 달아놓은 모습입니다...

사용자 삽입 이미지

LED하나를 연결후 커넥터에 연결해본 모습입니다... LED가 잘 들어오는군요..ㅋㅋ
모든 선을 연결을 해놓고 켜보니 무지 밝습니다... ㅎㅎ 만족할만한 수준입니다.

사용자 삽입 이미지

LED5개를 모두 연결하고 촬영한 사진입니다... ㅎㅎ 엄청 밝습니다..ㅋㅋ
이정도면 카메라 플래시 외에도 생활랜턴 등으로도 충분히 사용이 될것 같습니다.

사용자 삽입 이미지
 
형광등을 모두 끄고 플래시로 책상을 비추고 촬영한 사진입니다...
하지만 이 사진은 카메라 설정에 의해 밝게도, 어둡게도 나올수 있으니 형광등을 모두 끄고 플래시만 켠 상태에서 미라지폰으로 사진을 찍어 보겠습니다...

사용자 삽입 이미지

일반촬영 모드..

사용자 삽입 이미지

야간촬영 모드.


야간촬영모드에서 눈에띄게 밝은 모습 보여주시고 계십니다... ㅎㅎㅎㅎㅎ 완전 만족합니다... 만 촛점이 안맞은건가??ㅡㅡ;;; 좀 뿌옇게 나오네요.... 렌즈를 안닦았나;;;ㅋㅋ

아무튼 플래시 역할을 아주 잘 해주고 계십니다...
그런데 한가지 단점을 발견하게 됩니다. 커넥터와 LED가 기역자 형태로 생겨 보관에 심각한 불편이 따르게 되지요... 그래서 커넥터와 LED를 일자형으로 제작하게 됩니다...ㅡㅡ;;

사용자 삽입 이미지

일자형으로 제작해 장착한 모습입니다... 끼워놓으면 조금 불편하겠지만 빼놓으면 가지고다니기 아주 편할것 같습니다. 끼워놓는건 잠깐일테니까요....ㅎㅎ

사용자 삽입 이미지

완성된 모습.


무슨 레이저검 같네요... 아주 밝고 좋습니다... 여기다가 핸드폰고리 하나 달아다가 걸어놔야겠습니다..ㅋㅋ

또 뭘 만들어볼까나...ㅎㅎ;;
2010/02/17 22:21 2010/02/17 22:21


ㄹㅔㅈㅕ

댓글을 달아 주세요

2010 NG&PARI 오크밸리 단체사진


사용자 삽입 이미지


2010. 01. 21.
휘닉스파크에 가기로 했던 계획이 취소되고 새로 계획해서 가게된 오크밸리 스노우파크.
내가 회장으로 있으면서 NG&PARI 회원들과 처음 가게된 여행인가...ㅎㅎ
놀면서 사진을 열심히 찍었어야 했는데 노느라 정신이 팔려서 총 8장밖에 못찍었다.....
동아리방에서만 보던 회원들과 함께 학교가 아닌 스키장에서 함께 할수 있어서 더욱 재미있었던것 같다.
모두들 다음날 온몸이 뻐근하고 아프고 일어나기 힘들었겠지??ㅋㅋㅋㅋ
2010년 한해에도 이런 기회가 자주 있었으면 좋겠다. (다음회장이 알아서 하겠지?ㅋㅋ)






이건 뽀나쓰!!
사용자 삽입 이미지
리프트 타고 올라가다 발견된 한 커플.
하이트 아저씨들이 구경하는 앞에서 남자 보더 앞에 무릎꿇고 앉아 교육을 받는 여자 보더를 발견.
그 광경이 참으로 멋져 리프트 타는중에도 불구하고 열심히 카메라를 찾아 촬영에 성공!!!

2010/01/24 00:45 2010/01/24 00:45


ㄹㅔㅈㅕ
사진 이야기/Portrait 2010/01/24 00:45

댓글을 달아 주세요

  1. 제이님 2010/01/27 15:52  수정/삭제  댓글쓰기

    단체사진 좀 작게 올리지
    민망스럽게 시리
    표정두 구리구리해선~ 에이씨!

    아래사진뭐야
    초상권침해야!!

    • ㄹㅔㅈㅕ 2010/01/28 22:13  수정/삭제

      괜찮아 너 누군지 몰라.ㅋㅋㅋ
      시간나면 다시 쪼마나게 편집해서 올릴게.ㅋㅋㅋ

      아래사진은 리프트 타고가는데 어떤 사람들이 재밌길래 찍어논거야..
      누군지모름
      ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ

컴퓨터의 전원으로충전하는 아수스 EeePC 충전 케이블 만들기.


  넷북의 배터리가 아무리 오래간다 하더라도 실사용시간 10시간을 잘 넘기지 못합니다.
광고에서 12시간 배터리 이러는거 다 뻥이고, 실사용하면 8시간 안팍입니다. 제가 쓰는 넷북(아수스 EeePC 1000HE 마이티 프로)는 광고에서 9.5시간을 사용가능하다 나오지만 실제로 만땅 충전해서 실제 사용하는 시간은 5~6시간 으로 한참 짧아집니다...  이렇게되면 잠깐 나갔다오는건 문제가 되지 않지만, 한 이틀정도만 외출해도 노트북의 어댑터를 챙겨가지고 다녀야 합니다.

아수스의 어댑터는 타사의 노트북 어댑터보다 작은 사이즈를 자랑하지만, 발열이 매우 심하고, 줄도 길고, 참 가지고다니기 짜증납니다...ㅎㅎ; 그래서 여기에선 컴퓨터의 전원을 이용해 아수스 넷북을 충전할수 있는 케이블을 만들어보고자 합니다.


사용자 삽입 이미지
  맨먼저 아수스 넷북의 어댑터를 들여다 봅니다.
상당히 작은 사이즈로 큰 출력을 내주는 놈이지만 발열이 심한 단점을 안고있는 이놈!, 이놈의 출력은 12볼트 3암페어를 출력할수 있습니다. 이는 아수스 넷북이 최대 소비할수있는 전류가 3암페어라는것이지요..
참고로 배터리가 30%가 남은 상황에서 배터리를 넷북에 연결하고, 넷북을 켜고 사용하면서 사용하는 전류를 측정해보면 약 2.7암페어 정도 사용하게 됩니다.  배터리를 빼고 일반적으로 사용하면 0.8~1.3암페어를 사용하게 됩니다.



사용자 삽입 이미지
이제 컴퓨터의 전원 상태를 보려 합니다.  컴퓨터에서는 12볼트, 5볼트, 3.3볼트를 기본적으로 출력하게 됩니다. CD-ROM이나 하드디스크 등은 12볼트를 주로 사용하게 됩니다.
제가 사용하는 파워서플라이의 OUTPUT을 살펴보니 12볼트 출력이 23A나 됩니다. 넷북을 충전하기엔 충분하고도 넘치는 용량이 아닐수 없습니다... 그럼 이제 사양을 모두 살펴보았으니 케이블을 제작해 보도록 합니다.

참고로 아수스 넷북은 3암페어의 12볼트 입력으로 충전 및 동작이 됩니다. 컴퓨터 파워서플라이의 출력은 12볼트에 23암페어 이므로 충전 및 동작이 가능합니다. 따라서 동작 전압이 다른 타사의 넷북은 이 방법을 사용하지 마시기 바랍니다.


사용자 삽입 이미지
위 케이블을 보시면 선이 4가닥 있습니다. 그 4가닥중 노란선이 +12V 이고, 그 옆의 까만선이 그라운드 선입니다.
빨간선도 측정을 해보진 않았지만 아마도 +5V 가 아닐까 생각됩니다...



사용자 삽입 이미지
아무튼 +12V와 GND부분을 이용해 케이블을 만듭니다.
일단 준비물이 필요한데, 위의 케이블에 맞는 숫놈 커넥터와 노트북에 연결할수 있는 커넥터, 그리고 약간 기다란 전선과 가능하면 납땜용품도 있으면 좋습니다... 수축튜브 있으면 완전 준비 끝입니다...
왼쪽의 사진이 전원커넥터 숫놈 커넥터이고, 오른쪽 사진이 노트북에 끼우는 커넥터 입니다.
원래 어댑터의 커넥터와 똑같은 사이즈는 아니고 약간 작은 사이즈인데 잘 맞는것 같아 잘 사용하고 있습니다.
참고로 원래 커넥터의 바깥지름은 4.8mm, 내경은, 1.6mm 정도 됩니다.(이는 버니어캘리퍼스로 측정한 것으로 오차가 있을수 있습니다.)


준비물도 모두 준비가 되면 이제 전선 연결해서 납땜하면 끝입니다.
위에 사진의 오른쪽 사진에 커넥터(노트북에 연결하는 커넥터)는 보이는 은색 부분이 그라운드입니다.
구멍안에 연결하는 부분이 +12V 이므로 이를 커넥터의 노란선쪽에 꼭 연결해야 합니다. 만약 바뀌게 되면 절대절대절대 안됩니다.  잘 확인하시고 연결하시기 바랍니다.



사용자 삽입 이미지
제작이 완료된 케이블 입니다.  컴퓨터에 연결하는 커넥터의 4선중 2선은 필요없기 때문에 제거하였고, 노란선과 그 옆의 검은선만 남겨서 사용하였습니다. 이제 이 케이블만 있으면 컴퓨터가 있는 어느곳이라도 EeePC를 충전 및 사용할수 있게 됩니다...



사용자 삽입 이미지
실제로 사용하는 모습입니다. 현재 컴퓨터에서 노트북으로 케이블이 연결되어있으며, 노트북에는 배터리가 연결되어있지 않습니다... 배터리도 연결하면 물론 충전도 가능합니다. 


생각해보면 실제로 저 커넥터를 사용하려면 컴퓨터를 뜯고 케이블을 찾아서 열고 컴퓨터를 꼭 켜놔야 노트북 충전및 사용이 가능하다는 단점이 있습니다....
저는 이 케이블을 동아리방에 놓고 사용중입니다... 자취방에는 충전 어댑터를 놓고 쓰고, 동아리방에는 이 케이블을 쓰죠.. 어댑터 가지고 다니기 귀찮아서요..ㅎㅎ 하지만 이 케이블은 어댑터보다 훨씬 부피가 작고 가볍기 때문에 분명 간단하게 쓰일수 있다는 장점이 있습니다...  하지만 꼭 컴퓨터를 켜놔야 하고, 컴퓨터 뚜껑을 열어놓아야 한다는 점이 단점입니다...

주의! : 위 작업은 전선의 연결이 정확해야 합니다. 혹시나 반대로 연결하거나 합선이 일어난다면 노트북은 물론이고 컴퓨터에도 치명적인 고장을 일으킬수 있으니 주의 바랍니다. 본인은 이 리뷰를 참고해 사용자가 케이블을 제작후 사용하다가 생기는 문제에 대해 책임을 지지 않습니다. 참고용으로만 봐주시기 바랍니다.
2009/12/22 11:35 2009/12/22 11:35


ㄹㅔㅈㅕ

댓글을 달아 주세요

AVR 인공호흡 하기 - ATmega128 로 ATmega128 살리기


ATmega128을 가지고 놀다보면.. 전혀 예상치 못한 이유로 ATmega128이 죽어버릴때가 있습니다.
갑작스런 정전기나, 전원을 잘못연결했다거나... 아니면 아무것도 안했는데 동작을 안할때....

이럴땐 보통 오실레이터로 인공호흡을 해주면 살아나는 경우가 있습니다. 
하지만 인공호흡하려고 없는 오실레이터 사다가 인공호흡할수도 없는것이고...
옆에 있는건 아직 목숨이 붙어있는 ATmega128. 이녀석으로 어떻게 살려볼수 없을까 찾아보다 좋은 방법을 찾았습니다.
포트의 핀 출력을 High -> Low -> High -> Low .............  를 반복하면 클럭뛰는 효과를 낼수 있다는.....

일단 오실레이터를 연결해서 클럭이 어떻게 뛰나 확인해 보았습니다.
사용자 삽입 이미지

오실로스코프 회로.. 참 쉽죠잉??


사용자 삽입 이미지

4Mhz 오실레이터의 파형을 오실로스코프로 찍은 모습.



파형이 이쁘게 곡선을 그리며 올라가다가 절벽으로 떨어지는 파형을 보여주고 있습니다.
주기가 4.00114MHz 가 나오네요. 주기가 딱 4MHz가 나오진 않습니다.... 당연한건가요;;;;;;

이젠 살아있는 AVR로 펄스를 만들어 보겠습니다.. 아래의 소스를 컴파일해 살아있는 AVR에 Write해줍니다.

사용자 삽입 이미지

이놈의 파형이 어찌 나오는지 오실로 스코프로 찍어봅니다...
사용자 삽입 이미지
포트F에 설정해놨으니 포트F에 오실로스코프를 연결해야겠지요? ㅎㅎ 파형은 아래와 같습니다.


사용자 삽입 이미지
아까보단 깔끔하진 않네요... 울퉁불퉁... 모양이 산모양 같습니다..ㅎㅎ
주기는 약 2.66749MHz가 나오네요.. 이정도로도 충분히 인공호흡용 클럭이 될수 있을것 같습니다.


인제 준비는 모두 끝났습니다... 실제 AVR을 살해(?)후 인공호흡으로 살려 보겠습니다...
ATmega128은 비싸서 이런 실험 용도로는 부적합하다고 판정! 하나남은 ATmega8을 실험대상으로 삼았습니다
실험용 회로를 아래와 같이 구성하였습니다... (불쌍한 ATmega8....;;)
사용자 삽입 이미지
전원과 ISP만 구성하였습니다... 참 쉽죠잉??

AVR Studio 에서 연결 퓨즈비트와 Signature를 읽어보니 제대로 나오는군요..
사용자 삽입 이미지


이제 ATmega8을 살해하기 위해 퓨즈비트 설정에서 SUT_CKSEL 부분을 Ext. Crystal/Resonator High Freq.; Start-up Time : 16K CK + 64... 라고 써있는걸 선택후  Program 버튼을 지그시 눌러줍니다...
공부를 위한 안락사라고 생각하고 눈물을 머금고 누릅니다........ 클릭~


사용자 삽입 이미지
역시 한방에 가셨습니다.... Signature부분엔 WARNING이 뜨고... 퓨즈비트도 이상하게 읽혀집니다..


이제 아까 제작한 인공 클럭으로 살려보겠습니다... ATmega8의 XTAL1 핀은 9번핀 입니다.
9번핀에 아까 만든 인공호흡용 클럭을 연결시켜줍니다... 아래와 같이요....

사용자 삽입 이미지
이렇게 연결하고 다시 퓨즈비트와 Signature를 읽어 봅니다...


허허 신기합니다. 멀쩡하게 다시 동작을 하는군요!!!!!!
이렇게 멀쩡하게 동작할때 후딱 잘못 설정된 퓨즈비트의 클럭설정용 퓨즈비트를 제대로 설정해줍니다.
사용자 삽입 이미지
위 화면과 같이 SUT_CKSEL을 위와 같이 내부클럭 8MHz로 설정해주고 Program 버튼을 클릭합니다.

휴우~ 다시는 못볼줄 알았던 ATmega8이 살아났군요...ㅎㅎ

다음에도 혹시나 이런 불상사가 생기면 이런 방법으로 살려내면 되겠습니다...~
이 방법으로도 살아나지 않는다면..... 글쎄요... 저도 잘 모르겠습니다...ㅎㅎㅎㅎㅎㅎㅎ;;
2009/11/15 05:46 2009/11/15 05:46


ㄹㅔㅈㅕ
하드웨어/AVR 2009/11/15 05:46

댓글을 달아 주세요

  1. 김형원 2009/12/17 12:22  수정/삭제  댓글쓰기

    그런데요. 설정값을 변경했는데 ic가 죽었다고 하기엔 좀 그런거같아보여요. 다시 설정값만 해주면 되는거 아닌가요 ^^; 대부분 타거나 열받아서 죽는게 아닌가요? 그런건 복귀 가능한가요?

    • ㄹㅔㅈㅕ 2009/12/18 00:52  수정/삭제

      물론 설정값을 바꿨다고 IC가 죽는것은 아니지요.

      위에서 제가 설정을 한 것은 외부 크리스탈이 창작되어있지 않은 상태에서 퓨즈비트를 외부 크리스탈로 설정한 것입니다.
      이 경우 실제로 ATmega128이나 같은 atmega 계열 ic들은 동작을 하지 않게 됩니다.
      이런경우 AVR Studio 에서 hex파일을 write하려고 하면
      device missing or unknown device [-24] 라는 메시지가 뜨게 되지요.

      실제로 물리적으로 부셔졌거나, 과전류로 인해 IC가 타버린 경우가 아니라면 atmega계열의 mcu가 동작하지 않는 이유는 사용자나 또는 다른 이유로(EMI 영향 등..) 퓨즈비트 셋팅이 잘못되어 장치인식을 못하게 되는 경우가 대부분입니다.

      이런경우 강제로 외부 클럭을 넣어주면 ic를 다시 동작하게 할수 있는데요, 이를 인공호흡이라 합니다. 보통의 크리스탈로는 인공호흡을 하지 못하고, 오실레이터나 펑션 제너레이터같이 펄스를 만들어주는 장치로 인공호흡용 클럭을 만듭니다. 위 예제는 avr을 이용해 펄스를 만들어 인공호흡을 한 예제 입니다.

      쉽게말해 퓨즈비트 이상으로 동작하지 않는 avr칩을 인공적으로 클럭을 만들어 강제로 넣어주지 않게되면 못쓰게 되서 죽었다고 표현하는 것이죠. 물론 설정값만 다시 정상값으로 변경해주면 됩니다.

      하지만, 저런 과정 없이 설정값을 다시 셋팅할수 있을까요? 인식조차 되지 않을것입니다.

  2. 와우 2010/01/04 00:57  수정/삭제  댓글쓰기

    인공호흡이 이런의미였네요

    • ㄹㅔㅈㅕ 2010/01/07 23:19  수정/삭제

      ㅎㅎ저도 AVR을 처음 시작할때 인공호흡을 한다는말이 이해가 가지 않았었습니다.ㅋㅋ

EeePC 901 과 1000HE 의 크기 비교.


EeePC 901이 정말 다 좋은데 스토리지가 C드라이브 4GB, D드라이브가 8GB 입니다...
게다가 SSD라 용량 확장도 어렵고,  교체시 엄청난 비용이 들어가죠.. (32GB SSD 기준 약 20만원)

저장공간의 벽을 뚫지 못하고 1000HE를 구입해 사용하고 있습니다..
1000HE가 좋은점은 LED백라이트라 더 선명하고 밝게보인다는것, 하드용량이 160기가라 넉넉하다는것,
키보드가 초콜릿키보드(맥북 키보드랑 비슷하게 생긴)라 이쁘고 좀 크다는것, 배터리 시간이 오래간다는것....
하지만 전체적인 크기가 너무 커져서 전에 901을 넣어 가지고 다니던 가방에 1000HE가 들어가지 않습니다...
그래서 가방을 하나 사긴 했지만.ㅡㅡ;ㅋㅋ

다른분들도 보고 참고하시라고 크기 비교를 해보겠습니다....

사진을 딱 봐도 작은게 901이고, 큰게 1000HE 입니다^^

사용자 삽입 이미지

세로는 그렇다 쳐도 가로가 너무 넓어졌습니다... 세로에 비해 가로가 너무 비대칭적으로 커진것이죠..
그래서 가방에 안들어가서......................;;;;; 거금을 들여 가방을..ㅜ.ㅜ

이제 정들었던 EeePC 901을 팔아먹어야겠군요... 흑흑 안녕~ ㅜ.ㅜ
2009/11/14 18:51 2009/11/14 18:51


ㄹㅔㅈㅕ

댓글을 달아 주세요

8*8 도트매트릭스 회로도.


제가 전에 만든 8*8 도트 매트릭스의 회로도 입니다.

LED가 64개 사용되었으며 저항8개(100옴)과 ULN2803, 그리고 박스커넥터 2개가 사용되었습니다.

어떤분의 요청으로 회로도를 그려 올립니다^^ 참고하세요~ 회로도는 클릭해서 보세요~

사용자 삽입 이미지
2009/10/21 05:51 2009/10/21 05:51


ㄹㅔㅈㅕ
하드웨어/PCB Artwork 2009/10/21 05:51

댓글을 달아 주세요

  1. 정민규 2009/10/22 09:04  수정/삭제  댓글쓰기

    감사합니다^^

ATmega8과 DS1307로 만든 시계 두번째 버전!!


  요전에 만든 시계(http://seoltang.com/389) 는 제 자취방에 시계가 없어서 하나 만들어 갖다놓을까? 하는 생각과 이번에 만들 시계의 연습용(?) 버전이었습니다..

하지만 이번엔 우리 엄니의 열화와 같은 성원으로(실은 시계 왜 안만들어오냐고 자꾸 그러셔서) 아주 이쁘게 만들었습니다^^ 다른분들이 보시기엔 별로 안이뻐보일수도 있습니다..  울엄마도 충분히 그러실수 있습니다....;;
하지만 제눈엔 무진장 이뻐보입니다.ㅋㅋ 제 자취방 갖다놓고 싶습니다...ㅋㅋㅋㅋㅋ


사용자 삽입 이미지

사진기가 꼬져서 이상하게 나오는군요.ㅜ.ㅜ

왼쪽에 홀로 켜져 있는 LED는 오후를 뜻하는 아래쪽 LED구요, 오전이되면 위에 LED가 켜집니다... 저거 녹색 LED인데 노란색으로 보이는군요..ㅡㅡ; 아크릴 색이랑 짬뽕됐나봅니다..

왼쪽 아래는 5볼트 전원입력단자가 있고 그 바로위에 ISP커넥터가 존재합니다..
제가 천재는 아니기 때문에 분명 시간이 잘 가다가 심하면 거꾸로 시간이 갈수도 있는 상황이 올지도 몰라 빼놨습니다... 시간 수정할때도 사용합니다ㅎㅎㅎ 버튼같은거 없습니다. 프로그램하기만 귀찮아집니다..

아.. 그리고 아크릴을 본드로 붙이면 하얗게되는 저 가생이(?)부분;; 저거 어떻게 처리해야 하나요?
다른분들은 깔끔하게 이쁘게 티안나게 붙이던데.. 본드가 다른건가? 내 본드는 Alaska601이라 써있는데...
그러고보니 용도가 고무,가죽,금속,유리 군요... 유리도 붙이나?ㅡㅡ;  뭐 암튼..

이번 주말에 집에가서 티비위에 떡하니 올려놔야겠습니다..ㅋㅋ

시계 버전2 소스 : http://seoltang.com/391 [비공개]
2009/10/15 23:33 2009/10/15 23:33


ㄹㅔㅈㅕ
하드웨어/AVR 2009/10/15 23:33

댓글을 달아 주세요

  1. Jason Jang 2009/10/19 19:40  수정/삭제  댓글쓰기

    본드가 다른 것이 분명합니다.

    "알라스카601"본드를 만든 나라, 용도, 성분 그리고 설명서 표시등은 잘 모르겠지만...
    아크릴 전용 본드가 따로 있습니다. 보통 맹물과 같이 투명하고 맹물과 같은 점도 입니다.
    보통은, 주사기에 넣고 바늘부분으로 흘려가면서 붙이더군요.
    접합부분의 가장자리도 당연히 변색이나 변형이 없습니다.
    문방구보다는 아마도 공구상가쯤에 가야 구할 수 있을 것 같네요.

    블로그 잘 봤습니다.

    • ㄹㅔㅈㅕ 2009/10/19 21:11  수정/삭제

      아.. 아크릴용 본드가 따로 있는것이군요.. 아무거나 붙이는게 아니고.ㅋㅋ 주사기도 있어야되고..ㅎㅎ 유용한정보 감사합니다^^

DS1307과 FND, 그리고 ATmega8로 시계 만들기.


제가 사는 자취방엔 시계가 없습니다...
그래서 시간을 보려면 꼭 핸드폰을 찾아서 열어보거나 컴퓨터 오른쪽 아래 구석탱이에 시간을 봐야 했지요.
그래서 벽시계가 하나 있으면 좋겠다 생각을 했지만 이제 졸업이 얼마 안남아서 사기도 돈아깝고,,
어디서 업어올 시계도 없고.. 해서 하나 만들기로 작정했습니다... 공부겸 겸사겸사...ㅎㅎ

일단 MCU는 동아리방에 하나 남은 ATmega8을 사용하기로 했습니다.
시계 IC는 옆동아리 상문이형한테 빌려온 DS1307과 32.768 크리스탈을 사용했습니다.
그리고 나머지 부품들은 모두 동아리방에 있었습니다.ㅎㅎ

이렇게 모아진 부품들을 납땜하고 배선하고 프로그램해서 시계가 동작될때까지 무려 6시간이 걸렸습니다.ㅡㅡ;
FND도 4개가 붙어있는건 캐소드형, 각각 하나씩 있는건 anode형이라서 연결하는것도 한참 생각했습니다..ㅎㅎ;;
그래도 다 연결하니 작동은 정상적으로 되네요..^^

사용자 삽입 이미지

좀 지저분 합니다..ㅋ FND 여러개, ATmega8, ULN2803, DS1307, 7805, 등등등등등등등,,,,
저래놓고 검은색 불투명 아크릴로 덮으면 깔끔해질것같아서.ㅎㅎ 하지만 아크릴이 없다는.... ;;
그래도 날짜랑 시간만 잘 나오면 되니 걱정 없습니다.ㅋㅋ


사용자 삽입 이미지

  뒷부분의 모습입니다... 왜 6시간이나 걸렸는지 아실겁니다.ㅡㅡ;; 0.5mm짜리 전선은 웬만한 스트리퍼로도 피복이 벗겨지지 않습니다.. 그래서 핀셋으로 일일히 하나하나 피복을 벗겨야 하는데 이게 생각만큼 쉽지가 않더군요.ㅎㅎ  지금 왼손 집게손가락이 아픕니다.ㅜ.ㅜ

이제 저 뒷부분은 글루건으로 도배를 해서 선이 끊어지지 않게 보호를 해야겠습니다...ㅎㅎ
혹시나 어디가 끊어져서 작동이 안되면 끊어진데가 어딘지 못찾을수도 있을것같아서...미리 예방을..ㅎㅎ

그럼 이 시계가 동작하는 모습을 보시겠습니다...




소스코드 위치 : http://seoltang.com/388 (비공개)

2009/10/12 07:24 2009/10/12 07:24


ㄹㅔㅈㅕ
하드웨어/AVR 2009/10/12 07:24

댓글을 달아 주세요

  1. Jason Jang 2009/10/27 19:35  수정/삭제  댓글쓰기

    제가 잘 몰라서 묻는데, ATmega8 이 맞아요? ATmega128이 맞습니까? 제목과 본문에 각각 달리 표시되어 있어서요.

    • ㄹㅔㅈㅕ 2009/10/27 20:36  수정/삭제

      ATmega8 이 맞습니다... 제가 오타를 냈네요..ㅎㅎ
      ATmega128은 저렇게 DIP 타입 소자가 없지요.. 핀수가 64개나 되는지라..ㅎㅎ 지적 감사합니다.

충주대 축제, 노천극장 인파~


사용자 삽입 이미지


모두 브라운 아이드 걸스를 보기 위해 모인 사람들...ㅋㅋ
- 충주대학교 축제
2009/10/09 22:35 2009/10/09 22:35


ㄹㅔㅈㅕ

댓글을 달아 주세요

당근보드의 FND를 이용해 시계 만들기(DS1307 이용)


당근보드의 디스플레이 보드에는 4개의 FND와 8개의 LED(8개중 동시에 사용가능한 LED는 4개)가 있습니다.
또한 메인보드에는 DS1307과 32.768khz의 크리스탈이 달려 있습니다.
이제 이 소자들을 활용하여 당근보드를 시계로 사용해 보겠습니다.

사용자 삽입 이미지

당근보드 디스플레이부의 모습.

당근보드에는 위와 같은 디스플레이부가 있습니다. 보시다시피 8개의 LED가 있으며 4개의 점퍼 설정으로 시계처럼 LED를 사용할것인지, 아니면 밑에 4개의 LED가 일렬로 있는 부분을 사용할 것인지 정할수 있습니다.
저는 점퍼를 모두 위에 연결하여 시계부분에 있는 녹색1개, 노란색1개, 빨간색2개를 사용하겠습니다.
그리고 당연히 4개의 FND를 사용해야겠지요.

제가 쓰는 당근보드는 보드 색이 녹색입니다.(위 사진은 당근이의AVR갖고놀기 카페에서 가져왔습니다) 그리고 LED를 고휘도 LED로 달아놓았지요.. 볼땐 멋있었는데 시계로 해놓으니 눈아파서 못보겠네요.ㅡㅡ;
아무튼 녹색 LED를 '오전'을 표시하는 LED로, 노란색 LED를 '오후'를 표시하는 LED로 사용하겠습니다.
또한 중간의 빨간색 2개의 LED는 약 0.5초 간격으로 깜빡이는 용도로 사용합니다.

시계IC인 DS1307은 32.768Khz 크리스탈과 함께 사용하며, 년, 월, 일, 요일, 시, 분, 초 를 나타낼 수 있습니다.
통신 방식은 I2C(TWI) 이며, DATASHEET는 아래에서 다운 받을수 있습니다.


I2C는 따로 열심히 공부하셔야 하구요, 저는 대충만 공부하고 소스를 구해다가 입맞에 맞게 고쳐 쓴 것입니다...ㅎ
제가 사용한 소스를 공개합니다. 이 소스는 엄청나게 큰 문제점이 있는데요.
시간 설정이 안된다는 겁니다. 그래서 소스를 넣을때 한번은 시간을 설정한 소스를 한번 넣어주고, 그담에 시간설정 부분이 없는 소스를 넣어줘 사용하면 됩니다. ㅎㅎ 시간 설정하는건 귀찮아서 넣지 않았습니다.ㅡㅡ;

그리고 이상하게 전원을 끊었다가 넣어주면 I2C 통신이 안되는가 봅니다. FND에 이상한 값이 출력됩니다.
이럴땐 백업 배터리 입력핀인 3번핀을 GND에 연결시켜준 후 리셋버튼을 누르면 또 잘 동작 하더군요...;;
왜이런지 아직 원인을 모르겠습니다. 데이터시트엔 백업배터리를 사용하지 않으면 Vbat 를 GND에 연결하라고 돼있길래 그리 해보니 되긴 하는데 전 백업배터리도 있고,, 배터리가 다 닳았나...ㅡㅡ;;;;;

아무튼 소스를 공개합니다~ 자자자잔!

#include <avr/io.h>
#include <stdio.h>
#include <carroty/delay.h>
#include <carroty/fnd.h>

unsigned char number_array[16]= { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, };
unsigned char fnd_sel_array[4]= { 0,0,0,0,};
unsigned char hour, min;
int n1000, n100, n10, n, time;

void rtc_write(unsigned char address, unsigned char byte) {
 delay_us(6);
 TWCR = 0xA4;      // START condition
 while(((TWCR & 0x80) == 0x00) || (TWSR & 0xF8) != 0x08);
 
 TWDR = 0xD0;
 TWCR = 0x84;      // MT_SLA_ACK
 while(((TWCR & 0x80) == 0x00) || (TWSR & 0xF8) != 0x18);
 
 TWDR = address;
 TWCR = 0x84;      // MT_DATA_ACK
 while(((TWCR & 0x80) == 0x00) || (TWSR & 0xF8) != 0x28);
 
 TWDR = byte;
 TWCR = 0x84;      // MT_DATA_ACK
 while(((TWCR & 0x80) == 0x00) || (TWSR & 0xF8) != 0x28);
 
 TWCR = 0x94;      // STOP condition
}

unsigned char rtc_read(unsigned char address) {
 delay_us(6);
 unsigned char byte;
 
 TWCR = 0xA4;      // START condition
 while(((TWCR & 0x80) == 0x00) || (TWSR & 0xF8) != 0x08);
 
 TWDR = 0xD0;
 TWCR = 0x84;      // MT_SLA_ACK
 while(((TWCR & 0x80) == 0x00) || (TWSR & 0xF8) != 0x18);
 
 TWDR = address;
 TWCR = 0x84;      // MT_DATA_ACK
 while(((TWCR & 0x80) == 0x00) || (TWSR & 0xF8) != 0x28);
 
 TWCR = 0xA4;      // RESTART condition
 while(((TWCR & 0x80) == 0x00) || (TWSR & 0xF8) != 0x10);
 
 TWDR = 0xD1;
 TWCR = 0x84;      // MR_SLA_ACK
 while(((TWCR & 0x80) == 0x00) || (TWSR & 0xF8) != 0x40);
 
 TWCR = 0x84;      // MR_DATA_NOACK
 while(((TWCR & 0x80) == 0x00) || (TWSR & 0xF8) != 0x58);
 byte = TWDR;
 
 TWCR = 0x94;      // STOP condition
 return byte;
}

void display_fnd(unsigned char number, unsigned char fnd_select) {
 PORTB= number;
 PORTC= fnd_select;
}

void time_print(unsigned int value) {
 
 n1000=value/1000;
 n100=(value-(value/1000*1000))/100;
 n10=(value-(value/100*100))/10;
 n=value-(value/10*10);
 int g;
 for(g=0;g<10;g++){
  display_fnd(number_array[n1000], fnd_sel_array[0]); delay_ms(3);
  display_fnd(number_array[n100], fnd_sel_array[1]);  delay_ms(3);
  display_fnd(number_array[n10], fnd_sel_array[2]); delay_ms(3);
  display_fnd(number_array[n], fnd_sel_array[3]);  delay_ms(3);
 }
}

void led_init(void) {
 DDRB= 0xFF;
 DDRC= 0xF0;
 DDRA= 0xF0;
}

int main(void) {
 TWBR= 72;  
 TWSR= 0x00;
 TWCR= 0x04;      
 number_array[0]=  NUMBER_0;
 number_array[1]=  NUMBER_1;
 number_array[2]=  NUMBER_2;
 number_array[3]=  NUMBER_3;
 number_array[4]=  NUMBER_4;
 number_array[5]=  NUMBER_5;
 number_array[6]=  NUMBER_6;
 number_array[7]=  NUMBER_7;
 number_array[8]=  NUMBER_8;
 number_array[9]=  NUMBER_9;
 
 fnd_sel_array[0]= FND_SEL_1;
 fnd_sel_array[1]= FND_SEL_2;
 fnd_sel_array[2]= FND_SEL_3;
 fnd_sel_array[3]= FND_SEL_4;
 led_init();  

 /*  시간 설정 부분.
 rtc_write(0x06,0x09);
 rtc_write(0x05,0x09);
 rtc_write(0x04,0x25);
 rtc_write(0x03,0x05); 
 rtc_write(0x02,0x02);
 rtc_write(0x01,0x17);  
 rtc_write(0x00,0x00);   */
 
 PORTA=0xF0;
 int h=0;
 while(1) {
 
  hour=   rtc_read(0x02);
  hour=   ((hour >>4) & 0x07)*10 + (hour & 0x0f);
 
  min=    rtc_read(0x01);
  min=    ((min >>4) & 0x07)*10 + (min & 0x0f);
 
  if(hour>12){
   //hour=hour-12;
   PORTA=PORTA&0b11011111;
   PORTA=PORTA|0b00010000;
  }
  else {
   PORTA=PORTA&0b11101111;
   PORTA=PORTA|0b00100000;
  }
 
  time=hour*100+min;
  time_print(time);
  h++;
  if(h>4) {
   h=0;
   PORTA^=0xC0;
  }
 }
}


ㅎㅎㅎ 코딩실력이 부족해 소스가 난잡합니다.ㅡㅡ; 이해하시길;;;ㅎㅎ
그럼 동작 하는 모습을 보시죠~

현재 새벽이므로 오전이라는 표시인 노란색 LED가 들어와있습니다.
그리고 빨간색 LED 2개가 깜빡이는데 0.5초마다 깜빡이는건 아니고 그냥 대충 깜빡이는것입니다...;;
하지만 시계는 정확하지요.ㅎㅎㅎ


2009/09/25 02:53 2009/09/25 02:53


ㄹㅔㅈㅕ
하드웨어/AVR 2009/09/25 02:53

댓글을 달아 주세요

  1. 비밀방문자 2009/11/03 15:04  수정/삭제  댓글쓰기

    관리자만 볼 수 있는 댓글입니다.

    • ㄹㅔㅈㅕ 2009/11/04 02:49  수정/삭제

      위 시계는 '당근이의 AVR갖구놀기' 라는 네이버 카페에서 공동구매를 통해 판매하는 일종의 AVR 실습 KIT 입니다. 제가 만든게 아니구 구입한 것이지요...

      회로도와 재료등은 모두 위 카페에 가시면 있습니다^^

  2. simulz 2010/03/14 01:45  수정/삭제  댓글쓰기

    당근보드
    RTC 시계 및 설정 완성 소스 있나요??

    보드를 제대로 갖고 놀지도 못하고 있어요 ㅠㅠ

    • ㄹㅔㅈㅕ 2010/03/15 01:49  수정/삭제

      시계 소스는 위에 포스팅에 올려놨구요..ㅎㅎ 설정하는 부분은 따로 구현하지 않았습니다..
      공부하시는겸 해서 한번 작성해 보시는것도 도움이 될것같습니다^^
      인터럽트를 이용하면 쉽게 가능할것도 같네요..ㅎㅎ;;;

[ SG, SB ] Powerd by Textcube, designed by criuce
rss