5
Serrure électriqu e à code-barres Les serrures tradi - tionnelles à clé s ont encore d e beaux jours devan t elles . II n'empêche, de nombreux dispo - sitifs existent déj à ou s'inventen t chaque année pou r " moderniser " c e système . Parm i ceux-ci, on peut citer les télécom - mandes radio o u infrarouges, le s transpondeurs, le s iButtons, les carte s à puces, les carte s magnétiques et le s code-barres . C'es t ce dernier moye n qui est illustré dan s ce montage . Notre lecteur de code-barres es t un simple capteur CNY70 as- socié à un microcontrôleu r PIC16F84, la clé à code-barre s étant quant à elle gravée sur u n morceau d'époxy . Le pro - gramme du microcontrôleur tient en quelques lignes écrites e n BASIC F84, langage proche d e l'assembleur mais simple à com- prendre et à utiliser : le montag e est donc idéal pour s'initier tout à la fois à l'électronique en généra l et à ce microcontrôleur, en par- ticulier. Dessin de la cl é graphique, le code-barre s Un code-barres est une représen- tation graphique d'une information , représentation optimisée pour un e lecture optique . A cet effet, le s barres doivent contraster avec le s espaces, ce qui explique qu'elle s sont souvent noires sur fond blanc . Le principe d'un lecteur de code - barres est rapidement déduit : u n rayon émis par une source lumi- neuse est envoyé sur le code - barre, la lumière plus ou moin s réfléchie par les barres et le s espaces est alors captée par u n récepteur optique puis Interprété e par un décodeur. Comme vous l'avez certainemen t remarqué lors de vos achats, il n' y a pas de standard unique pour le graphisme des code-barres : cha- que industrie ou organisme a so n propre standard (EAN13, COD E 39, etc .) alors pourquoi pas nous ! La figure 1 décrit le principe qu e nous avons utilisé pour coder u n nombre compris entre 0 et 255 . Ce nombre s'écrit en binaire à l'aide de 8 bits de valeur 0 ou 1 . Dans l'exemple, le nombre à convertir en code-barres est 137 . Ce nombre s'écrit en notatio n binaire 10001001 . Notre repré- sentation graphique va consister à tracer une large barre noire suivi e d'un mince espace blanc pou r coder un 1 et à tracer une minc e barre noire suivie d'un large espac e blanc pour coder un O . Pour pré- ciser les termes " large " et ' mince " , " large " représente une grandeu r métrique deux fois plus grande qu e " mince " . Un tel codage présente pour nous plusieurs intérêts : l e tracé d'un tel code-barres est à l a portée de n'importe quel program- meur (donc moi !) avec un algo- rithme simple et surtout, sa lectur e est aisée par un capteur optiqu e quelconque sans nécessiter l a finesse d'un rayon laser . Le logicie l CODE-BARRES .exe, créé à l'oc- casion de ce montage et présent é figure 2, permet de dessiner de s clés d'après trois nombres de hui t bits . Le nombre de clés différente s possible est donc de 256 x 25 6 1000100 1 Codage de 137 ® Logiciel cod e barres-xe 11111111111111111111111 1 Dessner Codebmre s Code-barres n° 282 www.electruriquepratique .com 28 ELECTRONIQUE PRATIQUE

Serrureà code-barreélectriquesmbrochand.free.fr/Serrure/Serrure_codebarres_pic.pdf · socié à un microcontrôleur PIC16F84, la clé à code-barre s étant quant à elle gravée

Embed Size (px)

Citation preview

Page 1: Serrureà code-barreélectriquesmbrochand.free.fr/Serrure/Serrure_codebarres_pic.pdf · socié à un microcontrôleur PIC16F84, la clé à code-barre s étant quant à elle gravée

Serrure électriqueà code-barres

Les serrures tradi -tionnelles à clé s

ont encore debeaux jours devantelles. II n'empêche,de nombreux dispo -sitifs existent déjà

ou s'invententchaque année pou r

" moderniser " cesystème. Parmiceux-ci, on peut

citer les télécom -mandes radio o uinfrarouges, le s

transpondeurs, le siButtons, les carte sà puces, les cartesmagnétiques et les

code-barres . C'estce dernier moye n

qui est illustré dan sce montage .

Notre lecteur de code-barres estun simple capteur CNY70 as-socié à un microcontrôleu rPIC16F84, la clé à code-barre sétant quant à elle gravée sur unmorceau d'époxy. Le pro-gramme du microcontrôleur tienten quelques lignes écrites enBASIC F84, langage proche d el'assembleur mais simple à com-prendre et à utiliser : le montag eest donc idéal pour s'initier tout àla fois à l'électronique en généra let à ce microcontrôleur, en par-ticulier.

