Raspberry Pi2 modèle B avec un afficheur VFD MEDION M18ST05A
Utiliser une carte Arduino pour piloter un afficheur VFD M18ST05A avec un Raspberry c’est bien, mais il est possible de faire plus court moyennant une p’tite adaptation électronique.
En effet le port GPIO du Raspberry utilise du 3,3V mais notre afficheur du 5V, aïe !
Mais avant tout, il faut «LIBEREEEER DELIVREEEER» le port série du Raspberry.
Comment faire ? Un p’tit tour sur cette page vous aidera ainsi que votre moteur de recherche favori.
Ce que vous voyez sur la photo, c’est mon serveur de musique, un Raspberry Pi B surmonté d’une carte son. (car la sortie son à la prise jack du Raspberry est comment dire ?… BEEEURK !)

Le schéma du circuit ci-dessous, permet de convertir le 3,3V de la sortie UART0_TXD, de la liaison série du raspberry, en 5V réclamé par l’afficheur.
Le signal série est appliqué à la base de Q1 via R1 ; Q1 étant alimenté par du 5V (celui du Raspberry ici), nous retrouvons le signal en 5V sur son collecteur, mais inversé !
Q2 a pour rôle d’inverser de nouveau le signal pour tout remettre dans l’ordre.

Le code Python suivant permet d’utiliser le port série du Raspberry pour tester notre montage avec notre afficheur.
#!/usr/bin/env python
# -*- coding: utf-8 _*
# Import des modules
import serial
import time
ser = serial.Serial(
port='/dev/ttyAMA0',
baudrate = 9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=0.1)
# le programme redemarre toutes les 3s
while True:
print("Effacement des lignes")
commande = "%s%s" % (chr(0x1B),chr(0x20)) # sélectionne les deux lignes
ser.write(commande) # envoie la commande
commande = "%s%s" % (chr(0x1B),chr(0x50)) # efface les lignes sélectionnées
ser.write(commande) # envoie la commande
time.sleep(2)
print("Preparation de l'envoi")
StrSend = "Hello word!"
ser.write(StrSend)
print("Envoi OK: " + StrSend)
time.sleep(2)L’idée de tout ça, rendre mon p’tit serveur plus bavard :-), afficher le titre en cours de lecture, le niveau du volume sonore, les titres, le temps restant etc.