TP 1 Informatique embarquée-Objets connectés.

I/ Informatique embarquée et actionneurs.

Nous allons faire bouger le Robot Bit:Bot en embarquant à bord de celui-ci un programme agissant sur les moteurs (actionneurs) de chacune de ses deux roues.
Commençons par décrire notre super voiture de course: le Robot Bit:Bot:
Celui-ci est composé d'une carte Micro:Bit (le cerveau), d'un capteur à ultrasons (les yeux), d'une alimentation (piles), de deux moteurs cachés derrière les roues, d'un intérupteur...

Le principe de base consiste à construire un programme python sur ordinateur qui donnera des ordres aux moteurs (actionneurs). Nous allons ensuite le transférer sur la carte Micro:bit.
Notre programme informatique se trouvera donc embarqué sur notre Robot Bit:Bot. En mettant l'interupteur sur "on", notre Robot Bit:Bot devrait se déplacer.

Nous allons utiliser un éditeur python spécial pour cela: Micro:bit - Python Editor. Vous le trouverez en cliquant sur le lien suivant:https://python.microbit.org/v/1.1

Vous allez commencer par copier coller le programme ci-dessous dans l'éditeur python.microbit.

from microbit import *

gaucheA = pin0
gaucheB = pin8
droiteA = pin1
droiteB = pin12

#cette fonction permet de faire avancer le Robot en donnant 
#une vitesse en pourcentage de sa vitesse maximale
def en_avant (speedpct):
    speed = speedpct * 10.23
    gaucheA.write_analog(speed)
    gaucheB.write_digital(0)
    droiteA.write_analog(speed)
    droiteB.write_digital(0)

#cette fonction permet de faire reculer le Robot en donnant 
#une vitesse en pourcentage de sa vitesse maximale
def en_arriere (speedpct):
    speed = speedpct * 10.23
    gaucheA.write_analog(1023-speed)
    gaucheB.write_digital(1)
    droiteA.write_analog(1023-speed)
    droiteB.write_digital(1)

#cette fonction permet de faire tourner à gauche le Robot en donnant 
#une vitesse en pourcentage de sa vitesse maximale
def a_gauche (speedpct):
    speed = speedpct * 10.23
    gaucheA.write_analog(1023-speed)
    gaucheB.write_digital(1)
    droiteA.write_analog(speed)
    droiteB.write_digital(0)

#cette fonction permet de faire tourner à droite le Robot en donnant 
#une vitesse en pourcentage de sa vitesse maximale
def a_droite (speedpct):
    speed = speedpct * 10.23
    gaucheA.write_analog(speed)
    gaucheB.write_digital(0)
    droiteA.write_analog(1023-speed)
    droiteB.write_digital(1)

#cette fonction permet de stoper le Robot 
def stop():
    gaucheA.write_analog(0)
    gaucheB.write_digital(0)
    droiteA.write_analog(0)
    droiteB.write_digital(0)
    
    
display.show("A")
en_avant(30)
sleep(3000)
display.show("S")
stop()
sleep(4000)
display.show("A")
en_avant(30)
sleep(3000)
display.show("S") stop()

Le programme est relativement long. Il comporte plusieurs sous programmes, un pour avancer (en-avant()), un pour reculer (en_arriere()), un pour tourner à gauche (a_gauche()), un pour tourner à droite (a_droite()) et un dernier pour stoper (stop()). Pour les quatre premier, le paramètre permet de choisir la vitesse en pourcentage de sa vitesse maximale.

Les onze dernières lignes étant le programme proprement dit:

La première instruction affiche sur la carte Micro:Bit la lettre A.
La seconde demande d'avancer de 30% de la vitesse maximale.
La troisième détermine le temps d'attente, à savoir 3 secondes, avant de passer à l'instruction suivante.

La quatrième instruction affiche sur la carte Micro:Bit la lettre S.
La cinquième arrête le Robot.
La sixième détermine le temps d'attente, à savoir 4 secondes, avant de passer à l'instruction suivante.

La septième instruction affiche sur la carte Micro:Bit la lettre A.
La huitième demande d'avancer de 30% de la vitesse maximale.
La neuvième détermine le temps de d'attente, à savoir 3 secondes, avant de passer à l'instruction suivante.

La dixième instruction affiche sur la carte Micro:Bit la lettre S.
La onzième arrête le Robot.

Maintenant, nous allons récupérer le fichier en cliquant sur download,voire ci-dessous.

enregistrer fichier

Si l'ordinateur vous demande si vous voulez enregistrer le fichier. Vous cliquez sur OK.(ce n'est pas toujours le cas)

L'ordinateur vient de créer un fichier micobit.hex qu'il a mis dans la partie téléchargement de l'ordinateur. Il faut désormais transférer celui-ci sur notre carte Microbit.

Pour cela, vous allez retirez délicatement la carte du Robot. Puis vous allez à l'aide du cable fourni, connecter votre carte Microbit à l'ordinateur.

Vous allez entré dans la carte Microbit, puis effacer les deux programmes qui s'y trouve.

Vous allez ensuite, aller dans vos téléchargement. Puis faire un glisser déposé, ou un copier coller de votre programme microbit.hex dans la fenêtre de la carte Microbit. Vous faîtes ensuite un éjecter de la carte Microbit.
Il vous reste à repositionner délicatement la carte Microbit sur le Robot Bit:Bot.

Vous déposez le Robot Bit:Bot au sol. Vous prévoyez un distance libre devant celui-ci d'environ deux mètres. Puis vous basculer l'intérupteur sur "on".

A faire vous-même.

A vous de modifier le programme précédent pour réaliser le déplacement suivant:
Avant de le tester, vérifiez que le Robot Bit:Bot à la place.
Manipuler le matériel avec précausion.
Attention, lorsque vous utiliserez les fonctions a_gauche et a_droite, la vitesse et le temps d'attente détermineront l'angle.
Pour celui qui aura réalisé le programme se rapprochant le plus de l'objectif, une poche de bonbons à gagner.

projet