안녕하세요? 맨날맑음 입니다.
참 좋은 세상이네요~ 도로정보를 3D로 표현해 주고 있는데요, 도로 표지판이며, 신호등까지 거의 실사같은 느낌이 나는군요~ 아 갖고싶어 ㅠ
THE INNOVATOR
고성능 하이엔드 내비게이션





Posted by 맨날맑음
,

안녕하세요? 맨날맑음 입니다.

드디어 약 3개월간의 멀티터치 테이블 발표회를 몇일전에 마쳤습니다. 사실 이 프로젝트는 학교의 '종합설계' 과목의 프로젝트로 만들게 되었는데요;; 학교에서 재료 구입에 차질이 생겨 실제 개발 기간은 약 1달이 조금 안되는 기간에 만들게 되었습니다. 저희 과가 컴퓨터공학부인지라 소프트웨어 개발은 어느정도 경험이 있었지만 하드웨어와 함께 해보는 것은 처음이라 납땜부터 LED에 저항을 연결하는 사소한 부분까지도 모르는 것이 많아 힘든 것이 많았습니다. 그래도 팀원들 모두 열심히 해준 덕에 완성하게 되어 보람되고 뿌듯하네요^^

발표 PPT와 시연 동영상입니다. 시연은 가상 시나리오로 디자인 회의를 한다는 컨셉으로 진행 하였습니다.
PPT1. 시연회 발표  PPT

영상1. 멀티터치회의테이블 최종 동작 (핸드폰 카메라 촬영)

영상2. 멀티터치회의테이블 최종 동작(마우스로 조작 화면 녹화 유틸로 녹화)

발표회 결과도 좋아서 저희 Accent 팀이 종합설계 발표회 1등을 수상하였습니다.

사진1. 기념촬영(지도해주신 김병규 교수님과 팀원)

사진2. 상장

사진3. 부상으로 받은 상품권 20장

Posted by 맨날맑음
,
안녕하세요? 맨날맑음 입니다.

WPF나 Silverlight 와는 다르게 Windows Form에는 '로드 완료' 이벤트가 없습니다. Load 이벤트가 제공 되고 있기는 하지만 MSDN에 나온 의미는 '폼이 처음으로 표시되기 전에 발생합니다.' 입니다. 즉 로드 완료가 아니라는 것입니다.

이것이 왜 문제일까?
로드 완료가 아닌 로드중 이벤트만 제공하여 생기는 문제가 있습니다.
예를 들어 프로그램을 시작할 때 폼을 숨기려고 한다고 하면, Hide() 메서드를 호출 해야합니다.
실행 할때 숨기려 했으니 당연히 폼의 생성자에 Hide()를 넣어보지만 전혀 동작 하지 않습니다.
두번째 방법으로 폼의 Load 이벤트 핸들러 안에 Hide()를 넣어봅니다. 역시 동작하지 않네요;
정확하지 는 않지만, MSDN의 설명대로 폼이 아직 표시되기 전이라 Hide()가 먹히지 않는 것 같습니다.
이밖에 Focus()나 몇몇 다른 메서드도 동작하지 않습니다.

어떻게 해결할까?
위의 문제를 해결하려면 '로드완료' 이벤트를 찾아야 하는데 아무리 뒤져보아도 로드완료는 존재하지 않았습니다.
그래서 임시 방편으로 Application.Idle 이벤트를 사용하여 해결 하였습니다. Application.Idle 이벤트는 말그대로 프로그램이 아이들 상태(쉬고 있을때) 발생합니다. 이걸 응용하면, 생성자에서 이벤트를 걸어주고, 이벤트 핸들러에서 이벤트를 빼주는 방법으로 로드 완료된 시점을 잡을 수 있습니다. 물론 엄밀히 말하면 프로그램이 더이상 할 일이 없어 쉬고 있을 시점을 잡아내는 것입니다.

using System;

using System.Windows.Forms;

namespace Sample

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

            //Idle이벤트를 걸어준다.

            Application.Idle += Application_Idle;

        }

        void Application_Idle(object sender, EventArgs e)

        {

            //Idle이벤트를 없앤다.

            Application.Idle -= Application_Idle;

            this.Hide();

        }

    }

}


