Table des matières:
- Fournitures
- Étape 1: Mise en page technique et concept
- Étape 2: Générer des images en noir et blanc
- Étape 3: Électronique et assemblage
- Étape 4: le script
- Étape 5: Une version de masque en tissu et d'autres concepts d'application
- Étape 6: Collection d'images - Bouches et visages
- Étape 7: Collection - Patrons
- Étape 8: Collection d'images - Signes, symboles et texte
- Étape 9: Disposition alternative: Adafruit Feather et affichage E-paper
Vidéo: Masque facial avec affichage E-Paper : 9 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
L'épidémie de virus corona a apporté une nouvelle pièce de mode au monde occidental: les masques faciaux. Au moment de la rédaction de cet article, ils sont devenus obligatoires en Allemagne et dans d'autres parties de l'Europe pour une utilisation quotidienne dans les transports publics, pour les achats et diverses autres occasions. Ma fille, sage-femme en formation, a confectionné de nombreux masques pour sa famille et ses collègues, et m'a donné l'idée de ce projet en m'indiquant ce qui suit:
Bien que les masques faciaux puissent être utiles pour limiter la propagation du virus, et que les masques communautaires fabriqués par eux-mêmes se présentent désormais sous plusieurs formes, tailles et motifs et même avec éclairage, ils ont un problème commun: ils rendent leur porteur sans visage. Au moins dans une certaine mesure, car la bouche et le nez doivent être couverts. Ce qui rend la communication non verbale difficile, et tous ces visages sans visage ne font pas que effrayer les petits enfants.
Dans ce qui suit, je voudrais décrire une nouvelle solution à ce problème: un masque facial avec un écran intégré. Situé à l'endroit où doit se trouver votre bouche, il peut vous permettre d'exprimer votre état général d'humeur - sourire heureux, normal, tendu, en colère, agacé, … - en affichant soit une image d'une bouche appropriée, soit un croquis d'une bouche, certains message texte, symbole ou même une animation.
Je n'exclus pas que le concept puisse avoir une certaine utilité dans la pratique, mais au moins cela pourrait être très amusant à porter lors de fêtes. Et peut vous donner la chance de porter le sourire de votre célébrité préférée, vampire, orc, requin, chat, chien, ….
La description suivante du prototype est destinée à vous permettre de construire votre propre version de l'appareil, espérons-le améliorée et adaptée à vos besoins et souhaits particuliers. Comme la disposition est simple et que l'appareil se compose principalement de pièces disponibles dans le commerce, seules des compétences techniques et un équipement limités sont nécessaires pour l'assemblage.
Veuillez nous montrer vos versions, mises en page, idées d'améliorations et images à afficher sur l'appareil.
Fournitures
- Écran e-paper flexible WaveShare 2,9 '' avec pilote HAT (33 € via Amazon.de)
-
J'ai acheté les composants séparément: écran e-Paper flexible de 2,9 pouces WaveShare (via Eckstein, 19 €), 296x128 pixels n/b.
Wiki
Pilote d'affichage WaveShare eInk HAT (via Amazon.de, 9 €)
- Raspberry Pi Zero, j'ai utilisé un modèle version 1.3, vous pouvez aussi utiliser un Raspberry Pi Zero W (Pimoroni.com, 10,51 €)
- Cale de bouton Pimoroni (8,55 € sur Pimoroni.co.uk)
- Une plaque en plastique mince, rigide mais flexible comme support d'affichage (j'ai utilisé une feuille de protection d'écran inutilisée pour iPhone 5)
- Banque d'alimentation USB et câble micro USB long, ou en combinaison avec RPi Zero, shim Pimoroni Zero LiPo, LiPo et un chargeur LiPo
- Masque facial commercial ou sur mesure (type plat)
-
En option: un câble plat plus long (FFC 24 broches au pas de 0,5 mm) serait utile, par ex. 60 cm - SAMTEC FJH-20-D-24.00-4 via Digi-Key (le câble le plus long de l'étagère que j'ai pu trouver) ou simplement en guirlande des pièces FFC de 20 cm à l'aide d'adaptateurs (comme ici)
À partir de fin mai 2020, Adafruit propose des câbles d'extension et des connecteurs d'extension de 25 cm 24 broches: (câble: https://www.adafruit.com/product/4230, 1,5 US$), connecteur: (https://www.adafruit.com/product/4524)
- Facultatif: attaches brevetées ou bandes velcro cousues à fixer à l'écran sur un masque facial ou une enveloppe en tissu, élastiques (utilisés dans un kit de réparation de soutien-gorge)
- Ruban adhésif double face pour fixer la position de l'affichage dans l'enveloppe (ou vous pouvez coudre pour le fixer)
- Lanière de cordon pour le RPi Zero
Étape 1: Mise en page technique et concept
WaveShare propose un écran e-paper flexible de 2,9 pouces au format 6,6 x 2,9 cm et une résolution de 296 x 128 pixels, ainsi qu'un Raspberry Pi HAT pour simplifier le contrôle de leurs écrans e-ink. La taille et la résolution de l'écran de 2,9 pouces permettent d'afficher une bouche presque en taille réelle et, étant flexible, il peut être placé sur des surfaces courbes. Un petit connecteur doit être attaché à l'écran qui doit ensuite être connecté au RPi HAT avec un câble à bande plate à 24 broches.
L'utilisation d'un Raspberry Pi Zero comme microcontrôleur offre un large éventail d'opportunités pour contrôler l'affichage. d'autres HAT/pHAT et peut offrir suffisamment d'options de contrôle pour la plupart des applications. Une programmation optimisée (toute aide bienvenue !) peut permettre de réduire au minimum la consommation électrique du système.
Une manière simple de générer les images en noir et blanc requises sera décrite dans une étape ultérieure. En principe, vous pouvez afficher des films de type GIF
Une limitation de la disposition actuelle résulte du câble relativement court reliant le RPi et l'écran. Le câble fourni avec le HAT mesure 20 cm de long, le câble analogue le plus long que j'ai pu trouver faisait 60 cm de long (mais non disponible en mai 2020). Pour avoir le Raspberry à portée de main, par ex. dans un bracelet, on pourrait concaténer plusieurs de ces câbles avec des connecteurs entre les deux. pour le moment j'ai eu recours à l'option portant le RPI Zero comme longe (voir images).
Vous pouvez porter le masque d'affichage sans le RPi, car l'affichage du papier électronique nécessite une alimentation externe uniquement pour changer mais pas pour afficher une image. Vous pouvez donc simplement choisir votre "similaire du jour", attacher le RPi à l'écran, charger l'image correspondante sur l'écran, puis déconnecter le RPi.
Pour une version pour enfants, vous pouvez utiliser l'écran flexible de 2,13'' proposé par WaveShare. Comme il a une résolution de 212x104 pixels, vous devez générer des fichiers bmp de cette taille. L'adaptation du script pour cet affichage est très simple.
Adafruit propose des écrans flexibles similaires et une carte pilote adaptée à leur famille de cartes Feather. Cela permettrait d'adopter ce concept pour être utilisé avec un microcontrôleur. Pour plus de détails, voir l'étape 9.
Étape 2: Générer des images en noir et blanc
Vous pouvez générer les images à afficher en utilisant des programmes de graphiques vectoriels (par exemple InkScape) ou de graphiques en pixels (par exemple The GIMP), mais la sortie finale doit être un fichier bmp noir et blanc de 296 x 128 pixels.
Ainsi, pour qu'une image couleur s'affiche sur l'écran e-paper, elle doit être convertie en une image noir et blanc.
Vous pouvez soit utiliser des images bmp de la collection (dernière étape), soit en générer vous-même. comme décrit dans ce qui suit. Il peut y avoir différentes manières d'atteindre l'objectif, mais j'ai utilisé une procédure très simple et directe en utilisant The GIMP:
- Obtenez simplement un fichier image avec la partie buccale ayant une taille d'au moins 296 pixels de large et 128 pixels de haut. Cela peut nécessiter un portrait frontal haute résolution.
- Sélectionnez une zone avec un rapport largeur/hauteur d'environ 2,32 à 1 et utilisez Image - Réduire à la sélection*
- Ensuite, utilisez Image - Échelle de l'image* pour réduire à 296 pixels de large (ou 128 pixels de haut).
- Ensuite, sélectionnez une grande zone de 296 x 128 pixels et tronquez l'image à la sélection comme ci-dessus.
- Comme la taille doit être exactement de 296 x 128 pixels, utilisez l'ajustement de la taille de la toile* pour corriger si nécessaire
- Convertissez maintenant l'image en niveaux de gris en utilisant Image - Mode - Niveaux de gris. Cette étape n'est pas strictement nécessaire, mais peut être très utile pour les réglages et l'optimisation (voir étape 9).
- Convertissez ensuite en bitmap n&b en utilisant Image - Mode - Indexé* avec les options "1 bit" et "Floyd-Steinberg" tramage
- Enfin, exportez le bitmap au format BMP dans un dossier approprié
- Vous pouvez essayer d'optimiser les résultats en modifiant des paramètres comme le contraste ou la luminosité de l'image en niveaux de gris. Couleur-Composants - Extraire les composants-Le canal vert RVB est une option simple pour améliorer les images et améliorer les composants rouges comme la bouche. Revenez à l'étape 7.
- Pour un film de type GIF
- Placez les fichiers dans le sous-dossier pic du dossier d'exemple e-paper, si nécessaire, renommez-les (par exemple image_1.bmp, …)
- Remplacez les noms de fichiers bmp donnés dans l'exemple de script par ceux de vos fichiers.
Remarques:
- Je ne sais pas si j'ai bien compris les noms anglais de toutes les commandes GIMP, car j'utilise une version allemande.
- Pour certains des exemples d'images, des sélections d'images prises sur Internet ont été utilisées, de sorte qu'elles pourraient ne pas être utilisées dans des publications ou à des fins commerciales.
Étape 3: Électronique et assemblage
L'assemblage des pièces électroniques est relativement simple. La cale de bouton, si elle est utilisée directement attachée au RPi, doit être soudée au GPIO du RPi comme indiqué sur les instructions du fabricant. Comme la cale est très fine, un HAT peut être placé sur le GPIO avec une cale attachée. Utilisez le moins de soudure possible et essayez de ne pas contaminer les broches GPIO au-dessus de la zone de cale, dessoudez si nécessaire. En combinaison avec le WaveShare e-Paper HAT, vous pouvez même ajouter une cale Pimoroni ZeroLiPo au GPIO en plus de la cale de bouton, ce qui pourrait permettre d'utiliser une petite LiPo comme source d'alimentation. Placez ensuite l'e-Paper HAT sur le GPIO à l'aide des supports fournis avec le HAT.
Connectez l'écran e-paper et le câble de connexion plat à l'adaptateur e-paper puis au e-paper HAT comme décrit par le fabricant (fabricants bleus à l'extrémité du câble FFC vers le bas). Réglez les deux interrupteurs du HAT en fonction des exigences de l'écran utilisé, pour l'écran flexible 2,9'' sur "A" et "0".
Assurez-vous d'avoir installé tous les logiciels et bibliothèques requis.
Vous pouvez d'abord utiliser les exemples de scripts fournis par Pimoroni et WaveShare pour vérifier la fonctionnalité des composants, puis tester le code spécifique au projet (présenté dans une étape ultérieure).
Étant donné que le matériel et le logiciel fonctionnent, vous pouvez maintenant attacher l'écran et l'adaptateur e-Paper à l'enveloppe de l'écran ou au masque. Je suggérerais de fixer l'écran et l'adaptateur sur un support flexible mais suffisamment rigide, j'ai utilisé une fine feuille de plastique et du ruban adhésif double face. Maintenant, la feuille de support peut être utilisée pour fixer l'écran à votre masque ou à une enveloppe de protection plus grande, par ex. en cousant ou en utilisant du ruban adhésif double face, des attaches brevetées ou de petits aimants.
Comme le câble FFC reliant le RPI et l'écran ne mesure que 20 cm de long, j'ai utilisé une cordelette enroulée autour des entretoises HAT pour rendre le Raspberry Pi portable près du visage. Comme discuté, un câble plus long ou une rallonge de câble serait pratique.
Pour le prototype, j'ai utilisé un morceau de tissu en plastique en forme de poche (20x9,5 cm), en fait du matériel d'emballage qui était à portée de main. J'ai ensuite découpé un trou pour l'écran et j'y ai fixé l'écran / la plaque de support. J'ai ensuite attaché quatre loquets en plastique sur les coins, voir les images. Pour maintenir le tout en place sur le visage, j'ai utilisé deux élastiques translucides avec des crochets d'un kit de réparation de soutien-gorge. Ils font donc tout le tour de votre tête et les réglages de longueur sont très simples.
Étape 4: le script
L'exemple de script est une fusion de scripts de démonstration fournis par WaveShare pour le display HAT (voir Github ici) et par Pimoroni pour le Button Shim (voir ici). Tout éloge leur revient, je prendrai tout blâme. Toutes remarques et suggestions d'optimisation sont les bienvenues.
Le script WaveShare nécessite l'installation de plusieurs bibliothèques, comme indiqué dans la documentation sur GitHub. Le script Pimoroni aussi, mais ici il y a un outil pour faire le travail pour vous.
Utilisez de préférence une carte SD fraîchement flashée avec Raspian, puis ajoutez l'outil Pimoroni à l'aide de
sudo apt-get install pimoroni
et utilisez-le pour installer les codes de shim de bouton (trouvés sous "autres") et les dépendances.
Pour la partie WaveShare, copiez leur package de pilotes et d'exemples à partir de la page GitHub et installez-le ainsi que toutes les dépendances comme décrit ici (!). La plupart des dépendances sont peut-être déjà remplies.
Placez le script dans le dossier des exemples python du logiciel d'affichage WaveShare et copiez les fichiers bmp dans le sous-dossier pic.
L'utilisation du script est relativement simple. Au cas où, remplacez les noms des fichiers bmp dans les listes de BMP par ceux que vous souhaitez afficher. Vous pouvez préparer des listes de sauvegarde et simplement remplacer celle souhaitée dans la liste active en la copiant.
Exécutez le script. Vérifiez si les choses se passent bien. Vous pouvez ensuite retirer les adaptateurs HDMI et USB (avec certains concentrateurs USB, le retrait peut arrêter le RPi) et placer le masque d'affichage sur votre visage et le cordon autour de votre cou. Regardez-vous dans le miroir et jouez pour vérifier si tout fonctionne bien.
Le script a été rayé au minimum requis pour lire les boutons et afficher les bmps. Donc, si vous souhaitez afficher du texte, des lignes ou des figures géométriques, veuillez ajouter les éléments requis à partir de l'exemple de script 2in9d.
Les images, qui doivent se trouver dans le dossier « pic », sont répertoriées dans la liste « BMPs », qui se compose de 5 sous-listes avec les noms de 5 images chacune, soit 25 images au total. La première image de chaque sous-liste est liée au bouton A, la seconde au bouton B, et ainsi de suite. Les sous-listes peuvent être sélectionnées par un appui long sur les boutons A à E, c'est-à-dire que le panneau 1 est sélectionné à l'aide du bouton A, le panneau 2 par le bouton B etc. Le script définit plusieurs threads exécutés en arrière-plan, en surveillant chaque bouton à appuyer, soit brièvement ou pendant plus de 2 secondes, ce qui entraîne un changement des variables d'indicateur. La boucle du programme principal détecte simplement si un bouton a été pressé/maintenu en lisant les drapeaux button_was_held et button_was_pressed, et quels drapeaux (panel_flag, button_flag) ont été levés. Ensuite, il définit les variables correspondantes (panneau ou image) en conséquence. Enfin, l'image correspondant à « BMPs [panel][image] » est sélectionnée dans la liste et écrite à l'écran. Ensuite, les drapeaux sont réinitialisés à leurs états fondamentaux « null » ou « False ».
Le reste du script concerne principalement la définition des variables, le lancement de l'affichage et la gestion des erreurs. Vous pouvez exécuter le script depuis l'IDE ou depuis la console en utilisant « python3 Button_shim_2in9_1.py ». Alternativement, vous pouvez exécuter le script directement après le démarrage.
Le script est toujours en cours d'optimisation, veuillez donc vérifier les mises à jour.
La dernière version (2020-mai-10) contient une fonction pour afficher les images dans la liste BMPs, display_gallery(), et une pour afficher celles dans les listes collection_x, display_collections(). Non inclus dans la liste ci-dessous, voir fichier joint.
Veuillez noter que, pour éviter les "fantômes", effacez toute image si l'écran n'est pas utilisé pendant plusieurs jours.
#!/usr/bin/env python
# de Pimoroni button shim script import time import signal importbuttonshim # import and start display #from WaveShare-paper script # -*- coding:utf-8 -*- import sys import os picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(_file_))), 'pic') libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(_file_))), 'lib') si os.path.exists(libdir): sys.path.append(libdir) import logging from waveshare_epd import epd2in9d import time from PIL import Image, ImageDraw, ImageFont import traceback #Set output log level logging.basicConfig(level=logging. DEBUG) ''' #pas requis ici font15 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 15) font24 = ImageFont.truetype(os.path. join(picdir, 'Font.ttc'), 24) ''' #set liste BMP BMPs =
Étape 5: Une version de masque en tissu et d'autres concepts d'application
Dans la version prototype actuelle, l'affichage peut être porté au-dessus d'une marque faciale habituelle ou être attaché à des masques existants avec des bandes velcro ou des aimants. Mais vous souhaitez en fait intégrer l'affichage dans un masque, avec une option pour un placement et un retrait rapides.
Ce que j'ai fait jusqu'à présent, c'est d'utiliser un masque que j'ai acheté chez un tailleur local ("Schneiderei Schmargendorf") fait d'un tissu assez épais, j'ai identifié la bonne zone où l'affichage devrait être placé, puis j'ai découpé un trou dans la couche extérieure du masque. Pour le câble de l'écran, une fente a été découpée à l'intérieur à un endroit approprié. La plaque de support a été coupée à la taille minimale requise et plusieurs petits trous ont été enfoncés pour permettre la couture. Ensuite, l'affichage a été fixé sur la plaque de support à l'aide de ruban adhésif double face, avec également été appliqué sur les bords pour fixer la plaque et l'affichage à la couche de tissu. Ensuite, l'écran a été placé dans le masque, le câble s'est déplacé vers la fente et le tissu a été fixé sur la plaque de support. Il peut être utile de renforcer les bords coupés avant le tissu, par exemple avec une petite quantité de super colle. Au cas où, fixez la plaque d'appui en cousant après avoir vérifié que tout va bien. Connectez le câble au HAT et démarrez le Pi.
La limitation de cette approche est que vous ne pouvez pas laver le masque avec écran intégré fixe. Mais il y aurait plusieurs autres façons d'attacher l'écran au masque. Une option pourrait être d'ajouter une autre couche de tissu amovible à un masque et de maintenir l'écran en place par des bandes velcro ou des attaches brevetées. De cette façon, il pourrait être facilement retiré pour le lavage du masque ou déplacé vers un autre masque.
Plus tard, des versions améliorées peuvent intégrer un support d'écran dédié pour obtenir un look plus professionnel.
----------------------------Bien que l'idée originale était un masque facial avec affichage, une disposition très similaire pourrait également être utilisée pour les étiquettes de nom, ou un présentoir intégré aux vêtements ou aux bracelets.
Ou pensez à une version « Qui suis-je » avec un bandeau avec écran intégré, affichant des images ou des termes choisis au hasard dans une plus grande collection.
Une idée que je trouve plutôt ridicule, mais que je ne veux pas passer sous silence, serait un Niqab avec un tel affichage.
Vous avez des idées supplémentaires ? S'il vous plaît, faites-moi savoir!
Comme l'ensemble du projet est toujours en cours, jetez un œil aux mises à jour de temps en temps.
Étape 6: Collection d'images - Bouches et visages
Vous trouverez ici une collection d'images pouvant être utilisées sur l'écran de 2,9 pouces, en mettant l'accent sur les visages, généralement limités à la partie buccale. Entre autres, il contient SM la Reine (2x), le président Obama, Gandhi, le Dalaï Lama, Staline, Paul Newman, Pavarotti et mon chat.
Veuillez noter que, comme j'ai utilisé des images d'Internet comme source pour certaines d'entre elles, la protection du droit d'auteur peut toujours s'appliquer et elles peuvent ne pas être utilisées à des fins commerciales.
Étape 7: Collection - Patrons
Voici un certain nombre de modèles qui pourraient être affichés, la plupart générés à l'aide de GIMP.
Étape 8: Collection d'images - Signes, symboles et texte
Plus d'images d'exemple pour l'affichage 293x128:
Signes et symboles, textes.
Encore une fois: certaines images ou symboles (par exemple, Raspberry, Apple, Instructables) peuvent être protégés par le droit d'auteur et ne doivent pas être utilisés à des fins commerciales.
Étape 9: Disposition alternative: Adafruit Feather et affichage E-paper
J'ai réalisé aujourd'hui (21-mai-2020) qu'Adafruit propose également des présentoirs e-paper flexibles de la même taille et des mêmes dimensions (https://www.adafruit.com/product/4262, 27 US$) ainsi que 25 cm Câbles d'extension 24 broches au pas de 0,5 mm (https://www.adafruit.com/product/4230, 1,5 US$) et connecteurs d'extension (https://www.adafruit.com/product/4524).
Ils ont un pilote e-paper pour leur famille de cartes Feather (Adafruit eInk Feather Friend avec 32 Ko de SRAM, https://www.adafruit.com/product/4446, 9 US$) qui est livré avec un support de carte SD pour contenir tous ces images.
Je suppose que cela pourrait permettre une disposition plus compacte et économe en énergie que la version Raspberry Zero décrite ici, et serait une solution parfaite si vous préférez utiliser une plate-forme STM32F405, 32u4 ou nRF52840. Malheureusement, il ne semble pas anodin de combiner les écrans eInk Feather Friends et WaveShare d'Adafruit.
J'aime beaucoup voir une version avec BLE et une application pour contrôler quelles images sont affichées.
WaveShare propose un bouclier de pilote d'affichage Arduino et des pilotes d'affichage basés sur ESP3266, si vous les préférez.
Conseillé:
Masque animé : 5 étapes (avec photos)
Masque animé : souriez, disent-ils, et le monde vous sourit - à moins que vous ne portiez un masque. Alors le monde ne peut pas voir votre sourire, encore moins sourire en retour. L'avènement du masque protecteur a brusquement excisé la moitié du visage de notre interaction humaine d'instant en instant
MASQUE FACIAL À ACTIVATION VOCALE : 3 étapes
MASQUE FACIAL À COMMANDE VOCALE : IL Y A QUELQUES MOIS, UN TYPE NOMMÉ "TYLER GLAIEL" A FABRIQUÉ UN MASQUE FACIAL À COMMANDE PAR LA VOIX QUI EST VIRAL… APRÈS QUE BEAUCOUP L'ONT FAIT MAIS AUCUN D'EUX N'A FOURNI TOUS LES DÉTAILS NÉCESSAIRES À SON ACHÈVEMENT. TYLER LUI-MÊME A DÉCROCHÉ LE GUIDE DE BRICOLAGE ET LE GITHUB CO
Détecteur de masque facial => Covid Preventer ! : 5 étapes
Détecteur de masque facial => Covid Preventer ! : La première chose que les responsables de la santé veulent que les gens fassent pendant cette pandémie est de porter un masque lorsqu'ils sortent dans des lieux publics, mais certaines personnes ferment toujours les yeux sur l'avertissement. Entrez….. COVID PrevEntrez! Ce robot utilise la caméra Pixy2
Masque animatronique avec yeux mobiles : 13 étapes (avec photos)
Masque animatronique aux yeux mobiles : Bonjour ! Pour un devoir scolaire, nous devions découvrir Arduino. J'ai donc décidé de faire un masque animatronique. Cela ressemble plus à une décoration murale. Toute sa fonction est de mettre les gens légèrement mal à l'aise, car les yeux bougeront. Il s'inspire de la
Affichage de la température sur le module d'affichage LED P10 à l'aide d'Arduino : 3 étapes (avec photos)
Affichage de la température sur le module d'affichage à LED P10 à l'aide d'Arduino: Dans le didacticiel précédent, il a été expliqué comment afficher du texte sur le module d'affichage à LED matricielle P10 à l'aide d'Arduino et du connecteur DMD, que vous pouvez vérifier ici. Dans ce didacticiel, nous allons donner un didacticiel de projet simple en utilisant le module P10 comme moyen d'affichage