13
Notes d’applications pour modules « PICBASIC™ » - Volume #A Copyright @Lextronic 2007 1 Notes d’applications Volume #A “Everything for Embedded Control” Copyright Lextronic – Tous droits réservés. La reproduction et la distribution (de quelque manière que ce soit) de tout ou partie de ce document est interdite sans l’autorisation écrite de Lextronic.

Notes d'applications #A pour modules "PICBASIC"

  • Upload
    lekien

  • View
    222

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Notes d'applications #A pour modules "PICBASIC"

Notes d’applications pour modules « PICBASIC™ » - Volume #A

Copyright @Lextronic 2007 1

Notes d’applicationsVolume #A

“Everything for Embedded Control”

Copyright Lextronic – Tous droits réservés.La reproduction et la distribution (de quelque manière que ce soit) de tout ou partie de cedocument est interdite sans l’autorisation écrite de Lextronic.

Page 2: Notes d'applications #A pour modules "PICBASIC"

Notes d’applications pour modules « PICBASIC™ » - Volume #A

Copyright @Lextronic 2007 2

Copyrights et appellations commercialesToutes les marques, les procédés et les références des produits cités dans ce documentappartiennent à leur propriétaire et Fabricant respectif. All brand names and trademarks are theproperty of their respective owners - Other trademarks mentioned are registered trademarks oftheir respective holders.

Informations techniquesLes notes d’applications décrites dans ce document ont été conçues avec la plus grandeattention. Tous les efforts ont été mis en oeuvre pour éviter les anomalies. Toutefois, nous nepouvons garantir que ce document soit à 100% exempt de toute erreur. Les informationsprésentes dans ces notes d’applications sont strictement données à titre indicatif. Lescaractéristiques et les résultats obtenus par ces notes d’applications peuvent changer à toutmoment sans aucun préavis.

Limitation de responsabilitéEn aucun cas LEXTRONIC ne pourra être tenu responsable de dommages quels qu'ils soient(intégrant, mais sans limitation, les dommages pour perte de bénéfice commercial, interruptiond'exploitation commerciale, perte d’informations et de données à caractère commercial ou detoute autre perte financière) provenant de l'utilisation ou de l'incapacité à pouvoir utiliser lesnotes d’applications décrites dans ce document, même si LEXTRONIC a été informé de lapossibilité de tels dommages. Ces notes d’applications sont uniquement destinées à être utilisées telles quelles dans le cadred’un apprentissage à la programmation des modules "PICBASIC™". LEXTRONIC ne donneaucune garantie de fonctionnement de ces notes d’applications si vous utilisez celles-ci au seind’une autre application. A ce titre, ces notes d’applications ne sont pas conçues, ni destinées, niautorisées pour être utilisées au sein d'applications militaires, ni au sein d'applications àcaractère médical ou d’alerte incendie, ni au sein d’applications pour ascenseurs ou commandede feux d’artifices, ni au sein d’applications sur machine outils ou d’applications embarquéesdans des véhicules (automobiles, camions, bateaux, scooters, motos, kart, scooters des mers,avions, hélicoptères, ULM, etc...), ni au sein d'applications embarquées sur des maquettesvolantes de modèles réduits (type avions, hélicoptères, planeurs, etc...).

De manière générale, ces notes d’applications ne sont pas conçues, ni destinées, ni autoriséespour expérimenter, développer ou être intégrées au sein d'applications dans lesquelles unedéfaillance des modules "PICBASIC™" pourrait créer une situation dangereuse pouvantentraîner des pertes financières, des dégâts matériels, des blessures corporelles ou la mort depersonnes ou d'animaux. Si vous utilisez ces notes d’applications associées aux modules"PICBASIC™" ainsi que leurs platines et modules optionnels associés volontairement ouinvolontairement pour de telles applications non autorisées, vous vous engagez à soustraire leFabricant et LEXTRONIC de toute responsabilité et de toute demande de dédommagement. L’exploitation de ces notes d’applications nécessite que l’utilisateur respecte également toutesles précautions d’utilisations relatives à la mise en œuvre des modules "PICBASIC™"(lesquelles sont détaillées dans la documentation de ces derniers).

