제작일지

Events/2008 누리 졸업작품전시회 2008.11.22 21:52 Posted by 몽백작

드디어 이틀간의 전시회가 끝났다.
고작 이틀을 위해서 약 1년여간의 쌩쑈가 있었나 싶지만...
그래도 끝나니까 후련하긴하다. ^^

시스템 구성과 구현을 마치고, 집 모형을 약 한달여간 만들었는데, 그 과정을 공개한다. ㅋ

2008.10.26.
베이스 만들기
집 모형을 세울 베이스를 만들었다. 5T짜리 폼보드 2개를 겹쳐서 만들고, 그 위에 미리 계획한 설계 도면을 다시 그렸다.

2008.10.27.
에어컨
에어컨 모형을 만들었다. LCD도 붙이고, 전원버튼, 온도 up down 버튼, 온도센서도 겉에 붙였다. 내부에는 DC fan 2개를 붙였다. 하지만 이 이후로도 LCD 등에 많은 문제가 발생해서 수차례 뜯었다 붙였다. 참 애 많이 썩였다.

에어컨 모듈을 세운 모습
아직 벽을 세우지 않았지만 한번 어디쯤 자리 잡을지 보기 위해 계획한 위치에 세워 봤다.

2008.10.29.
TV 모형 만들기
아직은 허연 껍데기에 보잘 것 없지만 TV 모형을 만들었다. 이것도 에어컨과 마찬가지로 안켜지는 문제로 수차례 뜯어냈다. 처음에는 백라이트인 CCFL이 문제인 줄 알았건만 커넥터가 제대로 안꽂혀 있는 문제라서 돈 만원이 또 날라갔다.

TV 모형 모습
위에는 LCD 패널을, 밑에는 스피커를 달았다. 스피커 겉의 포장은 검정색 스타킹을 사용했다. 중간에 스타킹도 한번 나가면서 두번 샀는데, 그 당시 편의점 여자 알바생이 오해하진 않았을지...;;;

뒤에는 AD보드와 CCFL을 연결했다. 이걸 가리기 보다는 보여주는 것이 나을 듯 싶어서 투명 아크릴로 감쌌다.
2008.11.01.
배선작업
벽을 세우기 전에 조명에 사용할 전원선을 포설했다. 모두 UTP 선을 사용했는데, 껍질 까느라 손쓰려 죽는 줄 알았다는...

2008.11.02.
케이블 타이로 잘 정리한 모습

2008.11.03.
벽을 세웠다.

당초 계획한 것보다 약간씩의 오차도 발생했지만, 세워 놓고 보니 드디어 집같다는 생각에 뿌듯했다는... 특히 우드락 본드와 강력 본드를 재발견했다는 사실도...ㅋㅋ

2008.11.05.
조명 설치

조명을 설치했다. 각각 고휘도 백색 LED 4개와 저항 등이 사용되었고, 투명 아크릴로 감쌌다. 다 설치하고 보니 굉장히 밝았다는...

조명 제어 모듈과 미리 배선한 선들은 미리 내어 놓은 구멍을 통해 연결했다.


불을 꺼놓고 조명을 켜본 모습
이거 장난이 아니다. ㅋㅋ

2008.11.10.
TV 테스트

PC와 연결해 놓고 테스트 해봤다. 화질이 좀 번지는 듯 해서 D-SUB 케이블을 교체했더니 많이 괜찮아졌다.

에어컨 모듈도 테스트!!


물론 조명은 말할 것도 없이 말썽 안부렸다.

2008.11.16.

조명이 너무 밝은 것 같아 노란색 한지로 감쌌다. 이제 좀 은은해 지려나. ㅋ

가구 만들기

책상도 만들고...
침대와 소파도 만들었다.

에어컨도 밋밋한 하드보드지를 벗어나 컬러 프린터로 출력한 디자인 패턴을 입히고, 투명 아크릴 판으로 감쌌다. 이제 좀 볼만한가? ㅋㅋ

발코니도 만들었다. 학교 정문 앞 'ㅇ' 문구점에 가니 건축과에서 많이 쓰는 재료들도 많이 있었다. 보아하니 벽이나 지붕 외장 재료로 쓰는 것으로 보이는데, 돈좀 썼다. ^^;;;

