본문내용
1. 키패드를 이용한 비밀번호 입력기
1.1. 키패드(KeyPAD)
1.1.1. 정적 인터페이스(Static Interface) 방식
정적 인터페이스(Static Interface) 방식은 키를 포트에 일대 일로 연결하여 입력을 검사하는 방식이다. 이 방식은 하드웨어 구성이 간편하고 소프트웨어 구현이 쉬운 장점이 있다. 그러나 많은 키 입력이 필요할 때 키의 개수 만큼의 포트를 사용하기 때문에 포트 사용이 비효율적이다.
키패드(KeyPAD)에서 정적 인터페이스 방식을 사용하면 각 키에 대응하는 포트가 있어 어떤 키가 눌렸는지 확인할 수 있다. 마이크로컨트롤러의 GPIO 포트를 이용하여 키패드를 구현할 수 있으며, 키 입력을 검출하는 방식이 단순하다. 이러한 장점으로 인해 정적 인터페이스 방식은 비교적 간단한 키패드 구현에 많이 사용된다.
그러나 키의 수가 증가하면 포트 사용이 늘어나 비효율적이 될 수 있다. 따라서 더 많은 키를 사용해야 하는 경우 동적 인터페이스 방식을 고려하는 것이 좋다. 동적 인터페이스 방식은 키 스위치를 매트릭스 형태로 구성하여 출력상태에 따른 입력 값을 비교하여 키 입력을 판별한다. 적은 포트로 여러 개의 키를 제어할 수 있지만 눌린 스위치의 검출 방법이 좀 복잡해진다.
정적 인터페이스 방식과 동적 인터페이스 방식은 각각 장단점이 있으며, 구현하고자 하는 시스템의 요구사항에 따라 적절한 방식을 선택해야 한다. 일반적으로 동적 인터페이스 방식이 더 좋다고 간주되어 왔지만, 실제로 사용성 측면에서는 정적 인터페이스 방식이 더 좋을 수 있다는 연구 결과도 있다. 사용자의 경험과 선호도에 따라 두 방식의 사용성이 달라질 수 있기 때문이다.
종합하면, 정적 인터페이스 방식은 하드웨어와 소프트웨어 구현이 간단하지만 포트 사용이 비효율적인 반면, 동적 인터페이스 방식은 포트 사용이 효율적이지만 구현이 복잡하다. 따라서 사용 환경과 요구사항에 따라 적절한 방식을 선택해야 할 것이다.
1.1.2. 동적 인터페이스(Dynamic Interface) 방식
동적 인터페이스(Dynamic Interface) 방식은 키 스위치를 매트릭스 형태로 구성하여 출력상태에 따른 입력 값을 비교하여 키 입력을 판별하는 방법이다. 이 방식은 적은 포트로 여러 개의 키를 제어할 수 있다는 장점이 있다. 그러나 눌린 스위치의 검출 방법이 정적 인터페이스 보다 복잡하다는 단점이 있다.
동적 인터페이스 방식에서 키 스위치의 검출 방법을 구체적으로 살펴보면 다음과 같다. 키패드 모듈의 KEYPAD_R0~KEYPAD_R3에 차례대로 "1000", "0100", "0010", "0001"을 인가해 가면서, KEYPAD_C0~KEYPAD_C2 값을 보면 어떤 키가 눌러졌는지 확인할 수 있다. 예를 들어, KEYPAD_R0~KEYPAD_R3가 "1000"일 때 KEYPAD_C0~KEYPAD_C2가 "100"이면 S1 키가 눌린 것을 알 수 있다. 이처럼 동적 인터페이스 방식은 출력 신호의 상태에 따라 입력 값을 판단하기 때문에 적은 수의 포트를 사용하면서도 다양한 키 입력을 처리할 수 있다.
하지만 동적 인터페이스 방식이 정적 인터페이스 보다 항상 좋다고 볼 수는 없다. 실제로 사용성 측면에서 비교한 연구에 따르면, 정적 인터페이스를 오랫동안 사용해온 사용자들은 동적 인터페이스의 사용성이 오히려 낮다고 평가했다. 이는 사용자의 경험과 친숙도가 사용성에 큰 영향을 미치기 때문으로 해석된다. 따라서 키패드 인터페이스 방식을 선택할 때는 사용 환경과 사용자 특성을 종합적으로 고려해야 한다.
1.2. 실험 이론
키패드의 정적 인터페이스(Static Interface) 방식과 동적 인터페이스(Dynamic Interface) 방식은 각각 고유한 장단점을 가지고 있다.
정적 인터페이스(Static Interface) 방식은 키를 포트에 일대 일로 연결하여 입력을 검사하는 방식이다. 이 방식은 하드웨어 구성이 간편하고 소프트웨어 구현이 쉬운 장점이 있다. 그러나 많은 키 입력이 필요할 때는 키의 개수 만큼의 포트를 사용하기 때문에 포트 사용이 비효율적이다.
반면에 동적 인터페이스(Dynamic Interface) 방식은 키 스위치를 매트릭스 형태로 구성하여 출력상태에 따른 입력 값을 비교하여 키 입력을 판별하는 방법이다. 이 방식은 적은 포트로 여러 개의 키를 제어할 수 있다는 장점이 있다. 그러나 눌린 스위치의 검출 방법이 좀 복잡해진다는 단점이 있다.
일반적으로 동적 인터페이스 방식이 정적 인터페이스 방식보다 좋다고 간주되어 왔다. 하지만 동적 인터페이스가 정적 인터페이스보다 더 좋다는 것을 보여주는 연구는 흔치 않다. 특히, 사용성 측면에서 이러한 연구를 진행한 사례는 거의 발견하기 어려웠다.
본 연구에서는 모바일 사용자 인터페이스를 사용함에 있어 동적 인터페이스(Dynamic interface)와 정적 인터페이스(Static interface)의 사용성 차이를 비교 분석하여, 동적 인터페이스의 사용성이 정적 인터페이스의 사용성 보다 좋은 것은 아님을 밝혀낼 수 있었다. 다만, 실험 참여자들이 정적 인터페이스를 오랜 기간 사용해 온 특성이 반영되었다고 볼 수 있다. 즉, 사용자의 경험이 실험 결과에 영향을 미친 것이다.
1.3. 실습: KeyPAD를 이용한 비밀번호입력기
1.3.1. 실습 개요
키패드(KeyPAD)를 이용하여 자동문 개폐기 등에 사용되는 비밀번호 입력기를 만드는 것이 이번 실습의 목적이다. 키패드 모듈과 TEXT LCD를 사용하여 프로그램을 작성하며, 편의상 4자리 수의 비밀번호를 사용하기로 한다. 이를 통해 키패드의 동작 원리를 이해하고, ATmega128의 GPIO를 이용한 키패드 데이터 입력 방법...