Mini automate / "dataloggueur" programmable à PIC 16F877a

Mise à jour le 16 octobre 2008

http://matthieu.weber.free.fr

PROJET EN COURS DE DÉVELOPPEMENT...

Contexte :

Il m'est venu l'idée de concevoir ce mini automate / "dataloggueur" pour réaliser la partie commande de divers automatismes, notamment en domotique, alarme et sécurité, photographie (intervallomètres...) et réaliser diverses animations lumineuses à l'occasion d'évènements festifs. L'affichage est d'origine confié à un écran LCD 128 X 64 caractères TACTILE rétro-éclairé bleu vendu chez Lextronics) mais l'automate est adaptable à d'autre afficheurs, comme un LCD 2 X 16 caractères, ou un LCD graphique de taille quelconque (A vous d'adapter le code en conséquence ! ). 
Cet automate possède de nombreuses entrées sorties dont certaines peuvent fournir une certaine puissance (quelques ampères)... 

Une sortie par LED infrarouge et radio 433Mhz permet de télécommander tout appareil domestique (...pour peu qu'il soit télécommandable), ce qui ouvre de nombreuses applications domotiques (programmateur pour la cafetière, les volets roulants ; réveil le matin avec la chaîne hi fi, simulateur de présence....). Une entrée infrarouge et radio pour acquérir les codes de ces télécommandes d'appareils est également prévue...

Vous trouverez ci-dessous un résumer de ses caractéristiques. Sachez que l'automate intègre certains composants de puissance permettant de l'interfacer aisément avec un équipement existant.

 

 Avancement du projet :

Conception et
spécifications
Schéma
électronique
Dessin du
circuit imprimé
Soudage et
Réalisation
Développement
logiciel (Firmware)
Tests et
Validations
ConceptionSchémaCircuit impriméSoudureCodeTest
100%95%80%0%5%0%

Caractéristiques techniques :

 

Schéma de principe et fonctionnement :

Schéma ( INCOMPLET, INEXACT- PROJET EN COURS ) de l'automate (Cliquez ici pour l'agrandir)

Architecture :

Voici mon troisième prototype d'automate et le premier à être publié en ligne. J'ai conçu la première version en Antarctique afin de réaliser un jeu de lumière lors des festivités de la mid winter (cf. "le carnet de voyage en Antarctique", quelque part sur ce site). Mais celui-ci souffrait de quelques défauts dont une mauvaise gestion de l'alimentation n'autorisant pas une alimentation permanente sur piles et la faiblesse de ses sorties de puissances limitées à 1 A max. De plus, il était réalisé à l'aide de deux circuits imprimés doubles face, ce qui n'est pas un travail de réalisation évident pour l'amateur (L'alignement correct des deux faces demande de la minutie).

J'ai préféré donc revenir sur une base employant un circuit imprimé d'une seule face, quitte à augmenter ses dimensions (en le gardant toutefois intégrable dans un boîtier pouvant se loger dans la poche), et à utiliser quelques composants C.M.S. classiques, (de dimensions "assez importantes" pour ne pas rencontrer trop de difficultés lors de leur soudure et de leur approvisionnement).

J'ai augmenté le nombre d'entrées sortie et la précision des valeurs analogiques mesurées en multiplexant le port SPI/I²C du PIC avec un convertisseur analogique numérique 12 bits de chez Linear Technology. Le port A du PIC est également multiplexé pour économiser des entrés/sorties supplémentaires ce qui entrainera une légère complication du mode d'exploitation des E/S. C'est pourquoi je vous fournirai un programme de base permettant d'employer et de réaliser certaines opérations avec les entrées et sorties de capteurs. Un nano système d'exploitation en somme, que vous pourrez utiliser tel quel (en tant que "dataloggueur") ou le modifier à votre goût.

- Au niveau des circuits intégrés, l'automate utilise :

