Aller au contenu


Mike118

Inscrit(e) (le) 26 janv. 2012
Connecté Dernière activité il y a 20 minutes
*****

#113262 Vigibot Pi to multiple ESP32 WLAN Communications Example

Posté par Mike118 - 06 avril 2021 - 09:36

tu as pas su copier coller la structure correctement ... 

 

#define RXFRAMESIZE (NBPOSITIONS * 4 + 9)

typedef struct {
  union {
    struct {                       // Sizes
      uint8_t sync[4];              // 4
      Point positions[NBPOSITIONS]; // NBPOSITIONS * 4
      uint8_t choixCameras;         // 1
      Vitesses vitesses;            // 3
      uint8_t interrupteurs;        // 1
    };

    uint8_t bytes[RXFRAMESIZE];
  };
} TrameRx;



#113228 Arduino + Alexa + Led

Posté par Mike118 - 27 mars 2021 - 05:36

Sur la boutique robot maker tu as le nodemcu . Le prix est plus cher qu'une commande directement en chine mais la livraison est plus rapide ...




#113199 Photos étapes cocotix 2 et/ou photos de la plaque bakélite

Posté par Mike118 - 22 mars 2021 - 09:50

Je ne sais pas si tu vas obtenir une réponse ... Ce kit a été commandé uniquement par une dizaine de personne qui n'étaient pas forcément inscrite sur le forum ... 
De plus personnellement je n'ai jamais assemblé ce montage sur une véroboard, mais j'ai néanmoins quelques conseils à donner.

a ) Même si le montage semble simple, je recommande de tout tester au moins une fois sur une "breadboard"   et seulement une fois que tu as vérifié que le montage fonctionne comme il faut, tu peux le mettre sur la veroboard. 

b ) Pour optimiser la place je travail d'abord à faire un plan soit sur feuille soit sur excel en modifiant d'abord la matrice pour que les cellules de la feuille soit carré . 
Je délimite l'espace de ma plaque sur ma feuille en laissant autant de carré que de " trous " présent sur la verroboard. Je coloris d'une même couleur les carré qui vont formé une seule et même piste ... je teste en mettant les composants dans la veroboard et je vérifie l'espace que les composants prennent en nombre de trous ... 
Exemple en image : 

schemas.JPG

 

Ne pas hésiter à faire plusieurs essais pour trouver la configuration optimale qui vous conviendra.

 

c) au moment de souder, si au b ) vous avez fait un plan en vu de dessus, avec des pistes tracées qui sont censées être en dessous du pcb, pensez qu'il faut faire les soudure en " mirroir " par rapport ou plan vu que vous vous aurrez la face du dessous face à vous ...

Image de ce que donne le dessous d'une veroboard soudée par rapport au plan ci dessus. : 
image.jpg

( cette photo a été prise alors que c'était pas 100% fini mais ça montre l'idée ;) )




#113181 Achat groupé Odrive 3.5

Posté par Mike118 - 18 mars 2021 - 04:34

j'attends que pat92fr commercialise sa solution :P 




#113073 Retour d'expérience services d'impression 3D

Posté par Mike118 - 25 février 2021 - 07:00

Oui tu augmenteras un peu la résistance de la pièce mais malheureusement tu ne passeras pas du simple au double en faisant une pièce à 40% de remplissage au lieu de 20%... 
Tu peux aussi jouer sur l'épaisseur de la coque, généralement tu obtiens un meilleur résultat en doublant l'épaisseur de coque plutôt qu'en doublant le pourcentage de remplissage ... 

 




#112967 Articulation « brushless »

Posté par Mike118 - 09 février 2021 - 08:11

Tu parles d'une butée mécanique sans aucun signal ?
Genre détection d'impact ? 
Techniquement c'est faisable ... 
L'avantage c'est que mis à part l'ajout de la butée c'est que du soft à mettre en oeuvre ...

Sinon une autre alternative, plutôt que mettre une butée tu peux éventuellement caler un aimant et un capteur à effet hall, le même genre de ceux utilisés sur les codeurs incrémentaux magnétique. L'idée serait de faire l'équivalent du signal " index " dont disposent certains codeurs quadrature... 
Mais ça rajoute un petit chouille d'électronique et de fils ... 




#112932 Articulation « brushless »

