Étape 5: Le CODE
Le projet n’est pas compliqué, mais il a beaucoup de variables. La plus sage est de clairement définir les et laissez ses remarques sur un fichier unique :
ArmDefine.h
Ce fichier doit également définir les angles de servos minimum, maximum et inicial. Le code inclus dans ce didacticiel, a deux ensembles de paramètres pour les bras robotiques qui je l’ai testé dans mon projet (bien sûr qu’un groupe de constantes doit être utilisé) :
MeArm 4-DDL
- #define minGrip 15
- #define minBase 0
- #define minShou 60
- #define minElbw 60
- #define maxGrip 45
- #define maxBase 170
- #define maxShou 180
- #define maxElbw 150
- #define midGrip 30
- #define midBase 87
- #define midShou 138
- #define midElbw 100
SS 3-DDL
- #define minGrip 75
- #define minBase 5
- #define minShou 5
- #define minElbw 0
- #define maxGrip 125
- #define maxBase 150
- #define maxShou 155
- #define maxElbw 0
- #define midGrip 100
- #define midBase 90
- #define midShou 90
- #define midElbw 0
Chaque type de bras possède un ensemble différent de paramètres et il est important que vous trouverez le bon pour la vôtre. Ce que je suggère, c’est qu’au départ les potentiomètres (pots) reste à mi-parcours et la cartographie de la PWM sorties sont définies sur les valeurs par défaut : Max = 255, Min = 0 et mi = 126 (« #defines"ci-dessus). Eux, démarrez variant les pots (un) et que vous suivez dans le Serial Monitor (ou LCD) quelles devraient être les valeurs minimales et maximales où le bras fonctionne correctement. Ceux qui seront les valeurs finales à utiliser pour les paramètres (changer mes valeurs originales à ArmDefine.h.
Pour « enregistrer » les ensembles de coordonnées (ou pas) que le robot devrait jouer, je vais utiliser les tableaux de données :
- gripPosition int [100] ;
- basePosition int [100] ;
- shouPosition int [100] ;
- elbwPosition int [100] ;
- int positionIndex = 0 ;
Notez que je garde pas la position de « rangement » et à la fin du programme « robot », l’index est à zéro et le robot attendra pour l’enregistrement d’une nouvelle séquence (le programme est perdu). Alternativement, vous pouvez conserver ces tableaux de données dans l’EEPROM Arduino, par exemple. Faisant cela, le programme devrait être de nouveau exécuté ou encore, vous pourriez avoir plus d’un programme enregistré.