tutorial LCD

February 6, 2018 | Author: Anonymous | Category: N/A
Share Embed


Short Description

Download tutorial LCD...

Description

Création d’une multi radio générique

Chapitre 1

Nous allons lors de ces tutoriels, créer une multi radio générique en passant par toutes les étapes CAD fabrication physique et programmation. Lors de ces programmations, nous ferons différents exercices pour vous aider à comprendre un peu mieux le langage SIOC et plus particulièrement l’utilisation des LCD.

Matériel nécessaire pour ces tutoriels: 1 IOCARD MASTER CARD 1 IOCARD USB EXPENSION 1 IOCARD USB-LCD 1 écran LCD (rétro éclairé ou non) 1 potentiomètre 10k 1 potentiomètre 100K (si écran rétro éclairé) 5 boutons OFF ON OFF

Sommaire : 1 - Montage de l’écran LCD 1.1 1.2 1.3 1.4

Configuration carte USB-LCD Schémas de montage de l’écran et soudure Programme LCD et test Programmation

1.1 Configuration carte USB-LCD

Pour tester le bon fonctionnement de votre carte USB-LCD de simple test sont à faire. Le premier est simplement de connecter votre carte à votre ordinateur via le câble USB et de vérifier que votre ordinateur détecte bien votre carte (plug & play). La seconde, et de lancer le logiciel USB-LCD que vous pouvez trouver directement à cette adresse : http://www.opencockpits.com/modules.php?name=Downloads&d_op=getit&lid=275 ou sur le site d’Opencockpit. Après avoir dézzipé l’archive, vous trouverez dans le répertoire l’application IOLCD.exe. Après exécution de IOLCD vous devriez voir ceci :

Explication : Host : nom du pc ou est lancé l’application Port : n° de port Status : vous indique si IOLCD parle bien ou non avec SIOC (pour que le statut passe en ONLINE il faudra lancer SIOC) USB : c’est pour l’instant la partie qui nous intéresse le plus. Vous devriez voir USB RUNNING qui signale que la USB-LCD est bien connectée au PC et qu’elle est bien reconnue. Device : C’est le n° du port USB sur lequel est connecté votre USB-LCD (peut être différent chez vous)

Si tout ceci est OK alors nous pouvons passer à la suite.

1.2 Schémas de montage de l’écran et soudure

Pour cette partie vous avez besoin de : 1 fer à souder Fil à souder 1 écran LCD 2 x 16 (ou autre) 1 potentiomètre 10k 1 potentiomètre 100k Câble Connectique male HE10 Schémas :

Explication du schéma : Je ne vais pas entrer dans la description de tous les fils mais uniquement les plus importants. Sur le schéma, vous pouvez voir que nous utilisons seulement 12 fils en sortie de la broche et tant mieux car nous aurons déjà bien du mal à les souder alors imaginez si nous devions souder les 40. Le schéma ci-dessus fonctionne avec un code couleur afin de faciliter sa lecture La lecture des numéros de pin ce fait de gauche à droite et de bas en haut. Ce qui fait que le n°3 ce trouve au-dessus du n°1 , le n°5 au-dessus du n°3 et ainsi de suite. Les plus importants : 9 et 10 : alimentation en 5V de l’écran (10 = 5v / 9 = masse) 27 à 30 : identification de l’écran (4 pour nos 4 écrans possible) Display 0 = 29 - Display 1 = 30 – Display 2 = 27 – display 3 = 28

L’écran LCD Bien que nous ayons 12 fils en sortie, nous voyons que sur l’écran LCD nous avons 16 entrées. Ne vous inquiétez pas c’est normal. Nous avons en entrée 5 la masse du potentiomètre du contraste et le pontage du 5V de l’entrée 1 à l’entrée 5 – Les entrées 15 et 16 si votre écran est rétro éclairé. Pour un écran non rétro éclairé, les entrées 15 et 16 de l’écran ne sont pas utilisées et nous n’avons pas besoin non plus du potentiomètre 100k pour le retro. Vous ne devez pas non plus ponter les entrées 2 à 15

Il ne vous reste plus qu’à suivre le schéma pour souder tout ça. CONSEIL : Si vous n’êtes pas à l’aise avec la soudure, je vous conseille vivement de vous entrainer avant car les soudures sur l’écran sont très proche les unes des autres et un débordement pourrais être fatale.

