- PVSM.RU - https://www.pvsm.ru -
Для подключения дисплея 16x2 символов к своей Raspberry Pi я выбрал VFD Futaba GP1183A01B. Чем он хорош? Во-первых, это вымирающий вид, дающий «теплый ламповый» люминесцентный свет приятного зеленого цвета (он правда зеленый, это что-то фотоаппарат врет). Во-вторых, для коммуникации он использует последовательный протокол, а значит его можно подключить всего тремя проводами, без использования каких-либо дополнительных приспособлений, а коммуникация с ним будет идти через /dev/tty. В-третьих, питания ему надо как раз 5 вольт, которые уже есть (и даже хватает, правда не всегда).
Я его подключил три года назад, но статью сел писать сейчас — отвалился от дисплея сигнальный провод и я заодно решил рассказать про этот дисплей. Все-таки двольно легко подключается. И они еще продаются!
Подключаемся через пины GPIO, расположенные слева вверху платы. Нас интересует верхний ряд — первый пин (+5V), третий (GND) и четвертый (TX). По стандартной нумерации это 2, 6 и 8 пины.
Мощности на пине +5V хватает впритык. Если на Raspberry Pi использовать видео, а не HDMI, то VFD не включится. Можно подвести +5V отдельно, например от USB-хаба от которого питается «малинка» — взять красный и черный (GND) провода (обрезать ненужный USB-кабель), не забыв замкнуть черный с GND от GPIO. У меня сейчас так и сделано.
Сверху у дисплея есть ряд контактных отверстий для пайки. Нас интересуют левые три в правом блоке из шести отверстий. Первое (+5V), второе (RX), третье (GND). Припаеваем!
На обратной стороне дисплея имеется четыре перемычки, позволяющие настроить скорость и режим работы. Замыкаем перемычку J1 для того, чтобы скорость была 9600 Бод. В принципе он тянет и 115200, но там начинают пробиваться помехи.
На используемый нами пин идет вывод сообщений ядра при загрузке (сюрприз!). Чтобы их было видно, надо настроить скорость последовательной консоли — в файле /boot/cmdline.txt надо определить параметр console=ttyAMA0,9600. Файл может быть таким:
dwc_otg.lpm_enable=0 console=ttyAMA0,9600 kgdboc=ttyAMA0,9600 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
Чтобы после загрузки ничего не выводилось на VFD без нашего участия в файле /etc/inittab надо закомментировать последнюю строчку:
#T0:23:respawn:/sbin/getty -L ttyAMA0 9600 vt100
Для вывода на экран можно использовать команду echo, например:
echo "Privet, Habrahabr!" > /dev/ttyAMA0
Возможности экрана довольно велики, можно почитать спецификацию (поискать в Гугле [1]), но я приведу некоторые команды, которыми сам пользуюсь:
очистить экран и поместить курсор в левый верхний угол
echo -en "x0C" > /dev/ttyAMA0
от минимальной до максимальной яркости
echo -en "x1Fx58x01" > /dev/ttyAMA0
echo -en "x1Fx58x02" > /dev/ttyAMA0
echo -en "x1Fx58x03" > /dev/ttyAMA0
...
echo -en "x1Fx58x08" > /dev/ttyAMA0
выключить дисплей
echo -en "x1Fx28x61x40x00" > /dev/ttyAMA0
включить дисплей
echo -en "x1Fx28x61x40x01" > /dev/ttyAMA0
Можно использовать LCDProc [2] для вывода на этот экранчик всяческой информации, например, RaspBMC может через LCDProc выводить на него информацию о текущем пункте меню, состояние воспроизведения. Настройка на RaspBMC потребовала написания драйвера для LCDProc, но это было совсем нетрудно (было удалено четыре строки, рисующие рамку из стандартного драйвера text) если будет возможность, напишу об этом потом. На фотографиях смазанный текст, так как LCDProc активно использует бегущую строку.
К сожалению, руки пока не дошли до русского языка, но он там есть (CP866)!
Автор: iddi
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/diy/58861
Ссылки в тексте:
[1] поискать в Гугле: https://www.google.ru/?q=gp1183a01b+datasheet
[2] LCDProc: http://lcdproc.omnipotent.net
[3] Источник: http://habrahabr.ru/post/219251/
Нажмите здесь для печати.