[LinuxFocus-icon]
초기화면  |  지도  |  차례  |  찾아보기

새소식 | 지난기사 모음 | 추천사이트 | LF에 대하여  
This article is available in: English  Castellano  Deutsch  Francais  Russian  Turkce  Korean  
[Photo of the Author]
정보

글쓴이 소개:

Guido는 오래전부터 리눅스를 사용해 왔다. 그의 홈페이지는 www.oche.de/~bearix/g/이다.


차례:

 

리눅스에서 직렬 라인 LCD사용하기

[Illustration]

요약:

이 기사는 리눅스 환경에서 Matrix Orbital사의 BLC2021 PC-Bay Insert serial line display 를 어떻게 사용하는 지에 대한 것이다. BLC2021은 작은 dot matrix LCD로 매우 쉽게 쓸 수 있으며 추가적인 드라이버나 controller가 필요 없다.



 

서론

여러분은 취미삼아 오래된 PC를 이용하여 거실에 두기 위한 MP3 player를 만들 수도 있고 집 안의 중앙 난방제어장치를 만들 수도 있으며 인트라넷 서버를 만들 수도 있다. 오래된 PC를 이용할 수 있는 일은 매우 다양할 것이다. 이 모든 경우에 컴퓨터는 조그만 금속 상자 안에 있고 모니터와 키보드는 없는 것이 좋을 것이다. 대신에 당신은 MP3곡을 표시해 주거 나 현재 집안의 온도를 보여주거나 당신의 서버의 상태를 보여 주는 조그마한 LCD를 사용 하는 것이 더욱 좋을 것이다.

matrix-orbital사에서 제조한 LCD는 이런 일에 적합하다.

LCD와 컴퓨터 기기는 매우 민감하다. LCD와 전원공급기를 거꾸로 연결하던지 LCD에 기준보다 높은 전압을 가하면 LCD는 부서진다.(역자주 : LCD는 아주 민감하다. 자신이 LCD module을 사서 ISA slot에 연결하고자 한다면 매우 주의해야 한다.) 우리는 이 기사에 서 BLC2021 serial line PC bay insert를 사용하려 한다. 그 이유는 설치가 매우 쉽고 여러분의 컴퓨터와 연결하는 모든 케이블이 제품과 함께 제공되기 때문이다. 여러분이 해야 하는 일은 단지 BLC2021을 작은 드라이버를 이용하여 설치하는 것이다. 제품에 들어 있는 케이블과 컨넥터는 연결하기가 매우 쉬워서 잘못 연결할 가능성이 거의 없다.

 

설치

BLC2021은 모든 필요한 케이블과 함께 동봉되어 있으며 5.25 인치 PC-베이에 맞게 되어 있 다. 당신은 BLC2021의 전원공급부분을 컴퓨터 내부 전원공급기에 연결하고 플랫 케이블을 RS-232 직렬포트에 연결하면 된다. 물론 당신이 원한다면 이 케이블을 비어있는 slot을 통해 밖으로 뽑아내어 외부 RS-232 컨넥트에 연결해도 된다. (역자주 : RS-232는 Serial interface의 일종로 PC에서 COM 포트가 이 방식을 이용하여 통신을 한다.)

Matrix-orbital은 플로피디스크로 드라이버 소프트웨어를 제공한다. 거기에는 linux에서 사용할 수 있는 lcdproc-0.3.3이 있다. 이 드라이버는 GPL을 따르며 디스크안에는 소스코드도 함께 들어있다. 그렇지만 lcdproc-0.3.3은 4줄용 LCD에 맞게 작성되었고 BLC2021은 단지 2 line만 가지고 있다. 따라서 당신은 단지 깜빡이는 화면만 볼 수 있을 것이다.
보다 최근 버전의 lcdproc은 2 line LCD도 상용할 수 있는 듯 하나 필자는 아직 테스트해 보지 않았다.

lcdproc은 주기적으로 uptime, 메모리 사용양와 같은 system information을 주기적으로 LCD에 표시하도록 작성되었다.
우리는 보다 일반적인 방법으로 LCD에 정보를 표시하는 방법에 대하여 이야기 할 것이다. LCD를 이용하는 것은 매우 쉽고 당신은 실제로 linux용으 로 만들어진 복잡한 드라이버 소프트웨어를 이용할 필요가 없다. 당신이 해야 할 것은 단지 직렬 라인을 올바로 초기화하는 것이다. 그런 후에는 심지어 쉘 스크립트를 이용하여 LCD를 제어할 수 있다. 이 기사의 남은 부분에서는 어떻게 이렇게 하는 지에 대하여 설명하겠다.

 

LCD를 사용하자!