ASTUCE : Pour une soudure facile, dénudez vos fils le plus petit possible. Ceci vous facilitera la soudure et évitera que le fils trop dénudé aille faire contact avec un autre. ASTUCE : Etamer vos fils avant de les souder sur l’écran ASTUCE : Si vous n’avez pas de connecteur male, vous pouvez utiliser une connectique male d’une vielle carte mère ou autre (cdrom HDD,…) et souder directement derrière celle-ci (METTRE PHOTO CONNECTIQUE CARTE MERE)

1.3 Programme LCD et test Maintenant que notre écran est soudé et connecté à notre USB-LCD il est temps de vérifier si nous avons bien travaillé. Le premier test visible, est lors ce que nous actionnons les potentiomètres (si nous augmentons le contraste nous devrions voir apparaitre les rectangles de caractère noircir. Si c’est le cas s’est déjà bon signe. Dans le cas inverse, vérifier bien toute vos soudures et qu’aucun contact ne ce fasses entre deux.) Nous allons maintenant ouvrir le second soft de notre archive qui se nomme IOLCD_CONFIG.exe

Explication : Filename : nom du fichier de configuration de vos écrans (par défaut, le nom utilisé par IOCLCD est IOClcd.lcd et se trouve dans le même répertoire que vos soft LCD. Si vous désirez utiliser un autre nom, vous devez ouvrir le fichier IOCLCD.ini et changer le nom du fichier par défaut)

Chaque écran est représenté par son numéro (4 écran numéroté de 0 à 3) ici « DISPLAY 0 ». Nous dirons que s’est le numéro de l’écran PHYSIQUE

Le premier paramètre vous sert à configurer le type d’écran que vous avez connecté CAD le nombre de ligne et de caractère que votre écran dispose (pour notre exemple il s’agit d’un 16x2 : 2 lignes de 16 caractères)

Le paramètre suivant est le n° de l’écran virtuel. EXPLICATION : chaque écran physique dispose de 5 écrans virtuels. Ceci veut dire que pour chaque écran physique, on peut y faire apparaitre 5 affichages différents Exemple : Sur le DISPLAY 0 en virtuel 0 on fera apparaitre la fréquence de la com1 puis sur action d’un bouton nous ferons apparaitre toujours sur le DISPLAY 0 mais cette fois ci en virtuel 1, la fréquence de la NAV1. Sur le même écran physique nous avons donc 5 possibilités d’affichage. Nous verrons plus tard comment dire à SIOC quel écran nous voulons

J’appellerai cette partie l’identification DISPLAY pour SIOC. Afin que SIOC, lors de notre programmation, sache de qui on parle, on attribue ici un n° de variable. Cette variable identifie l’écran physique donc la variable 1000 sera notre écran DISPLAY 0 Pour attribuer le n° de variable rien de plus facile : mettez votre n° dans le rectangle blanc et valider sur « ADD Var » et le programme confirmera votre demande en indiquant le n° à côté de « Variable ». Pour le changer refaite la même manœuvre avec votre nouveau n°. INFO : le n° d’écran virtuel est lié au n° de la variable du display. On passera en programmation le paramètre 0,1,2,3 ou 4 à la variable pour afficher l’écran virtuel voulu. (1000=1 pour signaler l’écran virtuel 1 sur le display 0)…

Il nous reste ensuite l’écran proprement dit

Pour notre premier test, nous allons écrire le mot « TUTORIEL » sur notre écran Double cliquer sur le premier rectangle pour voir ceci : (vérifiez que vous êtes bien en écran virtuel 0)

Dans la partie Text : nous entrons « TUTORIEL » et validons avec OK

INFO : le logiciel attribuera automatiquement un emplacement à chaque lettre nous évitant ainsi de faire la manœuvre lettre par lettre

