Vous êtes sur la page 1sur 30

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 1 sur 30
Nom : Prnom :

Date//.

Objectifs : Prise en main de la programmation en langage Basic

Dans cette activit vous allez apprendre programmer le microcontrleur BasicStamp


module USB (BS-USB).

Le travail se fera en quipe, tablir un roulement pour le travail de chacun des


membres du groupe (diagramme de gantt), ainsi quune fiche de suivi du projet pour toutes les
activits. Noubliez pas de prendre des notes et des photos afin de raliser les diffrents
articles sur lavance du projet sur le site du collge.

Comment faire ?
- Tlcharger et installer le logiciel BASIC Stamp Editor :
http://www.parallax.com/Portals/0/Downloads/sw/bs/win/Setup-StampEditor-v2.5.2.exe
- A laide des diffrents circuits lectroniques raliss au TP G, cbler le
Basic Stamp (pages 2/30 7/30).
- Essayer les 5 exemples de programmes (pages 12/30 17/30) laide
du tutoriel BASIC Stamp Editor (pages 8/30 & 9/30). Pour de plus
amples informations vous pouvez consulter la syntaxe du Basic pages
18/30 30/30).

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 2 sur 30
Date//.

Nom : Prnom :

Branchement du module BS-USB sur la carte lectronique de commande :


P0

P1

P2

P3

+5V

P7

P6

P5

P4

Branchements des capteurs :


Capteur de lumire LDR sur le port PO du BS-USB:

Noubliez pas de cbler le (fils noir).

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 3 sur 30
Nom : Prnom :

Date//.

Interrupteurs micro switch sur les ports P1 et P2 du BS-USB :

Noubliez pas de cbler les (fils


noirs).
Remarque : Branchez les fils rouges au
+5V de la carte de commande
+5V

Branchements des actionneurs :


Buzzer sur le port P7 du BS-USB :

Noubliez pas de cbler le (fils noir).

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 4 sur 30
Nom : Prnom :

Date//.

Del sur le port P6 du BS-USB :

Noubliez pas de cbler le (fils noir).


Carte commande servomoteurs sur les ports P4 et P5 du BS-USB :

Noubliez pas de cbler le (fils noir).

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 5 sur 30
Nom : Prnom :

Date//.

Servomoteurs sur la carte commande servomoteurs :

Attention au sens (- droite)

Branchements des alimentations :


Alimentation de la carte commande servomoteurs :

Branchez le +6V et
le sur la carte dalimentation.

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 6 sur 30
Nom : Prnom :

Date//.

Alimentation de la carte commande module BS-USB :

0V

0V

+5V

+5V

Alimentation de la carte puissance avec la batterie 6V :


+6V

0V

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 7 sur 30
Date//.

Nom : Prnom :

Vue densemble du cblage :

Rcapitulatif : affectation des ports du BS-USB

Ports configurs en
entres

Ports configurs en
sorties

P0 : LDR

P4 : Servomoteur gauche

P1 : MS droit

P5 : Servomoteur droit

P2 : MS gauche

P6 : Del

P3 : Non utilis

P7 : Buzzer

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 8 sur 30
Nom : Prnom :

Date//.

Tutoriel logiciel Basic Stamp Editor :

Branchez le BS-USB un port USB de lordinateur laide du cordon USB :

Lancez le logiciel Basic Stamp Editor :

Choisir le Stamp Mode BS1 :

Choisir le langage Basic 1.0 :

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 9 sur 30
Nom : Prnom :

Date//.

Saisir votre programme dans la fentre principale :

Transfrez votre programme au microcontrleur BS-USB :

Votre microcontrleur est prt tre test : le dbrancher de lordinateur, mettre le


robot sous tension et vrifiez votre programme.

Noubliez pas denregistrer votre programme rgulirement.

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 10 sur 30
Nom : Prnom :

Date//.

Langage BASIC
Pour programmer votre robot, vous allez devoir utiliser un langage de programmation appel BASIC. Voici une
description de ce langage.
Principe de programmation
Un programme en BASIC est une suite d'instructions en anglais que le compilateur traduit en langage
machine pour le microcontrleur afin qu'il effectue certaines oprations.

Le compilateur BASIC excute le programme ligne par ligne jusqu' ce qu'il arrive la fin ou
qu'il rencontre la commande END.
Il est aussi possible d'crire un programme comportant plusieurs sous-programmes qui seront
appels par le programme principal pour ragir des conditions.

Ces types de programmation sont appels linaires et conditionnels. Il faudra dfinir le type de
programmation d'aprs le cahier des charges du robot.
L'utilisation d'un diagramme permet d'laborer un programme plus facilement, voici un exemple de
programmation linaire :
SYMBOL resultat = W0
SYMBOL valeur_a = W1
SYMBOL valeur_b = W2
valeur_a = 5

valeur_b = 8

resultat = valeur_a + valeur_b

DEBUG resultat