위의 코드에서 Idle 이벤트 핸들러에서 Application.Idle -= Application_Idle; 이벤트를 빼주는 방법으로 프로그램이 처음으로 쉴때(로드완료)를 잡아내는 것입니다. 이렇게 임시 방편이나마 로드 완료 시점을 잡아서 hide() 메서드를 동작시킬 수 있습니다.
Posted by 맨날맑음
,

안녕하세요? 맨날맑음 입니다.

네이트을 보면 X(종료) 버튼을 누를시 프로그램이 꺼지지 않고, 트레이로 가게 됩니다.
이번에 알아볼 내용은 .net Windows Forms 프로젝트에서 이런 기능을 구현 하는 것입니다.

우선 준비물이 필요합니다. 트레이에 나타나게 할 아이콘 파일(.ico)입니다.
아이콘 파일은 웹상에서 마음에 드는것을 다운로드 받아도 되고, 포토샵이나 기타 프로그램으로
그림파일을 변환시켜 사용하셔도 됩니다. 물론 솔루션 탐색기 -> 해당 프로젝트(우클릭) -> 추가 -> 새항목 -> 아이콘파일을 선택하셔서 직접 그려서 사용하셔도 됩니다. 각자 취향에 맞는 아이콘을 준비해 주면 됩니다.

우선 Windows Forms 프로젝트를 생성합니다.

도구상자에서 NotifyIcon을 선택하여 Form에 추가 합니다. 추가 후 소성창의 Icon 속성에 준비해준 Ico 파일을 연결해 줍니다. 여기까지만 하고 실행시켜도 트레이에 우리 프로그램의 아이콘이 보이는 걸 볼 수 있습니다.

트레이에서 마우스 오른쪽 버튼을 눌렀을 경우 나올 메뉴를 위해 ContextMenuStrip도 추가해 줍니다.
ContextMenuStrip의 메뉴를 추가 합니다. 간단히 '종료' 메뉴(Name : ExitToolStripMenuItem)만 넣었습니다. 다시 notifyIcon1의 속성창으로 가서 ContextMenuStrip의 값을 contextMenuStrip1로 지정 합니다.
여기까지 하셨으면 프로그램 실행 시 트레이에 아이콘이 나타나게 되고, 오른쪽 버튼으로 아이콘을 클릭하면
종료 메뉴가 나타나게 됩니다.

이제 코드창(cs)으로 가서 몇가지 이벤트핸들러만 구현해 주면 트레이에 아이콘이 나타나는 프로그램을 만들수 있습니다.
using System;
using System.Windows.Forms;
namespace TraySample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.FormClosing += Form1_FormClosing;
            this.notifyIcon1.DoubleClick += notifyIcon1_DoubleClick;
            this.ExitToolStripMenuItem.Click += ExitToolStripMenuItem_Click;
        }
        // 트레이의 종료 메뉴를 눌렀을때
        void ExitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //트레이아이콘 없앰
            notifyIcon1.Visible = false;
            //프로세스 종료
            Application.Exit();
        }
        //트레이 아이콘을 더블클릭 했을시 호출
        void notifyIcon1_DoubleClick(object sender, EventArgs e)
        {
            this.Visible = true; // 폼의 표시
            if (this.WindowState == FormWindowState.Minimized)
                this.WindowState = FormWindowState.Normal; // 최소화를 멈춘다 
            this.Activate(); // 폼을 활성화 시킨다
        }
        //폼이 종료 되려 할때 호출
        void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            e.Cancel = true; // 종료 이벤트를 취소 시킨다
            this.Visible = false; // 폼을 표시하지 않는다;
        }
    }
}
주석으로 충분한 설명이 있지만 간단히 소스를 설명하면, 우선 타이틀바의 X 단추를 눌렀을때 프로그램이 종료 되는것을 막기위해 FormClosing 이벤트 핸들러에서 폼이 종료 이벤트를 취소 시켰습니다.
또한 트레이 아이콘을 더블클릭하면 폼이 다시 나와야함으로 notifyIcon1_DoubleClick 이벤트 핸들러에서 는 폼을 다시 표시하고, 활성화 시켰으며, 메뉴에서 종료를 선택했을때는 프로그램을 종료하게 하였습니다.