Dessin de la cl égraphique, le code-barre sUn code-barres est une représen-tation graphique d'une information ,représentation optimisée pour un electure optique . A cet effet, le sbarres doivent contraster avec le sespaces, ce qui explique qu'ellessont souvent noires sur fond blanc .Le principe d'un lecteur de code -barres est rapidement déduit : u nrayon émis par une source lumi-neuse est envoyé sur le code -barre, la lumière plus ou moin sréfléchie par les barres et le sespaces est alors captée par u nrécepteur optique puis Interprété epar un décodeur.Comme vous l'avez certainemen tremarqué lors de vos achats, il n' ya pas de standard unique pour le

graphisme des code-barres : cha-que industrie ou organisme a so npropre standard (EAN13, COD E39, etc .) alors pourquoi pas nous !La figure 1 décrit le principe qu enous avons utilisé pour coder u nnombre compris entre 0 et 255 .Ce nombre s'écrit en binaire àl'aide de 8 bits de valeur 0 ou 1 .Dans l'exemple, le nombre àconvertir en code-barres est 137 .Ce nombre s'écrit en notatio nbinaire 10001001 . Notre repré-sentation graphique va consister àtracer une large barre noire suivi ed'un mince espace blanc pou rcoder un 1 et à tracer une minc ebarre noire suivie d'un large espac eblanc pour coder un O . Pour pré-ciser les termes " large " et ' mince " ," large " représente une grandeu rmétrique deux fois plus grande qu e" mince " . Un tel codage présente

pour nous plusieurs intérêts : l etracé d'un tel code-barres est à l aportée de n'importe quel program-meur (donc moi !) avec un algo-rithme simple et surtout, sa lectureest aisée par un capteur optiqu equelconque sans nécessiter l a

finesse d'un rayon laser. Le logicie lCODE-BARRES.exe, créé à l'oc-casion de ce montage et présent éfigure 2, permet de dessiner de sclés d'après trois nombres de huitbits . Le nombre de clés différente spossible est donc de 256 x 25 6

1000100 1Codagede 137

®Logiciel codebarres-xe

11111111111111111111111 1Dessner Codebmre s

Code-barres

n° 282 www.electruriquepratique .com 28 ELECTRONIQUE PRATIQUE

Page 2: Serrureà code-barreélectriquesmbrochand.free.fr/Serrure/Serrure_codebarres_pic.pdf · socié à un microcontrôleur PIC16F84, la clé à code-barre s étant quant à elle gravée

I REG/7805 11 N400 1

0--H -~~

3In Out'Gnd

C2 =nF

OT

O R

rdO CVers

serrureélectrique

+5V

R 74,7 k

16

C3Z 22p F

'

Le schémaélectrique

+

9v K1 Ci +

10 FrFTO

CNY70

L 2Le dbicolore

R4430

K4 i K3Partie

capteu r

CI3

R 11k

Vdd• MCLR

C1 1PIC16F84

• RBO

RAi

RB1

CLKIN

RB2Vss

K2

T2N2222 A

x 256, soit plus de seize millions de com-binaisons . A moins que tous les lecteursutilisent la clé 137_178_12 de la figure 2 ,notre serrure à code-barres est alors pra-tiquement inviolable .

Schéma électriquedu montageLe schéma électrique de cette réalisatio nest présenté figure 3 . Les rôles princi-paux sont bien sûr tenus par le PIC16F84et le CNY70 . Ce dernier se présentesous la forme d'un petit boîtier contenan tune source de lumière (LED IR) et u ndétecteur de lumière (phototransistor) . Lephototransistor est aligné sur la sourcepour détecter la lumière émise par l asource puis réfléchie par un objet . Cecomposant s'adapte particulièrement ànotre application . L'amplificateur opéra-tionnel Cl2 est monté en comparateu rdes tensions présentées sur ses entrée s2 et 3 . La tension sur la broche 3 est défi -nie par l'ajustable AJ qui détermine ains iun seuil de détection des barres et desespaces . Quand un espace est présentédevant le CNY70, aucune lumière n'estréfléchie, le phototransistor ne conduitpas et la tension sur la broche 2 de Cl 2est nulle . Au contraire, quand une barreest présentée devant le CNY70, l alumière est réfléchie par les bandes

métalliques, le phototransistor conduit e tla tension sur la broche 2 avoisine les3 volts . Si la tension de seuil sur la broch e3 est ajustée à une valeur inférieure à 3 V ,par exemple 2 V, la tension sur la broch e6 sera significative de la détection d'u nespace ou d'une barre : broche 6 à l'étathaut (LED L 1 allumée) signifie un espace ,broche 6 à l'état bas (LED L i éteinte)signifie une barre . La clé à code-barres

