검안기 프로그램을 만들었다.
기존에 있는 프로그램은 지금 기계와 여러가지 맞지 않는 점이 있어서 약 90% 정도는 새로 작성했다.
DSP TMS320VC33 에서 C를 이용해서 GUI와 영상분석등을 처리하고, ALTERA를 이용해서 SRAM, CCD, LED, 광학부 촛점 조절을 위한 스테핑 모터, 화면출력을 위한 LCD화면 등을 구동했다.
검안기는 동공을 향해 발사한 빛이 망막에 반사되어 나왔을 때 얼마나 굴절 되었나는 측정해서 간접적으로 수정체의 굴절률을 측정하는 장비이다.
이론 적으로는 명료하지만
- 인체는 항상 변화하고
- 기계를 사용하는 사람에 따라 측정 방법이 다르고
- 고정밀 기계이다 보니 기계 온도가 1도만 변해도 열 변형에 의해서 측정치가 달라진다.
1. 인체가 변화하는 점은 먼 거리에 있는 듯한 아주 작은 물체를 보여 줌으로서 촛점을 고정시키고 Out-focusing 을 이용해서 눈의 긴장을 풀어주는 것으로 어느 정도 해결을 하고,
2. 측정 방법이 다른 점은 안구와 검안기 렌즈와의 거리를 측정해서 보정해 주는 방법으로 해결했고,
3. 온도편차는 기계의 온도를 측정시마다 계산해서 미리 주어진 실험치에 의해 측정결과를 보정해 주는 방법으로 해결했다.
여러 가지 방법을 강구 했으나 기계의 예열이 덜 되었을 경우나 초고도 근시/난시의 경우에는 1디옵터(diopter)정도 오차가 발생했다.
각막의 곡률을 계산하기 위해 링 형태의 빛을 눈동자에 비춘 사진
각막곡률은 콘택트렌즈 처방 등에 사용된다.
동공으로 들어간 빛이 망막에 반사되어 나온 사진.
6개의 빛의 위치로 타원을 만들어서 난시정도와 시력을 계산한다.
타원의 지름이 크면 근시, 작으면 난시, 이심률이 0이면 정시이고 그렇지 않으면 난시 정도와 난시축을 계산할 수 있다.
온도변화에 따른 타원반지름 크기변화 그래프
DSP 에 사용하지 않는 I/O 핀이 하나 있어서 아래와 같이 간이 A/D 컨버터를 만들었다.
CPU 쪽을 OUT 으로 한 다음 1을 보내면 Capacitor 에 5V가 충전된다. 충전이 완료된 후 CPU 쪽을 IN 으로 바꾼 다음 Capacitor 가 방전되어 입력 값이 1에서 0으로 변하는 시점을 알아본다.
