Mes premiers pas avec FlowCode Accompagnement en classe de 1

publicité
Accompagnement en classe de 1ère
Mes premiers pas avec FlowCode
Les microcontrôleurs effectuent des programmes de manière séquentielle. Pour
développer ces programmes on les schématise sous forme d’organigrammes ou
algorithmes indépendants du langage utilisé. Un même organigramme peut être
développé sous différents langages. FlowCode est un logiciel qui permet de réaliser
toute la chaîne de développement :
 développement de l’organigramme ou algorithme.
 génération automatique du code C (traduction en langage de programmation)
 génération automatique du code Assembleur (idem)
 génération automatique du code binaire (présenté sous forme
hexadécimale pour la lisibilité) (traduction en langage machine)
 programmation du PIC (en option) (transfert du programme dans la puce)
La programmation du PIC sera réalisée avec le logiciel IcProg et la carte de
programmation El Cheapo.
Nous utiliserons pendant les activités, le PIC 16F88 de Microchip (voir document
technique dans le dossier « notice FlowCode »)
Structure
Port A
+5V
Port B
La relation du microcontrôleur avec les éléments extérieurs se fait à travers les
ports du microcontrôleur. Le PIC16F88 possède 2 ports de 8 bits : le port A et le port
B. Le port A est bidirectionnel c’est-à-dire qu’il peut être utilisé en entrée ou en
sortie sauf le bit A5 qui est seulement en entrée. Le port B est bidirectionnel.
Low-Power Features:
• Power-Managed modes:
- Primary Run: RC oscillator, 76
µA, 1MHz, 2V
- RC_RUN: 7 µA, 31.25 kHz, 2V
- SEC_RUN: 9 µA, 32 kHz, 2V
- Sleep: 0.1 µA, 2V
• Timer1 Oscillator: 1.8 µA, 32
kHz,2V
• Watchdog Timer: 2.2 µA, 2V
• Two-Speed Oscillator Start-up
Oscillators:
• Three Crystal modes:
- LP, XT, HS: up to 20 MHz
• Two External RC modes
• One External Clock mode:
- ECIO: up to 20 MHz
• Internal oscillator block:
- 8 user selectable
frequencies: 31 kHz, 125
kHz, 250 kHz, 500 kHz,
1MHz, 2 MHz, 4MHz, 8MHz
Peripheral Features:
• Capture, Compare, PWM (CCP) module:
- Capture is 16-bit, max. resolution is 12.5 ns
- Compare is 16-bit, max. resolution is 200 ns
- PWM max. resolution is 10-bit
• 10-bit, 7-channel Analog-to-Digital Converter
• Synchronous Serial Port (SSP) with SPI™ (Master/Slave) and I2C™ (Slave)
• Addressable Universal Synchronous
Asynchronous Receiver Transmitter
(AUSART/SCI) with 9-bit address detection:
- RS-232 operation using internal oscillator (no external crystal required)
• Dual Analog Comparator module:
- Programmable on-chip voltage reference
- Programmable input multiplexing from device
inputs and internal voltage reference
- Comparator outputs are externally accessible
1/10
Accompagnement en classe de 1ère
Mes premiers pas avec FlowCode
Commencez avec FlowCode : mise en œuvre d’un outil de programmation graphique
1
Lancez le
logiciel
FlowCode à
partir de
l’icône cicontre
Choisissez le
microcontrôleur
2
3
Ecran proposé par le logiciel (le brochage du microcontrôleur apparaît, vous
pouvez fermer cette fenêtre). Un nouveau programme apparaît avec les étapes
« DEBUT » et « FIN ».
2/10
Accompagnement en classe de 1ère
Mes premiers pas avec FlowCode
Comment construire un organigramme ou algorithme ?
En utilisant la barre de menu ci-dessous (barre verticale gauche sur votre écran).
Présentation des principaux différents symboles utilisés au cours des activités.
Entrée
Pause
Boucle
Entrée
Sortie
1
3
Pause
Test
5
Boucle
Test
Sortie
Calcul
4
Calcul
2
6
Quelques précisions sur le test « Insérer une prise de décision »
Structure alternative
partielle → structure
SI ... ALORS ...SINON
La condition If
Si la Condition est vraie,
Alors on effectue Action,
Sinon on passe à la suite.
Remarque :
Vrai est représenté par 1,
Faux par 0.
3/10
Mes premiers pas avec FlowCode
Accompagnement en classe de 1ère
Structure itérative à
condition initiale →
structure
Tant que……Faire….
La boucle While
Tant que la Condition est
vraie on effectue (Faire)
l’Action1 puis l’ Action2 .
Quand la Condition n’est
plus vraie on passe à la
suite.
Remarque :
Vrai est représenté par 1,
Faux par 0.
Comment insérer un symbole (Entrée, Sortie, conditions, etc.….) ?
1. Avec le curseur de la
souris, sélectionnez dans le
menu à gauche, le symbole
nécessaire (ici : Entrée)
2. Faites glisser ce dernier
dans l’algorithme.
3. A droite, vous obtenez un
nouvel algorithme.
Comment paramétrer une entrée ?
L’icône Entrée lit le port spécifié (ou
certains bits seulement du port) et place
le résultat dans la variable spécifiée.
Le logiciel propose plusieurs choix pour
une entrée (voir image ci-contre)
Dans cet exemple, le symbole SWITCH
est choisi.
A cette entrée correspondra une action
sur un interrupteur.
En bas de votre écran, l’entrée SWITCH
choisie apparaît. Elle est nommée
SWITCH(0) par défaut.
A droite, vous avez un écran qui vous
permet de connaître les propriétés de
cette entrée.
En cliquant sur les points …. à coté de
connexions, vous accédez aux propriétés
de cette entrée (voir ci-dessous à gauche).
4/10
Mes premiers pas avec FlowCode
Accompagnement en classe de 1ère
Par défaut, cette entrée est un
interrupteur relié au port A du
microcontrôleur.
Bit 0 (zéro) signifie que l’on
utilise l’entrée A0 du port A.
Pour le moment, le
microcontrôleur ne fait aucun
lien avec cette entrée.
Editons donc l’entrée de
l’algorithme (voir
)
Dans l’algorithme, en double
cliquant sur cette entrée,
j’obtiens les propriétés de
celle-ci.
Phase de lecture d’une entrée
Nous allons ici affecter un nom de
variable ( inter1) à l’interrupteur choisi
précédemment. Pour cela, je clique sur
« ajouter variable » et je crée une
nouvelle variable, ici : inter1.
Je valide et sélectionne « utiliser
variable »
5/10
Accompagnement en classe de 1ère
Mes premiers pas avec FlowCode
J’en profite pour changer le
nom affiché, nommé ici,
interrupteur1.
Pour le moment, je n’ai
pas encore associé à
cette variable « inter1 »
une entrée du
microcontrôleur.
D’après la figure à
gauche, je sais
simplement que cette
entrée est associée au
port A du
microcontrôleur.
Phase de configuration du microcontrôleur ( utilisation des entrées physiques )
En double-cliquant à nouveau sur
PORT A de l’algorithme, sur la figure à
gauche, je décide (choix bit unique)
que je vais associer l’entrée « inter1 »
au port A et plus particulièrement à
l’entrée A2 du microcontrôleur
( physiquement, cela correspond à une
patte de ce dernier )
L’algorithme prend en
compte ce paramétrage
( voir figure ci-contre à
gauche).
Je dois revenir aux
propriétés de
l’interrupteur SWICH(0).
Comme vous le
constatez, il est toujours
connecté au port A mais
à l’entrée A0
6/10
Accompagnement en classe de 1ère
Mes premiers pas avec FlowCode
Ce qui est fait maintenant :
L’interrupteur 1 ( variable inter1) est
associé au port A, entrée A2 du
microcontrôleur. L’information
extérieure de l’état de l’interrupteur est
récupérée dans la variable interne du
microcontrôleur « inter1 ».
Remarque : Dans propriétés étendues
du composant (ici l’interrupteur), il est
possible de modifier le type de ce
dernier, par exemple, le définir comme
un bouton poussoir si c’est le cas.
Comment paramétrer une sortie ?
Dans l’exemple ci-contre, une
led a été sélectionnée
Les sorties physiques
disponibles sont :
Une sortie a été insérée dans Adressage de
l’algorithme.
lecture d’une
sortie
Comme pour les
entrées, la sortie
Led1 est associée
à la variable sled.
Cette sortie utilise
le port B et plus
particulièrement le
bit B1 du port B.
Voir exemple à
droite.
L’icône Sortie permet d’envoyer la
valeur ou le contenu d’une variable
au port et/ou aux bits
spécifiés.
7/10
Accompagnement en classe de 1ère
Mes premiers pas avec FlowCode
L’algorithme devient :
En cliquant sur les
points ….. de
connexion, je
configure cette
sortie :
La led est ici
connectée au port B1
du port B
En éditant les propriétés
du composant, je change
ces caractéristiques ( ici, la
led est un rectangle vert )
C’est terminé pour cette
sortie.
Comment paramétrer une prise de décision ?
Dans cette configuration de
l’algorithme (à gauche), en
supposant que je teste l’état de
l’interrupteur1, il ne se passera
pas grand chose…..
Traduisons graphiquement : SI
inter1=1 ALORS mettre à 1 la
sortie Led1 (variable sled)
Même remarque pour
l’algorithme à droite, une
simulation ne permettrait pas de
valider le déroulement.
Remarque : la décision sera
définie ci-dessous. Ici,
l’algorithme présente le symbole
de la décision par défaut
Les icônes de décision vous permettent de tester une condition et d’effectuer
certains traitements en fonction du résultat du test. Des icônes peuvent être
placées dans l’une ou l’autre branche de sortie de l’icône décision.
8/10
Mes premiers pas avec FlowCode
Accompagnement en classe de 1ère
Comme précédemment, en
double cliquant sur le
symbole « prise de
décision », je définis la
condition du test. Ici, SI
inter1=1 ALORS…
L’icône de Calcul permet la modification des variables. Elle peut être utilisée pour
vérifier des entrées ou créer des sorties.
Insertion d’un calcul
L’icône « calcul »permet de
renseigner l’action . Ici, si la
condition du test est vraie, la
led est mise à 1 (sled=1) puis
le port B1 du microcontrôleur
est mis à 1.
Dans notre cas, le programme est exécuté une seule fois
et s'arrête, ce qui ne laisse pas la possibilité de manipuler
l'interrupteur.
On peut exécuter le programme pas à pas ( touche F8 ou touche
shift F8 ) de manière à pouvoir observer chaque action et
changer la position de l'interrupteur par exemple.
Ou insérer une boucle de manière à exécuter
le programme plusieurs fois. C’est l’objet de la suite…..
9/10
Mes premiers pas avec FlowCode
Accompagnement en classe de 1ère
Comment insérer une boucle de manière à exécuter le programme plusieurs fois ?
Dans cet exemple, la condition est toujours
vraie (White 1)= Tant que, le programme s'exécute
sans arrêt.
Les icônes Boucle sont utilisées pour répéter une
tâche tant que la condition spécifiée est remplie.
Notez que vous devrez ajouter une icône Calcul
qui modifie la variable spécifiée dans la condition
pour que cette condition ait une chance d’être
satisfaite.
Comment étudier le modèle ?
Lancer la simulation
10/10
Téléchargement