Upload
abigail-jacobson
View
64
Download
3
Embed Size (px)
DESCRIPTION
RoboMind – une robot intelligent. MiniCours-’12 http://www.robomind.net. Machines et Instructions Écriture de programmes. Instructions. Si vous voulez faire une machine, un ordinateur ou un robot fonctionne, vous lui donner des instructions - PowerPoint PPT Presentation
Citation preview
RoboMind – une robot intelligent
MiniCours-’12
http://www.robomind.net
Machines et InstructionsÉcriture de programmes
Instructions
Si vous voulez faire une machine, un ordinateur ou un robot fonctionne, vous lui donner des instructions
Les instructions diffèrent de machines à machine et ils peuvent être très différentes. Par exemple:Recorder des vidéos: enregistrement, lecture,
pauseNavigateur web : aller sur le site, imprimer la
page
Question: Qu’est-ce qui pourrait être des instructions pour un pilote automatique?
Instructions de base
Chaque machine à une manche des instructions : des actions qui sont exécutées directement.
Notre robot à des instructions de base pour:
Déplacer Regarder Peindre Saisir
Instructions pour RoboMind
Les instructions peuvent être données: en appuyant sur un bouton
faire glisser la souris
rédaction des commandes
Instructions avec la souris
Ouvrez la télécommande en
RoboMind(Exécuter > Télécommande)
Cliquez sur les butons pour
faire le robot réagir
Exercice: essayer de faire le
robot conduire une petite carré
Rédaction des commandes Vous pouvez aussi écrire des instructionsLes mouvements peuvent être faits avec
les commandes:forward(1), backward(1), left(), right()
Exemple
Écrivez les instructions suivantes:
Note: Sauvegarder comme Carre1
Les Instructions de base
Déplacer forward (n) déplacer n pas en avant backward(n) déplacer n pas en arrière left () tourner à gauche sur 90 degrés right () tournez à droite sur 90 degrés north (n) tournez vers le nord et déplacer n
pas en avant south(n) … east(n) … west(n) …
Les Instructions de base (cont.)
Peindre paintWhite() placez le pinceau avec la
peinture blanche sur le sol paintBlack() placez le pinceau avec la peinture
noire sur le sol stopPainting() arrêt la peinture, le pinceau
cacher
Saisir pickUp() obtenez le phare à l'avant du robot putDown() mettez un phare à l'avant du robot
Les Instructions de base (cont.)
flipCoain () lancer une pièce de monnaie pour faire un choix aléatoire. flipCoin () sera soit vrai ou faux avec une chance de 50% -50%
Regarder
leftIsObstacle() leftIsClear() leftIsBeacon()leftIsWhite() leftIsBlack()
frontIsObstacle() frontIsClear() frontIsBeacon()frontIsWhite()frontIsBlack()
rightIsObstacle() rightIsClear() rightIsBeacon()rightIsWhite()rightIsBlack()
Exercice
Écrire votre nome!!! (openArea.map)
Langage de programmation pour RoboMind
Comment savez-vous quelles sont les instructions que vous pouvez utiliser? Comme: forward(1), left(), repeat, ...
Vous ne savez pas à l'avance. Cela dépend de les règles du langage de programmation.
Vous devrez lire la documentation afin de trouver cela. Il existe de nombreuses langues de programmation.
Language de programmation pour RoboMind (cont.)
Commentaries
# texte libre qui ne sera pas évalué
Boucles - Portion de code accompagnée de sa structure de contrôle destinée à être exécutée plusieurs fois (la structure de contrôle relançant l'exécution du code depuis le début tant qu'une condition n'est pas remplie)
Bouclesreapeat (n) {...instructions...}
répète les instructions entre accolades exactement n fois
Example:
repeat(4) {
forward(2)
right()
}
repeat () {...instructions...}
ne cesse de répéter les instructions entre accolades
Boucles (cont.)
repeatWhile (condition) {...instructions...}Répète les instructions entre crochets tant que la condition est vraie. Cette condition doit être une perception ou instructions de regarder (par exemple frontIsClear ())
Example: avancer pendant que la route est libre
repeatWhile ( frontIsClear() ){
forward(1)}
break vous permet de sauter hors de la boucle (par exemple une répétition), afin qu'il arrête l'exécution des instructions entre crochets. Le robot va reprendre l'exécution des instructions après la boucle.
Structures IF
if (condition) {...instructions...}
Exécutera les instructions entre crochets si la condition est vrai. Sinon le robot exécutera les instructions écrites après la boucle. La condition doit être une perception (par exemple: frontIsClear ()
Structures IF (cont.)
Example: ? peinture blanche à la gauche -> peinture noire
Solution ?
Solution…
If (leftIsWhite())
{
left()
forward(1)
paintBlack()
stopPainting()
backward(1)
right()
}
Structures IF (cont.)
If (condition) { ...instructions...} else {...instructions...}
Example: Si il y a de la peinture blanche à la gauche noire si non avancer quelques pas avant
Solution ?
Solution…
if (leftIsWhite()) {
left()
forward(1)
paintBlack()
stopPainting()
backward(1)
right()
} else {
forward(3)
}
Expressions Logiques
Les conditions qu’ on utilise pour les structures IF et les structures bucle sont des expressions logiques. Cette expression se traduira par la valeur vrai ou faux, qui est ensuite utilisée pour décider de l'étape de la partie du code à exécuter.
Operator: Not
Notation: ~
Nombre de arguments: 1
Explanation: La négation de la valeur de l'argument
Table de vérité: pas vrai = faux pas faux = vrais
Exemple: not frontIsClear ()
Operator: AND
Notation: &
Nombre de arguments: 2
Explanation: vrais si les deux arguments sont vrais
Table de vérité:
vrai and vrai = vrai vrai and faux = faux faux and vrai = faux
faux and faux = faux
Exemple:
frontIsClear() and rightIsWhite()
Operator: ORNotation: |Nombre de arguments: 2Explanation: vrai si au moins l'un des arguments
est vrai Table de vérité: vrai and vrai = vrai
vrai and faux = vrai faux and vrais = vrai
faux and faux = faux Exemple: frontIsClear() or rightIsWhite()
Exercice1. Programmer une "dance" pour le robot en utilizent des
boucles. Truc: Utilisez leftIsClear() et
rightIsClear () pour déplacer la tête de la robot.
2. Écrire votre nome!!! (openArea.map)
3. Trouvez le point blanc!!!Utiliser findSpot1.map et mettre le robot proche du mur.
4. Maze (maze1.map) Truc: En suivant toujours le mur sur le côté droit (ou
suivant toujours le mur sur le côté gauche), vous trouverez la sortie. La sortie est marque par une balise (frontIsBeacon())