END

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 11 sur 30
Nom : Prnom :

Date//.

Et voici un exemple de programmation conditionnelle :

INPUT 1
OUTPUT 2

lecture:
IF PIN1 = 1 THEN allume
GOTO eteint

allume:
HIGH 2
GOTO lecture

eteint:
LOW 2
GOTO lecture

Voici, titre d'exemple, la signification des symboles utiliss pour raliser ces diagrammes :

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 12 sur 30
Nom : Prnom :

Date//.

Exemples de programmes :
I - Dtection dun contact (micro switch)

Micro switch
Le schma ci-dessous vous montre comment cbler le capteur au BASIC Stamp I. Le fonctionnement est simple

* Le port du microcontrleur est configur en entre, c'est--dire qu'il va lire une


P1 ou
information.
P2
* Tant que le bouton poussoir n'est pas actionn, le port est reli au 5V et le microcontrleur
lit un tat haut (1).
* Ds que l'on actionne le bouton poussoir, le port est reli au 0V et le microcontrleur lit un
tat bas (0)
Pour programmer une raction du robot en fonction du changement d'tat, il suffit d'crire le programme
suivant :
INPUT 1

=> configure le port 1 en entre (pour la lecture)

lecture:

=> sous-programme lecture

IF PIN1=0 THEN message

=> si le port 1 est l'tat bas (0) alors va au sous-programme message

GOTO lecture

=> sinon va au sous-programme lecture

message:

=> sous-programme message

DEBUG bouton poussoir appuy

=> affiche l'cran le message "bouton poussoir appuy"

GOTO lecture

=> va au sous-programme lecture

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 13 sur 30
Nom : Prnom :

Date//.

II - Utilisation d'une photorsistance (LDR)


Les photorsistances ont diffrents diamtres et diffrentes valeurs mais leur fonctionnement est identique :
leur valeur ohmique diminue en mme temps que la luminosit.

LDR diamtre 5 mm

Fonctionnement :
Le port du microcontrleur est utilis en entre analogique, c'est--dire qu'au lieu
de lire 2 tats (0 ou 1), il peut lire des valeurs comprises entre 0 et 255.
Le microcontrleur mesure le temps de dcharge du condensateur au travers de la
photorsistance et convertit cette mesure en une valeur comprise entre 0 et 255.
Si la luminosit diminue, la valeur de la LDR diminue ainsi que le temps de dcharge.
La valeur convertie sera modifie en consquence.

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 14 sur 30
Nom : Prnom :

Date//.

Il ne reste plus qu' crire le programme suivant pour tester le circuit :


SYMBOL val=b0

=> rserve un espace en mmoire pour stocker les valeurs lues

SYMBOL ech=33

=>

detecte_lum:

=> sous-programme detecte_lum

POT 0,ech,val IF val>200 then msg1

lit sur le port 0 et stocke la valeur dans "val"


=> si la valeur est suprieure 200 alors va msg1

IF val<200 AND val>100 then msg2

=> si la valeur est comprise entre 100 et 200 alors va msg2

IF val<100 then msg3

=> si la valeur est infrieure 100 alors va msg3

GOTO detecte

=> sinon va au sous-programme detecte

msg1:

=> sous-programme msg1

DEBUG trop lumineux

=> affiche l'cran le message "trop lumineux"

GOTO detecte

=> va au sous-programme detecte

msg2:

=> sous-programme msg2

DEBUG lumire agrable

=> affiche l'cran le message "lumire agrable"

GOTO detecte

=> va au sous-programme detecte

msg3:

=> sous-programme msg3

DEBUG trop sombre

=> affiche l'cran le message "trop sombre"

GOTO detecte

=> va au sous-programme detecte

dclare que la variable "ech" contient 33 (valeur de l'chelle de


lecture talonner avant de lancer le programme, voir plus bas)

Aprs avoir tlcharg le programme, si vous passez la main devant la LDR, les diffrents messages doivent
apparatre l'cran.
Etalonnage du port lors d'une lecture analogique
La valeur ECH est dfinie ltalonnage du montage.
Pour cela, reliez votre capteur au microcontrleur, connectez celui-ci au PC grce au cble de liaison, lancez
lditeur BASIC (stamp.exe) et appuyez ALT+P et slectionnez le port connect au capteur.
Dans la fentre qui apparat, vous devez voir une valeur SCALE. Si vous le pouvez, rglez votre montage pour
que cette valeur soit la plus basse possible. Appuyez ensuite sur la barre espace, agissez sur votre montage et
regardez le chiffre VALUE changer suivant vos actions. Ce sont ces valeurs que vous devez utiliser dans votre
programme pour crer vos conditions (IF...THEN...).

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 15 sur 30
Nom : Prnom :

Date//.

III - Utilisation d'un servomoteur


