- Composants requis
- Schéma
- Fabrication de PCB pour Raspberry Pi RGB LCD HAT avec EasyEDA
- Calcul et commande d'échantillons de PCB en ligne à l'aide d'EasyEDA
- Configuration Raspberry Pi pour LCD Hat
- Code Python pour Raspberry Pi LCD HAT
- Test du HAT LCD Raspberry Pi RGB
Les chapeaux Raspberry Pi sont les mêmes que les boucliers pour Arduino, ils peuvent s'adapter directement sur le dessus du Raspberry Pi et ne nécessitent aucune connexion supplémentaire. Ici, nous allons construire un chapeau LCD RVB pour Raspberry Pi sur PCB. Ce LCD Hat se compose d'un module LCD 16x2, de cinq commutateurs et de trois LED NeoPixel. Ici, les commutateurs sont utilisés pour changer le texte à l'écran et les LED NeoPixel sont utilisées comme indicateurs. Ces commutateurs et Neo Pixels peuvent être programmés en fonction d'exigences telles que les commutateurs peuvent être utilisés pour afficher des valeurs de capteur telles que la température, l'humidité, etc. et les pixels Neo peuvent être utilisés pour afficher un état comme le rouge pour indiquer une erreur et le vert lors de la réception de certaines données.
Ici, nous utiliserons le logiciel en ligne EasyEDA pour concevoir le circuit et le PCB de ce Pi HAT, et JLCPCB pour commander les PCB.
Composants requis
- Raspberry Pi 4
- Module d'affichage LCD 16 * 2
- LED néo-pixel (3)
- Condensateurs
- Commutateurs (5)
Schéma
Le schéma de circuit complet pour Raspberry Pi RGB LCD HAT est illustré ci-dessous. Le schéma a été dessiné à l'aide d'EasyEDA. Comme vous pouvez le voir, nous interfaçons un module LCD 16x2, 3 LED NeoPixel et 5 commutateurs avec Raspberry Pi. Un connecteur est également utilisé pour activer ou désactiver les voyants NeoPixel.
Fabrication de PCB pour Raspberry Pi RGB LCD HAT avec EasyEDA
Lors de la conception du PCB pour Raspberry Pi RGB LCD HAT, la partie la plus difficile était d'obtenir la bonne empreinte. Si les dimensions vont mal, les composants ne rentreront pas sur le PCB. Mais assez chanceux, EasyEDA fournit des empreintes pour presque tous les composants du marché. Cela est dû à sa vaste communauté d'utilisateurs où les utilisateurs créent des empreintes et les mettent à la disposition du public pour les utiliser dans leurs projets.
EasyEDA est un outil EDA en ligne que j'ai déjà utilisé à plusieurs reprises et que j'ai trouvé très pratique à utiliser car il contient une bonne collection d'empreintes et il est open-source. Après avoir conçu le PCB, nous pouvons commander les échantillons de PCB par leurs services de fabrication de PCB à faible coût - JLCPCB. Ils offrent également des services d'approvisionnement en composants où ils ont un stock important de composants électroniques, et les utilisateurs peuvent commander les composants nécessaires avec la commande de PCB.
Lors de la conception des circuits et des PCB, vous pouvez également rendre votre circuit et vos conceptions de PCB publics afin que d'autres utilisateurs puissent les copier ou les modifier et puissent profiter de votre travail, nous avons également rendu public cette conception de chapeau LCD Pi RVB, vérifiez ci-dessous lien:
- https://easyeda.com/CircuitDigest/Pi-RGB-LCD-HAT
Vous pouvez afficher n'importe quel calque (haut, bas, topsilk, bas en soie, etc.) du PCB en sélectionnant le calque dans la fenêtre «Calques». En dehors de cela, ils fournissent également une vue du modèle 3D du PCB sur son apparence après la fabrication. La capture d'écran de la couche supérieure et de la couche inférieure du HAT LCD ressemblerait à ceci:
Calcul et commande d'échantillons de PCB en ligne à l'aide d'EasyEDA
Après avoir terminé la conception de ce CHAPEAU LCD PI RGB, vous pouvez commander le PCB via JLCPCB.com. Pour commander le PCB auprès de JLCPCB, vous avez besoin d'un fichier Gerber. Vous pouvez télécharger le fichier Gerber à partir du lien ci-dessous:
- Fichier Gerber pour Raspberry Pi RGB LCD Hat
Pour générer les fichiers Gerber du PCB, cliquez simplement sur le bouton Générer le fichier de fabrication sur la page de l'éditeur EasyEDA, puis téléchargez le fichier Gerber à partir de là, ou cliquez sur Commander à JLCPCB comme indiqué dans l'image ci-dessous. Cela vous redirigera vers JLCPCB.com, où vous pourrez sélectionner le nombre de PCB à commander, le nombre de couches de cuivre dont vous avez besoin, l'épaisseur du PCB, le poids du cuivre, la couleur du PCB et d'autres paramètres du PCB, comme l'image ci-dessous:
Après avoir cliqué sur le bouton `` Commander chez JLCPCB '' , vous serez redirigé vers le site Web de JLCPCB, où vous pouvez commander le PCB à un prix très bas, qui est de 2 $. Leur temps de construction est également très inférieur, soit 48 heures avec une livraison DHL de 3 à 5 jours. Vous recevrez vos PCB dans la semaine suivant la commande.
Après avoir commandé le PCB, vous pouvez vérifier la progression de la production de votre PCB avec la date et l'heure. Vous pouvez le vérifier en allant sur la page Compte et en cliquant sur le lien "Progression de la production" sous le PCB comme indiqué dans l'image ci-dessous.
Après quelques jours de commande de PCB, j'ai obtenu les échantillons de PCB dans un excellent emballage, comme le montrent les images ci-dessous.
Après vous être assuré que les traces et les empreintes étaient correctes. J'ai procédé à l'assemblage du PCB. La carte complètement soudée ressemble à celle ci-dessous:
Configuration Raspberry Pi pour LCD Hat
Avant de commencer la programmation, le Raspberry Pi, mettez d'abord à jour le Raspberry Pi et installez quelques bibliothèques nécessaires. Exécutez les commandes ci-dessous pour mettre à jour et mettre à niveau Raspberry Pi:
sudo apt-get mise à jour sudo apt-get mise à jour
Installez maintenant la bibliothèque Adafruit_Blinka pour les LED NeoPixel. La bibliothèque Adafruit_Blinka fournit la prise en charge de CircuitPython en Python.
sudo pip3 installer adafruit-circuitpython-neopixel
Après cela, installez la bibliothèque Adafruit_CharLCD pour le module LCD. Cette bibliothèque est destinée aux cartes LCD Adafruit, mais elle fonctionne également avec les cartes LCD d'autres marques.
sudo pip3 installer Adafruit-CharLCD
Code Python pour Raspberry Pi LCD HAT
Ici, nous démontrons le chapeau LCD RVB pour Raspberry Pi en utilisant quelques commutateurs pour afficher certaines valeurs particulières sur le module LCD et les LED RVB comme indicateurs. Nous devons donc programmer le Raspberry Pi de manière à ce que lorsque nous appuyons sur un commutateur, il affiche certaines valeurs de capteur ou d'autres valeurs.
Le code python complet est donné à la fin de la page. Ici, nous expliquons le code étape par étape.
Démarrez le code en important toutes les bibliothèques requises.
import RPi.GPIO comme GPIO importation neopixel importation heure importation de la carte importation Adafruit_CharLCD comme LCD
Après cela, définissez toutes les broches GPIO sur lesquelles l'écran LCD et les autres commutateurs sont connectés.
lcd_rs = 7 lcd_en = 8 lcd_d4 = 25 lcd_d5 = 24 lcd_d6 = 23 lcd_d7 = 18 lcd_backlight = 2 sw0 = 5 sw2 = 13 sw3 = 19 sw4 = 26
Maintenant, définissez le mode GPIO en utilisant le mode BCM. Vous pouvez également le changer en BOARD. Définissez ensuite toutes les broches du commutateur en tant qu'entrées.
GPIO.setmode (GPIO.BCM) # Utiliser les numéros BCM GPIO GPIO.setup (sw0, GPIO.IN) GPIO.setup (sw2, GPIO.IN) GPIO.setup (sw3, GPIO.IN) GPIO.setup (sw4, GPIO.DANS)
Après cela, définissez la broche GPIO sur laquelle les LED Neo Pixel sont connectées. Définissez ensuite le nombre de LED Neo Pixel. Ici trois LED sont utilisées, vous pouvez la changer selon vos besoins.
pixel_pin = carte.D21 num_pixels = 3
Maintenant, dans la fonction lcddisplay () , attribuez une tâche particulière à chaque commutateur. Par exemple, ici, lorsque le premier commutateur est enfoncé, le Raspberry Pi doit afficher `` UP '' sur l'écran LCD, et lorsque le deuxième commutateur est enfoncé, il doit afficher `` DOWN '' sur l'écran LCD et ainsi de suite pour les deux autres boutons.
Au lieu d'imprimer quelque chose sur un écran LCD, vous pouvez utiliser ces commutateurs pour effectuer une tâche différente. Par exemple, vous pouvez utiliser le commutateur 1 pour afficher la valeur de température, le commutateur 2 pour afficher les valeurs d'humidité et le commutateur 3 pour afficher les valeurs de pression, etc.
def lcddisplay (): if (GPIO.input (sw0) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('UP') if (GPIO.input (sw2) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('DOWN') if (GPIO.input (sw3) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('LEFT') if (GPIO.input (sw4) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('RIGHT')
Maintenant, à l'intérieur de la boucle while true , la fonction pixels.fill est utilisée pour éclairer les pixels Neo de différentes couleurs. Ainsi, le Pi est programmé pour éclairer les Neo Pixels de couleur rouge vert et bleu pendant une seconde chacun.
Vous pouvez également utiliser ces Neo Pixels comme indicateurs. Par exemple, vous pouvez allumer un Neo Pixel de couleur rouge pour indiquer que le Pi est connecté à la source d'alimentation ou vous pouvez utiliser d'autres LED pour indiquer que le Pi reçoit ou envoie les données, etc.
pixels.fill ((255, 0, 0)) pixels.show () time.sleep (1) pixels.fill ((0, 255, 0)) pixels.show () time.sleep (1) pixels.fill ((0, 0, 255)) pixels.show () time.sleep (1) rainbow_cycle (0.001)
Test du HAT LCD Raspberry Pi RGB
Après avoir assemblé l'écran LCD et l'avoir interfacé avec Raspberry Pi, nous sommes tous prêts à utiliser ce CHAPEAU LCD PI RGB. Pour cela, exécutez le code python en utilisant la commande ci-dessous.
python nom_fichier_code.py
Appuyez maintenant sur les interrupteurs. Lorsque vous appuyez sur le commutateur SW0, il doit imprimer «UP» sur l'écran LCD. Pour le commutateur SW2, il devrait imprimer «Down» et la même chose pour le reste des commutateurs.
Une vidéo de travail complète avec le code Python est donnée ci-dessous.