Voici quelques opérations courantes qui pourraient être utiles pour résoudre les défis. 
L’objectif n’est pas de les lire les uns à la suite des autres, mais plutôt de les consulter lorsque nécessaire.

Interagir avec un périphérique

Comme Bitbloq sait quels périphériques ont été connectés à la carte Arduino, il propose dans la section rouge les fonctions de base des périphériques déclarés. 


Exemple : J’allume une DEL.




Structure If-Else

Pour permettre au robot de prendre des décisions selon les informations provenant de ses capteurs, il faut utiliser un bloc If (Si). Ce bloc a une CONDITION et une ACTION. Si la CONDITION est vraie, le robot réalisera l’ACTION indiquée. 


Le bloc If (Si) se trouve dans la section bleu foncé Con. Le menu déroulant permet de choisir le type de comparaison (plus grand que, égal, plus petit que, etc).




Afin de donner une ACTION à accomplir si la CONDITION n’est pas remplie, on utilise le bloc Else (Sinon).


Attention : Lorsque l’on veut tester plus d’une condition dans une structure If - Else, il ne faut pas faire If - If - Else. Toutes les conditions supplémentaires après le If nécessitent un Else If (Ou bien si) : If - Else If - Else, If - Else If - Else If - Else, etc. 


Exemple : Si le capteur à ultrasons détecte un objet à moins de 10 cm, la DEL s’allume. Sinon, elle s’éteint.



Compteur

Pour compter le nombre d'occurrences d’un événement, il faut tout d’abord déclarer une variable. Le bloc se trouve dans la section jaune Var et il faut le placer dans la section Global Variables and Function du code. 



Ensuite, lorsque l’événement que l’on veut compter se produit, on doit dire au code une commande du type Variable = Variable + 1. Cette formulation n’est évidemment pas valable en math, mais en programmation cela est permis. On veut simplement dire : prends la valeur actuelle de la variable, ajoute 1, puis enregistre cette nouvelle valeur dans la variable.


Les blocs nécessaires sont dans la section jaune Var et la section turquoise Mat.


Exemple : Je veux que la DEL s’allume lorsque le capteur à ultrasons aura détecté au moins sept fois la présence d’un objet à moins de 10 cm.


Vérifier si une variable a changé de valeur

Pour vérifier le changement d’état d’un capteur, il faut déclarer deux variables dans l’en-tête du programme (par exemple etat_actuel et etat_passe)



On utilise la variable etat_actuel pour enregistrer la valeur courante du capteur en début de Loop. À la fin de la Loop, on transfère la valeur de etat_actuel vers etat_passe.



Ainsi, la variable etat_actuel a toujours la dernière information provenant du capteur et la variable etat_passe a toujours l’avant-dernière information provenant du capteur


Exemple : Je veux que la DEL s’allume lorsqu’un objet s’approche du capteur. Si l’objet est immobile ou s’éloigne, la DEL s’éteint. 

  • Si un objet s’approche, cela veut dire que la valeur actuelle du capteur sera plus petite que la valeur précédente. 

  • Le bloc Wait 500 ms sert uniquement à ralentir le programme, car sinon il y a beaucoup de fluctuations sur la valeur du capteur et l’algorithme détecte de faux positifs.



Moniteur série

Si l’on veut afficher les valeurs des capteurs, il faut utiliser le port série. Premièrement, il faut l’ajouter en tant que périphérique dans l’onglet Hardware.



Ensuite, il suffit d’utiliser le bloc rouge « serial_port send » avec l’information voulue. Pour afficher le moniteur série, il faut aller dans View, puis Show serial monitor.




Modifié le: vendredi 9 août 2019, 13:52