Cette option a t choisie ds les premiers prototypes ROBOTEK pour sa simplicit de mise en uvre et
d'utilisation. En effet, un servo de modlisme contient un systme de pignonerie qui, aprs une petite
modification, se transforme en rducteur de vitesse de trs bonne facture.
De plus, le BASIC Stamp I est capable de fournir une impulsion sur ses ports, grce l'instruction PULSOUT,
ce qui permet de modifier la vitesse et le sens de rotation du servo par une simple ligne de commande.
Le servo comporte une partie lectronique qui interprte le signal
lectrique que lui envoie le BASIC Stamp.
Aprs avoir effectu la modification dcrite sur cette page, vous
pourrez envoyer une impulsion au servo pour tester son
comportement. Si cette impulsion est de 1 milliseconde, le moteur
tourne pleine vitesse dans un sens (environ 50 tr/min, ce qui est
dj pas mal). Si elle est de 2 millisecondes, il tourne pleine vitesse
dans l'autre sens.
En envoyant une impulsion de 1,5 ms, si votre servo est bien calibr, il
doit s'arrter. Des valeurs approchant 1,5 ms vous permettront de
ralentir le moteur dans un sens ou dans l'autre.
Pour relier un ou plusieurs servos au microcontrleur, il vous faudra fabriquer un circuit comportant une
alimentation spare. Celle-ci pourra tre compose d'un pack de 4 accus type R06 puisque les servos doivent
tre aliments entre 5V et 6V.

Le schma ci-contre vous montre comment connect un servo au port du


BASIC Stamp I.
Important : Pensez relier la masse (0V) de votre pack d'accus avec la
masse du microcontrleur sinon vous risquez d'avoir des comportements
incohrents du servo.

P4 ou P5

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 16 sur 30
Date//.

Nom : Prnom :

Il ne reste plus qu' tlcharger le programme suivant pour faire tourner le servo :
debut:
pulsout 4,100
pause 20
goto debut

=>
=>
=>
=>

sous-programme debut
envoie une impulsion de 1000 s (100 x 10 s) sur le port 4
fait une pause de 20 ms (obligatoire pour la clart du signal)
va au sous-programme debut

=>
=>
=>
=>

sous-programme debut
envoie une impulsion de 2000 s (200 x 10 s) sur le port 4
fait une pause de 20 ms (obligatoire pour la clart du signal)
va au sous-programme debut

Et pour l'autre sens :


debut:
pulsout 4,200
pause 20
goto debut

IV - Utilisation d'une DEL


Les DEL sont des composants peu onreux et peu gourmand en nergie, elles sont, en plus relativement faciles
mettre en uvre avec le BASIC Stamp.

Le schma et le fonctionnement sont trs simples :


Lorsqu'ils sont configurs en sortie (OUTPUT), les ports du microcontrleur peuvent avoir 2 tats : soit haut
(5V), soit bas (0V).
Si vous connectez une DEL avec sa rsistance de protection en srie comme
sur le schma ci-contre, il faut, pour allumer la DEL, que le port soit au niveau
haut.

Pour tester ce circuit, il faut taper le programme suivant :


output 6
clignote:
high 6
pause 1000
low 6
pause 500
goto clignote

=>
=>
=>
=>
=>
=>
=>

configure le port 6 en sortie


sous-programme clignote
met le port 6 l'tat haut
fait une pause d'une seconde
met le port 6 l'tat bas
fait une pause d'une demi-seconde
va au sous-programme clignote

P6

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 17 sur 30
Date//.

Nom : Prnom :

V - Utilisation d'un buzzer


Les buzzers piezo sont simples mettre en uvre et souvent bon march. Les critres de choix sont : le prix,
l'encombrement et la tension. Dans notre cas, nous avons choisi un buzzer 5V.

Le schma ci-dessous vous montre comment connecter votre circuit au microcontrleur.


P7
Grce la commande SOUND, le BASIC Stamp peut envoyer une tension
module sur un de ses ports et produire ainsi du son.

Pour mettre une mlodie, il faut taper le programme suivant :


sound 7, (20,50,100,50,20,50)

=> emet 3 notes (20,100 et 20) d'une dure d'une demi-seconde (50)

Un autre exemple :
symbol x=b0
for x = 0 to 127
sound 7, (x,50)
next x

=> rserve un espace en mmoire pour stocker une valeur


=> pour x allant de 0 127
=> emet la note x pour une dure d'une demi-seconde (50)
=> passe au x suivant

Si vous faites varier la valeur et la dure de chaque note, vous obtiendrez diffrentes mlodies qui pourront
devenir autant de codes pour dialoguer avec votre robot.

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 18 sur 30
Nom : Prnom :

Date//.

Syntaxe du BASIC
Le BASIC est un langage rgit par des rgles assez strictes afin que vous puissiez bien
"communiquer" avec le microcontrleur.

