Catégories
ALGORA capteur lumière moteur continu

ALGORA : Le robot qui obéit au doigt

Ce que tu vas apprendre :

Apprendre à utiliser  :

  1. Un capteur de lumière
  2. Deux moteurs à courant continu

Ta mission :

Apprendre à construire un robot qui obéit au doigt.

Liste des pièces avant la construction

Carte ARDUINO1
Batterie1
Cable USB1
Moteur CC plus les deux moyeux2
Capteur de lumière1
Bloc blanc ou de différentes couleurs6
Demi-cube2
Demi-cube4
Disque1
LED rouge1
Buzzer1
Roue2
barre2

Construction de ton robot :

 


Le tableau des assignations

Clique sur le menu Edition en haut de l’écran et choisis Paramètres des ports
Clique ensuite sur le bouton Tout décocher .
Puis indique tous les éléments que tu as rajoutés sur ton robot.

Réveiller ton robot

A la mise sous tension de ton robot, celui-ci est dans un état « endormi ». En mettant le doigt sur le capteur de lumière, le robot se réveille et allume une LED.

Ta mission

Ton robot se réveille dès qu’il détecte la présence de ton doigt sur le capteur de lumière puis allume une LED.
Tu dois réaliser le programme suivant après « Démarrer le programme » :

  1. Eteindre la LED 0
  2. Détecter la présence de ton doigt sur le capteur de lumière
  3. Allumer la LED 0

Dès que tu as écrit ton programme, clique sur le menu Exécuter en haut de l’écran et choisis Transférer.

Une solution

Teste ton code en activant le mode test :

Visualise que ton capteur de lumière fonctionne correctement en posant ton doigt sur le capteur de lumière et vérifie la valeur sur le tableau des capteurs.

Vérifie la valeur du capteur de lumière sans ton doigt sur ce dernier :

Puis vérifie la valeur du capteur de lumière avec ton doigt sur ce dernier :

Exécute ce programme par un clic sur Démarrer le programme :

Pose ton doigt sur le capteur de lumière, la LED doit s’allumer :

Pour que ton programme fonctionne dans toutes les situations de lumière ambiante, tu vas créer une variable pour mémoriser la valeur de la lumière ambiante :

Mémorise ainsi la valeur de la lumière ambiante dans cette variable :

Ainsi tu peux détecter la présence du doigt sur le capteur avec une tolérance de variance de la lumière de 20 :

Puis attendre que le doigt ne soit plus présent :

Dès que tu as écrit ton programme, clique sur le menu Exécuter en haut de l’écran et choisis Transférer.

La LED 0 s’allume dès que tu mets ton doigt sur le capteur puis elle s’éteint dès que tu enlèves ton doigt.

Ta mission

Tu vas utiliser cet alghorithme comme fonction pour le réveil de ton robot.

L’idée principale est d’attendre que l’utilisateur pose son doigt sur le capteur de lumière, puis d’allumer la LED 0 pour indiquer que le robot est prêt à être utilisé.

Une solution

Dès que tu as écrit ton programme, clique sur le menu Exécuter en haut de l’écran et choisis Transférer.

Passer un ordre à ton robot

Ta mission

Maintenant que tu as la possibilité de réveiller ton robot, tu vas lui donner des ordres par l’appui sur le capteur de lumière. Deux appuis et ton robot se rendort.

Une solution

Tu dois créer une variable pour mémoriser l’ordre donné par l’utilisateur de ton robot :

Comme tu l’as expérimenté précédemment, détecte l’appui sur le capteur de lumiére puis son relachement afin de mémoriser l’ordre. 

Active le mode test pour tester ton programme :

Vérifie que la variable « ordre » est bien cochée pour qu’elle soit visible :

Dans la partie droite en haut de l’écran, visualise les valeurs de « ordre » en fonction de la progression de ton programme.

Au lancement de ton programme « ordre » est égal à la valeur zéro.

Réveille ton robot en posant ton doigt sur le capteur de lumière.

Puis pose à nouveau ton doigt sur le capteur, tant que ton doigt est sur le capteur tu entends le buzzer, dès que tu relaches ton doigt du capteur, la variable « ordre » s’incémente de la valeur 1.