Composant Nom Nb pattes Fonction
IC1 PIC 16F877a 40 Microcontrôleur (ou 18F4420)
IC2 MAX 756 8 Alimentation boost & ref. tension
IC3 MAX 220 ou 232 16 Interface série RS-232c
IC4 74 HCT 373 20 Buffer 8 bits
IC5 PCF 8583 8 Horloge temps réel I²C
IC6 24C16 8 EEPROM I²C
IC7 MPX 4400P 4 Capteur barométrique
IC8 AD 590 ou 592 3 Capteur de température
IC9 LM 301 8 Pré amplificateur micro & baro.
IC10 Connecteur 9 Connecteur carte Flash MMC/SD
IC11 TLC 2543 20 CAN 12 bits, 10 voies

Le cœur de l'automate est bien évidement le microcontrôleur PIC (16F877a ou 18F4420).


Le convertisseur analogique numérique 12 bit est un TLC 2543, le même utilisé dans le chargeur universel, et ce, afin de garantir des mesures précises. Il mesurera la pression, la/les températures, l'entrée audio (via un micro et un ampli-op) et enfin la tension batterie. Reste 5 sorties libres pour l'utilisateur.

L'horloge temps réel I²C est confiée à un PCF8583.

Un MAX 756 assure l'alimentation de l'ensemble, fabriquant du 5 volts à partir de 1 à 3 piles/accus de 1V5. 

Par ailleurs, le PIC commande la mise en marche ou l'arrêt de chaque gamme de périphérique selon leur utilisation, par exemple la radio, le CAN, la réception infrarouge... Pour une optimisation de la consommation.

La liaison série sera assurée par un MAX 232 ou mieux, un MAX 220 à faible consommation.

Un buffer télécommandé (latch) permettra de multiplexer sur les ports A et E du PIC, le rétro éclairage de l'écran LCD, Et les sorties de puissances.


- Au niveau des interfaces:

L'écran LCD sera: Soit un alphanumérique 1 ou 2 fois n caractères, soit un écran graphique quelconques, pour peu que son interface soit série ou parallèle, en 4 ou 8 bits, plus 3 de contrôles: CE1 (Chip Enable 1); CE2 (Chip Enable 2) ; ST (Strobe).

Le clavier numérique sera un pavé matriciel standard (genre téléphone) de 12 touches.


Les émetteur / récepteur radio seront de type Aurel, opérant dans la bande des 433 Mhz ou autre, moyennant adaptation.

Le récepteur infrarouge (type Sharp ou autre) délivrera un signal démodulé (40Khz adaptable) en cas de réception IR.

8 Leds témoigneront de l'état de l'étage de puissance construit autour des paires de MOS-FEETS montés en push-pull.

La charge de la batterie est réalisée par source de courant constant commutable via la sortie RD5 du PIC.

Gestion de l'alimentation :

Nom du périphérique Nécessite... Ne peut dialoguer au même moment que... N° d'alimentation et consommation (sur batteries) : en veille / marche...
Systèmes
primaires
Alim 1  Alim 2
 (/cs CAN)
Alim 3
Régulateur (MAX 756) - - 60 µA 60 µA 60 µA 60 µA
CPU (PIC 16F / 18F) - - 2 µA / 7 mA 2 µA / 7 mA 2 µA / 7 mA 2 µA / 7 mA
Écran LCD (2 X 16 chars rétro éclairage OFF) Alim 1 CAN, EEPROM, MMC, RADIO tx, LED ir, Buzzer - 2 mA - -
Clavier 12 touches & 7 résistances (1,5M) de tirages vers +Vcc - - 18 µA 18 µA 18 µA 18 µA
Référence de tension 4,096V (MAX6341) MAX 220 - - - 2 mA -
MAX 220 (Liaison RS232) Alim 1 ou 2 - - 1 mA 1 mA -
Lecteur de cartes MMC & bus SPI Alim 3 LCD, CAN, EEPROM - - - 0? / 30 mA?
EEPROM (24Cxxx)
& bus I²C
- LCD, MMC, CAN 1 µA / 1 mA 1 µA / 1 mA 1 µA / 1 mA 1 µA / 1 mA
Bus LIN ou CAN - - +/- 0 mA +/- 0 mA +/- 0 mA +/- 0 mA
CAN Alim 2 (/CS) & Référence de tension LCD, MMC, EEPROM  4 µA / 2,5 mA 4 µA / 2,5 mA 4 µA / 2,5 mA 4 µA / 2,5 mA
Sondes de températures
( AD590 @ 25°C )
CAN cf. CAN - - 280 µA   X 2 -
Baromètre CAN et Alim 3 cf. CAN - - - X
Entrée microphone CAN et Alim 3 cf. CAN - - - X
Radio émetteur Alim 3 LCD - - - 4 mA
Radio récepteur Alim 3 - - - - 3 mA
Buzzer - LCD 0 / 2 mA - - -
IR récepteur Alim 1 ou 2 - - 2 mA 2 mA -
IR émetteur - LCD 0 / 30 mA - - -
Photo diode CAN cf. CAN 0 mA 0 mA 0 mA 0 mA
Consommation totale (sys. primaires+Alim X) Typique, en veille - - 85 µA 5,085 mA 5,519 mA 7,085 mA
Consommation totale maximale (sys. primaires+Alim X), en marche, sans sorties de puissances - - 32,5 mA 12,5 mA 16 mA 37 mA
Autonomie approx. maximale en veille
( 2 accumulateurs R6 en série (2000 mA/h) )
- - 1 an et 3 mois > 8 jours > 6 jours > 5 jours

