from montchg_lib import * # Bibliothèque utilisateur du monte-charge ############################################################################### # montchg_cmd-grove.py # @title: Script de test pour le jumelage du monte-charge à des composants Grove ############################################################################### ############################################################################### # Instructions élémentaires pour le monte-charge # # Actions (ordre = True ou False) : # - Monter le monte-charge (moteur sens trigo) : mot_m(True | False) # - Descendre le monte-charge (moteur sens horaire) : mot_d(True | False) # # Capteurs (valeur retournée = True ou False) : # - Capteur présence cabine niveau 0 : pc_0() # - Capteur présence cabine niveau 1 : pc_1() # # Consignes du pupitre (valeur retournée = True ou False) : # - Bouton poussoir appel niveau 0 : ba_0() # - Bouton poussoir appel niveau 1 : ba_1() # # Retours d'information du pupitre (allumer = True ou False) : # - Voyant témoin d'étage niveau 0 : voy_0(True | False) # - Voyant témoin d'étage niveau 1 : voy_1(True | False) # # Gestion du temps : # - Temporisation en seconde : tempo(duree) # ############################################################################### # Brochage du monte-charge (Grove) brochage={ 'pc_0' : ['d',7,'i'], 'pc_1' : ['d',8,'i'], 'ba_0' : ['a',0,'i'], 'ba_1' : ['a',1,'i'], 'voy_0' : ['d',3,'o'], 'voy_1' : ['d',4,'o'], 'mot_m' : ['d',5,'o'], 'mot_d' : ['d',6,'o']} ############################################################################### # Fonctions ############################################################################### ############################################################################### # Commandes ############################################################################### def commandes(): # daq(['mot_angle', 'mot_vitesse', 'cabine_z', 'cabine_vitesse']) # plot(['mot_angle', 'mot_vitesse']) jumeau(brochage) jumeau_mode(True, True, True, True) # Mise en place : Aller au niveau 0 print ("Monte-charge sans la mémorisation des appels") print ("Mise en place : Aller au niveau 0 ...") while pc_0() ==False: mot_m(False) mot_d(True) tempo(0.1) # Donne du temps à communication avec le jumeau réel mot_d(False) print ("Mise en place : Aller au niveau 0 : Ok") # Fonctionnement normal print ("Attente") while True: # Aller au niveau 0 if ba_0() and pc_0() ==False: print ("Déplacement pour le niveau 0 ...") voy_0(True) while pc_0() ==False: mot_m(False) mot_d(True) tempo(0.1) # Donne du temps à communication avec le jumeau réel mot_d(False) tempo(2) # Temporisation 2s voy_0(False) print ("Déplacement pour le niveau 0 : Ok") print ("Attente") # Aller au niveau 1 if ba_1() and pc_1() ==False: print ("Déplacement pour le niveau 1 ...") voy_1(True) while pc_1() ==False: mot_d(False) mot_m(True) tempo(0.1) # Donne du temps à communication avec le jumeau réel mot_m(False) tempo(2) # Temporisation 2s voy_1(False) print ("Déplacement pour le niveau 1 : Ok") print ("Attente") tempo(0.1) # Donne du temps à communication avec le jumeau réel ############################################################################### # En: External call << DONT CHANGE THIS SECTION >> # Fr: Appel externe << NE PAS MODIFIER CETTE SECTION >> ############################################################################### def cycle(): commandes() fin() if __name__=='start': start(cycle) if __name__=='stop': stop()