L'objectif, pour moi, de ce projet est une initiation à la robotique, tout en utilisant le maximum de matériel du Fablab.
De rafraichir mes connaissances en électronique rouillée et d'utiliser mes compétences informatique.
Il s'agit d'un projet basé sur le robot chat.
Avec les imprimantes 3D, j'ai tout d'abord imprimé le modèle OpenCat. Cela a pris plus de 3 semaines pour imprimer toutes les pièces.
Le robot chat disponible sur thingyverse une fois monté a de multiples défauts structurelle que je ne manquerait pas de documenter. Les pièces ne tiennent pas entre elle, et il semble que le créateur du projet adu modifier certaines pièces. Mais son modèle m'a permis tour de même d'arriver à un résultat très proche du robot chat.
Le projet est toujours en cours et n'est pas terminé pour cause de coronavirus, certaines pièces me sont très difficiles à trouver pour le moment.
Le Dagu Mini driver est un arduino Atmel8 avec de multiples contrôleurs orientés robotique.
Il peut alimenter plusieurs moteur à courant continu, dispose de multiples sorties qui sont organisée comme des contrôleurs de servo. Il y a même une option bluetooth, mais je dois analyser quel type de connections cela utilise pour voir comment brancher un autre contrôleur plus puissant en maître.
Jamais le néant n'a été aussi difficile à trouver
Les micro servo ont des petites roues en plastiques crantées et les pièces imprimées ne permettent pas un bon sertissage pour un mouvement mécanique propre.
Le corps est fait avec des sangles qui ne sont pas fixes meme en imprimant le modèle, il y a beaucoup de jeu.
Une grande aide m'est venue de Pierre utilisateur du FabLab, qui a serti des roues crantées dans les pièces imprimées. Cela a permis un mouvement fixe et une position très propre.
Voici la position du point zéro.
Attention les servo étant dans diverses position, le point zéro peut aussi être le point 180. Il s'agit de la position maximum du contrôleur.
L'objectif est d'être au maximum proche de la butée, mais que les pâtes touchent le sol et qu'il ny aie aucun problème mécanique.
Il y a les contraintes latérales aussi…
Les pâtes arrière et avant doivent toucher le sol en même temps et garder malgré tout une sensation d'équilibre.
L'avant :
En regardant les angles on peut voir un problème du sertissage des roue crantées. Il est impossible davoir un angle identique de chaque côté avant arrière, car les Crans des roues ne permettent pas un réglage fin.
Pour remédier à ce problème, je planifie pour cette version du robot de mettre des patins que je limerai pour avoir une mécanique qui soit à niveau et bien horizontale.
Mais ce ne sera qu'une solution temporaire. En réalité il faudra bien aligner les roue crantées ou changer certaines pièces pour assurer un alignement parfait des pièces rotative.
Cette position ne fait pas très chat. Plutôt table, mais elle illustre une autre position d'équilibre intéressante.
Cette position met en valeur les problèmes d'angles. Les pieds ne sont pas tout à fait alignés.
Cela montre aussi le besoin de puissance des servo pour se porter eux même.
Niveau cinématique le passage a cette position doit se faire de façon coordonnée et simultanée. Les mouvement robotiques étant assez brusques.
Le passage a cette position d'équilibre est pertinent.
Aussi a allumage les servo peuvent se déplacer… Et le robot peut tomber et na pas pouvoir se mettre dans cette position d'équilibre haute.
Ce projet n'est pas terminé…
La plus grande difficulté m, c'est le temps d'impression, il faut en effet plusieurs jours pour imprimer toutes ces pièces.
Je n'avais pas accès aux decoupeuse laser, mais une bonne partie des pièces peut-être refaite avec la decoupeuse laser.
Trouver le matériel adéquat.
Les servons reviennent assez cher. Heureusement j'ai pu trouver un kit robotique contenant 10 servi en promo pour 60€ avec un carte compatible arduino.
Les servo sont des organes de puissance, ce sont des actionneurs rotatifs pouvant tourner de 0 à 180° sur une position précise par verrouillage.
La vitesse n'est pas modifiable sur les servo bon marché de ce type.
J'ai pu faire fonctionner un servo seul directement sur la carte arduino une du Fablab.
Essentiellement il s'agit d'utiliser le PWM.
Voici un exemple de programme:
Toutefois,pour faire fonctionner le PWM sur Arduino il existe le PWM interne mais aussi le PWM programmé manuellement. Le nombre de PWM interne est limité dur Arduino.
Or le contrôleur devra actionner plus de 10 Servo. L'utilisation dune librairie est approprié.
Ce qui nous donne ce programme de base:
Mais la puissance requise pour 11 servi ne permettrait pas une alimentation par arduino de plus il faut voir que arduino nano est en TTL, 5V. Les servi fonctionne mieux avec des tension allant de 6V à 9V donc il s'agissait du premier problème à résoudre.
Les servo a bas prix que l'on trouve dans le commerce ont 3 fils.
Assez difficile de trouver des serveur avec capteur de position (4 fils)
Pour savoir si une position est complète, nous pourrions avoir besoin d'un capteur de position. Plus loin dans ma réflexion, comment savoir si une surface est molle, il faudrait pour cela connaitre la force de résistance.
Hélas sur un robot de cette taille, il va être difficile de placer un tel capteur.
Sur tous les servo, il y a une information de e position se trouvant quelque part dans le servo. C'est grâce à un système de bobine que le servo connaît sa position.
Cet arduino dispose de très nombreux capteur. Mais il fonctionne strictement en niveau d'entrée CMOS 3.3v, il lui faut donc un circuit de puissance pour piloter ne serait ce que un seul servo (même si techniquement le servo peut tourner à 3.3v, il n'aura pas assez de puissance. Et je ne souhaite pas griller cet arduino)