Programme du PIC :

Affectation des entrées/sorties du Microcontrôleur PIC (IC1): 

Patte Nom Connecté à Patte Nom Connecté à
1 Vpp RC Reset 40 RB7 I.R. rx 
2 RA0 LCD D0 ; Radio tx ; P0*
39 RB6 Radio rx ; Int. RS-232 DSR****
3 RA1 LCD D1 ; +Buzzer ; P1* 38 RB5 Clavier numérique / Entrée ext.
4 RA2 LCD D2 ; +Led I.R. ; P2* 37 RB4 Clavier numérique / Entrée ext.
5 RA3 LCD D3 ; CAN EOC**** ; P3* 36 RB3 Clavier numérique / Entrée ext.
6 RA4 LCD D4 ; /SS2 (SPI ext.)** ; P4* 35 RB2 Clavier numérique / Entrée ext.
7 RA5 LCD D5 ; /SS1 (MMC(1)**) ou I²C ; P5* 34 RB1 Clavier numérique / Entrée ext.
8 RE0 LCD D6 ; Bklight. D0*  33 RB0 Clavier numérique / Entrée ext.
9 RE1 LCD D7 ; Bklight. D1* 32 VDD Sortie (6) du MAX 756
10 RE2 Alim 1 (LCD, I.R. rx, RS232)  31 GND Masse
11 VCC Sortie (6) du MAX 756 30 RD7 Clavier numérique / Entrée ext.
12 GND Masse 29 RD6 CE Buffer
13 OSC1 Quartz 12 Mhz 28 RD5 Alim 2 (Vref, RS232, T°C)
14 OSC2 Quartz 12 Mhz 27 RD4 Alim 3 (MMC, Radios, Micro-BF, baromètre) 
15 RC0 LCD RS ; Commande charge batterie 26 RC7 / RX RS232 Sortie (12) MAX 220 
16 RC1  P6 (PMW) 25 RC6 / TX RS232 Entrée (11) MAX 220 
17 RC2  P7 (PMW) 24 RC5 MOSI  MMC (2)** ; CAN Din
18 RC3 I²C SCL ; CLK  MMC (5)** ; CAN SCL 23 RC4 I²C SDA ; MISO  MMC (7)*** ; CAN Dout
19 RD0 LCD CE1 22 RD3 Bus  LIN ou CAN
20 RD1 LCD CE2 21 RD2 Bus  LIN ou CAN

* : Via un buffer télécommandé (latch). Entrées 0 à 5 du buffer : Commande des sorties de puissance (Px),  entrées 6 et 7 du buffer : Commande du rétro éclairage LCD (Bklight. Dx).

** : Conversion 5 volts vers 3V3 nécessaire (diode zéner plus résistances).

*** : Conversion 3V3 volts vers 5V nécessaire (transistors plus résistances).

**** : Via une résistance (entrés/sorties simultanées de signaux).


Circuit imprimé et implantation des composants :

ARTICLE EN COURS DE RÉDACTION...

Photos :

ARTICLE EN COURS DE RÉDACTION...



 

RETOUR A L'ACCUEIL

http://matthieu.weber.free.fr