Modifications

Sauter à la navigation Sauter à la recherche
Ligne 1 : Ligne 1 :  
{{Hack-micropython-ServoRobot-NAV}}
 
{{Hack-micropython-ServoRobot-NAV}}
 +
 +
== servorobot.py ==
 +
ENG: This module contains all the base classes and definition used to create servo based robots. Our own robot should derived from RobotBase. See the file doggy.py for sample.
 +
 +
FR: Ce module contient toutes les classes de base et les définitions utilisées pour créer un robot à base de servo-moteur. Votre propre robot doit dérivé de RobotBase. Voyez le fichier doggy.py pour des exemples.
 +
 +
== class ServoJoint ==
 +
ENG: Define a joint/articulation (into a member) and associate it to a servo. It also remember the angle of the joint.
 +
 +
FR: Definit un joint/articulation (dans un membre) et l'associe à un servo moteur. Il se souvient également de l'angle de la jointure.
 +
 +
=== __init__( self, owner, servoindex, ctrlindex=0) ===
 +
 +
* '''servoindex'''
 +
** ENG: Numerical number of the servo motor on the servo controler.
 +
** FR: Numéro du servo moteur sur le contrôleur de servo.
 +
* '''ctrlindex'''
 +
** ENG: indicate the index of the servo controleur (if many are used)
 +
** FR: Indique le numéro d'index du controleur (si vous utilisez plusieurs contrôleurs)
 +
 +
=== angle ===
 +
ENG: Property where is stored the set() joint's angle. READ ONLY.
 +
 +
FR: Propriété où est stocké l'angle de la jointure, angle fixé par la fonction set(). LECTURE SEULE.
 +
 +
=== inverted( self, value=True ) ===
 +
ENG: Indicates to the Joint must be inverted. So position of +90 & -90 are exchanged... and the control of the motor is inverted. This allows you to preserve the "front position" of the servo arm to +90 degree.
 +
 +
FR: Indique au Joint qu'il doit fonctionner en mode Inversé. La position +90° et -90° sont échangés... et le contrôle du moteur est donc inversé. Cela permet de préserver la "position avant" du bras du servo sur +90°.
 +
 +
=== def set( self, degree=0 ) ===
 +
ENG: Set the joint degree between +90° in front/forward AND -90° for backward. This value is remembered in la property {{fname|angle}}.
 +
 +
FR: Fixe l'angle de la jointure (en degrés) entre +90° pour l'avant ET -90° pour l'arrière. Cette valeur est également stockée dans la propriété {{fname|angle}}.
 +
 +
== class Member2DF ==
 +
ENG: Defining a member with 2 degree of free (2servo). So having a shouler and a wrist on a same controler.
 +
 +
FR: Défini un membre avec deux degrés de liberté (2 servos) sur un même contrôleur de servo. Donc avec une épaule (dit ''shoulder'') et un poignet (dit ''wrist'').
 +
 +
=== __init__( self, owner, shoulderindex, wristindex, ctrlindex=0 ) ===
 +
ENG: see the definition of ServoJoint parameters. '''shoulderindex''' identify the servo number for the shoulder. '''wristindex''' identify the servo number for the wrist.
 +
 +
