Home Map Index Search News Archives Links About LF
[Top bar]
[Bottom bar]
Эта заметка доступна на: English  Castellano  Deutsch  Francais  Russian  Turkce  Korean  
[Фото автора]
автор

Об авторе:

Гвидо давно является сторонником Linux. Его домашняя страница, посвященная этой ОС находится на www.oche.de/~bearix/g/.

Содержание:

Использование ЖК-дисплея с последовательным интерфейсом под Linux

[Иллюстрация]

Резюме:

Статья посвящена использованию встраиваемого дисплея BLC2021 с последовательным интерфейсом фирмы Matrix Orbital. BLC2021 - матричный ЖК-дисплей, несложный в управлении и не требующий для связи с компьютером дополнительных контроллеров и сложных драйверов.



 

Введение

Возможно на досуге вы захотите превратить свой старенький компьютер в домашний МР3-плеер, контроллер системы домашнего отопления, интранет сервер или еще что-то на что хватит фантазии. В этих случаях будет удобно ограничиться только системным блоком и отказаться от использования громоздкого монитора и клавиатуры. Вместо этого можно воспользоваться небольшим ЖК-дисплеем, который покажет название песни проигрываемой МР3-плеером, текущую температуру системы отпления или состояние сервера.

ЖК-дисплеи фирмы matrix-orbital идеальны для таких приложений.

ЖК и компьютерная электроника требуют аккуратного обращения, любая ошибка при подключении может привести к выходу их из строя. Рассматриваемый в этой статье дисплей BLC2021 очень прост в установке и поставляется со всеми необходимыми кабелями. Все что вам понадобиться при установке его в компьютер это отвертка. Таким образом риск при установке сведен до минимума.

 

Установка

BLC2021 поставляется со всеми необходимыми для установки аксессуарами и легко размещается в слоте 5"дисковода. Необходимо только подать питание от внутренней шины компьютера и подключить его с помощью плоского кабеля к коммуникационному ( RS232 ) порту компьютера. Одним из возможных способов это вывести кабель сзади наружу через свободный слот компьютера и подключить к разъему коммуникационного порта.

Matrix-orbital включает в комплект поставки дисплея дискету с программным обеспечением. На дискете находится программа lcdproc-0.3.3 для Linux. Программа распространяется по GPL и поэтому на диске найдете также исходные тексты. К сожалению программа написана для 4х строчных дисплеев, в то время как BLC2021 является 2х строчным. Поэтому вы увидите только мерцающий дисплей.
Возможно более ранние версии программы работали с 2х строчными дисплеями, однако я это не проверял.

Назначение программы lcdproc - периодическое отображение системной информации, такой как время включения, размер используемой памяти и т.д.
В статье мы не будем пользоваться lcdproc, а познакомимся с общими принципами вывода информации на дисплей. Работа с дисплеем довольно проста и не требует написания специализированных драйверов для Linux. Все что нужно, это правильно инициализировать коммуникационный порт и после этого с ним можно работать из скриптов оболочки Linux. Ниже рассказано как это сделать.

 

Работа с дисплеем

BLC202 может принимать по коммуникационному каналу обычные ASCII символы, но предварительно его (коммуникационный канал) необходимо инициализировать:

  1. Скачайте программу mtxorb(mtxorb-0.2.tar.gz), распакуйте ее командой tar zxvf mtxorb-0.2.tar.gz ( обратите внимание, что некоторые браузеры распаковывают архив с помощью "gunzip" во время пересылки, однако забывают переименовать его в mtxorb-0.2.tar, в таких случаях при распаковке попробуйте использовать команду tar xvf mtxorb-0.2.tar.gz).
  2. Откомпилируйте программу: cd mtxorb-0.2; make
  3. Создайте ссылку на устройство, к которому подключен дисплей:
    cd /dev; ln -s ttyS0 lcd     ( для первого коммуникационного канала, COM1 )
    cd /dev; ln -s ttyS1 lcd     ( для второго коммуникационного канала, COM2 )
  4. Для работы с программой mtxorb необходимо, чтобы на дисплее с помощью перемычек был настроен на работу со скоростью 19200 бод. Это значение устанавливаемое по-умолчанию производителем.
  5. Теперь для инициализации коммуникационного канала выполните команду:
    mtxorb /dev/lcd

Дисплей готов к работе. В качестве примера приведем небольшую программу написанную на Перл. Программа отображает счетчик увеличивающий свое значение каждую секунду:

#!/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"; # clear the display
    print LCD "Count $i\n";
    sleep(1);
}
close LCD;

BLC2021 обладает ограниченным набором команд. Для того, чтобы перевести дисплей в командный режим необходимо послать ему символ с номером Hex FE и затем передать команду. Команда Х служит для очистки дисплея. Все возможные команды описаны в небольшом руководстве прилагаемом к ЖК-дисплею. В число команд дисплея входят команды управления контрастностью, включением/выключением подсветки и создания собственных символов.  

Отображение на дисплее системной информации

Как уже выше было сказано для отображения некоторой системной информации, такой например как размер используемой памяти и время включения, можно использовать программу lcdproc.

Другой способ использовать mtxorb и самому писать программы на Перл. Время включения можно найти в /proc/uptime, информацию об использовании памяти в /proc/meminfo и загрузку процессора в /proc/loadavg. Все это делает программа lcdwriter(скачать), предлагаемая в качестве примера. Так как программа написана на Перл, в ней легко модифицировать и добавить необходимые вам для отображения параметры.

 

Где купить BC2021?

Matrix Orbital являет собой типичный пример компании выпускающей хороший продукт, но при этом слабо поставленным сбытом. ЖК-дисплей, который они хотели мне прислать так до меня и не дошел. Однако на их веб-сайте в списке поставщиков есть представители Германии ("elektronikladen.de"). Можно сделать по e-mail и в моем случае заказ был доставлен в мой почтовый ящик в течение 24х часов. Список поставщиков конечно включает адреса представителей и других стран. Цена BLC2021 не превышает 100 евро.


Webpages maintained by the LinuxFocus Editor team
© Guido Socher
LinuxFocus.org 2000

Click here to report a fault or send a comment to Linuxfocus
Translation information:
en -> --
en -> ru

2000-07-08, generated by lfparser version 1.5