CARIA.2.2
Update for the final presentation huge change with previous version
This commit is contained in:
56
WebControl/apps/lidar_speed_move.py
Normal file
56
WebControl/apps/lidar_speed_move.py
Normal file
@@ -0,0 +1,56 @@
|
||||
import time
|
||||
import sys
|
||||
sys.path.append('/home/christian/WebControl/modules/')
|
||||
from AlphaBot import AlphaBot
|
||||
Ab = AlphaBot()
|
||||
|
||||
# Variable de statut pour indiquer le bon fonctionnement
|
||||
status = "initialization"
|
||||
|
||||
# Durée limite d'exécution en secondes
|
||||
time_limit = 10
|
||||
start_time = time.time()
|
||||
try:
|
||||
# Envoi de la commande pour initialiser le capteur
|
||||
while True:
|
||||
# Vérification si le temps limite est dépassé
|
||||
if time.time() - start_time > time_limit:
|
||||
break
|
||||
|
||||
if Ab.LIDAR_MODULE.in_waiting >= 9:
|
||||
if b'Y' == Ab.LIDAR_MODULE.read() and b'Y' == Ab.LIDAR_MODULE.read():
|
||||
Dist_L = Ab.LIDAR_MODULE.read()
|
||||
Dist_H = Ab.LIDAR_MODULE.read()
|
||||
Dist_Total = (Dist_H[0] * 256) + Dist_L[0]
|
||||
for i in range(0, 5):
|
||||
Ab.LIDAR_MODULE.read() # Lecture et ignore des octets supplémentaires
|
||||
print("Distance à l'avant du véhicule:", Dist_Total, "cm")
|
||||
status = "measurement successful"
|
||||
|
||||
# Ajuster la vitesse en fonction de la distance LIDAR
|
||||
vitesse_ajustee = Ab.ajuster_vitesse_selon_distance(Dist_Total)
|
||||
|
||||
if vitesse_ajustee > 0:
|
||||
Ab.forward(0.1, vitesse_ajustee) # Avancer avec la vitesse ajustée
|
||||
else:
|
||||
Ab.emergencystop() # S'arrêter si trop proche d'un obstacle
|
||||
Ab.LIDAR_MODULE.reset_input_buffer()
|
||||
except KeyboardInterrupt:
|
||||
print("Interruption par l'utilisateur.")
|
||||
status = "interrupted"
|
||||
except Exception as e:
|
||||
print(f"Erreur lors de l'exécution: {e}")
|
||||
status = "error"
|
||||
finally:
|
||||
Ab.LIDAR_MODULE.close() # Fermeture propre du port série
|
||||
Ab.cleanup()
|
||||
|
||||
# Vérification finale et affichage du statut
|
||||
if status in ["measurement successful"]:
|
||||
print("Le composant fonctionne correctement.")
|
||||
fonctionnement_ok = True
|
||||
else:
|
||||
print(f"Le composant a rencontré un problème: {status}.")
|
||||
fonctionnement_ok = False
|
||||
|
||||
Ab.enregistrer_resultats(sys.argv[0], fonctionnement_ok, status)
|
||||
Reference in New Issue
Block a user