Page 3: Notes d'applications #A pour modules "PICBASIC"

Notes d’applications pour modules « PICBASIC™ » - Volume #A

Copyright @Lextronic 2007 3

Liste des notes d’applications par ordre chronologique de parution #1 – Ajoutez une connexion Wifi à votre module PICBASIC ...……….………….………….. 6

Page 4: Notes d'applications #A pour modules "PICBASIC"

Notes d’applications pour modules « PICBASIC™ » - Volume #A

Copyright @Lextronic 2007 4

Liste par "thèmes" Interfaçage avec modules de communications#1 – Ajoutez une connexion Wifi à votre module PICBASIC ...……….………….………….. 6

Page 5: Notes d'applications #A pour modules "PICBASIC"

Notes d’applications pour modules « PICBASIC™ » - Volume #A

Copyright @Lextronic 2007 5

Page 6: Notes d'applications #A pour modules "PICBASIC"

Notes d’applications pour modules « PICBASIC™ » - Volume #A

Copyright Lextronic – Tous droits réservés. 6

NOTE D’APPLICATION # 1.Ajoutez une connexion Wifi à votre PICBASICCette note d’application va vous permettre de connecter un modulePICBASIC à un réseau Wifi avec une extrême simplicité. Pour cefaire on aura recours à un petit module OEM spécialisé «EZL-80C» développé par la société Sollae™. Economique, très simple à met-tre en oeuvre et de petites dimensions, ce module dispose d'un connecteur prévu pour recevoir une carte 16 bits CF radio (livrée enoption) au standard IEEE802.11b.

Réagissant à la manière d'un convertisseur "WLAN <> Série", le module génèrera et convertirales données qui lui seront envoyées sur son port série (niveau TTL) en un "format" TCP/IP, touten les envoyant par radio vers le réseau local Wifi de votre PC. A l'inverse les informations enprovenance du réseau radio seront restituées sur le port série du module « EZL-80C ».

Le module "EZL-80C" dispose de nombreux utilitaires de configuration et de test ainsi qu'undriver permettant de l'utiliser de façon "transparente" comme un port série virtuel côté PC (sousenvironnement Windows™ 2000/XP).

Notions abordées :- Communication série

Matériel nécessaire :- Un module « PICBASIC-3B » + 4 interrupteurs + 4 Leds (+ diverses résistances)- Un module « EZL-80C » + une carte CF™ Wifi- Un PC équipé d’une carte de communication Wifi

Description de l’application:Cette application vous permettra de modifier à distance (via votre PC équipé d’unecommunication Wifi) l’état de 4 Leds connectées au module PICBASIC (le pilotage se fera àpartir de commandes en provenance du clavier de votre PC). Vous pourrez également (toujoursà distance via la communication Wifi) connaître l'état logique de 4 entrées du PICBASIC (cesétats s’afficheront sur l’écran du PC). Pour assurer la communication sans fil, le modulePICBASIC sera connecté à un module « EZL-80C » (lequel sera équipé d’une carte CF™ decommunication Wifi « WLAN/CF »).

Page 7: Notes d'applications #A pour modules "PICBASIC"

Notes d’applications pour modules « PICBASIC™ » - Volume #A

Copyright Lextronic – Tous droits réservés. 7

Préparation matérielle:Cette application nécessite que vous réalisiez le schéma ci-dessous. Attention toutes lesconnexions usuelles du « PICBASIC-3B » (alimentation, reset, montage des composantsnécessaires à sa programmation) n’ont pas été volontairement représentées afin de ne passurcharger le schéma – Reportez-vous à la notice des PICBASIC pour ces connexions.

Vous pourrez idéalement utiliser la platine de test "PICBASIC Study Board" pour réaliser lemontage ci-dessus (en exploitant les boutons-poussoirs et les Leds de celle-ci). Le module« EZL-80C » pourra également être enfiché sur la plaque de connexion sans soudure de laplatine de test. Il vous faudra toutefois vous procurer un régulateur 3,3 V afin de pouvoiralimenter le module « EZL-80C ».