완성된 집 모형 모습
모두 완성한... 출품 직전의 모습... 이제 집 다워졌구나!!


책상도...
에어컨도...

냉장고와 소파, 침대도 모두 만들었다. 화장실 변기통 빼고...;;;

마지막으로 전시회 시연 사진이다.

이틀간의 짧은 일정의 전시회였지만 그리고 나름 성공적이기도... 나름은 아쉬움이 큰 전시회였다. 그 전시회에 출품한 작품을 제작한 과정을 다시 돌이켜 보니... 감회가 새롭다. 언제 이런 경험을 두번 다시 해볼 수 있으리오...

해피캠퍼스에서 퍼다가 한 팀이나 대학원 선배에게 받은 소스로 어영부영 해치운 그런 프로젝트랩이 아니라 정말 처음부터 끝까지 맨땅에 헤딩하듯, 심봉사 코끼리 뒷다리 더듬듯 시작해서 1년여 가까이 끌고 온 프로젝트랩이다. 그러니 그 어떤 프로젝트 경험보다 소중할 수 밖에...
저작자 표시 비영리 변경 금지
신고

졸업작품에서 처음 계획한 조명시스템은 모델하우스를 밝힐 조명과 그들을 제어하는 스위치 및 네트워크(ZigBee)를 말하는 것이었습니다.
가장 간단한 시스템일줄 알았는데, 나름 험난한 산을 하나 넘어온 느낌이네요.. ^^;;;


처음에는 이걸로 스위치를 사용한 인터럽트가 성공했을 줄 알았습니다. 하지만 그 뒤에는 더큰 산이....;;;;
MSP430은 ARM과 다르다는 것을 몰랐다는 것이죠.

방금전 겨우겨우 해결!! ^^
네트워크 기능을 제외한 단순한 스위치 인터럽트를 이용한 조명시스템 모델의 기본 모듈입니다.

이걸 이용해서 작은 모델 하우스의 조명을 밝힐 예정입니다. ㅋㅋ

이제... ADC만 해결하면 어느 정도 어려운 산은 넘어간건데...ㅜ.ㅜ
신고

Telos의 UserINT

Events/2008 누리 졸업작품전시회 2008.07.22 09:22 Posted by 몽백작

사용자 삽입 이미지
Telos 기반의 KMote-B에도 Telos처럼 UserINT(P2.7) 핀이 존재한다. 그저 사용자가 정의하여 인터럽트를 걸어주는 핀이라고 생각했다.

MSP430에서는 P1과 P2에서 General Purpose Digital I/O를 사용할 수 있고, 인터럽트도 가능하다. UserINT 핀은 P2.7이니까 Digital I/O로 사용할 수 있고, 그 핀을 통해 인터럽트도 된다. Telos 모트에서는 P1.0이 PKT_INT(CC2420에서 패킷을 수신할 때 발생하는 인터럽트)로 사용하므로 실질적으로 사용자 정의 인터럽트는 P2에서만 사용하는 것이 외부 인터럽트 사용과 동시에 RF 동작을 완벽히 보장할 것이다.
Telos Rev. B의 회로도를 보면 명시되어 있지는 않지만, 마치 사용자 인터럽트는 UserINT 하나로 사용하라는 듯이 나와있다. 하지만 센서노드의 제한적인 핀 수에 따른 것으로 보일 뿐더러 나머지 P1과 P2에 사용자 정의 인터럽트를 사용하면 안된다는 말은 그 어디에도 나와있지 않다.

현재 진행중인 프로젝트에서는 푸쉬스위치를 응용한 인터럽트를 최대 5개 사용해야 한다. 그래서 P2.0(GIO0), P2.1(GIO1), P2.3(GIO2), P2.6(GIO3), P2.7(UserINT)를 사용하기로 했다.

#define SW1 0
#define SW2 1
#define SW3 3
#define SW4 6
#define SW5 7

(중략)

// 모두 I/O Function으로 사용
P2SEL &= ~((1 << SW1)|(1 << SW2)|(1 << SW3)|(1 << SW4)|(1 << SW5));
// 모두 Input 용으로 사용
P2DIR &= ~((1 << SW1)|(1 << SW2)|(1 << SW3)|(1 << SW4)|(1 << SW5));
// High to Low Transition시 인터럽트 발생
P2IFG |= ((1 << SW1)|(1 << SW2)|(1 << SW3)|(1 << SW4)|(1 << SW5));


하지만, 이렇게 해도 인터럽트가 제대로 발생하지 않았다.
발생을 하긴 하지만, 꾸준히 발생하는 것이 아니었고, 1, 4번 스위치는 제대로 동작했지만, 2, 3번 스위치는 동시에 발생했으며, 5번 스위치는 2, 3, 5번이 동시에 발생했다. 또 하나의 문제는 스위치로 사용하는 모든 핀들이 High 상태(3.3V) 이길 바랬는데, 0.1V, 0.2V 등등 전부 제각각이었다. 게다가 핀이 접지로 스위칭되서 인터럽트가 발생하는 것이 아닌 도체 뿐만 아니라 절연체 등등 핀에 어떤 사물이 스치기만 해도 인터럽트가 발생한다는 점...;;;;

대체 왜 이런 현상이 일어날까를 고민하기를 일주일째....
어제밤에도 해결이 되지 않은체 피곤한 몸을 이끌고 집으로 돌아갔다.

도대체 왜!!!

찬물에 샤워를 하면서 계속 생각해봤다. 왜 3.3V가 유지되지 않는 것일까... 3.3V만 유지된다면 스위치를 눌렀을 때 0V로 바뀌면서 High to Low Transition이 발생하면서 인터럽트가 발생할텐데...

그러다 문득!!!!!

처음 Telos 모트를 접했을때의 회로도가 생각났다. 아무렇지 않게 넘겼던 그 회로도의 UserINT 부분!!
ARM과 달리 MSP430은 입력 핀에서 3.3V가 유지되지 않았던 것이다!!

아래 회로도와 같이 3.3V를 따로 물려주고, 스위치 사용시 접지에 물리게끔 해야 High to Low Transition이 발생하는 것!!
사용자 삽입 이미지
아직 테스트 해보진 않았지만... 근질근질하다. ㅋ
왠지 잘 될것 같은 예감이.... ㅎㅎ
신고

겨우겨우 TActiveMovie와 CPort를 올려놨으니 본격적으로 TV를 만들어야 할 텐데, 우선 여전히 나중에 문제를 일으킬만한 요소가 하나둘 정도 존재하고 있다.
그래서 모든 채널을 스트리밍하면서 CPU 점유율과 네트워크 사용 대역폭을 측정해보기로 했다.

우선 내가 쓰는 PC의 사양은 다음과 같다.
사용자 삽입 이미지
사용자 삽입 이미지

종류는 데스크탑이 아닌 랩탑으로 MSI PR210X-YA이다.
인터넷은 하나로 광랜 100Mbps를 사용하고 있다.

테스트프로그램은 채널 14개를 동시에 스트리밍하도록 만들었다.
사용자 삽입 이미지

대충 모든 채널이 안정적으로 스트리밍될 때 윈도 작업관리자로 CPU 점유율과 네트워크 사용 대역폭을 확인한 결과...
사용자 삽입 이미지
사용자 삽입 이미지

CPU 점유율이 상당히 높게 나왔다. 코어 2개 모두 70~80%사이를 왔다갔다한다. 그래도 점유율이야 뭐 PC를 좋은걸로 쓰면 된다지만...
네트워크는 전체 대역폭의 약 5%이니까 5Mbps정도 사용하는것 같다. 작년 전시회장을 돌이켜보면 네트워크 환경이 그닥 좋지 않았던거 같던데...;;;; 걱정이다.
채널 수를 줄이든가 무슨 수를 내야지뭐...
신고

졸업작품에 쓰려고 친구 작은 아버지께 구한 7인치 LCD 패널입니다. 옛날에 GPS + 네비 + 공중파방송수신기(DMB아님) + LCD패널 등등 해서 아주 고가에 구입하셨다고 하는데, 차를 바꾸신 관계로 떼어내서 묵혀두고 계셨다고 합니다.