défilant rapidement devant le capteur, I lsuffit alors de mesurer les durées relativesdes passages des barres et des espace spour détecter les bits 0 ou 1 successifs .Le circuit d'horloge nécessaire au fonc-tionnement du PIC est constitué de l arésistance R 7 et du condensateur C 3 . L afréquence obtenue dont la stabilité n'estpas primordiale est de l'ordre de 4 MHz .La LED bicolore L2 présente normalement

le coeur du montage fait appel à un PIC1IiF84 .

n° 282 www.electroniquepratique.com 29 ELECTRONIOJE -PRATIQUE

Page 3: Serrureà code-barreélectriquesmbrochand.free.fr/Serrure/Serrure_codebarres_pic.pdf · socié à un microcontrôleur PIC16F84, la clé à code-barre s étant quant à elle gravée

la couleur rouge . Pour cela, l'anode de l aLED rouge reliée à RB1 est à l'état hau talors que l'anode de la LED verte reliée àRB2 est à l'état bas . Lorsqu'une clé es tpassée devant le capteur et reconnue ,les états de RB1 et RB2 sont inversés e tla LED devient alors verte pendant di xsecondes. Pendant ce même délai, l erelais commandant une serrure électriqu eest activé par un passage à l'état haut d eRAI et donc la conduction du tran-sistor T.

Le programme du PICLe programme CODE_BAR du PIC estdisponible sur le site Internet d'ELEC-IRONIQUE PRATIQUE sous deux formesla première est le listing en BASIC F84présenté dans cet article, la seconde es tson fichier hexadécimal . Les lecteurs nepossédant pas le BASIC pourront ains icharger directement le fichier hexadéci-mal à partir d'un des programmateursproposés par la revue, les lecteurs pos-sédant le BASIC pourront, plus tard ,modifier plus facilement le programm esource selon leurs envies et surtout selo nleur propre clé !

L'écriture du programme se fait sans dif-ficulté majeure . Les lecteurs fidèles

;(1)déclaration des;variables et des tableaux

VAR IMAG EVAR FOI SVAR LIGN EDATA AFFI

;(2)initialisationORG 0CONFIG PORTA, 0CONFIG PORTB4OOUT PORTB,128OUT PORTA,3 1

;(3)Affichag eDEBUT FOR IMAGE=0 TO 4

FOR FOIS=1 TO 1 0LIGNE=6*IMAGEOUT PORTB, AFFI[LIGNE]BCF PORTA, 4PAUSE 1BSF PORTA, 4INCF LIGNE, 1OUT PORTB, AFFI[LIGNE ]BCF PORTA, 3PAUSE 1BSF PORTA, 3INCF LIGNE,1OUT PORTB, AFFI[LIGNE]BCF PORTA, 2PAUSE 1BSF PORTA, 2INCF LIGNE, 1OUT PORTB, AFFI[LIGNE]BCF PORTA, 1PAUSE 1BSF PORTA,1INCF LIGNE, 1OUT PORTB, AFFI[LIGNE]BCF PORTA,OPAUSE 1BSF PORTA, 0INCF LIGNE,1OUT PORTB, AFFI[LIGNE]BCF PORTB, 7PAUSE 1BSF PORTB,7NEXT FOISNEXT IMAG EGOTO DEBUT

;(4)les données de l'affichageAFFI 191,191,179,179,191,19 1

191,161,173,173,161,19 1128,158,158,158,158,12 8191,161,173,173,161,19 1191,191,179,179,191,19 1

retrouveront de profondes similitude savec des programmes de réception infra -rouge parus dans des numéros précé-dents d'ÉLECTRONIQUE PRATIQUE . Leprogramme écrit en BASIC F84 se com-prend facilement avec les quelques com-mentaires qui suivent sur le rôle d echaque partie du programme .1 : Déclaration des variables . Pour utilise rune variable dans le programme, il faut ladéclarer en tête de programme . Pou rrendre plus facile la compréhension duprogramme, il est recommandé de bap-tiser les variables par un nom en rappor t

n° 282 www.electroniquepratique .com 30 ELECTRONIQUE PRATIQUE

Page 4: Serrureà code-barreélectriquesmbrochand.free.fr/Serrure/Serrure_codebarres_pic.pdf · socié à un microcontrôleur PIC16F84, la clé à code-barre s étant quant à elle gravée

boucle ATT. . .GOTO ATT tant que RBOreste à l'état haut, donc tant q u 'aucun ebarre ne passe devant le capteur .