FR: Voyez la définition des paramètres de ServoJoint. '''shoulderindex''' identifie le numéro de servo pour l'épaule. '''wristindex''' identifie le numéro de servo pour le poignet.
 +
 +
=== reset( self ) ===
 +
ENG: Reinitialize all the member's servos to 0 degree. Members are supposed to be strait.
 +
 +
FR: Réinitialise le membre. Fixe tous les servos à 0°. Les membres sont supposés être droit.
 +
 +
== class RobotBase ==
 +
ENG: Base class for a Servo's based robot using the PCA9685 controler. You will have to create your own derivated class to specialize RoboBase. You will also provide a collection of movement to your descendant class.
 +
 +
FR: Classe de base pour un robot à base de Servo utilisant le contrôleur PCA9685. Vous aurez besoin de créer votre propre classe dérivée de RobotBase, classe que vous spécialiserez. Vous fournirez également une collection de mouvement à votre classe dérivée.
 +
 +
=== def __init__( self, controlers, movementscls ) ===
 +
 +
* '''controlers'''
 +
** ENG: list of PCA9685 servo controleur with following format [ (i2c_bus, address=0x40), ... ]. Most of the projects are only using one servo controleur (16 channels).
 +
** FR: Liste des contrôleurs servo PCA9685. En utilisant le format suivant [ (i2c_bus, address=0x40), ... ]. La plupart des projets n'utilise qu'un seul contrôleur de servo (à 16 canaux).
 +
* '''movementscls'''
 +
** ENG: a list of {{fname|Movement}} classes to register for the Robot. See {{fname|doggy.py}} file for samples.
 +
** FR: Une liste des classes {{fname|Movement}} (mouvement) à enregistrer pour le robot. Voyez le code de {{fname|doggy.py}} pour des exemples.
 +
 +
=== def movement( self, name ) ===
 +
ENG: Retreive or create a Movement class instance (from its name). This function is used by {{fname|move()}} and {{fname|prepare()}}
 +
 +
FR: Retrouve (ou crée) une instance de la classe Movement (depuis son nom). 
 +
 +
* '''name'''
 +
** ENG: name of the movement to retreive (UPPERCASE!)
 +
** FR: Nom du mouvement à retrouver (MAJUSCULE!)
 +
 +
=== def prepare( self, name, **kw ) ===
 +
ENG: Call the prepare() method on a Movement class instance identified by its name. See {{fname|Movement.prepare()}} for more information.
 +
 +
FR: Appelle la méthode prepare() sur l'instance de la classe Movement identifiée par son nom. Voyez {{fname|Movement.prepare()}} pour plus d'information.
 +
 +
* '''name'''
 +
** ENG: Name of the Movement instance to be retreived (usually LEFT, L, FORWARD, F, etc).
 +
** FR: Nom de l'instance de Movement (classe mouvement) à retrouver. Habituellement LEFT (''pour gauche''), L, FORWARD (''avant''), etc
 +
* '''**kw'''
 +
** ENG: Named parameters that will be forwarded to the {{fname|Movement.prepare()}} method.
 +
** FR: Paramètres nommés qui seront passé à la méthode {{fname|Movement.prepare()}}
 +
 +
=== def move( self, name, prepare=False, repeat=None, **kw ) ===
 +
ENG: Call the do() on a Movement class instance identified by its name. So perform the desired movement -OR- an iteration of the desired movement. See {{fname|Movement.do()}} for more information.
 +
 +
FR: Appelle la méthode do() sur l'instance de la classe Movement identifiée par son nom. Effectue donc le mouvement désiré -OU- une itération du mouvement désiré. Voyez {{fname|Movement.do()}} pour plus d'information.
 +
 +
* '''name'''
 +
** ENG: Name of the Movement instance to be retreived (usually LEFT, L, FORWARD, F, etc).
 +
** FR: Nom de l'instance de Movement (classe mouvement) à retrouver. Habituellement LEFT (''pour gauche''), L, FORWARD (''avant''), etc
 +
* '''prepare'''
 +
** ENG: call {{fname|Movement.prepare()}} first before calling the {{fname|Movement.do()}}
 +
** FR: Appel d'abord {{fname|Movement.prepare()}} avant d'appeler {{fname|Movement.do()}}
 +
* '''repeat'''
 +
** ENG: can be an integer or a callback function. Used to repeat X time the {{fname|Movement.do()}}
 +
*** integer - call x times the do()
 +
*** callaback( robotobj, move_name, iteration_count ) - The do() is repeate as long as the callback returns True. Iteration_count is incremented at each call.
 +
** FR: Peut être soit un entier ou une fonction callback. Utilisé pour répéter X fois l'appel à {{fname|Movement.do()}}
 +
*** entier - appelle x dois la méthode Movement.do()
 +
*** callaback( robotobj, move_name, iteration_count ) - La méthode do() est répétée aussi longtemps que le callback renvoie True. Iteration_count est incrémenté à chaque appel.
 +
* '''**kw'''
 +
** ENG: Named parameters that will be forwarded to the {{fname|Movement.prepare()}} method.
 +
** FR: Paramètres nommés qui seront passé à la méthode {{fname|Movement.prepare()}}
 +
 +
== class Movement ==
 +
ENG: Base class that will allow you to code the own robot movements. Movements must derived from this Movement class. See the {{fname|Left}} class in the file {{fname|doggy.py}}
 +
 +
FR: Classe de base qui vous permettra de coder les mouvement de votre robot. Lesmouvements doivent dérivés de cette classe Movement. Voyez la classe {{fname|Left}} dans le fichier {{fname|doggy.py}}
 +
 +
=== def name() ===
 +
ENG: returns the inner name of the movement. use CAPITAL.  <font color="red">Defined as class function</font>. Eg: ('LEFT','L')
 +
 +
FR: retourne les noms d'identification du mouvement. En CAPITAL uniquement. <font color="red">Définit comme une méthode de classe</font>. Ex: ('LEFT','L')
 +
 +
=== def prepare( self, **kw ) ===
 +
ENG: Override this method to place all the servo in the desired position to prepare the movement that will be executed by the do() method.
 +
 +
FR: Surchargez cette méthode pour placer tous les servo dans la position désirée afin de préparer le mouvement qui sera exécuté par la méthode do().
 +
 +
* '''**kw'''
 +
** ENG: Named parameters that will be forwarded to your descendant {{fname|Movement.prepare()}} method.
 +
** FR: Paramètres nommés qui seront passé à votre méthode dérivée de {{fname|Movement.prepare()}}
 +
 +
=== def do( self, **kw ) ===
 +
ENG: Perform one iteration of the movement. Some movement like Left or Right are done in one call. Other movement like Forward or Backward must be called many times (on regular basis) to get a complete movement. The {{fname|do()}} method usually takes specific named parameter passed down to your implementation of {{fname|do()}} via **kw
 +
 +
FR: Effectue une itération du mouvement. Certains mouvements tels que Left (''gauche'') ou Right (''droite'') sont effectuées en une seule itération. D'autres mouvement comme Forward (''avant'') ou Backward (''arrière'') sont doivent être appelés de nombreuses fois pour obtenir un mouvement complet. La méthode {{fname|do()}} prends généralement des paramètres nommés spécifiques qui sont passés à votre implémentation de {{fname|do()}} via **kw 
 +
 +
* '''**kw'''
 +
** ENG: Named parameters that will be forwarded to your descendant {{fname|Movement.do()}} method.
 +
** FR: Paramètres nommés qui seront passé à votre méthode dérivée de {{fname|Movement.do()}}
 +
    
{{Hack-micropython-ServoRobot-TRAILER}}
 
{{Hack-micropython-ServoRobot-TRAILER}}
29 917

modifications

Menu de navigation