Si nécessaire, nous proposons une petite platine de régulation (sous la référence « REG533 »), laquelle vous permettra de générer du3,3 V à partir du 5 V de la platine « PICBASIC Study Board »). Les ports "I/O12" à "I/O15" seront raccordés aux Leds, tandis que les ports "I/O8 à I/O11"seront raccordés à des interrupteurs. Enfin les ports "I/O16" et "I/O17" seront respectivementraccordés aux broches "TX" et "RX" du module « EZL-80C ». Une résistance de 10 Kohmspermettra de limiter la tension en sortie du PICBASIC afin que cette dernière soit compatibleavec le niveau max. de 3,3 V toléré par le module « EZL-80C ».

Configuration de la communication Wifi :Le recours au module « EZL-80C » vous permettra de créer une liaison série virtuelle autravers de votre transmission Wifi. Une fois configuré, vous disposerez alors de l’équivalent d’uncâble série RS232 (sans fil) entre le PC (devant être équipé d’une carte Wifi) et votre modulePICBASIC (équipé du module « EZL-80C » et d’une carte CF™ Wifi). Du côté du PC, un driverde port virtuel (fonctionnant pour Windows 2000™ ou Windows XP™) permettra le pilotageautomatique de la carte Wifi du PC (comme s’il s’agissait d’un port COM). Du côté PICBASIC,vous disposerez aussi de l’équivalent d’un port COM via des signaux TX et RX sur le module« EZL-80C ». Le PC et le PICBASIC pourront alors dialoguer à distance sans fil via une liaisonRS-232 en passant par le réseau Wifi (comme s’ils étaient reliés par un câble série).

Page 8: Notes d'applications #A pour modules "PICBASIC"

Notes d’applications pour modules « PICBASIC™ » - Volume #A

Copyright Lextronic – Tous droits réservés. 8

La première opération à réaliser consistera à configurer les paramètres du module OEM« EZL-80C » . Pour ce faire, il faudra relier temporairement ce dernier au port série de votrecompatible PC (un montage d’adaptation de niveau logique à base de circuit intégré MAX3232(attention pas un MAX232) sera nécessaire afin que les niveaux logiques du port série dumodule OEM « EZL-80C » soit compatibles avec ceux du port RS232 du PC).

Si nécessaire, nous disposons d’une platine (sous la référence « EZL-90 ») réalisant cettefonction).