Les commentaires
Les commentaires commencent avec une apostrophe (') et continue jusqu' la fin de la ligne.
Exemple :

'ceci est un commentaire


ou

SOUND 0,(20,100,80,100) ' emet un son compos de 2 notes


Vous pouvez aussi utiliser la commande REM

Les constantes
Les constantes peuvent tre dclares de quatre manires : dcimale, hexadcimale, binaire
et en ASCII. Les nombres dcimaux sont taps directement, les nombres hexadcimaux sont
prcds du signe dollar ($), les nombres binaires sont prcds du signe pourcentage (%) et
les valeurs ASCII sont encadres par des guillemets (").
Exemples :

100
$64
%01100100
"A"
"Bonjour"
B1=B0^$AA

' 100 en dcimal


' 64 en hexadcimal
'01100100 en binaire
' caractre 65 en ASCII
' quivalent "B","o","n","j","o","u","r"
' opration OU exclusif sur B0 et AA hexadcimal

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 19 sur 30
Nom : Prnom :

Date//.

Les variables
Le BASIC Stamp rserve de la mmoire vive pour stocker des informations dans 56 variables.
Elles sont organises de la faon suivante :
8 Mots
(words)

PORT, W0, W1, W2, W3, W4, W5, W6

16 octets
(bytes)

PINS, DIRS, (quivalents ensemble PORT)


B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12,
B13

32 bits

PIN0, PIN1, PIN2, PIN3, PIN4, PIN5, PIN6, PIN7


(quivalents ensemble PINS)
DIR0, DIR1, DIR2, DIR3, DIR4, DIR5, DIR6, DIR7
(quivalents ensemble DIRS)
BIT0, BIT1, BIT2, BIT3, BIT4, BIT5, BIT6, BIT7
(quivalents ensemble B0)
BIT8, BIT9, BIT10, BIT11, BIT12, BIT13, BIT14,
BIT15 (quivalents ensemble B1)

Les mots peuvent contenir des valeurs comprises entre 0 et 65635


Les octets peuvent contenir des valeurs comprises entre 0 et 255
Les bits peuvent contenir 0 ou 1 (FALSE ou TRUE)

Les symboles
Des constantes peuvent tre assignes aux symboles, des noms pour des variables et des
adresses de sous-programmes. Les constantes et les noms de variables sont assigns en
mettant le signe gal (=) aprs le nom du symbole suivi de la constante ou de la variable. Les
adresses de sous-programme sont assignes en mettant deux points (:) aprs le symbole.
Exemples :

SYMBOL sortie= PIN0


SYMBOL compteur =
50
boucle:
...
goto boucle

' le mot "sortie" correspond au port 0


' le mot "compteur" correspond la valeur 50
' le mot "boucle" est une adresse de sous-programme
qui peut tre appele au cours du programme pour
rediriger
' l'excution

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 20 sur 30
Nom : Prnom :

Date//.

Format
Le compilateur BASIC excute le programme ligne par ligne mais il est possible d'crire
plusieurs commandes sur la mme ligne en les sparant par deux points (:).
Exemples :

SYMBOL sortie=PIN0 : SYMBOL compteur = 50


sonnerie: SOUND 0,(10,50,90,50,10,50) : RETURN

Vous trouverez ci-dessous la liste non exhaustive des


instructions du BASIC.
DEBUG

cls, "texte", cr, var, $var, %var, #var, #$var, #%var

Cette instruction affiche des informations dans une fentre de test chaque fois que le programme la
rencontre durant son excution.

Du texte peut tre affich mais doit tre inscrit entre 2 guillemets. De plus, il est possible d'effacer
l'cran avec la commande cls et de sauter la ligne avec la commande cr.
Des variables peuvent tre affiches avec leur contenu en donnant simplement leur nom. Le format
dcimal est l'affichage par dfaut mais il est possible d'afficher :

1. au format hexadcimal si le signe $ prcde le nom de la variable


2. au format binaire si le signe % prcde le nom de la variable

Il est possible de n'afficher que la valeur de la variable sans son nom si le signe # prcde le nom de la
variable
Exemple :
SYMBOL compteur = W0
SYMBOL x = W1
FOR x = 0 TO 100
compteur = compteur+1
DEBUG compteur
NEXT x

dfinit la variable "compteur"


dfinit la variable "x"
pour x allant de 0 100
ajoute 1 la variable "compteur"
affiche le nom et le contenu de la variable "compteur"
passe au x suivant

TECHNOLOGIE

TP Programmation 1
TP H
3me

EEPROM

Page 21 sur 30
Nom : Prnom :

Date//.

{position},(donne,donne...)

Cette commande permet de stocker des donnes dans l'EEPROM (la mmoire) du microcontrleur avant d'y
tlcharger le programme. Ce n'est pas une instruction mais plutt un mode de tlchargement qui permet de
stocker des donnes dans des espaces mmoire libres.

Position est une constante (optionnelle) comprise entre 0 et 255 qui spcifie o stocker les donnes
dans l'EEPROM. Si aucune position n'est spcifie, le stockage continue l o il a t arrt. Si aucune
position n'a t spcifie l'initialisation, le stockage commence 0. Le stockage des donnes
s'effectue dans l'ordre croissant partir de 0 alors que le stockage du programme s'effectue dans
l'ordre dcroissant partir de 255.
Donne(s) sont des constantes (0 255) qui seront stockes dans l'EEPROM.

Exemple :
EEPROM 0,("a","g","a","d","r","f")
SYMBOL dep = W0
SYMBOL pos = W1
lecture:
READ pos,dep
IF dep = "a" THEN avance
IF dep = "r" THEN recule
IF dep = "d" THEN droite
IF dep = "g" THEN gauche
IF dep = "f" THEN END
pos = pos+1
GOTO lecture
avance:
...
recule:
...
etc...

stocke les valeurs dans l'EEPROM la position 0


dfinit la variable "dep"
dfinit la variable "pos"
sous-programme "lecture"
lit l'EEPROM la position "pos" et range la valeur dans "dep"
si "dep" est gale "a" alors va "avance"
si "dep" est gale "r" alors va "recule"
si "dep" est gale "d" alors va "droite"
si "dep" est gale "g" alors va "gauche"
si "dep" est gale "f" alors fin du programme
ajoute 1 la variable "pos"
va "lecture"
sous-programme "avance"
sous-programme "recule"
etc...

TECHNOLOGIE

TP Programmation 1
TP H
3me

Page 22 sur 30
Nom : Prnom :

Date//.

END
Cette commande permet d'arrter le programme et de mettre le microcontrleur en veille. Sa consommation est
rduite au minimum (20 A).
Exemple :
EEPROM 0,("a","g","a","d","r","f")
SYMBOL dep = W0
SYMBOL pos = W1
lecture:
READ pos,dep

stocke les valeurs dans l'EEPROM la position 0


dfinit la variable "dep"
dfinit la variable "pos"
sous-programme "lecture"
lit l'EEPROM la position "pos" et range la valeur dans "dep"
si "dep" est gale "a" alors va "avance"
si "dep" est gale "r" alors va "recule"
si "dep" est gale "d" alors va "droite"
si "dep" est gale "g" alors va "gauche"
si "dep" est gale "f" alors fin du programme
ajoute 1 la variable "pos"
va "lecture"
sous-programme "avance"

IF dep = "a" THEN avance


IF dep = "r" THEN recule
IF dep = "d" THEN droite
IF dep = "g" THEN gauche
IF dep = "f" THEN END
pos = pos+1
GOTO lecture
avance:
...
recule:
...
etc...

FOR variable=dbut TO
NEXT {variable}

sous-programme "recule"
etc...

fin

{STEP

{-}incrment}

Cette instruction permet de crer une boucle d'excution de laquelle le programme ne sortira que si le
comptage est termin.

variable est une variable utilise en tant que compteur


dbut est la valeur initiale de la variable
fin est la valeur finale de la variable
incrment est une valeur optionnelle qui permet de changer le pas de la boucle qui est par dfaut de +1.
Si incrment est prcd par le signe "-" et si dbut est plus grand que fin

TECHNOLOGIE

TP Programmation 1
TP H
3me

GOSUB

Page 23 sur 30
Nom : Prnom :

Date//.

adresse

...

RETURN
Cette instruction redirige l'excution du programme vers un sous-programme et lorsqu'il est effectu, retourne
au programme d'origine. Jusqu' 16 GOSUB sont autoriss dans un programme et ils peuvent tre imbriqus
jusqu' 4 niveaux.

adresse est le nom du sous-programme

Exemple :
OUTPUT 0
OUTPUT 1

configure le port 0 en sortie


configure le port 1en sortie

test:
GOSUB allume
GOSUB sonne
GOTO test

sous-programme "test"
va au sous-programme "allume"
va au sous-programme "sonne"
va au sous-programme "test"

allume:
HIGH 1
PAUSE 1000
LOW 1
RETURN

sous-programme "allume"
met le port 1 l'tat haut
fait une pause de 1000 ms (1 seconde)
met le port 1 l'tat bas
retourne au sous-programme "test"

sonne:
SOUND 0,(20,100,80,100)
RETURN

sous-programme "sonne"
emet un son sur le port 0 compos de 2 notes
retourne au sous-programme "test"

GOTO

adresse

Cette instruction redirige l'excution du programme vers un sous-programme mais n'attend aucun retour.

adresse est le nom du sous-programme

Exemple :
OUTPUT 0
OUTPUT 1

configure le port 0 en sortie


configure le port 1 en sortie

test:
GOSUB allume
GOSUB sonne
GOTO test

sous-programme "test"
va au sous-programme "allume"
va au sous-programme "sonne"
va au sous-programme "test"

allume:
HIGH 1
PAUSE 1000
LOW 1
RETURN

sous-programme "allume"
met le port 1 l'tat haut
fait une pause de 1000 ms (1 seconde)
met le port 1 l'tat bas
retourne au sous-programme "test"

sonne:
SOUND 0,(20,100,80,100)
RETURN

sous-programme "sonne"
emet un son sur le port 0 compos de 2 notes
retourne au sous-programme "test"

TECHNOLOGIE

TP Programmation 1
TP H
3me

HIGH

Page 24 sur 30
Nom : Prnom :

Date//.

port

Cette instruction permet de mettre un port, configur en sortie, l'tat haut (+5V).

port est une constante ou une variable comprise entre 0 et 7 qui spcifie quel port Entre/Sortie
utiliser

Exemple :
OUTPUT 0
OUTPUT 1

configure le port 0 en sortie


configure le port 1en sortie

test:
GOSUB allume
GOSUB sonne
GOTO test

sous-programme "test"
va au sous-programme "allume"
va au sous-programme "sonne"
va au sous-programme "test"

allume:
HIGH 1
PAUSE 1000
LOW 1
RETURN

sous-programme "allume"
met le port 1 l'tat haut
fait une pause de 1000 ms (1 seconde)
met le port 1 l'tat bas
retourne au sous-programme "test"

sonne:
SOUND 0,(20,100,80,100)
RETURN

sous-programme "sonne"
emet un son sur le port 0 compos de 2 notes
retourne au sous-programme "test"

IF

variable ?? valeur {AND/OR variable ?? valeur...}

THEN

adresse

Cette instruction permet d'effectuer une comparaison sur une variable et de rediriger l'excution du
programme en consquence. ?? peut tre remplac par =, <, >, =>, =<, <>.

variable est une variable qui sera compare valeur


valeur est une variable ou une constante
adresse est le nom du sous-programme o aller si la condition est vraie.

Exemple :
EEPROM 0,("a","g","a","d","r","f")
SYMBOL dep = W0
SYMBOL pos = W1
lecture:
READ pos,dep
IF dep = "a" THEN avance
IF dep = "r" THEN recule
IF dep = "d" THEN droite
IF dep = "g" THEN gauche
IF dep = "f" THEN END
pos = pos+1
GOTO lecture
avance:
...
recule:
...

stocke les valeurs dans l'EEPROM la position 0


dfinit la variable "dep"
dfinit la variable "pos"
sous-programme "lecture"
lit l'EEPROM la position "pos" et range la valeur dans "dep"
si "dep" est gale "a" alors va "avance"
si "dep" est gale "r" alors va "recule"
si "dep" est gale "d" alors va "droite"
si "dep" est gale "g" alors va "gauche"
si "dep" est gale "f" alors fin du programme
ajoute 1 la variable "pos"
va "lecture"
sous-programme "avance"
sous-programme "recule"
etc...

TECHNOLOGIE

TP Programmation 1
TP H
3me

INPUT

Page 25 sur 30
Nom : Prnom :

Date//.

port

Cette instruction permet de configurer un port en entre.

port est une constante ou une variable comprise entre 0 et 7 qui spcifie quel port Entre/Sortie
utiliser

Exemple :
INPUT 0
OUTPUT 1

configure le port 0 en entre


configure le port 1en sortie

boucle :
IF PIN0=1 THEN allume
HIGH 1
GOTO boucle

sous-programme "boucle"
si l'entre 0 est au niveau haut alors va "allume"
sinon met le port 1 l'tat haut
va au sous-programme "boucle"

allume :
LOW 1
GOTO boucle

sous-programme "allume"
met le port 1 l'tat bas
retourne au sous-programme "boucle"

LOW

port

Cette instruction permet de mettre un port, configur en sortie, l'tat bas (0V).

port est une constante ou une variable comprise entre 0 et 7 qui spcifie quel port Entre/Sortie
utiliser

Exemple :
OUTPUT 0
OUTPUT 1

configure le port 0 en sortie


configure le port 1en sortie

test:
GOSUB allume
GOSUB sonne
GOTO test

sous-programme "test"
va au sous-programme "allume"
va au sous-programme "sonne"
va au sous-programme "test"

allume:
HIGH 1
PAUSE 1000
LOW 1
RETURN

sous-programme "allume"
met le port 1 l'tat haut
fait une pause de 1000 ms (1 seconde)
met le port 1 l'tat bas
retourne au sous-programme "test"

sonne:
SOUND 0,(20,100,80,100)
RETURN

sous-programme "sonne"
emet un son sur le port 0 compos de 2 notes
retourne au sous-programme "test"

TECHNOLOGIE

TP Programmation 1
TP H
3me

OUTPUT

Page 26 sur 30
Nom : Prnom :

Date//.

port

Cette instruction permet de configurer un port en sortie.

port est une constante ou une variable comprise entre 0 et 7 qui spcifie quel port Entre/Sortie
utiliser

Exemple :
INPUT 0
OUTPUT 1

configure le port 0 en entre


configure le port 1en sortie

boucle :
IF PIN0=1 THEN allume
HIGH 1
GOTO boucle

sous-programme "boucle"
si l'entre 0 est au niveau haut alors va "allume"
sinon met le port 1 l'tat haut
va au sous-programme "boucle"

allume :
LOW 1
GOTO boucle

sous-programme "allume"
met le port 1 l'tat bas
retourne au sous-programme "boucle"

PAUSE

temps

Cette instruction suspend l'excution du programme pendant un intervalle de temps dfini.

temps est une constante ou une variable, dont la valeur est comprise entre 0 et 65535, qui spcifie
l'intervalle de temps en millisecondes.

Exemple :
OUTPUT 0
OUTPUT 1

configure le port 0 en sortie


configure le port 1en sortie

allume:
HIGH 1
PAUSE 1000
LOW 1
RETURN

sous-programme "allume"
met le port 1 l'tat haut
fait une pause de 1000 ms (1 seconde)
met le port 1 l'tat bas
retourne au sous-programme "test"

sonne:
SOUND 0,(20,100,80,100)
RETURN

sous-programme "sonne"
emet un son sur le port 0 compos de 2 notes
retourne au sous-programme "test"

TECHNOLOGIE

TP Programmation 1
TP H
3me

POT

Page 27 sur 30
Nom : Prnom :

Date//.

port,echelle,variable

Cette instruction permet de mesurer une rsistance variable comprise entre 5 et 50 kOhms comme un
potentiomtre, une photorsistance ou une thermistance. Le port doit tre connect d'un ct de la rsistance
qui est connecte de l'autre un condensateur polyester de 100nF lui-mme connect la masse.
Le Basic Stamp lit la valeur de la rsistance en mesurant le temps mis par le condensateur pour se dcharger au
travers de celle-ci.

Port est une variable ou une constante comprise entre 0 et 7 qui spcifie quel port Entre/Sortie
utiliser.
Echelle est une variable ou une constante comprise entre 0 et 255 qui met l'chelle le rsultat de la
mesure. Le rsultat est multipli par (echelle/256) donc une chelle de 128 rduira la zone de mesure de
50%. Pour talonner le Basic Stamp avec une rsistance particulire et trouver la meilleure chelle,
utiliser l'option ALT+P dcrite ci-dessous.
Variable est une variable d'un octet qui contient le rsultat de la mesure.

Etalonnage du Basic Stamp :

1. Pour trouver la meilleure valeur d'chelle, connectez la rsistance au Basic Stamp et reliez le Basic
Stamp au PC.

2. Appuyez sur ALT+P lorsque vous avez lanc l'diteur BASIC. Une fentre apparat.
3. La fentre vous demande d'indiquer quel port est reli la rsistance. Slectionnez le port.
4. l'diteur tlcharge un petit programme dans le Basic Stamp (celui-ci effacera tout programme en
mmoire dans le Basic Stamp).

5. Une autre fentre apparat affichant deux chiffres : Scale (chelle) et Value (valeur). Ajustez votre
rsistance pour obtenir le chiffre le plus bas possible (Scale) si cela est possible sur votre montage,
sinon gardez ce chiffre en mmoire pour l'indiquer dans votre programme.

Vous pouvez vrifier le fonctionnement de votre montage avec cette valeur en appuyant sur la barre
espace. Le Basic Stamp bloque alors la valeur d'chelle affiche et passe en lecture. Si l'chelle est
bonne, vous devez pouvoir ajuster votre rsistance et lire des valeurs de 0 255, sinon recommencez
l'opration en appuyant sur la barre espace.

Exemple :
SYMBOL ech=255
SYMBOL val=b0

dfinit la constante "ech"


dfinit la variable "val"

lecture:
POT 0,ech,val
IF val<40 THEN sonne
GOTO lecture

programme principal "lecture"


lit la valeur de la rsistance sur le port 0 et range le rsultat dans la variable
si la valeur est infrieure 40 alors va "sonne"
sinon va au programme "lecture"

sonne:
SOUND 1,(10,100)
GOTO lecture

sous-programme "sonne"
emet un son d'une dure de 100 ms sur le port 1
va au programme "lecture"

TECHNOLOGIE

TP Programmation 1
TP H
3me

PULSOUT

Page 28 sur 30
Nom : Prnom :

Date//.

port, temps

Cette instruction permet d'mettre une impulsion en inversant l'tat d'un port pendant un temps dfini.

port est une constante ou une variable comprise entre 0 et 7 qui spcifie quel port Entre/Sortie
utiliser
temps est une constante ou une variable, dont la valeur est comprise entre 0 et 65535, qui spcifie la
priode de temps par unit de 10 microsecondes.

Exemple :
INPUT 0
SYMBOL roue_droite=1
SYMBOL roue_gauche=2
SYMBOL x=W0

configure le port 0 en entre


affecte la valeur 1 la constante roue_droite
affecte la valeur 2 la constante roue_gauche
dclare la variable x

debut:
IF PIN0=1 THEN recule
GOSUB avance
GOTO debut

sous-programme "debut"
si le port 0 est l'tat 1 alors va "recule"
sinon va au sous-programme "avance"
va au sous-programme dbut

avance:
FOR x=0 TO 100
PULSOUT roue_droite,100
PULSOUT roue_gauche,200
PAUSE 20
NEXT x
RETURN

sous-programme "avance"
pour x allant de 0 100
envoie une impulsion de 1000 s sur le port 1
envoie une impulsion de 2000 s sur le port 2
fait une pause de 20 ms
x suivant
retourne au sous-programme "debut"

recule:
FOR x=0 TO 100
PULSOUT roue_droite,200
PULSOUT roue_gauche,100
PAUSE 20
NEXT x
RETURN

sous-programme "recule"
pour x allant de 0 100
envoie une impulsion de 2000 s sur le port 1
envoie une impulsion de 1000 s sur le port 2
fait une pause de 20 ms
x suivant
retourne au sous-programme "debut"

TECHNOLOGIE

TP Programmation 1
TP H
3me

READ

Page 29 sur 30
Nom : Prnom :

Date//.

position,variable

Cette commande permet de lire des donnes stockes dans l'EEPROM (la mmoire) du microcontrleur et les
range dans des variables.

Position est une variable ou une constante comprise entre 0 et 255 qui spcifie la position de la donne
dans l'EEPROM. Le stockage des donnes s'effectue dans l'ordre croissant partir de 0 alors que le
stockage du programme s'effectue dans l'ordre dcroissant partir de 255.
Variable est une variable qui reoit la donne.

Exemple :
EEPROM 0,("a","g","a","d","r","f")
SYMBOL dep = W0
SYMBOL pos = W1
lecture:
READ pos,dep
IF dep = "a" THEN avance
IF dep = "r" THEN recule
IF dep = "d" THEN droite
IF dep = "g" THEN gauche
IF dep = "f" THEN END
pos = pos+1
GOTO lecture
avance:
...
recule:
...
etc...

stocke les valeurs dans l'EEPROM la position 0


dfinit la variable "dep"
dfinit la variable "pos"
sous-programme "lecture"
lit l'EEPROM la position "pos" et range la valeur dans "dep"
si "dep" est gale "a" alors va "avance"
si "dep" est gale "r" alors va "recule"
si "dep" est gale "d" alors va "droite"
si "dep" est gale "g" alors va "gauche"
si "dep" est gale "f" alors fin du programme
ajoute 1 la variable "pos"
va "lecture"
sous-programme "avance"
sous-programme "recule"
etc...

TECHNOLOGIE

TP Programmation 1
TP H
3me

SOUND

Page 30 sur 30
Nom : Prnom :

Date//.

port,(note,dure,note,dure,...)

Cette commande joue des notes de musique pendant des dures dtermines. Le port utilis doit tre connect
au plus d'un condensateur de 10F dont le moins est reli un buzzer piezzo dont l'autre borne est relie la
masse.

Port est une variable ou une constante comprise entre 0 et 7 qui spcifie quel port Entre/Sortie
utiliser.
Note(s) sont des variables ou des constantes comprises entre 0 et 255 qui spcifient le type et la
frquence du son. La note 0 correspond au silence. Les notes 1 127 sont des tons ascendants. Les notes
128 255 sont des tons ascendants avec un grsillement.
Dure(s) sont des variables ou des constantes comprises entre 0 et 255 qui spcifient la dure des
notes.

Exemple :
OUTPUT 0
OUTPUT 1

configure le port 0 en sortie


configure le port 1en sortie

test:
GOSUB allume
GOSUB sonne
GOTO test

sous-programme "test"
va au sous-programme "allume"
va au sous-programme "sonne"
va au sous-programme "test"

allume:
HIGH 1
PAUSE 1000
LOW 1
RETURN

sous-programme "allume"
met le port 1 l'tat haut
fait une pause de 1000 ms (1 seconde)
met le port 1 l'tat bas
retourne au sous-programme "test"

sonne:
SOUND 0,(20,100,80,100)
RETURN

sous-programme "sonne"
emet un son sur le port 0 compos de 2 notes
retourne au sous-programme "test"

SYMBOL

nom_symbole=valeur

Cette instruction assigne une valeur un nouveau nom de symbole.

nom_symbole est une chaine de caractres qui doit commencer par une lettre alphabtique mais qui peut
aussi contenir ensuite des chiffres.
valeur est une variable ou une constante dont nom_symbole sera une alternative dans le programme.

Exemple :
SYMBOL compteur = W0
SYMBOL x = W1
FOR x = 0 TO 100
compteur = compteur+1
DEBUG compteur
NEXT x

dfinit la variable "compteur"


dfinit la variable "x"
pour x allant de 0 100
ajoute 1 la variable "compteur"
affiche le nom et le contenu de la variable "compteur"
passe au x suivant