BLC2021은 일반적인 ASCII(역자주 : 아마도 0~127까지의 code를 말하는 듯 하다.)를 직렬선을 통해 읽을 수 있다. 물론 그러기 전에 당신은 직렬 선을 초기화 해야만 한다.:

  1. mtxorb 프로그램(mtxorb-0.2.tar.gz)을 download받아서 tar zxvf mtxorb-0.2.tar.gz을 이용 하여 압축을 푼다. (몇몇 browser들은 확장자가 gz인 파일은 다운로드를 받는 동안 gunzip 을 이용하여 자동으로 압축을 푼다. 따라서 그럴 경우에는 filename을 mtxorb-0.2.tar로 바 꾸는 것을 잊지 마라. 또한 이 경우에는 tar xvf mtxorb-0.2.tar.gz라고 해야 한다.)
  2. 컴파일 한다.: cd mtxorb-0.2; make
  3. LCD가 연결되어 있는 디바이스와 소프트웨어적인 연결을 만든다.:
    cd /dev; ln -s ttyS0 lcd      (COM1일 경우)
    cd /dev; ln -s ttyS1 lcd      (COM2일 경우)
  4. mtxorb 프로그램은 여러분의 LCD에 설정된 점퍼값이 19200 buad로 설정했다고 가정한 다. 이것은 BLC2021의 공장 초기 설정값이다.
  5. serial line을 초기화 하는 mtxorb의 명령어를 사용한다.:
    mtxorb /dev/lcd

이제 LCD를 사용할 준비가 다 되었다. 아래는 매초마다 1씩 증가하는 counter로서 perl script를 이용하여 만든 예제이다.:

#!/usr/bin/perl -w
open(LCD,">/dev/lcd")||die "ERROR: can not write to /dev/lcd\n";
$|=1;
my $i=0;
while(1){
    $i++;
    print LCD chr(0xFE),"X"; # 화면을 지운다.
    print LCD "Count $i\n";
    sleep(1);
}
close LCD;

BLC2021에 명령어 집합을 쓸 수 있다. 명령어 모드로 들어가기 위해 당신은 16진 코드 FE를 LCD에 전송하고 그 후에 실제 명령 문자를 전송해야 한다. 위의 예제 에서 명령 문자 X는 LCD를 지우는 역할을 한다. 명령은 LCD와 함께 오는 조그마한 문서에 설명되어 있다. 콘트라스트를 조절하는 명령, 백 라이트를 on/off하는 명령, 사용자 정의 문자를 만드는 명령등이 있다.  

LCD에 시스템 정보를 출력해 보자.

이미 설명하였지만 LCD에 스왑 메모리 사용량, uptime, 부하와 같은 시스템 정보를 쓰는 한가지 방법은 lcdproc를 사용하는 것이다.

또다른 방법으로는 위에서 사용한 mtxorb program을 사용하고 작은 펄 스크립트를 작성하 는 것이다. 당신은 /proc/uptime, /proc/meminfo, /proc/loadavg에서 uptime, 스왑 사용량, cpu 부하정보를 각각 읽을 수 있다. lcdwriter 이라는 펄 스크립트가 이렇게 동작한다. 이것은 단지 스크립트이지만 매우 쉽게 자신의 목적에 맞게 만들 수 있고 스왑, uptime, 부하 만이 아닌 다른 목적에 맞게 쉽게 소스를 고칠 수 있다.

 

어디서 BLC2021을 구입하는가?

Mitrix orbital사는 좋은 제품을 만들고도 마케팅을 제대로 하지 못하는 전형적인 회사의 하 나로 보인다. 그들이 내게 직접 보내주기로 한 LCD는 도착하지 않았다. Matrix orbital사는 그들의 web-site에 list of vendors 를 가지고 있다. 예를들면 독일에서는 "elektronikladen.de"에서 LCD를 판매한다. 내가 그것을 e-mail로 주문한지 정확히 24시간 안에 그 물건은 내게로 배달되었다. 매우 빠른 서비스 아닌가? 물론 Vendor list는 다른 나 라의 vendor들도 포함하고 있다. BLC2021의 가격은 Euro화로 100Euro 밑이다.

 

이 기사에 대한 의견이 있습니다

각 기사는 피드백 페이지가 들어 있습니다. 피드백을 통하여 여러분은 저자에게 의견을 보내거나 다른 독자의 의견을 보실 수 있습니다.:
 피드백 페이지 

본 웹사이트는 리눅스포커스 편집팀에서 관리합니다
© Guido Socher, FDL
LinuxFocus.org

오자를 찾으셨거나 의견이 있으시면 LinuxFocus로 알려주세요
Translation information:
en -> --
en -> ko

2001-06-28, generated by lfparser version 2.16