Une fois le module « EZL-80C » relié au port série du PC et alimenté, exécutez le programme« ezSerialConfig » (ce dernier est livré sur le CD-ROM du module « EZL-80C » (il estégalement disponible sur le site www.sollae.com). Attention durant cette opération, il ne fautpas insérer la carte CF™ Wifi dans le connecteur du module « EZL-80C ».

Sélectionnez en premier lieu le N° du port COM sur lequel est relié le module « EZL-80C », puiscliquez sur le bouton « Read » pour récupérer la configuration du module « EZL-80C ». A cestade, vous pouvez modifier les paramètres du module selon votre application.

Dans notre exemple le module est destiné à dialoguer directement avec un PC équipé d’unecarte de communication Wifi et sans cryptage. On devra donc configurer le paramètre « WLANMode » en « AD-HOC(0) ».

Recopiez les autres paramètres présent sur cette copie d’écran sur la fenêtred’« ezSerialConfig » (certains de ces paramètres peuvent nécessiter des modifications si vousdisposez d’un environnement Wifi différent).

Page 9: Notes d'applications #A pour modules "PICBASIC"

Notes d’applications pour modules « PICBASIC™ » - Volume #A

Copyright Lextronic – Tous droits réservés. 9

Par contre, pour les besoins de notre application il faut impérativement configurer le débit duport à 9600 bds / sans parité / 8 bits de données et sans contrôle de flux.

Terminer l’opération en cliquant sur le bouton « Write ».

Vous pouvez désormais déconnecter le module « EZL-80C » du PC et (hors alimentation)insérer la carte CF™ Wifi dans le connecteur du module« EZL-80C », lequel pourra alors être relié au module PICBASIC comme indiqué ci-avant. Sur le PC équipé de la carte de communication Wifi, Sous Windows™ allez dans le menu« Démarrer » -> « Paramètres » -> « Connexions réseau ». Une fenêtre s’affiche alors danslaquelle il vous faut réaliser un clic droit de souris sur l’icône « Connexion réseau sans fil » etsélectionnez « Propriétés » (L’écran de gauche présenté ci-dessous s’affiche alors).

Faite un « double-clic » sur « Protocole Internet (TCP/IP) » afin d’afficher la seconde fenêtrede droite présentée ci-dessus. Cochez la sélection « Utiliser l’adresse IP suivante », puis saisissez une adresse IP pour lacarte wifi du PC (différente de celle utilisée pour la carte « EZL-80C ») ainsi que la valeur dumasque « sous réseau » (qui doit être identique à celle utilisée lors de la configuration de lacarte « EZL-80C »).

Cliquez ensuite sur le bouton « OK ».

Page 10: Notes d'applications #A pour modules "PICBASIC"

Notes d’applications pour modules « PICBASIC™ » - Volume #A

Copyright Lextronic – Tous droits réservés. 10

Exécutez ensuite le logiciel de configuration de la carte Wifi de votre PC et modifiez lesparamètres de la communication afin que ces derniers correspondent à ceux programmés surle module « EZL-80C ». Dans notre exemple, on sélectionnera le même nom d’identification « TEST » que celui choisidans « ezSerial Config » pour le paramètre SSID.

De même on sélectionnera un mode de communication Ad-Hoc, sans cryptage.

Cet écran de configuration peut être différent selon le type de carte Wifi que vous utilisez.

De même, certains de ces paramètres peuvent nécessiter des modifications si vous disposezd’un environnement Wifi différent. La dernière opération consiste à créer un port de communication virtuel. Pour ce faire, il vousfaudra télécharger un driver (ezVSP) sur le site www.sollae.com. Attention ce driver nefonctionne que sous WindowsXP/2000™.

Le site demande que vous lui communiquiez l’adresse MAC inscrite sur votre module « EZL-80C » pour pouvoir installer le driver (N’indiquez pas l’adresse MAC de la carte CF™ Wifi).

Page 11: Notes d'applications #A pour modules "PICBASIC"

Notes d’applications pour modules « PICBASIC™ » - Volume #A

Copyright Lextronic – Tous droits réservés. 11

Une fois installé, exécutez « ezVSP » afin d’obtenir l’écran ci-dessous :

Cliquez ensuite sur le bouton « CREATE VSP » afin que la fenêtre ci-dessous s’ouvre.

Sélectionnez le N° du port COM virtuel qui sera créé.

Page 12: Notes d'applications #A pour modules "PICBASIC"

Notes d’applications pour modules « PICBASIC™ » - Volume #A

Copyright Lextronic – Tous droits réservés. 12

Dans la sélection « Network mode », cochez l’option « TCP Client ». Configurez l’adresse« Peer IP » avec celle du module « EZL-80C » et le paramètre « Peer Port » avec la mêmevaleur que celle utilisée pour le module «EZL-80C ». Cliquez enfin sur le bouton « OK » pour revenir à l’écran ci-dessous

Cliquez alors sur le bouton « START ALL CHECKED VSP » afin de créer définitivement le portvirtuel. Votre PC est désormais prêt à communiquer avec la carte « EZL-80C » afin que vouspuissiez mettre en œuvre cette application.

Description détaillée du programme du PICBASIC:Le programme ci-dessous (que vous retrouverez sur notre site Internet : www.lextronic.fr ) esten attente permanente d'un octet sur le port série (I/O 17) du PICBASIC en provenance de lasortie TX du module « EZL-80C ». Si au bout de 5 sec. aucun caractère n'est détecté, leprogramme retourne en attente en ligne 10. Afin de pouvoir envoyer des ordres de pilotage viale clavier du PC vers le module PICBASIC, il vous faudra préalablement disposer (sur le PC)d'un émulateur de terminal série (vous pouvez par exemple utiliser "Hyper Terminal™", livréavec Windows™).

Exécutez donc ce dernier en sélectionnant le numéro du port virtuel précédemment créé pour lemodule « EZL-80C » (dans notre exemple nous avons utilisé le port COM3). Configurezégalement "Hyper Terminal™" avec un débit de communication de 9600 bds, 8 bits, 1 stop ,aucune parité et aucun contrôle de flux (ce dernier paramètre est important).

Page 13: Notes d'applications #A pour modules "PICBASIC"

Notes d’applications pour modules « PICBASIC™ » - Volume #A

Copyright Lextronic – Tous droits réservés. 13

Le programme est fait de telle sorte que vous puissiez commander (en mode "marche / arrêt)les 4 Leds reliées au PICBASIC à l'aide des touches "1" à "4" du clavier numérique du PC. Lestouches "0" et "9" permettant respectivement d'éteindre toutes les Leds ou d'allumer toutes lesLeds en même temps. Cette possibilité est rendu possible en enlevant la valeur décimale 37 ducode retourné par le PC, dès lors en tapant sur la touche 1, la variable I sera égale à la valeurdécimale "12" (correspondant au port capable de piloter la Led 1), en tapant la touche 2, lavariable I prendra alors la valeur "13" (correspondant au port capable de piloter la Led 2), etainsi de suite... Un test sera effectué pour vérifier que la valeur de l'octet reçu reste dans lesports attribués à la commande des Leds (ainsi toutes les autres touches seront ignorées).

Toutefois si vous sollicitez la touche "7" du clavier du PC, dans ce cas le PICBASIC varetourner l'état logique ("0" ou "1") individuel des 4 ports "I/O8" à "I/O11" reliés sur ses boutons-poussoirs afin de les afficher sur l'écran d'Hyper terminal™ du PC. A ce stade, le PICBASICenvoi via sa sortie série l’état de ses 4 entrées, sur la broche RX du module « EZ-80C » (qui luimême les transmettra « en Wifi » au PC afin qu’ils les reçoivent sur son port COM virtuel). Uncaractère "13" est envoyé en fin de chaîne afin que le curseur revienne en début de ligne pourre-écrire par dessus les même chiffres lors de l'interrogation suivante.

On notera toutefois que si l'état des poussoirs changent, vous ne verrez pas évoluer cesderniers en temps réel à l'écran du PC (vous ne connaissez l'état des boutons-poussoirs quesur "interrogation" via la touche "7" du clavier du PC). Ce programme est très simple et ne comprend aucune sécurisation lors de l’activation dessorties ou de l’interrogation des entrées. Il sera très simple de le perfectionner en ajoutantquelques octets en entête de la commande afin que le PICBASIC analyse ces octets et neréagisse que si il les « reconnaît ».

'################################# ‘# Ajoutez une communication # '# wifi à votre PICBASIC # '# @Lextronic 2007 - 05/12/2007 # '################################# const device = 3B DIM I AS BYTE,J AS BYTE, K AS BYTE10 SERIN 17,103,0,5000,10,[I] I=I-37 IF I>11 AND I<16 THEN TOGGLE I END IF IF I=11 THEN BYTEOUT 1,0 ' éteind toutes les Leds en même temps IF I=20 THEN BYTEOUT 1,255 ' Allume toutes les Leds en même temps IF I=18 THEN ' Demande de lecture des 4 entrées I=IN(8)+&H30 SEROUT 16,103,0,1,[I] I=IN(9)+&H30 SEROUT 16,103,0,1,[I] I=IN(10)+&H30 SEROUT 16,103,0,1,[I] I=IN(11)+&H30 SEROUT 16,103,0,1,[I] SEROUT 16,103,0,1,[13] END IF GOTO 10