4 : décodage des 8 premiers bits . Lecapteur ayant détecté le passage d'unebarre, le PIC va mesurer la durée de so npassage ( DUREE_B) et la durée de l'es -pace qui suit (DUREE_E) . Pour mesurerces temps, l'état de la broche RB0 estéchantillonné toutes les 200 ps (GOSU BDELAI_200) . La fin du premier bit com-mence lors de la détection de la barre d usecond bit . A cet instant, la comparaiso nde DUREE_B et DUREE_E du premier bi tpermet d'en déduire sa valeur 0 ou 1 . Lamême opération est effectuée sur les 7autres bits et au final, CODE_1 contien tla valeur des 8 bits lus .

5 et 6 : décodage des 16 autres bits .CODE_2 et CODE_3 sont obtenus de l amême manière que CODE_1 .

7 : est-ce le bon code-barres ? Si la cl équi a défilé devant le capteur est bien l aclé que doit détecter le programme, alor sCODE_1 =NOMBRE_1 ,CODE_2=NOMBRE_2, CODE_3 =NOMBRE_3 Dans ce cas, la LED bico -

avec leur fonction : les variablesNOMBRE_1, NOMBRE_2, NOMBRE_3représentent les trois nombres définissan tla clé et utilisés par CODE_BARRES .exepour la dessiner, DUREE_B et DUREE_Ereprésentent les durées respective sd'une barre et d'un espace successif lor sdu défilement de la carte devant le cap -teur, CODE_1, CODE_2, CODE_3 sontles trois nombres lus sur la carte par l ecapteur, etc .2 : Initialisation , Avec les deux instruc-tions CONFIG, toutes les broches desports A et B sont programmées en sorti esauf RBO. La boucle FOR . . .NEC produitcinq clignotements de la LED L2 en deux

couleurs : c'est une manière de consta-ter que le programme et le montage fonc -tionnent à la mise sous tension . Aprèscette série de clignotements, seule la par -tie rouge de cette LED reste allumée (BS FPORTB,1) . L'initialisation se termine pa rl'attribution de valeurs numériques auxvariables NOMBRE_1, NOMBRE_2 ,NOM-BRE_3 : il est impératif qu eces trois variables aient le smêmes valeurs que dan sCODE_BARRES .exe .3 : le programme principal . Après avoir Ini -tialisé les 3 nombres CODE_1, CODE_ 2et CODE_3 à 0, le programme parcourt la

lore passe en vert (BCF PORTB,1 etBSF PORTB,2) et le relais est activé(BSF PORTA,1) pendant 10 seconde s(PAUSE 100) .

8 : pause de 200 ps, Pour comparer lesdeux nombres représentant les durée sdes défilements des barres et espaces, i lest important que ces nombres soientinférieurs à 255 puisque les nombres su run PIC ne sont codés que sur 1 octet .DUREE_B et DUREE_E sont donc incré -mentés d'une unité toutes les 0,2 ms . Lalecture du capteur est interrompue siDUREE_B dépasse 100, soit si la lecture

n° 282 www.electroniquepratique .com 31 ELECTRONIQUE PRATIQUE

Page 5: Serrureà code-barreélectriquesmbrochand.free.fr/Serrure/Serrure_codebarres_pic.pdf · socié à un microcontrôleur PIC16F84, la clé à code-barre s étant quant à elle gravée

Construisezet lancez

des fuséesà eau

ÉcologiqueSpectaculaire

A la portée de tous

COIRSIRVUSEZtT LAMCC2 ouFVS gC3 ~.}

Prenez un bouchon de liège ,une valve de chambre à air, unebouteille en plastique ainsiqu'une pompe à vélo et lancez -vous dans la fabrication devotre première fusée à eau !

Pour cela, il n'y a rien de plu ssimple, il vous suffit de vouslaisser guider par l'auteur, qu ivous accompagnera étape parétape dans cette réalisation .

Bien sûr, le charme de cetteactivité pour le moins ludiqueopérant, vous ne vous arrêterezpas /à et progresserez rapide-ment dans la maîtrise desfusées à eau : vous apprendrezà déclencher le départ a u

, moment voulu, à agir sur la tra-cjectoire de vol, à améliorer lesperformances de l'engin, etc .

Pour toute personne désireus ede se lancer dans la réalisationet l'exploitation des fusées àeau, cet ouvrage aux potentielspédagogiques et ludiquesindiscutables est l'outil idéal.

Ivan Lanc éETSF-Planete Sciences

136 pages - 22,50 €

