Vous êtes sur la page 1sur 10

BASIC STAMP

Par
Pascal PRADIER, Responsable Programme 4D S.A.
Note technique 4D-200108-27-FR
Version 1
Date 1 Aot 2001

Rsum
Exemple de ralisation d'un montage permettant le dialogue entre 4D et un micro-contrleur.
(Programmation de 4D et du micro-contrleur)

4D Notes techniques
Copyright 1985-2003 4D SA - Tous droits rservs
Tous les efforts ont t faits pour que le contenu de cette note technique prsente le maximum de fiabilit possible.
Nanmoins, les diffrents lments composant cette note technique, et le cas chant, le code, sont fournis sans garantie d'aucune sorte.
L'auteur et 4D S.A. dclinent donc toute responsabilit quant l'utilisation qui pourrait tre faite de ces lments, tant l'gard de leurs
utilisateurs que des tiers.
Les informations contenues dans ce document peuvent faire l'objet de modifications sans pravis et ne sauraient en aucune manire
engager 4D SA. La fourniture d u logiciel dcrit dans ce document est rgie par u n octroi de licence dont les termes sont prciss par
ailleurs dans la licence lectronique figurant sur le support d u Logiciel et de la Documentation affrente. Le logiciel et sa documentation
ne peuvent tre utiliss, copis o u reproduits sur quelque support que ce soit et de quelque manire que ce soit, que conformment aux
termes de cette licence.
Aucune partie de ce document ne peut tre reproduite o u recopie de quelque manire que ce soit, lectronique o u mcanique, y compris
par photocopie, enregistrement, archivage o u tout autre procd de stockage, de traitement et de rcupration d'informations, pour
d'autres buts que l'usage personnel de l'acheteur, et ce exclusivement aux conditions contractuelles, sans la permission explicite de 4D
SA.
4D, 4D Calc, 4D Draw, 4D Write, 4D Insider, 4me Dimension , 4D Server, 4D Compiler ainsi que les logos 4e Dimension, sont des
marques enregistres de 4D SA.
Windows,Windows NT,Win 32s et Microsoft sont des marques enregistres de Microsoft Corporation.
Apple, Macintosh, Power Macintosh, LaserWriter, ImageWriter, QuickTime sont des marques enregistres o u des noms commerciaux de
Apple Computer,Inc.
Mac2Win Software Copyright 1990-2002 est un produit de Altura Software,Inc.
4D Write contient des lments de "MacLink Plus file translation", un produit de DataViz, Inc,55 Corporate drive,Trumbull,CT,USA.
XTND Copyright 1992-2002 4D SA. Tous droits rservs.
XTND Technology Copyright 1989-2002 Claris Corporation.. Tous droits rservs ACROBAT Copyright 1987-2002, Secret
Commercial Adobe Systems Inc.Tous droits rservs. ACROBAT est une marque enregistre d'Adobe Systems Inc.
Tous les autres noms de produits ou appellations sont des marques dposes ou des noms commerciaux appartenant leurs propritaires
respectifs.

1 / 10

Introduction
Nous allons voir au cours de cette note technique une utilisation moins courante de 4D puisque nous allons
tablir un dialogue avec un microcontrleur afin de faire de lacquisition de donnes. En loccurrence, il sagira
de la lecture dun capteur de temprature.
Dans cette optique, 4D se chargera dinterroger le microcontrleur et de rcuprer les donnes pour les
stocker et de les traiter pour en extraire des statistiques ou des graphiques et le cas chant donner des ordres
en retour au microcontrleur.

Le choix du microcontrleur
Afin de rester dans lesprit 4D, le choix sest port sur un microcontrleur dont lutilisation et la mise en
uvre est dune simplicit extrme puisquil se programme en Basic, quil ne ncessite quasiment aucun
composant lectronique externe et que sa taille est proche dun timbre poste. Son nom est dailleurs le Basic
Stamp II.
Voici brivement quelques unes de ses caractristiques principales :
- Programmable en Basic
- 16 entres sorties (configurables par programmation)
- 1 eeprom de 2 Ko
- 1 interface RS232
De plus, un environnement de dveloppement permettant le chargement des programmes ainsi que la
visualisation de la mmoire est fourni en standard.
Par ailleurs, et ce nest pas le moindre de ses avantages, son prix est des plus attractif puisquil est ce jour
denviron 50$

