광마우스, 유리 위서 왜 안 될까?

조회수 2019. 10. 8. 10:09 수정
글자크기 설정 파란원을 좌우로 움직이시면 글자크기가 변경 됩니다.

이 글자크기로 변경됩니다.

(예시) 다양한 분야의 재밌고 유익한 콘텐츠를 카카오 플랫폼 곳곳에서 발견하고, 공감하고, 공유해보세요.

이른바 '아재'들은 이거 알죠?


출처: pixabay
볼마우스!

볼마우스는 플로피 디스켓, 카세트 테이프와 함께 '아재 인증'의 상징이 되지 않았나 싶습니다. 젊은 에디터인 저는 잘 모르겠습니다. 저 공을 만지면 얼마나 묵직하고 보들보들한지 전혀 상상이 가질 않네요. <이웃집과학자> 편집장은 "저 볼에 때가 자주 끼기 때문에 수시로 볼에 낀 먼지를 제거해줘야 했다"며 우수에 젖었습니다.

이제 우리의 오른손은 볼에 먼지 낄 걱정 없고 훨씬 더 잘 동작하는 광마우스가 지배하게 됐는데요. 그런데 한 가지 아쉬운 점이 있습니다. 볼마우스는 유리판 위에서도 잘 작동했는데, 광마우스를 쓰면서 그럴 수 없게 됐거든요. 왜 광마우스는 유리 위에서는 작동하지 않는 걸까요?

광마우스 원리는?
출처: Sensors and Actuators A
광마우스의 구조.

위 그림은 2006년 광마우스에 대해 다룬 논문 <The optical mouse for indoor mobile robot odometry measurement>에서 가져왔습니다. 감이 오시나요? 하나씩 짚어볼게요.

광마우스는 LED, 디지털 신호처리 연산기(DSP), 그리고 작은 카메라(렌즈+CMOS센서)로 구성돼요. 단순하게 말하면 LED에서 빛을 쏴서 바닥에 그림자를 만든 뒤, 그 그림자를 카메라로 찍어 분석하는 건데요. 

광마우스 바닥!

광마우스의 바닥에는 이런 장치가 붙어있습니다. 붉은 LED 앞에 동그란 렌즈가 보이네요. LED는 빛을 뒤에서 앞으로 비스듬히 쏩니다. 마우스를 앞으로 기울여야 붉은색 빛으로 바닥을 겨냥할 수 있어요.

이과 얼굴 조준!

이렇게 앞으로 비스듬히 쏜 빛은 바닥에 그림자를 만들어요. 그 그림자는 앞부분에 있는 카메라 렌즈로 들어가고 CMOS 센서에서 전기신호로 바뀝니다. 작은 디지털 카메라로 바닥의 그림자를 찍는다고 생각하시면 돼요.

이렇게 얻은 이미지는 신호처리 장치(DSP)에서 콘트라스트를 적당히 올립니다. 따라서 그림자는 검은점과 흰점으로 바뀌게 돼요. 마치 복사기를 통과한 이력서 사진처럼요.

원래는 그림자가 자연스러운 그라데이션이었던 컬러 사진인데, 복사기를 통과하니 검은점과 흰점만으로 바뀐 거 보이시죠? 마우스에서도 이 정도로 콘트라스트를 조정한다고 생각하시면 됩니다. 그리고 이 신호를 0과 1로 바꿔서 전송해요.

이동을 분석하자!

마우스 안 카메라가 얻은 사진은 매우 간단합니다. 16x16~24x24 픽셀이거든요. 아래 그림은 16x16픽셀로 그린 제 마음인데요. 처리할 신호의 양이 많지는 않아보이죠?

이웃님들 ㅅ...사탕드실래요

마우스 안 카메라는 초당 1,000여장까지도 사진을 찍습니다. 만약 마우스가 이동한다면 어떨까요? 바닥 무늬는 반대 방향으로 이동하겠죠? 따라서 점이 이동합니다. 광마우스는 이 이동을 쫒아서 마우스의 이동 방향을 분석하는 거에요.

초기 광마우스들은 '전용패드'를 사용했어야 했다고 합니다. 그리고 전용패드에는 마우스가 인식할 수 있는 일종의 '지도'가 그려져 있어 이를 통해 분석했다고 하네요. 지금은 아무 바닥이나 가능하지만요. 아, 유리는 빼고요.

유리 바닥은 못 쓰겠구나

이제 유리에서는 왜 안되는지 감이 잡히시나요? 유리와 같은 맨질맨질한 면은 바닥에 그림자를 만들 수 없어요. 따라서 바닥의 이미지를 마우스가 제대로 얻을 수 없습니다. 따라서 유리 위에서 움직이면 광마우스가 움직이지 않거나 커서가 이상한 데로 튀어 다니죠. 도움이 되셨나요?

이 콘텐츠에 대해 어떻게 생각하시나요?