d'une barre dure plus de 20 ms . Un ebarre " large " mesurant environ 2 mm, l avitesse de défilement minimale est don cde 10 om/s . La carte mesurant enviro n10 cm, son passage devant le capteur nedoit pas durer plus de 1 s .

Le logiciel CODE_BARRES .exeUtilitaire sans autre prétention que cell ede créer rapidement une clé à code -barres, le logiciel CODE_BARRE .exe seprend en main rapidement . Entrez dan sles trots champs prévus à cet effet lestrois nombres NOMBRE_1, NOM-BRE_2 et NOMBRE _3 définissant l aclé puis appuyez sur le bouton Dessi-ner code-barres . Sauvegardezalors ce dessin . Votre clé pourra alors êtregravée en même temps que les deuxautres circuits imprimés .

Réalisation du montag ePour des raisons évidentes de sûreté, l emontage a été scindé en deux partie sune première comportant le capteu rCNY70 et la LED bicolore de signalisa-tion, la seconde comportant le PIC et l erelais commandant la serrure . Les deuxcircuits imprimés sont présentés figures4 et 5 . Les composants sont implantésen respectant les dessins des figures 6et 7 et en contrôlant la bonne orientatio ndes supports et des composants polari-sés, circuits intégrés Cl,, Cl 2 , CI 3 , desLED, régulateur et condensateur C, . Il n efaudra pas oublier le condensateur C3 ,placé dans le support du PIC .Ces deux parties du montage sont reliée spar un câble cinq conducteurs muni d edeux connecteurs femelles . Les brochesdes connecteurs K3 et K4 sont dans lemême ordre identifiable par les signe s

et" s" .Le schéma de la figure 8 décrit unexemple de construction d'un lecteur decode-barres . La clé à code-barres glissedans une fente d'une profondeur de25 mm. Ainsi, les barres et espaces sontdétectés par le capteur CNY70 placé à15 mm du bord de la fente . Le capteu rCNY70 étant orienté vers le bas, la LEDL2 est soudée coté cuivre pour être vu surla face supérieure . Ce lecteur avec l ecapteur étant placé sur un mur extérieur ,la carte du PIC est placée à l'intérieur, l ecâble cinq conducteurs enfilé dans unegaine, assurant la liaison .

Réglage et utilisatio nLe programme chargé dans le PIC et l electeur réalisé, il ne reste que le réglag ede l'ajustable à effectuer pour rendrenotre montage opérationnel . Ce réglag en'a pas besoin d'être extrêmement pointu :la tension sur la broche 3 devant êtresupérieure à 0 et Inférieure à 3 V, le plussimple sera de mettre le curseur de

l'ajustable en position centrale et d ereprendre éventuellement ce réglage parla suite . Vous devez constater que si vousplacez votre clé contre le capteur, la LE DL, reste allumée quand il n'y a pas d eréflexions lumineuses sur une barre e ts'éteint dans le cas contraire . SI c 'est l ecas (et il n'y a aucune raison que cela n ele soit pas) et si la LED L 2 a clignoté 5 foi sen teinte orangée à la mise sous tension ,c'est que le programme fonctionne et i lne reste plus qu'à essayer la clé . Faites-la défiler rapidement dans le sens d ela flèche devant le capteur, la LED L2doit passer au vert et le relais s'enclen-cher pendant 10 secondes . Il ne faut pashésiter à effectuer un défilement trèsrapide, le code ne pouvant être reconn usl le défilement est trop lent (voir para -graphe " le programme du PIC " : le défi-lement doit durer 1 s au maximum) .Si cet article manque par endroit declarté, n'hésitez pas à contacter l'auteu rpour quelques renseignements complé-mentaires : alain .reboux@wanadoo .f r

A_ REBOUX

Nomenclature

CI 1 : PIC1 GF84 + support 18 brochesCl, :: UA741 + support 8 broche sCl3 : CNY7 0R,, R2 : 1 kS 2marron, noi5 roug eR 3 , R4, R 5 : 43012jaune, orange, marro nR B : 22 kS 2rouge, rouge, orang eR~ : 4,7 kS2jaune, violet, rougeRB : 2,2 kS 2rouge, rouge, rougeC, :10pFC2 : 100 n FC3 : 22 pFD, : 1N400 1D2 : 1N4148L, : LED ROUG ELZ : LED BICOLOREREG : Régulateur 7805T :2N2222 AREL : relais 5 VK, : bornier 2KZ : bornier 3K3 , K4 : connecteurs mâles 5 brochesCâble 5 conducteurs + 2 prisesfemelles 5 broches.

etuL-

n° 222 www.electronIquepratique.com 32 ELECTRONIQUE PRATIQUE