L objectif de cette note ntant pas dexpliquer en dtail le fonctionnement de ce microcontrleur, nous vous
invitons vous rendre sur le site du fournisseurs o vous pourrez trouver toutes les informations dtailles
concernant ce produit : http://www.parallaxinc.com/

Le capteur de temprature
Le capteur de temprature utilis ici nest bien entendu quun exemple car il est possible de connecter
nimporte quel capteur sur le microcontrleur mais l encore, le choix a t dict par la simplicit de mise en
2 / 10

uvre. Nous utiliserons ici un produit ne ncessitant aucun autre composant externe pour son
fonctionnement puisquil peut se connecter directement sur le Basic Stamp (BS II). Le composant utilis est
le DS 1620 de chez Dallas Semiconducteur.
Lavantage de ce capteur est quil est paramtrable et interrogeable directement sans interface particulire.
Cest dailleurs presque un microcontrleur lui tout seul puisquil possde son propre jeu dinstructions
permettant de lutiliser en capteur ou thermostat, deffectuer des conversions la vole, etc. Pour plus de
dtails, l aussi nous vous invitons visiter le site du constructeur o vous trouverez la documentation
technique de ce composant : http://www.dalsemi.com/.

Synoptique de la configuration
Cette section va dcrire linterconnexion des diffrentes briques de cette solution. Pour mmoire, nous avons
trois briques principales : le PC hbergeant la base 4D, le Basic Stamp (notre microcontrleur) et le capteur
de temprature.

Le schma de principe lectronique


Il se rsumera la connexion du capteur au microcontrleur. En voici le dtail :

Le hardware
La partie matrielle de ce montage sera rduite sa plus simple expression. Il faudra seulement cbler le
microcontrleur et le capteur sur une platine. Deux possibilits soffrent vous : acheter la platine chez
3 / 10

Parallax lurl cite plus haut ou bien cbler vous mme une platine ce qui dans le cas du Basic Stamp nest
quune formalit.

Lorganisation logicielle
Il y a deux faons de grer lacquisition des donnes avec un microcontrleur : rcuprer les donnes en
temps rel ou bien stocker les donnes dans la mmoire du microcontrleur et faire un relev priodique (1
fois par mois par exemple). Le choix sera fait en fonction de lutilisation que lon souhaite faire de ces
donnes. Cette note dcrira les deux aspects puisque notre microcontrleur est quip dune eeprom capable
de stocker durablement les donnes.

Gestion des donnes en temps rel


Dans ce cas de figure, il sagit deffectuer les mesures toutes les secondes et de les envoyer la base de
donnes pour un traitement immdiat.
Les organigrammes sont les suivants :

4 / 10

Cot 4D, la programmation est des plus standard. Nous commenons par ouvrir un process dans lequel sera
excut le dialogue avec le microcontrleur.
Le Basic Stamp communique avec le protocole suivant : 9600 bauds, 8 bits de donnes, 1 bit de stop et pas
de parit. La commande REGLER SERIE permettra deffectuer le rglage correspondant au niveau de 4D.

Voici le dtail de la mthode 4D :


