pdf tp h programmation langue basic

Upload: aminealem

Post on 06-Jul-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • 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