Informatique
Lycée Jules Ferry Cannes
La roue codeuse étudiée
permet de déterminer la position angulaire.
incrémental.
Les deux pistes A et B permettent de savoir dans quel sens tourne la roue.
Une marque
permet de définir la position 0, lors de l'initialisation du système.
Lorsque la roue tourne dans le sens positif, on incrémente de 1 la valeur en sortie de capt
Pour une rotation dans le sens négatif, le compteur est décrémenté de
La commande du système, conduit à ce que le compteur ne soit jamais négatif.
Conversion
manuelle d'un nombre binaire
La position indiquée en sortie de capteur est
1)
Donner la valeur correspondante en base 10. Ecrire ce nombre en python.
 

2)
Donner la valeur correspondante en base 16. Ecrire ce nombre en python.


3)
Sachant que la roue codeuse permet de coder 256 positions différentes, de
tour(s) est décalée la roue depuis sa position initiale à 0.

 .  
Conversion manuelle d'un nombre décimal en nombre binaire
Le codeur est un codeur incrémental. Cette position est incrémentée ou décrémentée dans une
variable teta.
4)
Si le registre pour stocker
teta
on coder ?
8 bits sont utilisés pour le codage d'un tour, il reste 8 bits pour le codage des
tours soit 256 tours (0 compris).
5)
Si la roue fait 300 tr, que se
Il y aura une overflow. Le système ne reviendra plus à sa position initiale et
son positionnement sera erroné.
On souhaite que la roue fasse 10 tours à partir de la position initiale 0.
6)
Quel est le code binaire qu'il faut atteindre ? Traduire ce nombre en hexadécimal.
instruction en python permet d'obtenir cette conversion.
TD S1.7
(Correction)
Page 1 sur 2
permet de déterminer la position angulaire.
Il s'agit d'un codeur
Les deux pistes A et B permettent de savoir dans quel sens tourne la roue.
permet de définir la position 0, lors de l'initialisation du système.
Figure 1 : Disque de roue co
deuse à 256 positions par tour
Lorsque la roue tourne dans le sens positif, on incrémente de 1 la valeur en sortie de capt
Pour une rotation dans le sens négatif, le compteur est décrémenté de
-1.
La commande du système, conduit à ce que le compteur ne soit jamais négatif.
manuelle d'un nombre binaire
La position indiquée en sortie de capteur est
0b1000 0000.
Donner la valeur correspondante en base 10. Ecrire ce nombre en python.
Donner la valeur correspondante en base 16. Ecrire ce nombre en python.
Sachant que la roue codeuse permet de coder 256 positions différentes, de
tour(s) est décalée la roue depuis sa position initiale à 0.
Conversion manuelle d'un nombre décimal en nombre binaire
Le codeur est un codeur incrémental. Cette position est incrémentée ou décrémentée dans une
teta
est un registre sur 16bits, combien de tour de roue pourra
8 bits sont utilisés pour le codage d'un tour, il reste 8 bits pour le codage des
tours soit 256 tours (0 compris).
passerait-il ? Quelle
conséquence pour le système.
Il y aura une overflow. Le système ne reviendra plus à sa position initiale et
son positionnement sera erroné.
On souhaite que la roue fasse 10 tours à partir de la position initiale 0.
Quel est le code binaire qu'il faut atteindre ? Traduire ce nombre en hexadécimal.
instruction en python permet d'obtenir cette conversion.
Codage des entiers
TSI1
Il s'agit d'un codeur
Les deux pistes A et B permettent de savoir dans quel sens tourne la roue.
permet de définir la position 0, lors de l'initialisation du système.
deuse à 256 positions par tour
Lorsque la roue tourne dans le sens positif, on incrémente de 1 la valeur en sortie de capt
eur.
La commande du système, conduit à ce que le compteur ne soit jamais négatif.
Donner la valeur correspondante en base 10. Ecrire ce nombre en python.
Donner la valeur correspondante en base 16. Ecrire ce nombre en python.
Sachant que la roue codeuse permet de coder 256 positions différentes, de
combien de
Le codeur est un codeur incrémental. Cette position est incrémentée ou décrémentée dans une
est un registre sur 16bits, combien de tour de roue pourra
-t-
8 bits sont utilisés pour le codage d'un tour, il reste 8 bits pour le codage des
conséquence pour le système.
Il y aura une overflow. Le système ne reviendra plus à sa position initiale et
Quel est le code binaire qu'il faut atteindre ? Traduire ce nombre en hexadécimal.
Quelle
Informatique TD S1.7
(Correction)
Codage des entiers
Lycée Jules Ferry Cannes Page 2 sur 2 TSI1
0b 0000 1100 0000 0000 0x0C00 obtenue par hex(0b 0000 1100 0000 0000)
On souhaite que la roue fasse 10 tours à partir de la position 10.
7)
Quel est le code binaire qu'il faut atteindre ? Traduire ce nombre en hexadécimal.
0b 0000 1100 0000 1100 0x0C0C
Algorithme de conversion en base 10.
8)
Définir une fonction dec permettant de convertir le code binaire en code décimal.
Le code binaire est fourni sous forme d'une chaine de caractère (exemple '0b1100')
def dec(Nb):
N10=0
Nb=Nb[2:]
nbCar=len(Nb)
for i in range (nbCar):
num=int(Nb[nbCar-1-i])
N10=N10+num*2**i
return N10
9)
Comment plus simplement obtenir cette conversion avec python ?
>>> eval (teta)
128
Indication du nombre de tour
10)
Compléter l'algorithme permettant définir une fonction tour qui permet de :
- convertir le code binaire teta (sous forme d'une chaine de caractères, exemple '0b1110')
en nombre de tours
- affiche et renvoie le nombre de tours avec une précision de 1/100.
Traduire cet algorithme en langage python.
Fonction tour(teta):
entrée : teta = nombre binaire sous forme d'une chaine de caractères
sortie : tours = nombre de tours avec une précision de 1/100
tours dec(teta)/256
tourstours à 0,01 prêt
Afficher ('Le nombre de tours est', tours)
Renvoyer tours
Fin Fonction tour
def tours(teta):
# entrée : teta = nombre binaire sous forme d'une chaine de caractères
# sortie : tours = nombre de tours avec une précision de 1/100
tours = dec(teta)/256
tours = int(tours*100)/100
print('Le nombre de tour est',tours)
return tours
tours(teta)
Exemple d'utilisation :
>>> teta = bin(128)
>>> teta
'0b10000000'
>>> dec( teta )
128
1 / 2 100%