Posté par Mike118 - 06 février 2021 - 09:45

 

Ma méthode est la suivante :

1) Dans un repère propre au robot (origine au centre de gravité, X vers l'avant, Y vers la gauche, Z vers le haut), je calcule la position des pieds (X,Y,Z) en fonction de toutes les consignes :

 

 

C'est marrant moi je choisi toujours arbitrairement X vers la droite, Y vers l'avant et Z vers le haut =) .

( En gros j'imagine le robot vu de dessus et la télécommande que j'utilise pour le faire avancer ... En général j'utilise le joystick haut bas ( qui pour moi est aussi un axe Y), pour avancer reculer et droite gauche ( qui est un axe X pour aller à droite et à gauche )

Mais bon c'est qu'une convention pour les base du calcul ça change pas grand chose pour le reste :) 




#112893 Articulation « brushless »

Posté par Mike118 - 04 février 2021 - 01:42

Avec les courroies, nous faisons des expériences, on se fournit chez "poulie et courroies", bizarrement, ils vendent des poulies et des courroies. C'est un peu galère les commandes de ce type de matériel, on se retrouve avec plein d'erreurs de références...

Le plus gros soucis avec les courroies crantées c'est de les équilibrer entre la tension et l'effort à transmettre. Si c'est trop tendu, les roulements à bille prennent trop d'efforts transversaux ou c'est quasi impossible de les mettre. Si c'est pas assez tendu, la courroie glisse à la moindre demande d'effort. Et quand on a un codeur avant la courroie pour faire le FOC, le zero se décale. Ca dépend de la position des galets de pression s'il y en a, du nombre de dents sur la poulie qui sont engagées dans la poulie, et de l'elasticité de la poulie.

Mais ça se fait, et une fois que c'est bien équilibré, on profite d'un bon rapport de réducteur tout en silence.

 

 

 

l'utilisation de galets tendeurs ou autre système de serrage réglable permet de facilement régler ce genre de problèmes..




#112889 Palans et Cabestans

Posté par Mike118 - 04 février 2021 - 10:33

Dans cette vidéo Skientific fait référence à un mécanisme de Palan. Dans la description de la vidéo, il donne un lien vers une vidéo de référence de  IRIM Lab Koreatech. L'ingénieur ayant réalisé cette articulation a fait cette publication, http://www.cs.cmu.edu/~cga/c/0749.pdf

 

 

 

 

Dans cette dernière vidéo, Paul Gould fait référence à un Capstan. Il se pourrait bien que ce terme soit mal choisi.

S'agit-il d'un Palan ? Je l'ignore. Peut-être, avez vous une idée.

 

 

Le palan, c'est quand tu obtiens une démultiplication grâce au système de poulie. Dans ta première vidéo c'est bien le cas; il y a bien une démultiplcation.
Le fil est accroché d'un côté à une pièce et se fait tiré de l'autre. Le câble utilisé glisse sur la poulier.

Le Capstant c'est le fait d'entrainer le fil par friction comme fait dans ta deuxième vidéo. Le fil fait une boucle un peu comme une courroie, mais avec plusieurs tour effectuées sur la "poulie à entrainer" et le câble reviens sur la poulie d'entrainement pour s'y fixer... Le câble ne glisse pas sur la poulie entrainée, il l'entraine, c'est cette friction à cause des plusieurs tour qui permet l'entraînement en rotation. 

 

à noter que dans le cadre du capstant, la différence entre les diamètre des poulies permet un rapport de réduction qui se calcul de la même façon qu'un rapport de reduction avec deux engrennages ... Si les deux poulies entraînantes et entraînées sont les mêmes, pas de réductions.




#112827 Bonjour a vous tous

Posté par Mike118 - 02 février 2021 - 11:48

Welcome ! =) 

pour de l'autoguidage agricole ça me fait tout de suite penser à ce post : https://www.robot-ma...icole-autonome/=)




#112758 Projet domotique et tuto N°1

Posté par Mike118 - 28 janvier 2021 - 07:54

Pourquoi choisir une nano + un espe8266 quand tu peux directement utiliser un nodemcu ou équivalent qui intègre déjà le wifi ? 

En tout cas super projet et bonne continuation pour la suite! =)




#112756 Avez vous des idées d'exemples d'applications pour un système expert?

