"All Reality: Virtual, Augmented, Mixed (X), Mediated (X,Y), and Multimediated Reality"라는 논문(아래 첨부) 중 2 MULTIMEDIATED REALITY 중 2.3 Multimediated Reality Darkroom에 나오는 내용을 보고 적외선을 눈으로 볼 수 있는 것을 만들어 보기로 했습니다. 논문은 아래 첨부했습니다.
mediated reality는 매개현실이란 뜻입니다. multimediated reality는 다중매개현실이라고 할 수 있겠네요. darkroom은 암실을 뜻합니다. 가상현실(virtual reality), 증강현실(augmented reality), 혼합현실(mixed reality)... 많은 용어가 있네요.
위의 사진은 논문에 소개된 것인데, 백열등을 사용하여 적외선 카메라가 인식하는 영역을 표시하는 것입니다. 저는 적외선 LED가 적외선을 내보내는 영역을 볼 수 있도록 하는 것이 목표입니다.
결과
방의 불을 끄고 카메라를 bulb 모드로 하여 촬영한 결과입니다. 그런데로 원하는 결과가 나왔습니다. 결과를 보면 시간지연이 발생하는 것을 볼 수 있습니다. 다음번에는 시간지연을 보완하려고 합니다.
왼쪽이 적외선을 보내는 송신부이고, 오른쪽이 적외선을 수신하여 LED를 켜주는 수신부입니다. 수신부의 적외선 포토 다이오드를 송신부의 적외선 LED쪽으로 향하게 하고 좌우로 흔들면서 멀어지게 합니다. 그러면 적외선이 도달하는 공간에서 LED카 켜집니다. 이것을 카메라로 찍습니다.
촬영을 하기 위해 설치한 모습입니다. 원격으로 카메라를 동작시키기 위해 무선 릴리즈를 사용했습니다.
무선으로 카메라를 동작시키기 위해 자작한 릴리즈입니다.
위 결과를 얻기까지 시행착오가 있었습니다. 그 과정을 소개합니다.
처음의 아이디어
우선 가장 간단하게 시험해 볼 아이디어입니다. 포토 트랜지스터나 CdS를 센서로 사용하고 LED를 센서 앞에서 흔듭니다. 센서가 빛을 받으면 아두이노와 앰프가 LED를 켜도록 합니다. 그러면 센서가 빛을 감지하는 공간에서는 LED가 켜져서 센서가 빛을 감지하는 공간을 시각적으로 볼 수 있게 된다고 생각했습니다. 나중에 알게 되었지만, 이 방법은 논리적으로 되지 않는 생각입니다. LED가 켜졌다고 가정했을 때, LED가 센서의 감지 공간 밖으로 가면 센서가 빛을 받지 못하므로 LED가 꺼집니다. LED가 꺼지고 나면 LED가 어디에 있든 센서는 빛을 받을 수 없으므로 LED는 결코 켜지지 않습니다.
CdS 검토
CdS(황화카드뮴)를 사용하여 빛의 변화를 감지할 수 있는지 확인해 보았습니다.
CdS에 10kohm 저항을 직렬로 연결하고, 오실로스코프에 연결하여 빛의 변화에 따른 전압의 변화를 확인했습니다.
CdS는 아두이노 관련 부품을 구입할 때 공짜로 보내주는 것을 사용했습니다. CdS와 10kohm 저항이 만나는 점에 오실로스코프의 프로브를 연결했습니다. 오실로스코프는 PC의 USB로 연결하는 형태의 것을 사용했습니다.
독서용 LED 등을 CdS쪽으로 비추고 연필을 CdS 위에서 흔들어 보았습니다.
연필이 빛을 막을 때는 CdS의 저항값이 커져서 오실로스코프에 인가되는 전압이 떨어지고 빛이 들어올 때는 전압이 높아집니다. 그런데 전압이 높을 때와 낮을 때의 전압차가 0.6V 정도 밖에 되지 않아 아두이노의 디지탈 입력으로 사용하기에는 적합하지 않습니다. 아날로그 입력으로 넣은 다음 일정 전압을 기준으로 HIGH와 LOW로 정하는 방법이 있기는 하지만 오차가 클 것 같고, 무엇보다도 CdS가 반응속도가 느리다는 자료를 보았기 때문에 사용하지 않기로 했습니다.
포토 트랜지스터 검토
다음으로는 포토 트랜지스터를 사용해 보았으나 겨우 찾아낸 포토 크랜지스터가 내부에서 단선이 되었는지 아무런 반응이 없어 사용하지 못했습니다. 나중에 생각해보니 이것도 리드선이 3개인 것으로 보아 단순한 포토 트랜지스터가 아니고 안에 많은 회로가 들어가 있는 IC인 것 같습니다. 이와 관련된 이야기는 나중에 나옵니다.
새로운 아이디어-1
적외선을 이용하는 방법으로 바꾸었습니다. 오른쪽에서 적외선 LED로 적외선을 보내고 왼쪽에서 적외선 수신모듈로 적외선을 받습니다. 적외선 수신모듈 옆에 LED를 달아 적외선 수신모듈에서 적외선을 감지하면 LED가 켜지도록 합니다. 이렇게 적외선 수신모듈과 LED를 함께 흔들면 적외선이 도달하는 영역에서는 LED가 켜지게 되어 적외선이 도달하는 영역을 시각적으로 볼 수 있다는 아이디어입니다.
적외선 보내고 받기
적외선 송수신이 잘 되는지 시험을 해 보았습니다.
0xa90 신호를 연속적으로 보내는 프로그램입니다. "Arduino-IRremote-master.zip"은 "IRsend_test_2022-01-10.ino"에 필요한 헤더 파일입니다.
적외선을 잘 수신하는지 확인하는 프로그램입니다. 시리얼 모니터에 0xa90이 잘 나타나는 것을 확인했습니다.
적외선이 0xa90이 수신되면 LED를 켜는 프로그램입니다.
그런데 막상 해보니 제대로 동작하지 않았습니다. 생각해보니 굳이 0xa90과 같은 신호를 보낼 게 아니라 그냥 신호없이 적외선 다이오드를 켜고 수신쪽에서도 적외선이 감지되면 LED를 켜는 것이 쉬운 일이라는 생각이 들었습니다.
새로운 아이디어-2
적외선 LED에 신호를 싣지 않고 그냥 켜는 방법입니다. 적외선 포토 다이오드나 포토 트랜지스터가 적외선을 감지하여 트랜지스터로 증폭하여 LED를 켜는 원리입니다. 아날로그 방식입니다. 원리가 간단하여 잘 될 것으로 생각했습니다. 적외선 수신에는 적외선 수신모듈을 사용했습니다(아래 사진).
그런데 적외선 수신모듈이 적외선을 제대로 감지하지 못했습니다. 적외선 LED 앞에 가만히 두면 전혀 신호를 받지 못했습니다. 흔들어 보면 잡음과 같이 신호가 잡혔습니다. 왜 움직일 때만 신호가 잡히는지 이상했습니다. 가만히 보니 포토 다이오드든 포토 트랜지스터든 다리가 2개 밖에 없는데 이것은 다리가 3개 있습니다. 좀 더 알아보아야겠다고 생각하여 적외선 수신모듈에 대한 자료를 찾아 보았습니다.
자료를 보니 적외선 수신모듈은 단순한 포토 다이오드나 포토 트랜지스터가 아니라 여러 가지 회로가 들어가 있는 IC라는 것을 알게 되었습니다. AGC(automatic gain controll; 자동이득조절)가 있고, band pass filter(대역통과여파기)도 있고, demodulator(복조기)도 있습니다. 이러한 복잡한 기능을 가지고 있으니 적외선 통신에 사용하는 신호가 아니면 제대로 처리를 못하는 것 같습니다.
적외선 수신을 위해 단순한 적외선 포토 다이오드나 포토 트랜지스터를 쓰면 될 것 같습니다. 찾아보니 과학상자 라인 트레이서에 쓰는 센서가 있네요. 이것은 적외선 LED와 적외선 포토 다이오드가 한 쌍으로 들어 있고 세 개의 핀이 있습니다. 하나의 핀은 LED와 포토 다이오드에 공통으로 연결되어 있고, 나머지 둘은 각각 LED와 포토 다이오드에 연결되어 있습니다. 세 핀 중 공통선과 포토 다이오드에 연결된 두 핀을 사용했습니다.
송신부는 적외선 LED에 단순히 전원만 연결했습니다. 아무 신호 없이 계속 켜져있게 됩니다. 사진의 윗쪽 회로기판은 5V 이상의 전압을 받아서 3.3V나 5V의 전압을 내어주는 회로입니다. 5V에 맞추어 사용했습니다.
수신부의 신호를 측정해 보니 적외선을 받으면 -0.2V, 받지 않으면 2.3V 정도 나왔습니다. 아날로그 값이라서 아두이노 아날로그 입력단자에 연결했습니다. 아날로그 입력으로 전압을 인가하면 0~5V의 전압에 따라 0~1023의 값으로 변환하게 됩니다. 몇 번 실험을 하여 1000의 값을 기준으로 하여 1000이상이면 적외선이 없다고 간주하여 LED에 LOW값을 출력하고, 입력값이 1000미만이면 적외선이 있다고 간주하여 LED에 HIGH값을 출력하게 했습니다. 프로그램 올립니다.
방의 불을 끄고 실험해보니 논문에 나온 것과 비슷한 결과를 확인할 수 있었습니다. 하지만 기록으로 남기는 문제가 있었습니다. 결과를 사진으로 찍기 위해서는 카메라의 bulb 기능을 사용해야 합니다. bulb 기능은 셔터을 원하는 만큼 열고 있다가 닫을 수 있는 기능입니다. 천체 사진을 찍을 때 많이 사용합니다. bulb기능은 카메라 들고 직접 셔터를 눌러도 되지만 이 과제에서는 적외선 수신부를 흔들어야 하기 때문에 수신부를 흔들면서 카메라를 손으로 흔들리지 않게 잡을 수는 없습니다. 카메라를 고정시킨 후 릴리즈를 이용하여 카메라의 포커스와 셔터를 원격으로 조종해야 합니다. 카메라 릴리즈가 없기 때문에 사거나 만들어야 합니다.
Canon EOS 100D 카메라를 사용하는데, 원격으로 bulb 모드를 사용하기 위해서는 리모트 스위치를 카메라 옆의 덮개를 열고 연결해야 합니다. 카메라에 직경 2.5mm의 잭이 있습니다. 여기에 맞는 플러그를 꽂아서 포커스와 셔터를 동작시킵니다.
유선 방식으로 리모트 스위치를 꽂아 반누름으로 포커스를 잡고 완전히 눌러 셔터를 열고 놓아서 셔터를 닫을 수 있습니다. 카메라 용어로는 '케이블 릴리즈(cable release)'라고 합니다. 그러기 위해서는 리모트 스위치를 계속 들고 있어야 하는데, 왼손으로 적외선 수신기를 흔들고 오른손으로 포커스와 셔터를 동작하는 것을 함께 하는 것이 잘 되지 않을 것 같아 무선으로 동작하는 릴리즈를 만들기로 했습니다.
무선 릴리즈를 만들기 위해서는 릴리즈용 플러그의 배선을 알아야 합니다. 위 그림과 같이 스테레오 플러그와 구조가 같습니다. (1)이 공통으로 사용되고, (2)는 포커스, (3)은 셔터용입니다. (2)와 (1)을 연결하면 포커스가 동작합니다. (3)과 (1)을 연결하면 셔터가 열리고, 연결을 끊으면 셔터가 닫힙니다. 그러니까 (2)와 (1)에 스위치가 하나 들어가고, (3)과 (1)에 스위치가 하나 들어가면 됩니다. 이 두 스위치를 무선으로 제어하면 된다는 것이지요. 무선 제어를 어떻게 할까 생각하다가 안쓰고 있는 전기히터의 리모콘을 사용하기로 했습니다. 적외선을 사용하는 것입니다. 또, 적외선! ㅋㅋ
리모콘에 기능을 나타내는 딱지를 붙였습니다.
리모콘으로부터 신호를 받아 플러그의 스위치를 작동시키는 블록다이어그램입니다. 리모콘으로 신호를 받아보니 포커스를 동작시키는 스위치를 누르면 0x3F21DE가 나왔고, 셔터 ON 스위치를 누르면 0x3F41BE, 셔터 OFF 스위치를 누르면 0x3F619E 신호가 나왔습니다. 리모콘의 신호를 받아서 알려주는 프로그램은 앞에서 사용한 IRreceiver_test_2022-01-10.ino를 사용했습니다.
무선 릴리즈 수신부에 아두이노 나노를 사용했는데, 거기에 들어갈 프로그램의 블록다이어그램입니다. 포커스 신호를 받으면 2초 동안 포커스를 잡도록 릴레이를 동작시킵니다. 셔터 ON 신호를 받으면 셔트를 열고, 셔터 OFF 신호를 받으면 셔터를 닫도록 릴레이를 동작시킵니다.
회로를 연결하여 시험을 해 보았습니다. 동작을 잘했습니다. 아래에 프로그램 올립니다.
회로의 배선을 한 다음 명함통에 넣었습니다.
무선 릴리즈를 시험해 보았습니다. 원하는 대로 동작이 잘 되었습니다.
수신부입니다. 부피를 작게 하기 위해 아두이노 나노를 사용했고, 브레드보드 하나에 모든 회로가 연결되도록 했습니다. 시험해보니 잘 동작했습니다.
수신부의 브레드보드와 배터리를 뭉쳤습니다. 아두이노 기판의 LED 빛이 나오지 않도록 종이로 막았습니다. 적외선 수신용 포토다이오드는 LED와 직각을 이루도록 배치했습니다. 저대로 들고 좌우로 흔들면 되도록 했습니다.
마지막 시험
왼쪽이 송신부이고 오른쪽이 수신부입니다.
촬영장치는 캐논 EOS 100D, 자작 무선 릴리즈, 리모콘으로 구성되어 있습니다.
모든 준비물을 설치하고 시험하여 영상을 얻었습니다. 시간지연이 발생하여 LED가 켜지는 위치가 어긋나는 문제를 해결해야 하겠습니다.
'기타 활동 > MAKER 활동' 카테고리의 다른 글
PEANUT i3 3D 프린터 익스트루더 수리(2024년) (0) | 2024.08.29 |
---|---|
적외선을 눈으로 보기-2(2022.03.08) (0) | 2022.03.17 |
3D 프린터 필라멘트 공급부 수리(2021년) (0) | 2022.02.24 |
1구 콘센트와 릴레이 결합 (0) | 2021.03.28 |
<DATA MINING: 데이터마이닝> 참여 (2020.10.31-11.26) (0) | 2021.03.15 |