(update property name) |
|||
(8 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | {{ | + | {{Tuto Details |
− | + | |Main_Picture=Contrôler_des_neopixels_comme_un_DJ_jinx.gif | |
− | |||
− | |||
− | |Main_Picture= | ||
|Licences=Attribution (CC BY) | |Licences=Attribution (CC BY) | ||
− | |Description=Utilisez un ESP8266 pour contrôler des neopixels (ws2812) comme un technicien lumière depuis le Wi-Fi avec uniquement des logiciels gratuits. | + | |Description=<translate><!--T:1--> Utilisez un ESP8266 pour contrôler des neopixels (ws2812) comme un technicien lumière depuis le Wi-Fi avec uniquement des logiciels gratuits.</translate> |
|Area=Art, Electronics, Music and Sound | |Area=Art, Electronics, Music and Sound | ||
|Type=Creation | |Type=Creation | ||
Ligne 14 : | Ligne 11 : | ||
|Currency=EUR (€) | |Currency=EUR (€) | ||
|Tags=neopixels, leds, esp8266, wifi, sacn, DMX, ARTNET, ws2812 | |Tags=neopixels, leds, esp8266, wifi, sacn, DMX, ARTNET, ws2812 | ||
+ | |SourceLanguage=none | ||
+ | |Language=fr | ||
+ | |IsTranslation=0 | ||
}} | }} | ||
− | {{ | + | {{Introduction |
− | |Introduction=Pour contrôler nos | + | |Introduction=<translate><!--T:2--> |
+ | Pour contrôler nos LED, nous allons utiliser le protocole Art-Net : https://fr.wikipedia.org/wiki/Art-Net | ||
+ | <!--T:3--> | ||
Ce protocole permet de transmettre des instructions DMX à travers le réseau en utilisant l'UDP. | Ce protocole permet de transmettre des instructions DMX à travers le réseau en utilisant l'UDP. | ||
− | Cette méthode est très rapide et compatible avec la plupart des systèmes d'éclairage professionnels. | + | <!--T:4--> |
+ | Cette méthode est très rapide , fiable et compatible avec la plupart des systèmes d'éclairage professionnels. | ||
+ | |||
+ | <!--T:5--> | ||
+ | Une fois que nous aurons créer notre appareil avec l'ESP8266 nous allons utiliser Jinx, un logiciel sous Windows qui permet de contrôler nos LEDs. | ||
+ | |||
+ | <!--T:6--> | ||
+ | Ce logiciel très complet permet de créer des animations à l'aide du son, d'une image, d'une vidéo, d'une webcam, même de capturer l'image de l'écran et aussi d'afficher du texte.</translate> | ||
}} | }} | ||
− | {{ | + | {{TutoVideo |
|VideoType=Youtube | |VideoType=Youtube | ||
|VideoURLYoutube=https://www.youtube.com/watch?v=zZPmNH3cheA | |VideoURLYoutube=https://www.youtube.com/watch?v=zZPmNH3cheA | ||
}} | }} | ||
− | {{ | + | {{Materials |
− | |Material=* ESP8266 (Wemos D1 Mini) | + | |Material=<translate><!--T:7--> |
− | * Matrix WS2812b (ou strip de | + | * ESP8266 (Wemos D1 Mini) |
− | * Resistance 475 Ohm ( | + | * Matrix WS2812b (ou strip de LED) |
− | * Condensateur 1000µF | + | * Resistance 475 Ohm (entre 300/500) |
− | |Tools= | + | * Condensateur 1000µF (optionnel) |
− | |ExternalAttachmentsLinks={{ | + | * Alimentation dédié pour les leds (optionnel)</translate> |
+ | |Tools=<translate></translate> | ||
+ | |ExternalAttachmentsLinks={{ExternalAttachmentsLinks | ||
|ExternalAttachmentsLinks=http://www.live-leds.de/ | |ExternalAttachmentsLinks=http://www.live-leds.de/ | ||
− | }}{{ | + | }}{{ExternalAttachmentsLinks |
|ExternalAttachmentsLinks=https://github.com/mtongnz/ESP8266_ArtNetNode_v2 | |ExternalAttachmentsLinks=https://github.com/mtongnz/ESP8266_ArtNetNode_v2 | ||
}} | }} | ||
}} | }} | ||
− | {{ | + | {{Separator}} |
− | {{ | + | {{Tuto Step |
− | |Step_Title=Préparer l'ESP8266 | + | |Step_Title=<translate><!--T:8--> Préparer l'ESP8266</translate> |
− | |Step_Content=Si vous ne l'avez pas fait, ajouter le support de l'ESP8266 dans le logiciel Arduino : https://github.com/esp8266/Arduino#installing-with-boards-manager | + | |Step_Content=<translate><!--T:9--> |
+ | Si vous ne l'avez pas fait, ajouter le support de l'ESP8266 dans le logiciel Arduino : [https://github.com/esp8266/Arduino#installing-with-boards-manager https://github.com/esp8266/Arduino#installing-with-boards-manager.] | ||
− | Il y a plusieurs | + | <!--T:10--> |
+ | Il y a plusieurs façons d'uploader le firmware que nous allons utiliser, le plus simple est d'utiliser l'exemple '''ESP8266WebServer -> WebUpdate.''' | ||
− | N'oubliez pas de changer STASSID et STAPSK avec le nom de votre réseau | + | <!--T:11--> |
+ | N'oubliez pas de changer STASSID et STAPSK avec le nom de votre réseau Wi-Fi et votre mot de passe. | ||
#define STASSID "your-ssid" | #define STASSID "your-ssid" | ||
#define STAPSK "your-password" | #define STAPSK "your-password" | ||
− | * Téléverser '''ESP8266WebServer -> WebUpdate''' | + | * Téléverser '''ESP8266WebServer -> WebUpdate.''' |
− | * Appuyer sur le bouton RESET de l'ESP8266 | + | * Appuyer sur le bouton RESET de l'ESP8266. |
− | * Aller sur http://esp8266-webupdate.local. | + | * Aller sur http://esp8266-webupdate.local.</translate> |
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title=Uploader ESP8266_ArtNetNode | + | |Step_Title=<translate><!--T:12--> Uploader ESP8266_ArtNetNode</translate> |
− | |Step_Content=Nous pouvez maintenant flasher le firmware sur notre ESP8266 | + | |Step_Content=<translate><!--T:13--> |
− | * Télécharger ESP8266_ArtNetNode ici : https://github.com/mtongnz/ESP8266_ArtNetNode_v2 | + | Nous pouvez maintenant flasher le firmware sur notre ESP8266 |
+ | * Télécharger ESP8266_ArtNetNode ici : https://github.com/mtongnz/ESP8266_ArtNetNode_v2. | ||
* Retourner sur [http://esp8266-webupdate.local http://esp8266-webupdate.local.] | * Retourner sur [http://esp8266-webupdate.local http://esp8266-webupdate.local.] | ||
* Cliquer sur Parcourir et sélectionner '''espArtnetNode_2.0.0_b5g_WEMOS.bin''' | * Cliquer sur Parcourir et sélectionner '''espArtnetNode_2.0.0_b5g_WEMOS.bin''' | ||
− | * Cliquer sur update | + | * Cliquer sur update. |
− | L'ESP8266 va redémarrer plusieurs fois avant d'être disponible. | + | L'ESP8266 va redémarrer plusieurs fois avant d'être disponible.</translate> |
|Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_browse.png | |Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_browse.png | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title=Paramétrage Wi-Fi | + | |Step_Title=<translate><!--T:14--> Paramétrage Wi-Fi</translate> |
− | |Step_Content=L'ESP8266 est maintenant en mode | + | |Step_Content=<translate><!--T:15--> |
+ | L'ESP8266 est maintenant en mode HotSpot, chercher le réseau Wi-Fi avec comme nom '''espArtNode_00XXX.''' | ||
+ | <!--T:16--> | ||
Le mot de passe est : '''byMtongnz2017''' | Le mot de passe est : '''byMtongnz2017''' | ||
− | * | + | * Allez sur http://2.0.0.1 et cliquez sur WIFI pour paramétrer le SSID/mot de passe |
− | * Cliquer sur '''REBOOT.''' | + | * Cliquer sur '''REBOOT.'''</translate> |
|Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_arnet2.png | |Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_arnet2.png | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title=Trouver l'adresse IP de espArtNode | + | |Step_Title=<translate><!--T:17--> Trouver l'adresse IP de espArtNode</translate> |
− | |Step_Content= | + | |Step_Content=<translate><!--T:18--> |
+ | Malheureusement, espArtNode n'utilise pas '''mdns''', donc vous devrez trouver l'adresse IP par vous même. | ||
− | Vous pouvez utiliser [https://www.fing.com/ fing] ( | + | <!--T:19--> |
+ | Vous pouvez utiliser [https://www.fing.com/ fing] (la version Android est la plus facile à utiliser) ou [https://play.google.com/store/apps/details?id=com.litux.art_net_controller_lite ArtNet-Lite] (cette application détecte automatiquement les appareils avec ArtNet) | ||
− | Jinx (le logiciel que nous allons utiliser pour contrôler les | + | <!--T:20--> |
+ | Jinx (le logiciel que nous allons utiliser pour contrôler les LED) a un mode SCAN, mais il ne marche pas avec espArtNetNode.</translate> | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title=Paramétrer les NeoPixels | + | |Step_Title=<translate><!--T:21--> Paramétrer les NeoPixels</translate> |
− | |Step_Content=Dernier point, | + | |Step_Content=<translate><!--T:22--> |
+ | Dernier point, paramétrer le PORT A pour qu'il gère des LEDs NeoPixel. | ||
+ | <!--T:23--> | ||
Le '''PORT A''' correspond à la '''broche TX.''' | Le '''PORT A''' correspond à la '''broche TX.''' | ||
− | * Cliquer sur PORT A | + | * Cliquer sur PORT A. |
− | * Dans Port Type, mettre LED pixels - WS2812 | + | * Dans '''Port Type''', mettre '''LED pixels - WS2812.''' |
− | * Cliquer sur '''Save Changes''' | + | * Cliquer sur '''Save Changes.''' |
− | * | + | * Changez number of pixels. |
− | {{Info|Number of pixels n'apparait qu'après avoir | + | {{Info|Number of pixels n'apparait qu'après avoir sauvegardé les changements}}</translate> |
|Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_arnet4.png | |Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_arnet4.png | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title=Paramétrer Matrix Options | + | |Step_Title=<translate><!--T:24--> Paramétrer Matrix Options</translate> |
− | |Step_Content=Voilà, notre appareil est prêt, mais il nous reste à paramétrer 3 choses dans Jinx pour le contrôler. | + | |Step_Content=<translate><!--T:25--> |
− | * '''Matrix Options''': Cette option paramètre la matrice | + | Voilà, notre appareil est prêt, mais il nous reste à paramétrer 3 choses dans Jinx pour le contrôler. |
+ | * '''Matrix Options''': Cette option paramètre la matrice virtuelle dans Jinx | ||
* '''Output devices''': les appareils connectés à Jinx | * '''Output devices''': les appareils connectés à Jinx | ||
* '''Output Patch''' : La position de chaque LED. | * '''Output Patch''' : La position de chaque LED. | ||
− | Si vous ne l'avez pas déjà fait brancher votre | + | Si vous ne l'avez pas déjà fait brancher votre matrice / strip de LED à votre ESP8266 |
− | {{Warning|Alimenter beaucoup de | + | <!--T:26--> |
− | {{Idea|Il est possible d'alimenter même une centaine de | + | {{Warning|Alimenter beaucoup de LED peut être compliqué, je vous conseille de lire attentivement le guide d'Adafruit. : https://learn.adafruit.com/adafruit-neopixel-uberguide/the-magic-of-neopixels}} |
+ | {{Idea|Il est possible d'alimenter même une centaine de LED rien qu'avec l'USB du moment que vous réglait la luminosité au minimum. Faites attention si la luminosité est trop importante les LED vont se comporter bizarrement et peuvent être endommagés !}} | ||
* Télécharger Jinx ici : http://www.live-leds.de/ | * Télécharger Jinx ici : http://www.live-leds.de/ | ||
− | * Aller dans '''Setup | + | * Aller dans '''Setup -> Matrix Options''' |
− | * Paramétrer '''Width ( | + | * Paramétrer '''Width (largeur) / Height (longueur)''' |
− | {{Info|Vous n'avez pas une matrice, juste un strip de | + | {{Info|Vous n'avez pas une matrice, juste un strip de LED? |
− | Paramétrer la | + | <!--T:27--> |
+ | Paramétrer la longueur (width) sur la longueur de votre strip et height (longueur) sur 4 (valeur minimum)}}</translate> | ||
|Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_wemos_neopixels.png | |Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_wemos_neopixels.png | ||
|Step_Picture_01=Contrôler_des_neopixels_comme_un_DJ_matrixoptions.png | |Step_Picture_01=Contrôler_des_neopixels_comme_un_DJ_matrixoptions.png | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title=Paramétrer Output Devices | + | |Step_Title=<translate><!--T:28--> Paramétrer Output Devices</translate> |
− | |Step_Content=Maintenant nous allons connecter notre ESP à Jinx. | + | |Step_Content=<translate><!--T:29--> |
+ | Maintenant, nous allons connecter notre ESP à Jinx. | ||
* Aller sur '''Setup -> Output Devices''' | * Aller sur '''Setup -> Output Devices''' | ||
* Cliquer sur '''Add''' | * Cliquer sur '''Add''' | ||
− | * Choissisez Art-Net (option par défaut) | + | * Choissisez '''Art-Net''' (option par défaut) |
− | * Déselectionner Broadcast (le broadcast est très lent) | + | * Déselectionner '''Broadcast''' (le broadcast est très lent) |
− | * Mettez l'adresse IP de votre ESP | + | * Mettez l'adresse IP de votre ESP</translate> |
|Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_outputdevices.png | |Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_outputdevices.png | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title=Paramétrer Output Patch | + | |Step_Title=<translate><!--T:30--> Paramétrer Output Patch</translate> |
− | |Step_Content= | + | |Step_Content=<translate><!--T:31--> |
− | * Aller sur '''Setup -> Output Patch''' | + | Dernière chose à faire, il nous faut expliquer à Jinx dans quel ordre sont les LED. |
− | * Choissisez votre ESP | + | * Aller sur '''Setup -> Output Patch.''' |
− | * Cliquer sur '''Fast Patch''' | + | * Choissisez votre ESP. |
− | * Sélectionner la taille de votre matrice de | + | * Cliquer sur '''Fast Patch.''' |
− | * Dans '''Patch Mode,''' mettez le sens de votre matrice | + | * Sélectionner la taille de votre matrice de LED. |
− | * Dans Pixel Order, mettez '''GRB''' | + | * Dans '''Patch Mode,''' mettez le sens de votre matrice. |
− | * '''Vérifier que First channel est bien à 0''' | + | * Dans Pixel Order, mettez '''GRB.''' |
+ | * '''Vérifier que First channel est bien à 0.'''</translate> | ||
|Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_fastpatch.png | |Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_fastpatch.png | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title=Testez les | + | |Step_Title=<translate><!--T:32--> Testez les LED</translate> |
− | |Step_Content={{Info|Il y a de grandes chances que vous ne paramétrerez pas vos | + | |Step_Content=<translate><!--T:33--> |
+ | {{Info|Il y a de grandes chances que vous ne paramétrerez pas vos LED correctement du premier coup, recommencez la partie Output Patch en cliquant sur Clear Patch avant et recommencez si c'est le cas. }} | ||
− | Si vous avez un doute sur votre alimentation, commencez par baisser la valeur Master afin de ne pas abimer vos | + | <!--T:34--> |
+ | Si vous avez un doute sur votre alimentation, commencez par baisser la valeur Master afin de ne pas abimer vos LED. | ||
* Aller dans '''Setup / Start Output''' | * Aller dans '''Setup / Start Output''' | ||
− | * Dans '''Channel 1''', | + | * Dans '''Channel 1''', choisissez '''Simple Color''', vérifiez que les LED s'allument |
− | * Cliquez sur '''Edit''' et vérifier que la couleur Rouge / Vert / | + | * Cliquez sur '''Edit''' et vérifier que la couleur Rouge / Vert / Bleu est correcte. |
− | * Dans '''Channel 1''', | + | * Dans '''Channel 1''', choisissez '''Radar/Scan Lines''' |
* Vérifier que votre matrice '''affiche correctement la ligne''' | * Vérifier que votre matrice '''affiche correctement la ligne''' | ||
− | Je ne vais pas | + | Je ne vais pas rentrer plus en détail sur le fonctionnement de Jinx, essayez par vous même! Un manuel est disponible (en anglais) ici : http://www.live-leds.de/downloads/</translate> |
|Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_jinx_brightness.png | |Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_jinx_brightness.png | ||
|Step_Picture_01=Contrôler_des_neopixels_comme_un_DJ_jinx_radarscan.png | |Step_Picture_01=Contrôler_des_neopixels_comme_un_DJ_jinx_radarscan.png | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Notes= | + | |Step_Title=<translate><!--T:35--> Notes sur les LED</translate> |
+ | |Step_Content=<translate><!--T:36--> | ||
+ | Vous pouvez trouver les modèles 3D de mes LED sur Thingiverse : | ||
+ | |||
+ | <!--T:43--> | ||
+ | *https://www.thingiverse.com/thing:3458654 | ||
+ | *https://www.thingiverse.com/thing:3462891 | ||
+ | |||
+ | <!--T:44--> | ||
+ | Ces modèles sont faits par Olivier Sarrailh. | ||
+ | |||
+ | <!--T:37--> | ||
+ | Si vous voulez faire une matrice de LED, je ne vous conseille pas d'utiliser des strip de LED, c'est difficile de les aligner, utiliser plutôt des matrices toutes faites (flexible si vous voulez créer une matrice circulaire) | ||
+ | |||
+ | <!--T:38--> | ||
+ | Je me répète, mais jetez un œil à la documentation d'Adafruit sur l'alimentation des LED | ||
+ | |||
+ | <!--T:39--> | ||
+ | https://learn.adafruit.com/adafruit-neopixel-uberguide/the-magic-of-neopixels | ||
+ | |||
+ | <!--T:40--> | ||
+ | A contrario de ce qui y est dit, il est possible d'alimenter des matrices plus ou moins grandes avec juste un câble USB, si vous baissez la luminosité. | ||
+ | |||
+ | <!--T:45--> | ||
+ | Attention, vous risquez d'abimer les LED, si vous monter accidentellement la luminosité. | ||
+ | |||
+ | <!--T:41--> | ||
+ | Voilà pour ce tutoriel, n'hésitez pas à laisser un commentaire. | ||
+ | |||
+ | <!--T:42--> | ||
+ | Et suivez-moi sur twitter pour avoir plus d'informations sur les prochains tutoriels ! https://twitter.com/m4dnerd.</translate> | ||
+ | }} | ||
+ | {{Notes | ||
+ | |Notes=<translate></translate> | ||
}} | }} | ||
− | {{ | + | {{Tuto Status |
− | |Complete= | + | |Complete=Published |
}} | }} |
Auteur Rémi Sarrailh (µsini) | Dernière modification 9/12/2019 par Clementflipo
neopixels, leds, esp8266, wifi, sacn, DMX, ARTNET, ws2812 Contrôler_des_neopixels_comme_un_DJ_jinx.gif fr none Creation 0
Pour contrôler nos LED, nous allons utiliser le protocole Art-Net : https://fr.wikipedia.org/wiki/Art-Net
Ce protocole permet de transmettre des instructions DMX à travers le réseau en utilisant l'UDP.
Cette méthode est très rapide , fiable et compatible avec la plupart des systèmes d'éclairage professionnels.
Une fois que nous aurons créer notre appareil avec l'ESP8266 nous allons utiliser Jinx, un logiciel sous Windows qui permet de contrôler nos LEDs.
Ce logiciel très complet permet de créer des animations à l'aide du son, d'une image, d'une vidéo, d'une webcam, même de capturer l'image de l'écran et aussi d'afficher du texte.
Youtube
Si vous ne l'avez pas fait, ajouter le support de l'ESP8266 dans le logiciel Arduino : https://github.com/esp8266/Arduino#installing-with-boards-manager.
Il y a plusieurs façons d'uploader le firmware que nous allons utiliser, le plus simple est d'utiliser l'exemple ESP8266WebServer -> WebUpdate.
N'oubliez pas de changer STASSID et STAPSK avec le nom de votre réseau Wi-Fi et votre mot de passe.
#define STASSID "your-ssid" #define STAPSK "your-password"
Nous pouvez maintenant flasher le firmware sur notre ESP8266
L'ESP8266 va redémarrer plusieurs fois avant d'être disponible.
L'ESP8266 est maintenant en mode HotSpot, chercher le réseau Wi-Fi avec comme nom espArtNode_00XXX.
Le mot de passe est : byMtongnz2017
Malheureusement, espArtNode n'utilise pas mdns, donc vous devrez trouver l'adresse IP par vous même.
Vous pouvez utiliser fing (la version Android est la plus facile à utiliser) ou ArtNet-Lite (cette application détecte automatiquement les appareils avec ArtNet)
Jinx (le logiciel que nous allons utiliser pour contrôler les LED) a un mode SCAN, mais il ne marche pas avec espArtNetNode.
Dernier point, paramétrer le PORT A pour qu'il gère des LEDs NeoPixel.
Le PORT A correspond à la broche TX.
Voilà, notre appareil est prêt, mais il nous reste à paramétrer 3 choses dans Jinx pour le contrôler.
Si vous ne l'avez pas déjà fait brancher votre matrice / strip de LED à votre ESP8266
Maintenant, nous allons connecter notre ESP à Jinx.
Dernière chose à faire, il nous faut expliquer à Jinx dans quel ordre sont les LED.
Si vous avez un doute sur votre alimentation, commencez par baisser la valeur Master afin de ne pas abimer vos LED.
Je ne vais pas rentrer plus en détail sur le fonctionnement de Jinx, essayez par vous même! Un manuel est disponible (en anglais) ici : http://www.live-leds.de/downloads/
Vous pouvez trouver les modèles 3D de mes LED sur Thingiverse :
Ces modèles sont faits par Olivier Sarrailh.
Si vous voulez faire une matrice de LED, je ne vous conseille pas d'utiliser des strip de LED, c'est difficile de les aligner, utiliser plutôt des matrices toutes faites (flexible si vous voulez créer une matrice circulaire)
Je me répète, mais jetez un œil à la documentation d'Adafruit sur l'alimentation des LED
https://learn.adafruit.com/adafruit-neopixel-uberguide/the-magic-of-neopixels
A contrario de ce qui y est dit, il est possible d'alimenter des matrices plus ou moins grandes avec juste un câble USB, si vous baissez la luminosité.
Attention, vous risquez d'abimer les LED, si vous monter accidentellement la luminosité.
Voilà pour ce tutoriel, n'hésitez pas à laisser un commentaire.
Et suivez-moi sur twitter pour avoir plus d'informations sur les prochains tutoriels ! https://twitter.com/m4dnerd.
Published
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #