20
Projet pédagogique robotique

Présentation robotique

Embed Size (px)

DESCRIPTION

les méandres du robot Boebot

Citation preview

Page 1: Présentation robotique

Projet pédagogique robotique

Page 2: Présentation robotique

• Conception d'un robot motorisé avec pinces, capteurs pour éviter les obstacles (capteur ultrason motorisé), avec commandes en manuel grâce à une télécommande

• Méthode : conception progressive pour parvenir au résultat

• 3 éléments essentiels : les aspects mécaniques (en complément du Prototype initial, d'autres pièces ont été intégrées) ; la nature des capteurs (par contact, infrarouge, ultrason) ; la programmation informatique

Objectifs

Page 3: Présentation robotique

Le microcontroleur

Le microcontroleur constitue le cœur du système. Les informations provenant des capteurs y sont traités. Il fournit en retour les ordres pour actionner le robot ou allumer des états de commande

Sortie câble USB ordinateur

microcontroleur

Plaquette recevant les câbles et composants (capteurs, résistances ..)

Câble reliant la plaquette à l'ordinateur

Câbles permettant de relier les points de branchement de la plaquette aux ports entrée/sortie du microcontroleur (barrette noire au centre)

Page 4: Présentation robotique

L'interface sur le PC

commandes

Programmes déjà produits et à envoyer au robot via le câble USB

Programme en cours d'écriture

Page 5: Présentation robotique

Premiers pas : test LED (diodes)

Plaquette sur le robot

' Robotics with the Boe-Bot – LED1.bs2' {$STAMP BS2}' {$PBASIC 2.5}DEBUG "LED 1 et 2 éteintes et allumées"DO HIGH 12 PAUSE 500 LOW 12 PAUSE 500 HIGH 13 PAUSE 500 LOW 13 PAUSE 500LOOP

Séquence d’allumage des LED

Code informatique résultant

Allumer LED sur port 12 durant 500ms

Allumer LED sur port 13 durant 500ms

éteindre LED sur port 12 durant 500ms

éteindre LED sur port 13 durant 500ms

Page 6: Présentation robotique

Déplacement du robot (réglage)

DO PULSOUT 12, 750 PAUSE 20LOOP

Le robot se déplace grâce à 2 servomoteurs actionnés par des signaux électriques modulés en largeur d’impulsion. Au préalable, ces servomoteurs doivent être calibrés.

Câblage sur la plaquette

Réglage consistant à stopper le mouvement

Envoi du signal de référence pour calibrer le servomoteur

Code informatique correspondant

Boucle pour répéter la trame du signal

Impulsion de 1,5 ms sur port 12(1 impulsion = 2 µ sec)

Palier bas de 20 ms

Page 7: Présentation robotique

Déplacement du robot (1)' Robotics with the Boe-Bot – ServoP13Clockwise.bs2' Run the servo connected to P13 at full speed clockwise.' {$STAMP BS2}' {$PBASIC 2.5}DEBUG "Moteur sens horaire!"DO

PULSOUT 13, 650PAUSE 20

LOOP

Le moteur tourne dans le sens horaire

Le moteur tourne dans le sens horaire inverse

Traduction informatique

' Robotics with the Boe-Bot – ServoP13Clockwise.bs2' Run the servo connected to P13 at full speed clockwise.' {$STAMP BS2}' {$PBASIC 2.5}DEBUG "Moteur sens horaire!"DO

PULSOUT 13, 850PAUSE 20

LOOP

Traduction informatique

On peut donc combiner ces 2 moteurs et les associer chacun à une roue pour faire avancer/reculer le robot, bloquer une des roues, actionner l'autre pour tourner à gauche ou à droite

Impulsion de 1,3 ms sur port 13(1 impulsion = 2 µ sec)

Impulsion de 1,7 ms sur port 13(1 impulsion = 2 µ sec)

Page 8: Présentation robotique

Déplacement du robot (2)

Il est possible de moduler la vitesse de déplacement en faisant varier la largeur d'impulsion du signal de 1,3 ms (vitesse maxi sens horaire) à 1,5 ms (vitesse nulle) et de 1,7 ms (sens horaire inverse) à 1,5 ms. Si la temporisation T entre impulsions dépasse 20 ms, le déplacement est saccadé. Donc T=20 ms est le paramétrage optimum

On peut déterminer la distance parcourue par le robot. Ici, à la vitesse maxi (23cm/s), la distance est déterminée dans la boucle FOR NEXT (valeur=41 correspondant à 2,22s). Le robot parcourra alors 51 cm.

On peut donc prédéterminer un processus automatique : le robot avance d'une distance x, pivote à gauche, recule d'une distance y, pivote à droite et le cycle recommence.

FOR counter = 1 TO 41 PULSOUT 13, 850 PULSOUT 12, 650 PAUSE 20NEXT

Impulsion roue gauche

Impulsion roue droite

Page 9: Présentation robotique

Déplacement du robot (3)

En résumé, on peut donc prédéterminer un processus automatique :

le robot avance d'une distance x / pivote à gauche/ recule d'une distance y / pivote à droite et le cycle recommence si on inscrit la séquence dans une boucle.

On peut aussi décrire une séquence plus compliquée, dans la mémoire du microcontroleur !

Mais quid de la situation si un obstacle survient !

Page 10: Présentation robotique

Capteurs mécaniques « moustaches » (1)

Les 2 moustaches agissent comme de simples interrupteurs mécaniques : un obstacle touché par une moustache ferme le contact et provoque le changement d’état de l’entrée sur laquelle elle est reliée. On peut alors programmer le robot en fonction de l'état de ces contacts : tourner à droite si la moustache gauche est sollicitée. L'inverse pour la moustache droite. Si les 2 moustaches sont sollicitée, le robot recule et assure 2 rotation gauche de 90° pour faire demi tour.

Page 11: Présentation robotique

Capteurs mécaniques « moustaches » (2)' {$STAMP BS2}' {$PBASIC 2.5}DEBUG "test des moustaches"pulse VAR Byte

FREQOUT 4,2000,3000DO IF (IN5=0) AND (IN7=0) THEN 'arrière et demi tour GOSUB arriere GOSUB gauche GOSUB gauche ELSEIF (IN5=0) THEN 'arrière et droite GOSUB arriere GOSUB droite ELSEIF (IN7=0) THEN 'arriere et gauche GOSUB arriere GOSUB gauche ELSE 'continue GOSUB avant ENDIFLOOP

Programme principal

avant: PULSOUT 13,850 PULSOUT 12,650 PAUSE 20RETURN

gauche:FOR pulse=1 TO 15 PULSOUT 13,650 PULSOUT 12,650 PAUSE 20NEXTRETURN

droite:FOR pulse=1 TO 15 PULSOUT 13,850 PULSOUT 12,850 PAUSE 20NEXTRETURN

arriere:FOR pulse=1 TO 40 PULSOUT 13,650 PULSOUT 12,850 PAUSE 20NEXTRETURN

Sous-programmes

Buzzer (départ)

Moustaches gauche et droite sollicitées

Moustache gauche sollicitée

Moustache droite sollicitée

Aucune sollicitation (poursuite avance)

Page 12: Présentation robotique

Détection d'obstacle par infrarouge(1)

Principe : une source émet de la lumière infrarouge vers un objet et un récepteur analyse les ondes réfléchies pour en déduire la distance à L'objet

Page 13: Présentation robotique

Détection d'obstacle par infrarouge(2)

' {$STAMP BS2} ' {$PBASIC 2.5} irDetectionGauche VAR Bit irDetectionDroite VAR Bit DO FREQOUT 8, 1, 38500irDetectionGauche = IN9 FREQOUT 2, 1, 38500 irDetectionDroite = IN0 DEBUG HOME, "irDectectionGauche = ", BIN1 irDetectionGauche

DEBUG CR , "irDectectionDroite = ", BIN1 irDetectionDroite

PAUSE 100

récepteurs

émetteurs

Émission infrarouge 38,5 Khz port 8 (gauche)

Réception détecteur gauche port 9Émission infrarouge 38,5 Khz port 2 (droit)

Réception détecteur droit port 0

Lecture du résultat (0 ou 1 suivant l'état de réception du signal sur chaque récepteur)

Page 14: Présentation robotique

Détection d'obstacle par infrarouge(3)

On peut construire le même type de programme qu'avec les capteurs « moustaches » en fonction de l'état des récepteurs infrarouges

DOFREQOUT 8, 1, 38500 ' Store IR detection values inirDetectLeft = IN9 ' recueil signal à gaucheFREQOUT 2, 1, 38500irDetectRight = IN0 ' recueil signal à droite

'les 2 détecteurs sont sollicitésIF (irDetectLeft = 0) AND (irDetectRight = 0) THENGOSUB Back_Up ' recul du robotGOSUB Turn_Left ' demi-tourGOSUB Turn_Left

ELSEIF (irDetectLeft = 0) THEN ' détecteur gauche sollicitéGOSUB Back_Up ' reculGOSUB Turn_Right 'pivote à droite

ELSEIF (irDetectRight = 0) THEN ' détecteur droit sollicitéGOSUB Back_Up ' reculGOSUB Turn_Left 'pivote à gauche

ELSE ' ne détecte rien, le robot avanceGOSUB Forward_Pulse ' avanceENDIF ' retour au début

LOOP

Page 15: Présentation robotique

Détection ultrason

Principe physique

Câblage sur port 15

CmConstant CON 2260cmDistance VAR Wordtime VAR WordDO PULSOUT 15, 5 PULSIN 15, 1, time cmDistance = cmConstant ** time DEBUG HOME, DEC3 cmDistance, " cm" PAUSE 100LOOP

Émission du signal

Calcul de la distance

Recueil écho

Affichage du résultat

Code informatique correspondant

Page 16: Présentation robotique

Télécommande(1)

Jusque maintenant le robot était livré à lui même sans contrôle direct de la part de l'utilisateur. Doté de capteurs et d’une séquence prédéterminée, il pouvait évoluer par lui-même de manière autonome.La télécommande est un équipement qui permet de prendre le contrôle en direct du robot.

Page 17: Présentation robotique

Télécommande(2)

Le signal envoyé par la télécommande au récepteur infrarouge du robot possède une structure précise qui peut être analysée par le microcontroleur. On peut ainsi savoir à tout moment quelle touche est appuyée

Page 18: Présentation robotique

Et encore bien d'autres capteurs !

Le robot peut aussi être équipé de bien d’autres capteurs : voici quelques exemples

Détecteur de CO (monoxyde carbone), CH4 (méthane), C2H5OH (alcool), LPG (propane)

Gyroscope et température

altimètre

GPS

Pression atmosphérique Détecteur d’humidité

Page 19: Présentation robotique

Pinces

Le robot peut être équipé de pinces à l’avant pour prendre de petits objets.Ces pinces sont actionnées par un servomoteur situé à l’arrière du robot. Servomoteur et pinces sont reliés par une tringle en laiton passant sous la carte électronique.L’usage de la télécommande est fortement recommandé pour utiliser ce dispositif à distance.

Servomoteur arrière Tringle de liaison

Page 20: Présentation robotique

Projet final : intégration de l’ensemble des éléments

Et maintenant place à la démonstration !

Récepteur infrarouge et télécommande

Capteur ultrason monté sur servomoteur pour un balayage grand champ

pinces

Personnalisation avec pièces de mécanno + ajout seconde plaque d’essais