Posté par Mike118 - 28 janvier 2021 - 07:46

On s'éloigne un peu de la robotique classique du genre robot qui roule ou bras robot mais personnellement la première idée intéressante que je vois c'est pour de la suggestion pour des bornes d'accueil. 

Par exemple au macdo quand vous êtes devant la borne de commande le système peut vous demander si vous savez déjà ce que vous voulez. 
Si vous savez il vous conduit au menu de sélection classique, sinon il vous pose une série de question pour vous faire une suggestion... 

Bien entendu je pense qu'il y a de nombreux autre cas possible :)




#112743 L'IMU MPU-9250

Posté par Mike118 - 28 janvier 2021 - 05:20

Sandro a très bien répondu à la question, il y a en effet plusieurs méthodes pour corriger ce biais ( filtrage), là j'ai proposé une méthode simple sans prendre les outils qui sont présent dans la librairie. Le but étant de comprendre ce qui était derrière et de voir le problème ... J'avais même hésite à poster d'abord un code qui ne prendrait pas en compte le biais ... Mais je me suis ravisé en me disant que sandro viendrait sans doute me rappeler à l'ordre ;)

Bien entendu il existe des filtres beaucoup plus performant. Dont le filtre de magwik AHRS. 

100 données c'est pas énorme pour le biais ... 

Mais du coup est ce que ça t'intéresse de creuser un peu plus ce thème maintenant que tu vois un peu les tenants et aboutissant ? 

 




#112730 Articulation « brushless »

Posté par Mike118 - 28 janvier 2021 - 09:45

c'est un challenge atteignable, c'est  grosso modo le niveau de ce qu'on peut trouver sur le marché ( en terme de puissance ) sauf qu'en général on a juste plus de couple et moins de vitesse dans les propositions existante que je vois en comparaison de produit du genre. 




#112712 L'IMU MPU-9250

Posté par Mike118 - 27 janvier 2021 - 07:47

Bon eh bien quand tu voudra essayer à nouveau tu pourras essayer ça: 

 

#include <MPU9250.h>
 
// an MPU9250 object with the MPU-9250 sensor on I2C bus 0 with address 0x68
MPU9250 IMU(Wire,0x68);
 
void setup() {
  // serial to display data
  Serial.begin(9600);
  while(!Serial) {}
 
  // start communication with IMU 
  int status = IMU.begin();
  if (status < 0) {
    Serial.println("IMU initialization unsuccessful");
    Serial.println("Check IMU wiring or try cycling power");
    Serial.print("Status: ");
    Serial.println(status);
    while(1) {}
  }
  for (uint8_t i = 0; i < 100; i++)
   computeHeading(false);                // on initialise le biais, ne pas bouger l'IMU pendant ce temps là
}
 
void loop() {
  Serial.print("heading : ");
  Serial.print(computeHeading(true),6);
  Serial.print("°\t gyro : ");
  Serial.print(IMU.getGyroZ_rads(),6);
  Serial.println("rad /s");
}


float computeHeading( bool isMoving) {
    // Variables static qui seront réutilisée d'une itération sur l'autre 
    static uint32_t previousTime = micros();                 
    static float heading = 0;
    static float biais = 0;

    uint32_t now = micros();
    IMU.readSensor();                                        // On lit les données du capteurs
    float gyroSpeedZ = degrees(IMU.getGyroZ_rads());         // On récupère la vitesse de rotation en Rad /s selon l'axe z et on la convertie en degrées 

    if( isMoving && abs(gyroSpeedZ) > 1) {
     uint32_t deltaTime = now - previousTime;                 // On calcul le delta de temps depuis la dernière mesure en microsecondes (µs)
     heading += (gyroSpeedZ - biais) * deltaTime * 1e-6;      // On intègre la vitesse de rotation pour obtenir l'angle avec 1e-6 permet de convertir les µs en secondes

     //On remet l'angle entre -/+ 180 °
     if(heading > 180) 
      heading -= 180; 
     else if(heading < -180)
      heading += 180;
      
    } else {
      biais = (99 * biais + gyroSpeedZ) / 100;                // On calcul le biais avec une moyenne de 100 valeurs ...
    }

    previousTime = now;                                       // On sauvegarde notre référence de temps pour la prochaine itération du calcul.
    return heading;
}