Votre écran devrait ressembler à cela Sauvons notre config : Fichier => save (Pour rappel : le nom par défaut du fichier est ioclcd.lcd et dois se trouver dans le même répertoire que les soft LCD) Puis fermer le IOCLCD_CONFIG Lancer maintenant le IOCLCD.exe et vous devriez voir apparaitre sur votre écran le mot « TUTORIEL » Conseil : Si vous ne voyez pas ce que vous venez d’écrire : Vérifiez que vous avez bien inscris le mot dans l’écran correspondant à ce que vous avez soudé (dépend de quel fils data vous avez raccordé. Rappel : Display 0 = 29 - Display 1 = 30 – Display 2 = 27 – display 3 = 28) Vérifiez que vous avez bien inscris le mot sur l’écran virtuel 0 (pour le savoir, passer les en revue) Vérifiez le contraste et luminosité Vérifiez que le nom sous lequel vous venez d’enregistrer correspond bien au nom par défaut du IOCLCD.ini Si tout est ok mais que rien ne se passe, vérifiez vos connexions et soudures A pratiquer sur tous vos écrans pour vérifier que ses derniers fonctionnent.

1.4 Programmation Avant de commencer à programmer sur SIOC, nous allons effectuer un dernier petit test pour s’assurer que SIOC et USB-LCD communique bien ensemble. Démarrer sioc afin de voir ceci :

Démarrer ensuite le soft IOCLCD.exe

A la ligne « Status » vous devez avoir maintenant « Online » qui signifie que USB-LCD parle bien à sioc. Retournez ensuite sur sioc pour voir ceci :

Dans la fenêtre LOG, « IOCP client connected » est venu s’ajouter. Si tel est le cas tout vas bien. Si vous ne voyez pas tout ça, s’est probablement un problème au niveau de la configuration des softs et je vous invite à vous rendre sur le forum Aircockpit pour y trouver la solution INFO : l’USB-LCD n’est pas reconnu comme DEVICES donc s’est normal de ne pas voir votre carte dans cette liste. Vous pouvez toute fois voir qu’il y a maintenant 1 client connecté dans la partie IOCP SERVER

Premier programme : affichage de la com1 active et standby

IMPORTANT : Avant de commencer, il faut savoir qu’il existe une particularité avec les écrans LCD et SIOC. En effet SIOC ne pourra envoyer que des données chiffrées et non alphabétique ni de ponctuation. Cette particularité va nous obliger à écrire à l’avance le texte dont nous aurons besoin.

Pour notre exercice nous allons devoir faire apparaitre sur l’écran : COM1 ACT : COM1 STB : Votre écran devrait ressembler à ceci : (procédez de la même manière que pour notre mot TUTORIEL du test)

Comme sioc n’envoie pas la ponctuation nous allons devoir inscrire manuellement le point de séparation entier décimal. ATTENTION : le « point » devra se trouver derrière 3 caractères libres (les entiers)et devant 2 caractères libres (les décimales) sans quoi la suite des opérations effacera le séparateur.