이렇게 간단하게 네이트온처럼 트레이에 표시되는 응용프로그램을 만들 수 있습니다.
Posted by 맨날맑음
,

안녕하세요? 맨날맑음 입니다.

이전 포스팅에서 카메라와 터치 좌표를 맞추는데 카메라의 위치를 조정하여 맞추어야 한다고 하였지만
그 방법으로는 완벽하게 좌표를 매칭 시킬수 없었습니다. 정확히 맞추는 방법은 Touch Library의 셋팅을 이용하는 것인데요, Touch Library 홈페이지 상에 설명이 다 되어있는 내용이었지만, 초라한(?) 영어실력으로 인해 주의깊게 보지 않아 고생하였습니다;;

Touch Library의 설정은 크게 두가지로 나눌 수 있는데요; 터치의 감도를 설정하는 영상 처리부분과 좌표를 매칭하는 좌표 설정 부분이 있습니다. 영어실력이 초라한 분들을 위해 간단하게 두가지 방법을 알아보겠습니다.

영상처리
config.bat 파일을 실행시키면 6개의 창이 나타납니다.위의 3개의 창은 원영상, mono, smooth를 적용한 영상을 보여주며 아래 3개의 화면은 사용자가 값을 조정해가며 영상의 질을 개선할 수 있습니다.
첫번째 창은 경계(threshold)값을,두번째 창은 밝기brightness), 명암대비(contrast) 값,세번째 창은 레벨(level) 값을 조정 할 수 있습니다.
첫 번째 창에서 'b'버튼을 누르게 되면 배경의 화면을 나오거나 나오지 않게 할 수 있습니다. 이 threshold 값이 매우 중요합니다. 너무 크거나 작아도 터치 감도가 좋지 않습니다. 두 번째 창도 역시 어느정도 밝은 가운데 명암대비를 해야 합니다. 그 후 손가락을 누른 상태에서 이리저리 움직여가며 하얀 점이 끊기지 않고 잘 움직이는지 확인하며 세번째 창의 레벨 값을 조정해 줍니다.
이런식의 테스트로 자신에 시스템에 맞는 최적의 셋팅을 찾아주시면 됩니다. 저희의 경우 아래의 값이 최적이더라구요.
threshold: 32   brightness: 125   contrast: 208   level: 30
그 후 Enter를 누르시면 화면이 변하게 되는데 x를  누르시면 현재 값이 저장이 됩니다. Esc를 눌러 종료 후 다시 실행시켜 확인합니다.
터치 좌표 설정(좌표 매칭)
가장 중요한 부분이 터치영역을 설정해 주는 것입니다.
다시 프로그램을 실행시켜 Enter를 누르면 화면 전체에 녹색의 '+'모양이 나타납니다. 화면 좌상단에는 현재 캠의 영상이 비추어지는데 캠이 스크린 전체를 비출 수 있도록 캠을 조정합니다.
조정이 완료 되면 'c'를 누릅니다.
좌상단 모서리 '+' 부분에 빨간색 화살표가 생기게 됩니다.
이제 부터가 중요합니다.
그 '+' 부분을 누르게 되면 전체 화면의 색깔이 하얗게 변하게 되고 띄게 되면 빨간 화살표가 다음 '+'로 이동하게 됩니다. 그렇게 차례로 끝까지 누르게 되면 터치 영역 설정이 마치게 됩니다. 역시 'x'를 눌러 저장 후 종료합니다.
주의할 점은 눌렀을 때에만 빨간 화살표가 이동하여야 합니다. 그렇지 않으면 좌표가 맞지 않게 됩니다. 이제 설정된 영역안에서만 터치가 이루어지게 됩니다.