나름 수리에 수리를 거듭하여 겨우 RCA입력으로 PC화면을 출력시키는 것을 성공했는데, 친구놈이 FFC를 끊어먹어서 도통 쓸 수 없는 상태가 되어버렸습니다. ;;;;

모델명은 PW070DS1이고, 제작사는 대만의 Prime View입니다.
Datasheet를 구했는데, 디지털입력이 아니라 좀 난감해졌습니다.


사용자 삽입 이미지


대개 소형 LCD 패널은 AD보드를 통해 아날로그 입력을 디지털로 변환하여 패널로 신호를 공급하는데, 이 패널은 아날로그를 받더라구요. -_-;;;
보드에서 하는 일은 각 아날로그 R, G, B 신호를 동기시켜 픽셀에 뿌려주는 동기신호를 만들어 공급시키는 것 같은데... 영 감이 안옵니다.
보통 제네시스 같은 AD보드를 많이 쓰는 걸로 알고 있는데, 이거 동작시키는 보드 어디 없을까요?

대부분 카PC 관련 사이트는 다 돌아다녀봤는데, 호환여부가 미확인 아니면 호환불가 더라구요;;;;;;
아시는 분 도움 부탁드립니다.!!
신고



Kmote를 졸업작품으로 쓰려면 mote뿐만 아니라 기타 부가적인 장치들(UART, LED, Photocoupler, DC모터 등등)을 사용해야 하기 때문에 전원은 넉넉하게 12V 어댑터를 사용했습니다.

12V를 3.3V 정전압회로와 5V 정전압회로를 써서 regulating 시키고, 3.3V는 Kmote의 DVCC에 공급하고, 5V는 UART칩인 MAX232CPE에 공급하였습니다.

모트에는 Nano Q Plus를 이용하여, LED를 깜빡거림과 동시에 UART로 어떤 LED가 켜져있는지 전송하는 프로그램을 다운로드했습니다.

여기까지 오기까지도 회로도 그리랴 PCB 만들으랴 정신이 하나도 없었는데, 앞으로 할일 역시 태산이죠ㅋㅋ
신고

어떤 임베디드 개발이든지 표준출력장치(디스플레이)가 제대로 있는 경우가 드문 임베디드 장치에서는 UART로 PC와 연결하여 하이퍼터미널 같은 터미널 프로그램으로 디버깅을 해야 한다.

Telos Rev.B 기반의 Kmote-B도 2개의 UART 포트를 지원하며 첫번째 포트(UART0TX, UART0RX)의 경우, 일반 UART통신 뿐만 아니라 MSP430의 BSL(Bootstrap Loader)을 통해 바이너리 이미지를 다운로드 받을때에도 사용한다.



위의 동영상은 최초로 UART통신이 성공했을때의 모습이다.
Nano Q Plus에서도 UART 관련 API를 지원하여 손쉽게 프로그래밍할 수 있었다.
신고

대학교를 졸업하려면 졸업논문을 써야한다.
물론 멋진일이다.

하지만, 난 조금 더 멋지다고 생각되는 쪽을 택했다.
바로 누리사업단에서 주관하는 졸업작품전시회 출품!!

특히 관심있는 가전제품 제어쪽을 택했고, ZigBee를 이용하기로 했다.
(말은 이렇게 쉽게 하지만 주제를 정하기까지 지난 겨울을 모두 소비했을 정도이다.)

우여곡절끝에 하드웨어(Mote)와 소프트웨어(OS)는 각각 Telos Rev.B와 동일한 국내 아이앤테크(주)의 Kmote-B, TinyOS 대신에 ETRI에서 만든 Nano QPlus를 택했다.

아래 영상은 첫 컴파일했을 때이다.

지금은 모쪼록 시간이 절반이상이 흘러 여러가지 난관에 봉착해있지만, 저때만 하더라도 저 모트하나로 뭐든 할수 있을것만 같았다.


현재 봉착해있는 문제는 ADC관련...
LM35 온도센서를 사용하는데, Nano QPlus의 ADC관련 API가 말을 듣지 않는다.
아무래도 API를 직접 건드려야 할듯...

휴.... 다시한번....
저때를 생각하며....
각오를 새롭게 하자!!
신고



 

티스토리 툴바