Maintenant nous allons définir sur notre écran ou ira les entiers et les décimales et leur donner également un n° pour nos futures variables. Double cliquer sur le premier caractère ou devra apparaitre les entiers de la fréquence active (3 caractères avant le « . »

Au lieu d’y inscrire du texte, nous donnons ici le n° de la variable (pour notre exemple 1001) de ce que l’on voudra faire apparaitre ainsi que le nombre de caractère (Lenght) que ses données vont prendre (ici 3) et valider par le bouton « OK » de la même ligne

Les rectangles jaune vous montre la place occupée par une(des) variable(s) ASTUCE : un passage sur ses rectangles avec la souris fera apparaître une info bulle avec le n° de la variable Faites de même pour les décimales en prenant soin de mettre votre n° de variable et une longueur de 2 Com1 act : Entier ; variable n°1001 longueur 3 Décimal ; variable n° 1002 longueur 2 Com1 STB Entier ; variable n°1003 longueur 3 Décimal ; variable n° 1004 longueur 2 CONSEIL PRATIQUE : Afin de s’y retrouver dans tous les numéros de variable et pour une lecture plus facile, je travaille toujours en numérotant comme ceci : Mais écrans Display 0 : variable n°1000 - Display 1 : variable n°1100 - Display 2 : variable n°1200 – Display 3 : variable n°1300 (les centaines me servent à identifier le n° du display) Pour mes écrans virtuel et sous variables, je travaille avec les 10ene ainsi la 1ere sous variable du Display 0 sur l’écran virtuel 0 sera lue 1001 Alors que la 3eme sous variable du display 2 sur l’écran virtuel 3 sera lue 1223 De cette façon je peux programmer sans risque de me tromper dans les numéros des variables.

Une fois fini, sauvez et quittez IOCLCD_CONFIG Ouvrez sioc puis config sioc On va commencer par déclarer toute nos variables qui concernent notre écran Les variables ne sont liées à rien (NO LINKED)

Ensuite nos variables concernant les fréquences

Nous allons maintenant devoir traiter les données des variables com1 ACT et STB car elles ne sont pas utilisable brut. Si nous regardons la liste de Peter Dowson, elle nous dit que les offsets fréquences pour les Com sont en format BCD que la fréquence 123.45 est représentée comme ceci 0x2345. De plus nous devons séparer les entiers des décimal pour les envoyer sur notre écran Commençons à traiter la fréquence de la COM 1 active Comme le format utilisable est le format BCD nous passons donc la valeur reçue dans le bon format En sioc : L0 = FROMBCD &COM1_ACT (la valeur à retenir (L0) est égale à la valeur de COM1_ACT au format BCD Le FROMBCD signale que l’on transforme en format BCD a l’inverse pour envoyer en format BCD on utilisera la fonction TOBCD Si nous pouvions lire le résultat, nous verrions que L0 = 2345 représentant la fréquence 123.45 Vous l’avez remarqué il manque le 1 de 123 alors ajoutons le Pour ce faire nous allons ajouter 10000 à L0 pour obtenir 12345 (2345 + 10000) En sioc : L0 = l0 + 10000 Maintenant nous allons devoir séparer les entiers de décimales pour obtenir deux valeurs 123 et 45 Et pour obtenir 123,45 à partir de 12345 il suffit de diviser par 100 En sioc : L1 = L0 / 100

Info : les L0 L1 L2 servent à garder des valeurs dans notre cas L0 sert de base L1 servira pour retenir nos entiers et L2 nos décimale

Ensuite pour ne garder que les entiers on va tronquer le résultat obtenu En clair ; tronquer la valeur L1 pour obtenir une nouvelle valeur L1 En sioc : L1 = TRUNC L1 Occupons-nous des décimales Pour ne garder que les décimal d’un nombre on utilise ici la fonction MOD qui à l’inverse de TRUNC ne garde que le résultat décimal d’une division Nous allons reprendre notre valeur L0 qui est rappeler vous = à 12345 et donc la diviser par 100 et retenir le résultat sous L2 En sioc : L2 = MOD L0 100 Résumé : Nous avons L0 = 12345 L1 = 123 L2 = 45 Sous sioc sa ressemble à ceci :

A ce stade il ne reste plus qu’à dire à sioc d’envoyer les valeurs obtenues à notre écran En dessous du dernier calcul (L2) on dit à sioc que lcd_com1_AE est = à L1 et que lcd_com1_AD est = à L2 En Sioc : &lcd_com1_AE = L1 &lcd_com1_AD = L2 Enregistrer – fermer le config sioc – Reload et lancer FS (IOCLCD dois également être lancé) Pour afficher la fréquence StandBy répétez les opérations Le code complet sioc en TXT : Var 1000, name ecran_LCD_0

// Display 0

Var 1001, name lcd_com1AE

// Com1 active partie entier

Var 1002, name lcd_com1AD

// Com1 active partie decimal

Var 1003, name lcd_com1SE

// Com1 stb partie entier

Var 1004, name lcd_com1SD

// Com1 stb partie decimal

Var 2000, name COM1_ACT, Link FSUIPC_OUT, Offset $034E, Length 2 { L0 = FROMBCD &COM1_ACT L0 = L0 + 10000 L1 = L0 / 100 L1 = TRUNC L1 L2 = MOD L0 ,100 &lcd_com1AE = L1 &lcd_com1AD = L2 }

// fréquence com1 Active

Var 2001, name COM1_STB, Link FSUIPC_OUT, Offset $311A, Length 2 { L0 = FROMBCD &COM1_ACT L0 = L0 + 10000 L1 = L0 / 100 L1 = TRUNC L1 L2 = MOD L0 ,100 &lcd_com1SE = L1 &lcd_com1SD = L2 }

// fréquence com1 STB

Screen du sioc :

Dans le prochain chapitre, nous verrons comment utiliser les écrans virtuels et le passage d’un à l’autre avec un bouton. A suivre …

Mammouth Mouthuy Vincent

View more...

Comments

Copyright 2017 ECITYDOC Inc.