Download - PDF TP H Programmation Langue Basic
-
8/17/2019 PDF TP H Programmation Langue Basic
1/30
TECHNOLOGIE
TP Programmation 1
TP H Page 1 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
Dans cette activité vous allez apprendre à programmer le microcontrôleur BasicStampmodule 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 qu’une fiche de suivi du projet pour toutes lesactivités. N’oubliez pas de prendre des notes et des photos afin de réaliser les différentsarticles sur l’avancée du projet sur le site du collège.
Objectifs : Prise en main de la programmation en langage Basic
Comment faire ?
- Télécharger et installer le logiciel BASIC Stamp Editor :http://www.parallax.com/Portals/0/Downloads/sw/bs/win/Setup-Stamp-Editor-v2.5.2.exe
- A l’aide des différents circuits électroniques réalisés au TP G, câbler leBasic Stamp (pages 2/30 à 7/30).
- Essayer les 5 exemples de programmes (pages 12/30 à 17/30) à l’aide
du tutoriel BASIC Stamp Editor (pages 8/30 & 9/30). Pour de plusamples informations vous pouvez consulter la syntaxe du Basic pages18/30 à 30/30).
http://www.parallax.com/Portals/0/Downloads/sw/bs/win/Setup-Stamp-Editor-v2.5.2.exehttp://www.parallax.com/Portals/0/Downloads/sw/bs/win/Setup-Stamp-Editor-v2.5.2.exehttp://www.parallax.com/Portals/0/Downloads/sw/bs/win/Setup-Stamp-Editor-v2.5.2.exehttp://www.parallax.com/Portals/0/Downloads/sw/bs/win/Setup-Stamp-Editor-v2.5.2.exehttp://www.parallax.com/Portals/0/Downloads/sw/bs/win/Setup-Stamp-Editor-v2.5.2.exe
-
8/17/2019 PDF TP H Programmation Langue Basic
2/30
TECHNOLOGIE
TP Programmation 1
TP H Page 2 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
Branchement du module BS-USB sur la carte électronique de commande :
Branchements des capteurs :
Capteur de lumière LDR sur le port PO du BS-USB:
N’oubliez pas de câbler le – (fils noir).
P0 - P1 - P2 - P3 -
-
+5V
P7 - P6 - P5 - P4 -
-
8/17/2019 PDF TP H Programmation Langue Basic
3/30
-
8/17/2019 PDF TP H Programmation Langue Basic
4/30
TECHNOLOGIE
TP Programmation 1
TP H Page 4 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
Del sur le port P6 du BS-USB :
N’oubliez pas de câbler le – (fils noir).
Carte commande servomoteurs sur les ports P4 et P5 du BS-USB :
N’oubliez pas de câbler le – (fils noir).
-
8/17/2019 PDF TP H Programmation Langue Basic
5/30
TECHNOLOGIE
TP Programmation 1
TP H Page 5 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… 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 d’alimentation.
-
8/17/2019 PDF TP H Programmation Langue Basic
6/30
TECHNOLOGIE
TP Programmation 1
TP H Page 6 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
Alimentation de la carte commande module BS-USB :
Alimentation de la carte puissance avec la batterie 6V :
+5V +5V
0V
0V
+6V
0V
-
8/17/2019 PDF TP H Programmation Langue Basic
7/30
TECHNOLOGIE
TP Programmation 1
TP H Page 7 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
Vue d’ensemble du câblage :
Récapitulatif : affectation des ports du BS-USB
Ports configurés enentrées
Ports configurés ensorties
P0 : LDR P4 : Servomoteur gauche
P1 : MS droit P5 : Servomoteur droit
P2 : MS gauche P6 : Del
P3 : Non utilisé P7 : Buzzer
-
8/17/2019 PDF TP H Programmation Langue Basic
8/30
TECHNOLOGIE
TP Programmation 1
TP H Page 8 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
Tutoriel logiciel Basic Stamp Editor :
Branchez le BS-USB à un port USB de l’ordinateur à l’aide du cordon USB :
Lancez le logiciel Basic Stamp Editor :
Choisir le Stamp Mode BS1 :
Choisir le langage Basic 1.0 :
-
8/17/2019 PDF TP H Programmation Langue Basic
9/30
TECHNOLOGIE
TP Programmation 1
TP H Page 9 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
Saisir votre programme dans la fenêtre principale :
Transférez votre programme au microcontrôleur BS-USB :
Votre microcontrôleur est prêt à être testé : le débrancher de l’ordinateur, mettre lerobot sous tension et vérifiez votre programme.
N’oubliez pas d’enregistrer votre programme régulièrement.
-
8/17/2019 PDF TP H Programmation Langue Basic
10/30
TECHNOLOGIE
TP Programmation 1
TP H Page 10 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
Langage BASIC
Pour programmer votre robot, vous allez devoir utiliser un langage de programmation appelé BASIC. Voici unedescription de ce langage.
Principe de programmation
Un programme en BASIC est une suite d'instructions en anglais que le compilateur traduit en langagemachine pour le microcontrôleur afin qu'il effectue certaines opérations.
Le compilateur BASIC exécute 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
appelés par le programme principal pour réagir à des conditions.
Ces types de programmation sont appelés linéaires et conditionnels. Il faudra définir le type deprogrammation d'après le cahier des charges du robot.
L'utilisation d'un diagramme permet d'élaborer un programme plus facilement, voici un exemple deprogrammation linéaire :
SYMBOL resultat = W0SYMBOL valeur_a = W1SYMBOL valeur_b = W2
valeur_a = 5
valeur_b = 8
resultat = valeur_a + valeur_b
DEBUG resultat
END
-
8/17/2019 PDF TP H Programmation Langue Basic
11/30
TECHNOLOGIE
TP Programmation 1
TP H Page 11 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
Et voici un exemple de programmation conditionnelle :
INPUT 1OUTPUT 2
lecture:IF PIN1 = 1 THEN allumeGOTO eteint
allume:HIGH 2GOTO lecture
eteint:LOW 2GOTO lecture
Voici, à titre d'exemple, la signification des symboles utilisés pour réaliser ces diagrammes :
-
8/17/2019 PDF TP H Programmation Langue Basic
12/30
TECHNOLOGIE
TP Programmation 1
TP H Page 12 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
Exemples de programmes :
I - Détection d’un contact (micro switch)
Micro switch
Le schéma ci-dessous vous montre comment câbler le capteur au BASIC Stamp I. Le fonctionnement est simple
* Le port du microcontrôleur est configuré en entrée, c'est-à-dire qu'il va lire uneinformation.* Tant que le bouton poussoir n'est pas actionné, le port est relié au 5V et le microcontrôleur
lit un état haut (1).* Dès que l'on actionne le bouton poussoir, le port est relié au 0V et le microcontrôleur lit unétat bas (0)
Pour programmer une réaction du robot en fonction du changement d'état, il suffit d'écrire le programmesuivant :
INPUT 1 => configure le port 1 en entrée (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
P1 ou
P2
-
8/17/2019 PDF TP H Programmation Langue Basic
13/30
TECHNOLOGIE
TP Programmation 1
TP H Page 13 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
II - Utilisation d'une photorésistance (LDR)
Les photorésistances ont différents diamètres et différentes valeurs mais leur fonctionnement est identique :leur valeur ohmique diminue en même temps que la luminosité.
LDR diamètre 5 mm
Fonctionnement :
Le port du microcontrôleur est utilisé en entrée analogique, c'est-à-dire qu'au lieude lire 2 états (0 ou 1), il peut lire des valeurs comprises entre 0 et 255.
Le microcontrôleur mesure le temps de décharge du condensateur au travers de laphotorésistance 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 décharge.La valeur convertie sera modifiée en conséquence.
-
8/17/2019 PDF TP H Programmation Langue Basic
14/30
TECHNOLOGIE
TP Programmation 1
TP H Page 14 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
Il ne reste plus qu'à écrire le programme suivant pour tester le circuit :
SYMBOL val=b0 => réserve un espace en mémoire pour stocker les valeurs lues
SYMBOL ech=33 =>déclare que la variable "ech" contient 33 (valeur de l'échelle delecture à étalonner avant de lancer le programme, voir plus bas)
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 supérieure à 200 alors va à msg1
IF val100 then msg2 => si la valeur est comprise entre 100 et 200 alors va à msg2
IF val si la valeur est inférieure à 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 detectemsg2: => sous-programme msg2
DEBUG «lumière agréable» => affiche à l'écran le message "lumière agréable"
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
Après avoir téléchargé le programme, si vous passez la main devant la LDR, les différents messages doiventapparaître à l'écran.Etalonnage du port lors d'une lecture analogique
La valeur “ECH” est définie à l’étalonnage du montage.Pour cela, reliez votre capteur au microcontrôleur, connectez celui-ci au PC grâce au câble de liaison, lancezl’éditeur BASIC (stamp.exe) et appuyez ALT+P et sélectionnez le port connecté au capteur. Dans la fenêtre qui apparaît, vous devez voir une valeur SCALE. Si vous le pouvez, réglez votre montage pourque cette valeur soit la plus basse possible. Appuyez ensuite sur la barre espace, agissez sur votre montage etregardez le chiffre VALUE changer suivant vos actions. Ce sont ces valeurs que vous devez utiliser dans votreprogramme pour créer vos conditions (IF...THEN...).
-
8/17/2019 PDF TP H Programmation Langue Basic
15/30
TECHNOLOGIE
TP Programmation 1
TP H Page 15 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
III - Utilisation d'un servomoteur
Cette option a été choisie dès les premiers prototypes ROBOTEK pour sa simplicité de mise en œuvre etd'utilisation. En effet, un servo de modélisme contient un système de pignonerie qui, après une petitemodification, se transforme en réducteur de vitesse de très bonne facture.
De plus, le BASIC Stamp I est capable de fournir une impulsion sur ses ports, grâce à 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 interprète le signalélectrique que lui envoie le BASIC Stamp.
Après avoir effectué la modification décrite sur cette page, vouspourrez envoyer une impulsion au servo pour tester soncomportement. Si cette impulsion est de 1 milliseconde, le moteurtourne à pleine vitesse dans un sens (environ 50 tr/min, ce qui estdéjà pas mal). Si elle est de 2 millisecondes, il tourne à pleine vitessedans l'autre sens.
En envoyant une impulsion de 1,5 ms, si votre servo est bien calibré, ildoit s'arrêter. Des valeurs approchant 1,5 ms vous permettront deralentir le moteur dans un sens ou dans l'autre.
Pour relier un ou plusieurs servos au microcontrôleur, il vous faudra fabriquer un circuit comportant unealimentation séparée. Celle-ci pourra être composée d'un pack de 4 accus type R06 puisque les servos doiventêtre alimentés entre 5V et 6V.
Le schéma ci-contre vous montre comment connecté un servo au port duBASIC Stamp I.
Important : Pensez à relier la masse (0V) de votre pack d'accus avec lamasse du microcontrôleur sinon vous risquez d'avoir des comportementsincohérents du servo.
P4 ou P5
-
8/17/2019 PDF TP H Programmation Langue Basic
16/30
TECHNOLOGIE
TP Programmation 1
TP H Page 16 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
Il ne reste plus qu'à télécharger le programme suivant pour faire tourner le servo :
debut:pulsout 4,100pause 20goto debut
=>=>=>=>
sous-programme debutenvoie une impulsion de 1000 µs (100 x 10 µs) sur le port 4fait une pause de 20 ms (obligatoire pour la clarté du signal)va au sous-programme debut
Et pour l'autre sens :
debut:pulsout 4,200pause 20goto debut
=>=>=>=>
sous-programme debutenvoie une impulsion de 2000 µs (200 x 10 µs) sur le port 4fait une pause de 20 ms (obligatoire pour la clarté du signal)va au sous-programme debut
IV - Utilisation d'une DEL
Les DEL sont des composants peu onéreux et peu gourmand en énergie, elles sont, en plus relativement faciles àmettre en œuvre avec le BASIC Stamp.
Le schéma et le fonctionnement sont très simples :
Lorsqu'ils sont configurés en sortie (OUTPUT), les ports du microcontrôleur peuvent avoir 2 états : soit haut(5V), soit bas (0V).
Si vous connectez une DEL avec sa résistance de protection en série comme
sur le schéma ci-contre, il faut, pour allumer la DEL, que le port soit au niveauhaut.
Pour tester ce circuit, il faut taper le programme suivant :
output 6clignote:high 6pause 1000low 6pause 500
goto clignote
=>=>=>=>=>=>
=>
configure le port 6 en sortiesous-programme clignotemet le port 6 à l'état hautfait une pause d'une secondemet le port 6 à l'état basfait une pause d'une demi-seconde
va au sous-programme clignote
P6
-
8/17/2019 PDF TP H Programmation Langue Basic
17/30
TECHNOLOGIE
TP Programmation 1
TP H Page 17 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
V - Utilisation d'un buzzer
Les buzzers piezo sont simples à mettre en œuvre et souvent bon marché. Les critères de choix sont : le prix,l'encombrement et la tension. Dans notre cas, nous avons choisi un buzzer 5V.
Le schéma ci-dessous vous montre comment connecter votre circuit au microcontrôleur.
Grâce à la commande SOUND, le BASIC Stamp peut envoyer une tensionmodulée sur un de ses ports et produire ainsi du son.
Pour émettre une mélodie, il faut taper le programme suivant :
sound 7, (20,50,100,50,20,50) => emet 3 notes (20,100 et 20) d'une durée d'une demi-seconde (50)
Un autre exemple :
symbol x=b0for x = 0 to 127sound 7, (x,50)next x
=> réserve un espace en mémoire pour stocker une valeur=> pour x allant de 0 à 127=> emet la note x pour une durée d'une demi-seconde (50)=> passe au x suivant
Si vous faites varier la valeur et la durée de chaque note, vous obtiendrez différentes mélodies qui pourrontdevenir autant de codes pour dialoguer avec votre robot.
P7
-
8/17/2019 PDF TP H Programmation Langue Basic
18/30
-
8/17/2019 PDF TP H Programmation Langue Basic
19/30
TECHNOLOGIE
TP Programmation 1
TP H Page 19 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
Les variables
Le BASIC Stamp réserve de la mémoire vive pour stocker des informations dans 56 variables.Elles sont organisées de la façon 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 65635Les octets peuvent contenir des valeurs comprises entre 0 et 255Les bits peuvent contenir 0 ou 1 (FALSE ou TRUE)
Les symboles
Des constantes peuvent être assignées aux symboles, des noms pour des variables et desadresses de sous-programmes. Les constantes et les noms de variables sont assignés enmettant le signe égal (=) après le nom du symbole suivi de la constante ou de la variable. Lesadresses de sous-programme sont assignées en mettant deux points (:) après le symbole.Exemples :
SYMBOL sortie= PIN0SYMBOL 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 appelée au cours du programme pourrediriger' l'exécutio n
-
8/17/2019 PDF TP H Programmation Langue Basic
20/30
TECHNOLOGIE
TP Programmation 1
TP H Page 20 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
Format
Le compilateur BASIC exécute le programme ligne par ligne mais il est possible d'écrireplusieurs commandes sur la même ligne en les séparant 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 desinstructions du BASIC.
DEBUG cls, "texte", cr, var, $var, %var, #var, #$var, #%var
Cette instruction affiche des informations dans une fenêtre de test à chaque fois que le programme larencontre durant son exécution.
Du texte peut être affiché mais doit être inscrit entre 2 guillemets. De plus, il est possible d'effacerl'écran avec la commande cls et de sauter à la ligne avec la commande cr.
Des variables peuvent être affichées avec leur contenu en donnant simplement leur nom. Le formatdécimal est l'affichage par défaut mais il est possible d'afficher :
1. au format hexadécimal si le signe $ précède le nom de la variable
2.
au format binaire si le signe % précède le nom de la variable
Il est possible de n'afficher que la valeur de la variable sans son nom si le signe # précède le nom de lavariable
Exemple : SYMBOL compteur = W0 SYMBOL x = W1 FOR x = 0 TO 100compteur = compteur+1DEBUG compteurNEXT x
définit la variable "compteur"définit la variable "x"pour x allant de 0 à 100ajoute 1 à la variable "compteur"affiche le nom et le contenu de la variable "compteur" passe au x suivant
-
8/17/2019 PDF TP H Programmation Langue Basic
21/30
TECHNOLOGIE
TP Programmation 1
TP H Page 21 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
EEPROM {position},(donnée,donnée...)
Cette commande permet de stocker des données dans l'EEPROM (la mémoire) du microcontrôleur avant d'ytélécharger le programme. Ce n'est pas une instruction mais plutôt un mode de téléchargement qui permet destocker des données dans des espaces mémoire libres.
Position est une constante (optionnelle) comprise entre 0 et 255 qui spécifie où stocker les donnéesdans l'EEPROM. Si aucune position n'est spécifiée, le stockage continue là où il a été arrêté. Si aucuneposition n'a été spécifiée à l'initialisation, le stockage commence à 0. Le stockage des données
s'effectue dans l'ordre croissant à partir de 0 alors que le stockage du programme s'effectue dansl'ordre décroissant à partir de 255.
Donnée(s) sont des constantes (0 à 255) qui seront stockées 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 reculeIF dep = "d" THEN droiteIF dep = "g" THEN gaucheIF dep = "f" THEN END pos = pos+1GOTO lectureavance:...recule:...etc...
stocke les valeurs dans l'EEPROM à la position 0 définit la variable "dep"définit 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 programmeajoute 1 à la variable "pos"va à "lecture"sous-programme "avance"
sous-programme "recule"
etc...
-
8/17/2019 PDF TP H Programmation Langue Basic
22/30
TECHNOLOGIE
TP Programmation 1
TP H Page 22 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
END
Cette commande permet d'arrêter le programme et de mettre le microcontrôleur en veille. Sa consommation estréduite au minimum (20 µA).
Exemple : EEPROM 0,("a","g","a","d","r","f")SYMBOL dep = W0 SYMBOL pos = W1 lecture:
READ pos,dep
IF dep = "a" THEN avanceIF dep = "r" THEN reculeIF dep = "d" THEN droiteIF dep = "g" THEN gaucheIF dep = "f" THEN END pos = pos+1GOTO lectureavance:...recule:...etc...
stocke les valeurs dans l'EEPROM à la position 0définit la variable "dep"définit 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...
FOR variable=début TO fin {STEP {-}incrément }NEXT {variable}
Cette instruction permet de créer une boucle d'exécution de laquelle le programme ne sortira que si lecomptage est terminé.
variable est une variable utilisée en tant que compteur début est la valeur initiale de la variable
fin est la valeur finale de la variable incrément est une valeur optionnelle qui permet de changer le pas de la boucle qui est par défaut de +1.Si incrément est précédé par le signe "-" et si début est plus grand que fin
-
8/17/2019 PDF TP H Programmation Langue Basic
23/30
TECHNOLOGIE
TP Programmation 1
TP H Page 23 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
GOSUB adresse...
RETURN
Cette instruction redirige l'exécution du programme vers un sous-programme et lorsqu'il est effectué, retourneau programme d'origine. Jusqu'à 16 GOSUB sont autorisés dans un programme et ils peuvent être imbriqués
jusqu'à 4 niveaux.
adresse est le nom du sous-programme
Exemple : OUTPUT 0OUTPUT 1
test:GOSUB allumeGOSUB sonneGOTO test
allume:HIGH 1PAUSE 1000
LOW 1RETURN
sonne:SOUND 0,(20,100,80,100)RETURN
configure le port 0 en sortieconfigure le port 1en sortie
sous-programme "test"va au sous-programme "allume"va au sous-programme "sonne" va au sous-programme "test"
sous-programme "allume"met le port 1 à l'état hautfait une pause de 1000 ms (1 seconde)
met le port 1 à l'état basretourne au sous-programme "test"
sous-programme "sonne"emet un son sur le port 0 composé de 2 notesretourne au sous-programme "test"
GOTO adresse
Cette instruction redirige l'exécution du programme vers un sous-programme mais n'attend aucun retour.
adresse est le nom du sous-programme
Exemple :
OUTPUT 0OUTPUT 1
test:GOSUB allumeGOSUB sonneGOTO test
allume:HIGH 1PAUSE 1000
LOW 1RETURN
sonne:SOUND 0,(20,100,80,100)RETURN
configure le port 0 en sortieconfigure le port 1 en sortie
sous-programme "test"va au sous-programme "allume"va au sous-programme "sonne"va au sous-programme "test"
sous-programme "allume"met le port 1 à l'état hautfait une pause de 1000 ms (1 seconde)
met le port 1 à l'état basretourne au sous-programme "test"
sous-programme "sonne"emet un son sur le port 0 composé de 2 notesretourne au sous-programme "test"
-
8/17/2019 PDF TP H Programmation Langue Basic
24/30
TECHNOLOGIE
TP Programmation 1
TP H Page 24 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
HIGH 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 spécifie quel port Entrée/Sortieutiliser
Exemple : OUTPUT 0
OUTPUT 1
test:GOSUB allumeGOSUB sonneGOTO test
allume:HIGH 1PAUSE 1000LOW 1RETURN
sonne:
SOUND 0,(20,100,80,100)RETURN
configure le port 0 en sortie
configure le port 1en sortie
sous-programme "test"va au sous-programme "allume"va au sous-programme "sonne"va au sous-programme "test"
sous-programme "allume"met le port 1 à l'état haut fait une pause de 1000 ms (1 seconde)met le port 1 à l'état basretourne au sous-programme "test"
sous-programme "sonne"
emet un son sur le port 0 composé de 2 notesretourne 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'exécution duprogramme en conséquence. ?? peut être remplacé par =, , =>, =
-
8/17/2019 PDF TP H Programmation Langue Basic
25/30
TECHNOLOGIE
TP Programmation 1
TP H Page 25 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
INPUT port
Cette instruction permet de configurer un port en entrée.
port est une constante ou une variable comprise entre 0 et 7 qui spécifie quel port Entrée/Sortieutiliser
Exemple : INPUT 0OUTPUT 1
boucle :IF PIN0=1 THEN allumeHIGH 1GOTO boucle
allume :LOW 1GOTO boucle
configure le port 0 en entrée configure le port 1en sortie
sous-programme "boucle"si l'entrée 0 est au niveau haut alors va à "allume"sinon met le port 1 à l'état hautva au sous-programme "boucle"
sous-programme "allume"met le port 1 à l'état basretourne 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 spécifie quel port Entrée/Sortieutiliser
Exemple : OUTPUT 0OUTPUT 1
test:GOSUB allumeGOSUB sonneGOTO test
allume:HIGH 1PAUSE 1000LOW 1RETURN
sonne:SOUND 0,(20,100,80,100)RETURN
configure le port 0 en sortieconfigure le port 1en sortie
sous-programme "test"va au sous-programme "allume"va au sous-programme "sonne"va au sous-programme "test"
sous-programme "allume"met le port 1 à l'état hautfait une pause de 1000 ms (1 seconde)met le port 1 à l'état bas retourne au sous-programme "test"
sous-programme "sonne"emet un son sur le port 0 composé de 2 notesretourne au sous-programme "test"
-
8/17/2019 PDF TP H Programmation Langue Basic
26/30
TECHNOLOGIE
TP Programmation 1
TP H Page 26 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
OUTPUT port
Cette instruction permet de configurer un port en sortie.
port est une constante ou une variable comprise entre 0 et 7 qui spécifie quel port Entrée/Sortieutiliser
Exemple : INPUT 0
OUTPUT 1
boucle :IF PIN0=1 THEN allumeHIGH 1GOTO boucle
allume :LOW 1GOTO boucle
configure le port 0 en entrée
configure le port 1en sortie
sous-programme "boucle"si l'entrée 0 est au niveau haut alors va à "allume"sinon met le port 1 à l'état hautva au sous-programme "boucle"
sous-programme "allume"met le port 1 à l'état basretourne au sous-programme "boucle"
PAUSE temps
Cette instruction suspend l'exécution du programme pendant un intervalle de temps défini.
temps est une constante ou une variable, dont la valeur est comprise entre 0 et 65535, qui spécifiel'intervalle de temps en millisecondes.
Exemple : OUTPUT 0OUTPUT 1
allume:HIGH 1
PAUSE 1000LOW 1RETURN
sonne:SOUND 0,(20,100,80,100)RETURN
configure le port 0 en sortieconfigure le port 1en sortie
sous-programme "allume"met le port 1 à l'état haut
fait une pause de 1000 ms (1 seconde) met le port 1 à l'état basretourne au sous-programme "test"
sous-programme "sonne"emet un son sur le port 0 composé de 2 notesretourne au sous-programme "test"
-
8/17/2019 PDF TP H Programmation Langue Basic
27/30
TECHNOLOGIE
TP Programmation 1
TP H Page 27 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
POT port,echelle,variable
Cette instruction permet de mesurer une résistance variable comprise entre 5 et 50 kOhms comme unpotentiomètre, une photorésistance ou une thermistance. Le port doit être connecté d'un côté de la résistancequi est connectée de l'autre à un condensateur polyester de 100nF lui-même connecté à la masse.Le Basic Stamp lit la valeur de la résistance en mesurant le temps mis par le condensateur pour se décharger autravers de celle-ci.
Port est une variable ou une constante comprise entre 0 et 7 qui spécifie quel port Entrée/Sortie
utiliser. Echelle est une variable ou une constante comprise entre 0 et 255 qui met à l'échelle le résultat de la
mesure. Le résultat est multiplié par (echelle/256) donc une échelle de 128 réduira la zone de mesure de50%. Pour étalonner le Basic Stamp avec une résistance particulière et trouver la meilleure échelle,utiliser l'option ALT+P décrite ci-dessous.
Variable est une variable d'un octet qui contient le résultat de la mesure.
Etalonnage du Basic Stamp :
1. Pour trouver la meilleure valeur d'échelle, connectez la résistance au Basic Stamp et reliez le Basic
Stamp au PC. 2. Appuyez sur ALT+P lorsque vous avez lancé l'éditeur BASIC. Une fenêtre apparaît.
3. La fenêtre vous demande d'indiquer quel port est relié à la résistance. Sélectionnez le port.
4. l'éditeur télécharge un petit programme dans le Basic Stamp (celui-ci effacera tout programme enmémoire dans le Basic Stamp).
5. Une autre fenêtre apparaît affichant deux chiffres : Scale (échelle) et Value (valeur). Ajustez votre
résistance pour obtenir le chiffre le plus bas possible (Scale) si cela est possible sur votre montage,sinon gardez ce chiffre en mémoire pour l'indiquer dans votre programme.
Vous pouvez vérifier le fonctionnement de votre montage avec cette valeur en appuyant sur la barre
espace. Le Basic Stamp bloque alors la valeur d'échelle affichée et passe en lecture. Si l'échelle estbonne, vous devez pouvoir ajuster votre résistance et lire des valeurs de 0 à 255, sinon recommencezl'opération en appuyant sur la barre espace.
Exemple : SYMBOL ech=255SYMBOL val=b0
lecture:POT 0,ech,valIF val
-
8/17/2019 PDF TP H Programmation Langue Basic
28/30
TECHNOLOGIE
TP Programmation 1
TP H Page 28 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
PULSOUT port, temps
Cette instruction permet d'émettre une impulsion en inversant l'état d'un port pendant un temps défini.
port est une constante ou une variable comprise entre 0 et 7 qui spécifie quel port Entrée/Sortieutiliser
temps est une constante ou une variable, dont la valeur est comprise entre 0 et 65535, qui spécifie lapériode de temps par unité de 10 microsecondes.
Exemple : INPUT 0 SYMBOL roue_droite=1 SYMBOL roue_gauche=2 SYMBOL x=W0
debut: IF PIN0=1 THEN recule GOSUB avance GOTO debut
avance: FOR x=0 TO 100
PULSOUT roue_droite,100 PULSOUT roue_gauche,200 PAUSE 20NEXT x RETURN
recule: FOR x=0 TO 100 PULSOUT roue_droite,200 PULSOUT roue_gauche,100 PAUSE 20NEXT x RETURN
configure le port 0 en entréeaffecte la valeur 1 à la constante roue_droiteaffecte la valeur 2 à la constante roue_gauchedéclare la variable x
sous-programme "debut"si le port 0 est à l'état 1 alors va à "recule"sinon va au sous-programme "avance"va au sous-programme début
sous-programme "avance"pour x allant de 0 à 100
envoie une impulsion de 1000 µs sur le port 1envoie une impulsion de 2000 µs sur le port 2fait une pause de 20 msx suivantretourne au sous-programme "debut"
sous-programme "recule"pour x allant de 0 à 100envoie une impulsion de 2000 µs sur le port 1envoie une impulsion de 1000 µs sur le port 2 fait une pause de 20 msx suivantretourne au sous-programme "debut"
-
8/17/2019 PDF TP H Programmation Langue Basic
29/30
TECHNOLOGIE
TP Programmation 1
TP H Page 29 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
READ position,variable
Cette commande permet de lire des données stockées dans l'EEPROM (la mémoire) du microcontrôleur et lesrange dans des variables.
Position est une variable ou une constante comprise entre 0 et 255 qui spécifie la position de la donnéedans l'EEPROM. Le stockage des données s'effectue dans l'ordre croissant à partir de 0 alors que lestockage du programme s'effectue dans l'ordre décroissant à partir de 255.
Variable est une variable qui reçoit la donnée.
Exemple :
EEPROM 0,("a","g","a","d","r","f")SYMBOL dep = W0 SYMBOL pos = W1 lecture:READ pos,dep
IF dep = "a" THEN avanceIF dep = "r" THEN reculeIF dep = "d" THEN droiteIF dep = "g" THEN gaucheIF dep = "f" THEN END
pos = pos+1GOTO lectureavance:...recule:...etc...
stocke les valeurs dans l'EEPROM à la position 0définit la variable "dep"définit 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 programmeajoute 1 à la variable "pos"
va à "lecture"sous-programme "avance"
sous-programme "recule"
etc...
-
8/17/2019 PDF TP H Programmation Langue Basic
30/30
TECHNOLOGIE
TP Programmation 1
TP H Page 30 sur 30
3ème … Nom : ………………………………… Prénom : ………………………… Date……/………/…….
SOUND port,(note,durée,note,durée,...)
Cette commande joue des notes de musique pendant des durées déterminées. Le port utilisé doit être connectéau plus d'un condensateur de 10µF dont le moins est relié à un buzzer piezzo dont l'autre borne est reliée à lamasse.
Port est une variable ou une constante comprise entre 0 et 7 qui spécifie quel port Entrée/Sortieutiliser.
Note(s) sont des variables ou des constantes comprises entre 0 et 255 qui spécifient le type et la
fréquence du son. La note 0 correspond au silence. Les notes 1 à 127 sont des tons ascendants. Les notes128 à 255 sont des tons ascendants avec un grésillement.
Durée(s) sont des variables ou des constantes comprises entre 0 et 255 qui spécifient la durée des
notes.
Exemple : OUTPUT 0OUTPUT 1
test:GOSUB allumeGOSUB sonne
GOTO test
allume:HIGH 1PAUSE 1000LOW 1RETURN
sonne:SOUND 0,(20,100,80,100)RETURN
configure le port 0 en sortieconfigure le port 1en sortie
sous-programme "test"va au sous-programme "allume"va au sous-programme "sonne"
va au sous-programme "test"
sous-programme "allume"met le port 1 à l'état hautfait une pause de 1000 ms (1 seconde)met le port 1 à l'état basretourne au sous-programme "test"
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 caractères qui doit commencer par une lettre alphabétique mais qui peutaussi 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+1DEBUG compteurNEXT x
définit la variable "compteur"définit 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