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

이전 포스팅에서 카메라와 터치 좌표를 맞추는데 카메라의 위치를 조정하여 맞추어야 한다고 하였지만
그 방법으로는 완벽하게 좌표를 매칭 시킬수 없었습니다. 정확히 맞추는 방법은 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 맨날맑음
안녕하세요? 맨날맑음 입니다.
테이블 프레임(뼈대) 제작


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

이 중 적당한 높이를 실제 테스트 전에는 정확히 알기 힘들기 때문에, 높이를 쉽게 조절 할 수 있는 방법을 택하기로하고 그 재료로써 위의 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 맨날맑음

안녕하세요? 맨날맑음입니다.
Multi Touch Screen을 구현하기 위해서 멀티터치 스크린의 동작 원리를 이해하는 것이 필요합니다.




터치 스크린을 구현하는 방법에는 감압 방식(Resistive/Pressure Sensitive), 전압 방식(Capacitive/Electrostatic), 적외선 방식(Infrared)로 크게 3가지 방식이 있습니다.

감압방식은 핸드폰에서 많이 사용하는 방식입니다. 다른 터치 방법에 비해 가격이 저렴하고 뛰어난 내구성과 긴 수명을 가지고 있습니다. 감압방식의 5-wire 타입의 경우 3500만번의 터치를 수명으로 가지고 있다고 합니다.

이 방식의 원리는
오른쪽의 그림처럼 2개의 레이어
사이에  플라스틱으로 이루어진 점이 존재 합니다.
 이 점을 이용하여 압력이 가해지면 전기 신호가 흐르게 되고 전기 신호를 인식하여 터치가 된 위치를 알수 있습니다.
 이 방식의 단점은 멀티터치가 불가능 하다는 것입니다. 한번에 하나의 신호만을 측정하기 떄문에 멀티터치를 구현할 수 없습니다. 또한 이것은 장점이자 단점이 될 수 있는데요. 압력을 이용하기 때문에 다른 도구를 사용할수 있는 장점이 있구요, 다르게 생각하자면 손이 아닌 다른것에 눌려 원치않는 조작이 일어 날 수 있다고도 생각해 볼수 있습니다.



두번째 방법으로는 전압 방식이 있습니다. 
손가락이나 기타 전기가 흐를수 있는 물체(도체)를 이용하는 방법입니다. 전기가 흐르는 물체가 스크린을 터치하게 되면 스크린에 흐르고 있던 전기의 흐름을 방해하여 바뀌게 됩니다.
바뀐 전기의 흐름을 인식하여 터치의 위치를 알 수 있습니다.  전압방식은 가격이 비싸다는 단점이 있습니다. 하지만 멀티터치를 지원하고 2억 2500만번의 터치를 할수 있는 내구성이 장점입니다.





마지막으로 우리가 사용할 적외선 방식입니다.

적외선 방식은 광학 방식과 열감지 방식이 있습니다.

광학방식은 사람에게는 보이지 않는 적외선빔을 사용합니다. 오른쪽의 그림처럼 보이지 않는 격자로 구성한 스크린 위쪽과 주변에 센서를 배치시켜 터치가 이루어지면 센서로 적외선을 인식하여 위치를 파악할수 있습니다. 적외선방식의 단점이라면 가장 큰 비용이라고 할수 있고, 또한 주변에서 나오는 적외선때문에 빛이 강한곳에서는 터치가 원활하지 않다는 단점이 있습니다,



터치의 여러 방식에 관해 알아보았으니 이제 우리가 사용할 FTIR방식에 대해 알아보겠습니다.
FTIR방식은 빛의 전반사를 이용 합니다. 전반사는 빛이 밀한 매질(굴절률이 큰)에서 소한 매질(굴절률이 작은)로 입사할때, 입사각이 특정 각도 이상이면 그 경계면에서 빛이 모두 반사되는 현상을 말하는 것입니다.

우리가 사용할 멀티터치 스크린은 기본적으로 아크릴적외선 LED, 적외선 CAM, 거울을 사용하여 아래와 같이 구현하게 될것입니다.


그림에 설명 되어 있지만, 간단히 설명을 붙이자면 아크릴에 적외선 LED가 적외선을 발사(?)하고
터치가 일어날 경우에 그 적외선이 손을 만나 전반사를 일으키게 됩니다. 그렇게 들어온 적외선을 거울과 CAM을 사용하여 인식하여 최종적으로 터치를 감지 하게 됩니다.
저작자 표시 비영리 변경 금지
신고
Posted by 맨날맑음


티스토리 툴바