Подключение VFD дисплея Futaba GP1183A01B к Raspberry Pi

в 7:44, , рубрики: DIY, diy или сделай сам, Raspberry Pi, vfd, метки: , ,

Подключение VFD дисплея Futaba GP1183A01B к Raspberry Pi

Для подключения дисплея 16x2 символов к своей Raspberry Pi я выбрал VFD Futaba GP1183A01B. Чем он хорош? Во-первых, это вымирающий вид, дающий «теплый ламповый» люминесцентный свет приятного зеленого цвета (он правда зеленый, это что-то фотоаппарат врет). Во-вторых, для коммуникации он использует последовательный протокол, а значит его можно подключить всего тремя проводами, без использования каких-либо дополнительных приспособлений, а коммуникация с ним будет идти через /dev/tty. В-третьих, питания ему надо как раз 5 вольт, которые уже есть (и даже хватает, правда не всегда).

Я его подключил три года назад, но статью сел писать сейчас — отвалился от дисплея сигнальный провод и я заодно решил рассказать про этот дисплей. Все-таки двольно легко подключается. И они еще продаются!

Подключение к Raspberry

Подключение VFD дисплея Futaba GP1183A01B к Raspberry Pi

Подключаемся через пины GPIO, расположенные слева вверху платы. Нас интересует верхний ряд — первый пин (+5V), третий (GND) и четвертый (TX). По стандартной нумерации это 2, 6 и 8 пины.
Мощности на пине +5V хватает впритык. Если на Raspberry Pi использовать видео, а не HDMI, то VFD не включится. Можно подвести +5V отдельно, например от USB-хаба от которого питается «малинка» — взять красный и черный (GND) провода (обрезать ненужный USB-кабель), не забыв замкнуть черный с GND от GPIO. У меня сейчас так и сделано.

Подключение к VFD

Подключение VFD дисплея Futaba GP1183A01B к Raspberry Pi

Сверху у дисплея есть ряд контактных отверстий для пайки. Нас интересуют левые три в правом блоке из шести отверстий. Первое (+5V), второе (RX), третье (GND). Припаеваем!

Настройка VFD

Подключение VFD дисплея Futaba GP1183A01B к Raspberry Pi

На обратной стороне дисплея имеется четыре перемычки, позволяющие настроить скорость и режим работы. Замыкаем перемычку 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
Настройка userland

Чтобы после загрузки ничего не выводилось на VFD без нашего участия в файле /etc/inittab надо закомментировать последнюю строчку:

#T0:23:respawn:/sbin/getty -L ttyAMA0 9600 vt100
Фан

Для вывода на экран можно использовать команду echo, например:

echo "Privet, Habrahabr!" > /dev/ttyAMA0

Возможности экрана довольно велики, можно почитать спецификацию (поискать в Гугле), но я приведу некоторые команды, которыми сам пользуюсь:

очистить экран и поместить курсор в левый верхний угол

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 для вывода на этот экранчик всяческой информации, например, RaspBMC может через LCDProc выводить на него информацию о текущем пункте меню, состояние воспроизведения. Настройка на RaspBMC потребовала написания драйвера для LCDProc, но это было совсем нетрудно (было удалено четыре строки, рисующие рамку из стандартного драйвера text) если будет возможность, напишу об этом потом. На фотографиях смазанный текст, так как LCDProc активно использует бегущую строку.

Подключение VFD дисплея Futaba GP1183A01B к Raspberry Pi
Подключение VFD дисплея Futaba GP1183A01B к Raspberry Pi

К сожалению, руки пока не дошли до русского языка, но он там есть (CP866)!

Автор: iddi

Источник

Поделиться

* - обязательные к заполнению поля