컴퓨터 제어 자동 주행 차량 시스템
본 논문은 IBM 호환 PC의 병렬 포트를 이용해 차량을 원격 제어하고, 사전 정의된 경로를 자동으로 따라 이동하도록 설계한 자동 주행 차량 시스템을 제시한다. 펜티엄 마이크로프로세서를 탑재한 PC가 중앙 제어기로서 명령을 전송하고, 차량 측에는 모터 드라이버와 센서 인터페이스 회로가 구축되어 있다.
초록
본 논문은 IBM 호환 PC의 병렬 포트를 이용해 차량을 원격 제어하고, 사전 정의된 경로를 자동으로 따라 이동하도록 설계한 자동 주행 차량 시스템을 제시한다. 펜티엄 마이크로프로세서를 탑재한 PC가 중앙 제어기로서 명령을 전송하고, 차량 측에는 모터 드라이버와 센서 인터페이스 회로가 구축되어 있다.
상세 요약
이 연구는 저비용의 범용 PC를 실시간 제어기로 활용한다는 점에서 흥미로운 접근을 보여준다. 병렬 프린터 포트를 데이터 통신 채널로 선택한 이유는 포트가 8비트 병렬 전송을 지원하고, 하드웨어 레벨에서 직접 입출력 레지스터에 접근할 수 있어 타이밍 제어가 비교적 용이하기 때문이다. 논문에서는 포트의 데이터 핀(D0‑D7)을 차량의 모터 구동 회로와 연결하고, 제어 신호(스텝, 방향, 속도)를 PWM 혹은 디지털 레벨 변환을 통해 전달한다는 설계가 상세히 기술된다.
차량 측 하드웨어는 DC 모터 두 개와 스텝 모터 하나로 구성되어 전진·후진·좌·우 회전을 구현한다. 모터 드라이버는 L293D와 같은 H‑bridge 회로를 사용해 전류를 증폭하고, 전압 레벨을 PC 출력에 맞추기 위해 트랜지스터와 다이오드 보호 회로가 삽입된다. 또한, 경로 추적을 위한 광학 또는 초음파 거리 센서가 장착되어 있어, 차량이 장애물을 감지하면 인터럽트 기반의 비상 정지 명령을 PC에 전송한다.
소프트웨어 측면에서는 MS‑DOS 환경에서 실행되는 C 언어 기반 프로그램이 제어 로직을 담당한다. 프로그램은 사용자가 입력한 경로 데이터를 좌표 배열 형태로 저장하고, 이를 순차적으로 읽어 각 구간에 맞는 모터 구동 명령을 병렬 포트에 전송한다. 명령 포맷은 1바이트 명령 코드와 1바이트 파라미터(속도 혹은 회전 각도)로 구성되어, 간단한 프로토콜을 통해 신뢰성을 확보한다. 또한, 실시간 키보드 입력을 감지해 수동 조작 모드로 전환할 수 있도록 하여 인간‑기계 협업이 가능하도록 설계되었다.
시스템 검증에서는 사전 정의된 사각형, 원형, 지그재그 경로를 따라 차량이 정확히 이동하는지를 실험하였다. 결과는 평균 위치 오차가 2 cm 이하이며, 속도 변동은 5 % 미만으로 보고되었다. 그러나 병렬 포트의 전송 속도가 제한적이며, 인터럽트 처리와 타이머 정확도가 낮아 고속 주행이나 복잡한 경로에서는 오차가 누적될 가능성이 있다. 또한, 전원 공급이 PC와 차량 사이에 공유되지 않아 전압 강하 문제가 발생할 수 있다.
이 논문은 저가 하드웨어와 기존 PC 인터페이스를 활용해 교육용 혹은 프로토타입 수준의 자동 주행 시스템을 구현할 수 있음을 입증한다. 향후에는 USB‑UART 변환기나 마이크로컨트롤러 기반의 전용 제어 보드로 대체하여 전송 대역폭과 실시간성을 개선하고, 라이다·비전 센서를 추가해 자율 주행 수준을 한 단계 끌어올릴 수 있을 것으로 기대된다.
📜 논문 원문 (영문)
🚀 1TB 저장소에서 고화질 레이아웃을 불러오는 중입니다...