간략하게 Touch Library Setting 방법을 알아 보았는데요; 여기까지 하셨으면 하드웨어 적인 부분은 모두 끝났다고
보시면 됩니다. 저희는 이 라이브러리를 이용하여, WPF 기반으로 회의시스템을 개발하였습니다.
최종 시연 및 발표 후 소프트웨어 적인 부분을 포스팅 하겠습니다.
Posted by 맨날맑음
,

안녕하세요? 맨날맑음 입니다.

테스트
하드웨어 설계가 마무리 단계까지 와서 인식률과 좌표 매칭을 위해서 터치인식 테스트를 해보았습니다.
우선 다음과 같이 2020 앵글을 잘 고정시키고 적외선 빛이 세어 나오지 않도록 꼼꼼하게 막아줍니다.
특히 아크릴판의 가장자리의 LED아래 부분에서 빛이 많이 세어 나오기 때문에 잘 가려주어야 합니다.
또한 LED부분과 물체가 닿으면 적외선이 반사가 되어 인식 될 수 있으므로 닿을 수 있는 부분에 절연 테이프로 감아줍니다. 

Touchlib Beta v2.0  (Download: http://nuigroup.com/touchlib/downloads)
현재 여러 프로젝트에서 touch 라이브러리로 많이 쓰이고 있으며 이번 테스트에 사용하기로 하였습니다.
open cv를 사용하여 캠에서 입력받은 영상을 이진화 시켜 잡음 제거등 영상처리를 통하여 전반사된 빛의 좌표를 TUIO 프로토콜을 사용하여 통신합니다. V1.0 보다 V2.0이 더 사용하기 쉽고 성능이 좋은 것 같습니다.

파일을 다운 받아 압축을 풀어 폴더에 들어가게 되면 Config.bat, Server.bat, Vision.bat의 3개의 배치 파일이 존재합니다. 그리고 다른 폴더에는 예제들이 포함되어 있습니다. 자세한 사용법은 여기를 참고 하시면 됩니다.

일단
Config.bat을 실행 시키면 캠 화면에 대한 설정 후 6개의 창이 뜨는데 영상처리 되어 지는 과정을 보여줍니다.
아래 3개의 창으로 자신의 어플리케이션에 맞게 영상을 조정할 수 있습니다.
B 를 누르게 되면 배경 화면을 제거 해줍니다. 또한 설정된 값을 저장하기 위해서는 엔터 버튼을 누른 후 X를 누르시면 저장이 됩니다. 

테스트 영상


이제 테스트 위해서 Vision.bat를 누르시면 Listener가 작동되어 전반사 되어진 곳의 좌표를 TUIO프로토콜을 통해 통신하게 됩니다. 간단히 만든 어플리케이션으로 테스트 해 보았습니다. 


아직 프로젝터와 카메라의 위치를 좀더 조절하여 좌표를 보다 정확하게 매칭시켜야 합니다. 이부분이 꽤 까다롭습니다. 여러번 테스트를 하셔야 합니다. 또한 사용하는 컴퓨터의 성능이 그리 좋지 않아 인식이 좀 빠르게 이루어 지진 않습니다. 하지만 웬만큼 인식률이 나오기 때문에 소프트웨어 구현을 시작하며 하드웨어 보완을 진행할 계획입니다.
외부 형광등이나 다른 요인으로 적외선이 카메라에 들어와 오작동 할 수 있으므로 테이블 주위도 막기로 하였습니다. 또한 빔프로젝터에서도 다량의 적외선이 나오기 때문에 적외선 차단 필름을 붙이면 좋지만 단가가 비싸기 때문에 아직 고려중에 있습니다.

Posted by 맨날맑음
,
안녕하세요? 맨날맑음 입니다.
아르바이트 삼아 하고있는 프로그램 제작하다가 타이틀바의 높이를 알아 올 일이 생겼습니다.
C#에서는 제공하는 클래스가 없는것 같고, API 함수를 쓰면 쉽게 해결 할 수 있습니다.
int WINAPI GetSystemMetrics(int nIndex );
사실 GetSystemMetrics 함수는 매개변수에 따라 여러가지 기능을 하는데요. 주로 시스템의 구성이나 설정을
얻어올 때 사용됩니다. 시스템 영역의 정보를 얻어오려면 이 함수의 기능을 찾아보면 거의 있습니다.
그중에서 이번엔 타이틀바의 높이를 알아오는 방법을 알아보겠습니다. 타이틀바의 높이는
SM_CYCAPTION
플래그를 매개변수로 넣어주어 리턴되는 값으로 얻어 올 수 있습니다.

저는 C#에서 사용하여야 했기 때문에 윈폼 프로젝트로 테스트해 보았습니다.
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern int GetSystemMetrics(int nIndex);
public Form1()
{
     InitializeComponent();
     const int SM_CYCAPTION = 4;
     int height = GetSystemMetrics(SM_CYCAPTION);            
     this.Text += height.ToString();
}
너무 간단하지만, C#에서 함수 사용을 위해 DLL 선언을 해주었고, CM_CYCAPTION = 4 를
매개변수로 하여 해당 함수를 호출하여 높이를 얻어왔습니다.


실행화면
윈도우 설정에서 타이틀바의 높이를 변경해 보았는데요. 잘 얻어오는 것을 알 수 있습니다.


Posted by 맨날맑음
,
안녕하세요? 맨날맑음 입니다.
테이블 프레임(뼈대) 제작


아크릴,적외선카메라, 빔프로젝터가 준비된 상황에서 이제 이것들을 지지해 줄수있는 프레임이 필요했습니다.
프레임 설계에 있어 우선적으로 고려한점을 알아보면,
ㆍ 아크릴과, 빔프로젝터, 컴퓨터의 무게를 버틸 수 있는 튼튼한 재료
ㆍ 빔프로젝터의 영상이 아크릴에 가득 영사 될 수 있는 적당한 높이
ㆍ 적외선 카메라가 아크릴의 전체 영역을 볼 수 있는 적당한 높이

이 중 적당한 높이를 실제 테스트 전에는 정확히 알기 힘들기 때문에, 높이를 쉽게 조절 할 수 있는 방법을 택하기로하고 그 재료로써 위의 3가지 조건을 모두 만족시키는 '알루미늄 프로파일'을 선택하게 되었습니다.
이렇게 프레임 제작에 대략 10만원 가량 소요되었습니다.
조립한 프레임에 아크릴과 빔프로젝터 그리고 적외선 카메라를 올려서, 높이 및 크기를 여러번 조정하셔야 합니다.
                                                                   - 완성된 프레임 -

LED 회로 만들기와 설치
처음 테스트시엔 LED를 납땜으로 연결하였지만 LED의 간격이 1.5cm로 가깝기 때문에 굳이 몸에 좋지 않은 남땜질 보다는 LED 선을 꼬아서 연결하기로 하였습니다. LED 7개와 3.3 저항 하나를 한 세트로 만들어 여러개를 연결시켰습니다. 구멍의 개수로 인해 3~4개의 LED를 연결해야 할 때가 있는데 이 때는 100 저항 하나를 연결하여 사용하였습니다.

 다음 그림은 만드는 순서입니다.


1. LED를 -, + 순으로 공구를 사용하여 꼬아줍니다.
   7개 직렬을 1셋트로 구성하였습니다.
   ※ +,- 구분을 꼬아놓으면 해깔리기 때문에 전구
       머리부분을 보고 동그란면이 + 평평한면이 -로
       구분하시면 편합니다.

2. 끝부분에 저항을 연결합니다. 꼬아있는 부분끼리
   닿아서  합선되는 것을 막기위해 절연테입으로
   감았습니다.


3. 전선을 연결합니다. +, -가 구분될 수 있도록 색을
   다르게 하는것이 나중에 해깔리지 않습니다.




4. 전선을 연결한 부분을 수축튜브로
    감싸주었습니다.



5. 구멍뚫은 20mm앵글에 넣어줍니다.





6. 테이프로 고정해 놓았습니다.
   지금은 글루건으로 잘 마무리 했습니다.





7. 아크릴에 20mm앵글을 옆명에서 부착합니다.
   이때 전구가 아크릴의 중앙을 잘 비출 수 있게
   조절합니다.






8. 선정리 및 마무리

Posted by 맨날맑음
,

안녕하세요? 맨날맑음 입니다.
FTIR 현상이 일어나게 하기 위하여 적외선LED(IR LED)를 구성하는 방법을 알아보겠습니다.
재료로 적외선 LED와 전반사를 잘 일으키는 매질중 하나인 아크릴판이 필요합니다.

적외선 LED(IR LED)

  - 적외선 LED의 스펙에 따라 터치성능에 많은 영향을 미치게 됩니다. 일단 LED의 확산성과 직진성이 성능에
    많은 영향을 끼치게 됩니다. IR LED의 구매에서 어려움이 많았는데요; 일단 오프라인으로 구할 만한 판매처가 
    없었습니다.(이곳 지역이 천안이라서 그런걸지도;) 저희가 알아낸 오프라인 판매처는 용산 전자상가, 청계천
    정도가 있습니다.  대신 온라인 판매처가 몇군데 있는데 외국 쇼핑몰로 Digikey가 있으며, 국내 쇼핑몰에는 
    iC114가 있습니다.    
    저희는 해외 결재의 어려움이 있어서, 국내 사이트를 이용했으며, SI5312-H모델을 사용하였습니다. 이 모델의
    자세한 스펙은 이곳을 참고 하시면 됩니다. 구성에 따라 다르지만 아크릴의 옆면에 15mm 간격으로 led를
    장착한다면 예비까지해서 약 250개 정도의 led가 있어야 합니다(4방향 모두 장착했을시..)

LED 전원 공급장치

   - LED 전원 공급으로 SMPS(Switching mode power supply)를 사용 하였습니다.
     LED 전원 공급장치로 PC에  사용하는 파워서플라이를 사용해도 되지만, 간단히 쓸수 있는 위 모델을 발견
    하여 선택하게 되었습니다.(모델명 : MP30W12V) 구매가격 : 약 20,000원

아크릴 판
  - 아크릴판은 천안의 아크릴 가공점에 가서 쉽게 구입 하였습니다. 아크릴 가공하는 업체는 여러곳에 있으니 
    쉽게 구입하실 수 있을것이라 생각됩니다. 아크릴의 전반사는 두께 8mm이상일때 가장 잘 일어납니다
    그래서 저희는 가로800*세로600*두께10mm짜리를 구매하였습니다. 아크릴 구매시 옆면을 투명하게 가공
    여 달라고 해야합니다. 그래야만 led를 옆면에서 투과 시켰을 경우 빛이 잘 들어가게 됩니다.
    업체에 따라 가격이 다르겠지만 저희는 약 45,000원에 구매를 했습니다.
    사진에서의 아크릴은 나중에 설명하겠지만, 아래에 트레싱지를 붙이고 테두리에 알루미늄테이프를 붙인
    모습입니다. 원래 처음 구입하면 투명한 모습입니다.


LED 회로구성
  - LED와 전원 공급 장치가 있다면 회로 구성을 해야 합니다. 전원과 LED의 스펙을 확인 하시고 V=IR의 공식에 
    맞도록 구성 하시면 되는데, 이런 간단한 구성도 하드웨어를 처음 접하는 저에게는 난관이었습니다. 
    LED Center라는 사이트에서 전압과 저항 갯수를 입력하면, 회로로 구성해 주어서 도움을 받았습니다.
    위의 회로처럼 9개를 직렬구성에 3.3옴짜리 저항을 1셋트로 하여 병렬 구성을 할 수 있습니다. 실험 결과
    LED가 7개를 1셋트로 구성하여도 터지거나 하지 않아 밝기를 높이기 위해 7개를 선택 하였습니다.


아크릴판과 LED회로 고정
                                                   - 2mm앵글에 구멍을 뚫은 모습 -
  - 이제 각종 재료와 정보를 알았으므로, 아크릴판의 옆면에 LED를 고정 시켜야 합니다. LED를 아크릴판 
    옆면에 고정 시키는 방법은 여러 방식이 있을 수 있지만, 우리는 20mm 앵글을 사용하여, 15mm간격으로
    구멍을 뚫어서 LED를 고정 시켰습니다. 앵글 구매는 '프로파일'가공해 주는 가게에서 할 수 있으며, 아마도 그
    곳에서 구멍을 뚫어주지 않을 수도 있습니다. 저희는 직접 핸드드릴을 이용하여 가공하였습니다. 20mm앵글의
    길이는 800mm 두개 570mm 두개를 사용하여 아크릴판의 둘레를 완전히 감쌀 수 있도록 구현 하였습니다.
    이 이외에도 아크릴 옆면에 직접 5φ짜리 구멍을 내어 LED를 그안에 넣는 방법을 사용 할 수도 있습니다.


다음번 포스팅에선 전체적인 프레임(뼈대), 적외선 카메라 및 빔프로젝터 배치에 대해 알아보겠습니다.
 ※ 글내용중 등장하는 쇼핑몰이나 부품의 특정 모델들은 단지 제가 사용해 본 제품일 뿐이지
     맨날맑음과는 전혀 관계 없음을 먼저 밝힙니다 ※
Posted by 맨날맑음
,

안녕하세요? 맨날맑음 입니다.
FTIR 방식의 Multi Touch Screen의 주요 부품인 적외선 카메라 제작하는 방법을 알아 보겠습니다.
적외선 카메라를 직접 구매하여 할수도 있겠지만 적외선 카메라의 경우 비교적 고가이기 때문에 학생 신분에서
저렴하게 구입 할 수 있는 캠을 사용하여 개조하는 방법을 썻습니다.


T9T9 Research Center 블로그를 통해
여러 캠들 중  V-GEAR TALKCAM TRACER CCD 모델이
개조가 쉽다는 정보를 얻어, 캠을 구매 하였습니다.



  일반적인 캠에는 적외선을 차단하는 렌즈가 있습니다. 우리는 적외선을 받아들이는 적외선 카메라를
  제작해야 하기 때문에 적외선 차단 렌즈를 제거 해야 합니다.
  또한 가시광선을 받아들여서는 안되기 때문에 가시광선 차단 필터를 부착해야 합니다.

적외선 차단 렌즈 제거

캠의 렌즈부분을 손으로 돌리면(시계 반대방향) 쉽게 좌측과 같이 분리가 됩니다.
잘 보이지 않지만 맨 윗부분 적색으로 보이는 부분적외선 차단 렌즈입니다.
렌즈 제거는 속에 있는 다른 렌즈가 다치지 않도록 렌즈에 압력을 가해 깨면 됩니다.
렌즈위에 투명테잎을 붙이면 렌즈 파편을 쉽게 제거 할 수 있습니다(T9T9 블로그 참조)



가시광선 차단 필터 장착
가시광선을 차단하기 위하여 일반인도 쉽게 구할 수 있는 카메라의 필름을 사용 할 수 있습니다.
적외선 차단 렌즈를 제거한 자리에 필름을 알맞은 크기로 잘라 넣어 줍니다. 
 주의하실 점은 필름은 새필름이 아닌 '현상'한 필름을 써야 합니다.(요즘 필름을 안써서 현상한 필름 구하는것도 쉽지 않더군요;;) 사진관에서 현상하고 남은 걸 얻어오시거나 새 필름을 그냥 현상해 달라고하셔야 합니다.

      
           필름을 붙여서 테스트를 해보고, 가시광선 양에 따라
           2장을 곂쳐 붙이셔도 됩니다.
           저희 같은 경우는 필름을 두장 곂쳐 붙였더니 그제서야
           잘되는 것을 확인 하였습니다.
                                                                                                   - 필름을 카메라 렌즈에 붙인 모습 - 
                                      
최종 완성된 적외선카메라로 본 영상
팔에 있는 핏줄이 다 보여서 좀 징그럽습니다; 아마도 적외선의 영향이겠죠?
Posted by 맨날맑음
,