Si tu appuies de nouveau ordre s’incrémente à 2 et le robot s’éteint :

Endormir ton robot

Ton robot doit s’endormir si tu ne passes plus d’ordre au bout d’un certain temps. Pour cela tu utilises le chronomètre pour mesurer le temps pendant lequel aucun ordre n’est donné :

Dès que tu as écrit ton programme, clique sur le menu Exécuter en haut de l’écran et choisis Transférer.

Comment valider un ordre

Ta mission

Pour valider l’ordre donné, tu utilises un appui plus long, par exemple plus d’une seconde :

Dès que tu as écrit ton programme, clique sur le menu Exécuter en haut de l’écran et choisis Transférer.

Faire bouger ton robot au doigt

Ta mission

Maintenant, tu peux faire bouger ton robot en lui donnant des ordres par des appuis successifs sur le capteur de lumière.

En appuyant plusieurs fois, tu peux donner des ordres à ton robot pour qu’il se déplace :

  • En avant (1 appui court puis un appui long)
  • En arrière (2 appuis courts successifs puis un appui long)
  • À droite (3 appuis courts successifs puis un appui long)
  • À gauche (4 appuis courts successifs puis un appui long)

Une solution

Crée une fonction « execution » pour déclencher les mouvements du robot en fonction de la valeur dans ordre :

  1. faire avancer
  2. faire tourner à droite
  3. faire tourner à gauche
  4. et le faire reculer

A toi d’écrire les fonctions avancer, reculer, droite, gauche.

Dès que tu as écrit ton programme, clique sur le menu Exécuter en haut de l’écran et choisis Transférer.

Catégories
ALGORA Robotique

Suivi ligne noire en scratch

En compilant toutes vos propositions, voici un exemple d’une programmation SCRATCH avec un robot Algora qui passe le sur le parcours le plus difficile en utilisant deux photoréflecteurs.

Voir la vidéo du suivi de ligne

Pour la construction du robot, trois préconisations qui nous servirons lors de la conception de notre robot pour la robocup :

  • l’espace entre les deux photoréflecteurs doit être légèrement supérieur à la largeur de la ligne noire.
  • les photoreflecteurs doivent être le plus proche du sol mais attention nous devrons prendre en compte les pentes !
  • les photoréflecteurs doivent être devant mais proche des roues directrices.

Ci-dessus un exemple de programmation pour stocker les valeurs de la couleur noire au démarrage du robot.

Nous avons constaté que les deux photoreflecteurs n’avaient pas la même mesure de la ligne noire. Certains ont donc utilisé deux variables pour stocker la valeur de la ligne noire.

D’autre part, il semble plus pertinent de mesurer la ligne noire et d’utiliser cette valeur plutôt que le blanc. Nous avons constaté également que la valeur retournée par les photoreflecteurs peuvent varier lors du déplacement du robot sur la ligne noire voir cette vidéo.

Avant le lancement du robot, on réalise une prise des valeurs des photoreflecteurs sur la ligne noire.
Pour plus de précision, le mieux est de mémoriser dans deux variables, une variable pour chaque phoreflecteur.
Afin de gérer les fluctuations des mesures du noire, certains ajoutent une valeur de tolerance. Dans l’exemple la valeur 5.

Pour passer les passages les plus difficiles, nous avons constaté que la meilleure solution, pour plus de réactivité du robot et des virages plus serrés, une inversion des moteurs, un moteur vers l’avant, l’autre vers l’arrière.

Le programme principal avec :

Une phase d’apprentissage de la couleur noir pour le suivi de ligne dans fonction « init ». Au démarrage du robot poser celui-ci sur la ligne noire, les deux photo réflecteurs, puis appuyez sur la capteur de pression.

Une phase de suivi de la ligne noire qui peut être arrêté par l’appui sur la capteur de pression.

Les deux photoréflecteurs dans le noir le robot avance tout droit,
Le photoreflecteur droit voit le noir alors on tourne à droite,
Le photoreflecteur gauche voit le noir alors on tourne à gauche,
Les deux photoreflecteurs dans le blanc on avance tout droit.

Les variables utilisées

Les broches utilisées