Si (Nombre de parametres= 0 )
<>ProcessRecept:=Nouveau process("recept";32000;"Recept";"vide")
Sinon
C_TEXTE($vtBuffer)
$vtBuffer:=""
REGLER SERIE( 1 ;Vitesse 9600 +Bits de donnes 8 +Bit de stop un +Pas de parit )
<>IP_Ecouter_Port_Srie:=Vrai
Tant que (<>IP_Ecouter_Port_Srie)
RECEVOIR BUFFER($vtBuffer)
Si ($vtBuffer#"")
CREER ENREGISTREMENT([Table 1])
[Table 1]Temp:=Num($vtBuffer)
STOCKER ENREGISTREMENT([Table 1])
$vtBuffer:=""

5 / 10

Fin de si
Fin tant que
REGLER SERIE( 1 1 )
Fin de si

Lors de la rception des donnes, 4D cre un enregistrement contenant la temprature mesure. Voil, il ne
faut rien dautre 4D pour dialoguer avec un microcontrleur.

6 / 10

Cot Basic Stamp, le programme nest gure plus gros :

Dtaillons un peu le contenu de la fentre :


Les variables outs et dirs sont des mots rservs du BS (comme document ou ok en 4D) et permettent
de fixer ltat initial des 16 ports du BS. Dans notre exemple, la variable dir fixe les 16 ports en sortie et la
variable outs fixe les 16 ports l'tat bas.
Par la suite, linstruction High 1 passe le port spcifi (1 dans notre exemple) ltat haut ce qui a pour effet
dactiver la broche rst (reset) du DS1620.
La commande Shiftout permet en une seule passe de configurer certaines broches en port RS232 et denvoyer
la valeur spcifie. Dans notre cas, le port 3 sera le port de donnes et le port 1 correspondra au signal
dhorloge (clock). Lsbfirst permet de spcifier lordre denvoi des donnes (byte swapping). [238] est la
valeur envoyer. Cette valeur correspond un ordre reconnu du DS1620 lui donnant lordre deffectuer des
conversions la vole.
En rsum, le programme fait appel principalement aux commandes Shiftin et Shiftout qui permettent de
recevoir et denvoyer des donnes sur telle ou telle sortie (de 1 16) du microcontrleur. Les instructions
Low et High permettent dactiver ou non telle ou telle sortie du microcontrleur.
Linstruction Debug permet denvoyer des donnes sur le port RS 232 par defaut du Basic Stamp. Cest par
cette commande que les donnes seront renvoyes 4D.
Les donnes seront renvoyes en flux continu toutes les secondes. Il importe donc, au niveau de 4D, dtre
suffisamment rapide pour traiter ces donnes sous peine den perdre
Dans le cas prsent, il ne devrait pas y avoir de problme puisquil n'y a quun envoi par seconde.
Bien entendu, une telle configuration rvle un certain nombre de faiblesses. On notera par exemple, le fait
que 4D cre un enregistrement toutes les secondes. Il sera sans doute plus judicieux de stocker les diffrents
7 / 10

relevs dans un blob dont on limitera la taille et de crer un nouvel enregistrement ds que cette taille est
atteinte. Il faudra aussi prvoir de supprimer les enregistrements dont les valeurs ne servent plus.

Gestion des donnes en diffr


Dans ce cas, la stratgie est compltement diffrente. Il sagira denregistrer les donnes du capteur au niveau
du microcontrleur (dans leeprom) et de rcuprer ces donnes par paquets une fois par mois ou par
semaine. La frquence de rcupration sera dicte par lutilisation que lon souhaite faire de ces donnes mais
aussi par la taille de la mmoire du microcontrleur (capacit de stockage) ainsi que par la frquence des
mesures.
Lorganigramme de fonctionnement ne change pas vraiment cot 4D. La diffrence se trouve au niveau du
microcontrleur puisque lcriture des donnes se fait au niveau de leeprom. Il suffira donc 4D
dinterrompre le microcontroleur qui du coup passera dans un sous programme lui envoyant le contenu de la
mmoire.

8 / 10

9 / 10

Conclusion
Nous avons pu voir au cours de cette note quil ntait rellement pas difficile dutiliser 4D pour dialoguer
avec un microcontrleur. En revanche, la complexit peut intervenir au niveau du microcontrleur lui-mme si
son protocole de communication est complexe.
Le BasicStamp est un modle du genre puisquil se programme en Basic et quil nest pas ncessaire dtre
un mutant pour le mettre en oeuvre :-).

10 / 10