mirror of
https://forge.apps.education.fr/blender-edutech/blender-edutech-tutoriels.git
synced 2024-01-27 09:42:33 +01:00
Tutoriel 6 : déplacement manuel
This commit is contained in:
parent
e00e7c037b
commit
26e9e54253
Binary file not shown.
@ -45,7 +45,6 @@ if serial_comm is None:
|
|||||||
def capteur(cont):
|
def capteur(cont):
|
||||||
obj = cont.owner # obj est l'objet associé au contrôleur donc 'Plateau'
|
obj = cont.owner # obj est l'objet associé au contrôleur donc 'Plateau'
|
||||||
obj_bille = scene.objects['Bille']
|
obj_bille = scene.objects['Bille']
|
||||||
echelle = 0.2 # Facteur d'échelle entre la capteur et la 3D
|
|
||||||
ecart=0.001 # Écart maxi sur la rotation
|
ecart=0.001 # Écart maxi sur la rotation
|
||||||
|
|
||||||
# Touche ESC -> Quitter
|
# Touche ESC -> Quitter
|
||||||
@ -63,13 +62,16 @@ def capteur(cont):
|
|||||||
# depart()
|
# depart()
|
||||||
|
|
||||||
# Roll et Pitch : copier la position du plateau réel
|
# Roll et Pitch : copier la position du plateau réel
|
||||||
|
# FIXME : sensible aux vibrations -> lissage
|
||||||
if serial_msg_in.find(",")>0:
|
if serial_msg_in.find(",")>0:
|
||||||
txt = serial_msg_in.split(',',2)
|
txt = serial_msg_in.split(',',2)
|
||||||
x_txt = txt[0][2:]
|
x_txt = txt[0][2:]
|
||||||
y_txt = txt[1][:-5]
|
y_txt = txt[1][:-5]
|
||||||
if x_txt != " NAN" and y_txt != " NAN": # NAN : Not A Number
|
if x_txt != " NAN" and y_txt != " NAN": # NAN : Not A Number
|
||||||
x=-(float(x_txt)/57.3) * echelle # 57,3 = 360 / (2 * pi)
|
x=-(float(x_txt)/57.3) # 57,3 = 360 / (2 * pi)
|
||||||
y=-(float(y_txt)/57.3) * echelle # 57,3 = 360 / (2 * pi)
|
y=(float(y_txt)/57.3) # 57,3 = 360 / (2 * pi)
|
||||||
|
obj['angle_x']=x*57.3
|
||||||
|
obj['angle_y']=y*57.3
|
||||||
while abs(x-obj.worldOrientation.to_euler().x) > ecart :
|
while abs(x-obj.worldOrientation.to_euler().x) > ecart :
|
||||||
obj.applyRotation((x-obj.worldOrientation.to_euler().x, 0, -obj.worldOrientation.to_euler().z), False)
|
obj.applyRotation((x-obj.worldOrientation.to_euler().x, 0, -obj.worldOrientation.to_euler().z), False)
|
||||||
while abs(y-obj.worldOrientation.to_euler().y) > ecart :
|
while abs(y-obj.worldOrientation.to_euler().y) > ecart :
|
||||||
@ -111,13 +113,14 @@ def cycle(cont):
|
|||||||
# serial_msg_out = str(obj['Lx'])+str(obj['Ly'])+"\n"
|
# serial_msg_out = str(obj['Lx'])+str(obj['Ly'])+"\n"
|
||||||
# serial_comm.write(serial_msg_out.encode())
|
# serial_comm.write(serial_msg_out.encode())
|
||||||
|
|
||||||
# # Si l'altitude de bille < -10 et pas de victoire -> chute
|
# Si l'altitude de bille < -10 et pas de victoire -> chute
|
||||||
# if obj['z'] < -10 and obj['victoire'] == False :
|
if obj['z'] < -10 and obj['victoire'] == False :
|
||||||
|
|
||||||
# # Afficher image de chute sur la matrice de leds
|
# # Afficher image de chute sur la matrice de leds
|
||||||
# serial_msg_out = "91\n"
|
# serial_msg_out = "91\n"
|
||||||
# serial_comm.write(serial_msg_out.encode())
|
# serial_comm.write(serial_msg_out.encode())
|
||||||
# obj['chute'] = True
|
obj['chute'] = True
|
||||||
|
depart()
|
||||||
|
|
||||||
# Départ de la bille
|
# Départ de la bille
|
||||||
def depart():
|
def depart():
|
||||||
|
Loading…
Reference in New Issue
Block a user