Aller au contenu


Photo
- - - - -

UGV à base d'éléments de trottinette ou d'hoverboard


410 réponses à ce sujet

#141 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 769 messages
  • Gender:Male

Posté 09 décembre 2022 - 02:23

Peux-tu nous montrer une photo de ton moteur, coté enjoliveur ?



#142 dakota99

dakota99

    Habitué

  • Membres
  • PipPip
  • 228 messages
  • Gender:Male

Posté 09 décembre 2022 - 06:30

J'ai testé un paquet de combinaisons (mais pas toutes les 36)

Celle qui semble la moins mauvaise chez moi :

Moteur : NOIR ROUGE BLEU VERT JAUNE

Hall :      ROUGE BLEU VERT JAUNE NOIR

 

Le moteur consomme à vide 700 mA ce qui me paraît correct.

Le bruit semble normal

Le frein fonctionne

Le changement de sens de rotation fonctionne.

 

Par contre la vitesse est rapide alors qu'elle devrait être lente avec le filtre passe bas. Valeur PWM 20.

La tension sur la borne signal (VR) est pourtant de 1.7V.

Même si le fil est enlevé de cette borne, le moteur tourne toujours à la même vitesse.

 

MOTOR_DRIVER_07.jpg

 

 

 

 



#143 dakota99

dakota99

    Habitué

  • Membres
  • PipPip
  • 228 messages
  • Gender:Male

Posté 09 décembre 2022 - 08:07

Voici la photo du moteur côté enjoliveur

 

ROUE01.jpg



#144 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 769 messages
  • Gender:Male

Posté 09 décembre 2022 - 09:02

Même si le fil est enlevé de cette borne, le moteur tourne toujours à la même vitesse.

ça, c'est surprenant et inquiétant.

Si tu as un oscilloscope, tu devrais visualiser le signal. En principe, il devrait aller de 0V à 3V, mais cela dépend de la valeur réelle des composants.

Et donc, le moteur va de l'arrêt à une grande vitesse.

 

Merci pour la photo. Non, rien à voir avec les moteurs que j'ai.



#145 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 769 messages
  • Gender:Male

Posté 10 décembre 2022 - 08:24

Même si le fil est enlevé de cette borne, le moteur tourne toujours à la même vitesse.

J'ai fait ce test, ce matin. J'ai retiré le fil. Le moteur s'arrête bien.

Bien sûr, le moteur continu à tourner un peu, à cause de l'inertie, parce que je n'utilise pas le frein, mais après une seconde, il s'arrête.



#146 dakota99

dakota99

    Habitué

  • Membres
  • PipPip
  • 228 messages
  • Gender:Male

Posté 10 décembre 2022 - 09:08

Merci Oracid d'avoir fait le test.

Je fais forcément une boulette quelque part mais je ne vois pas où.

Je vais m'assurer que ça fait bien la même chose avec la seconde carte.

Nous avons les mêmes cartes excepté que j'ai la version V2

J'ai juste un doute avec "PWM ENABLE JUMPER" je vais quand même tester



#147 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 769 messages
  • Gender:Male

Posté 10 décembre 2022 - 09:28

Nous avons les mêmes cartes excepté que j'ai la version V2

J'ai juste un doute avec "PWM ENABLE JUMPER" je vais quand même tester

Je n'ai également que des cartes V2.

 

Le PWM ENABLE JUMPER est utilisé avec le connecteur en bas à gauche. Malheureusement, ce connecteur est en forme de pastille à souder, sans connecteur à proprement parler.

Dans notre cas, nous n'utilisons pas un signal PWM, mais un signal analogique sur l'entrée potentiomètre.

 

Si tu veux utiliser ce connecteur, tu devrais revoir cette vidéo, https://www.robot-ma...board/?p=116760

De plus, ce connecteur n'est pas au pas de 2.54. Il te faudra donc, soit trouver le bon connecteur soit souder une nappe de fils.

 

A mon avis, tu as un problème avec ton filtre. Si tu n'as pas d'oscillo, tu peux utiliser un voltmètre et contrôler que la tension démarre à 0V, jusqu'à environ 3V quand il est connecté à la carte, c'est à dire avec la charge. Sinon, à vide, en sortie de l'Arduino, il devrait aller jusqu'à 5V.



#148 dakota99

dakota99

    Habitué

  • Membres
  • PipPip
  • 228 messages
  • Gender:Male

Posté 10 décembre 2022 - 10:17

C'est bien que nous ayons les mêmes cartes :)

Ok PWM Jumper : j'oublie c'est pas la bonne piste, je n'y touche pas.

 

J'ai installé la seconde carte : idem il n'est pas nécessaire de raccorder le fil analog ctrl, le moteur tourne

Concernant le filtre : si j'installe l'ancienne carte, tout fonctionne donc je considérais qu'il était ok.

 

Mais j'ai encore une fois suivi tes conseils :) et procédé à une sévère remise en question...

J'ai déconnecté l'Arduino et installé un potentiomètre et là tout va bien.

Et si j'enlève le fil signal le moteur s'arrête. Que du bonheur.

 

Donc tu as apparemment raison le problème vient du montage avec l'Arduino.

Je cherche.



#149 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 769 messages
  • Gender:Male

Posté 10 décembre 2022 - 12:21

Ce matin, j'ai décidé de faire les premiers tests en extérieur, sur ma terrasse.

Malheureusement, les tests ont été très décevants. En ligne droite, le robot avance et recule, sans problème.

Mais dès que je veux le faire tourner, il n'a pas assez de puissance pour compenser la forte adhérence du caoutchouc des roues.

En fait, il n'a aucune puissance, je l'arrête à la main sans aucun problème.

Les contrôleurs ZS-X11H ne délivrent aucune puissance. Ils font illusion, car les moteurs tournent bien sur un banc d'essai, mais à faible vitesse, on peut facilement les arrêter à la main.

 

Je suis très déçu et j'ai quelques scrupules d'avoir conseillé ces contrôleurs à Dakota.

 

Je ne vais pas abandonné ce projet. Je vais changé de contrôleurs pour ceux que j'avais acheté au début, https://www.robot-ma...board/?p=115679, je ne les avais pas utilisé car les ZS-X11H me semblaient plus simple d'utilisation.

 

Tout ceci est très frustrant.

Le coté positif, c'est que la structure globale du robot et le programme me semblent satisfaisants. La seule chose à changer, c'est le contrôleur.

 

Je vais tout remettre à plat. Mon objectif, c'est de faire tourner le moteur, très doucement, sans pouvoir l'arrêter avec ma main.

 

Pour cette fin d'année et début d'année prochaine, je vais être obligé de lever le pied, mais qui sait, peut-être qu'à temps perdu je vais quand même avancer.

 

Désolé, Dakota, vraiment.



#150 dakota99

dakota99

    Habitué

  • Membres
  • PipPip
  • 228 messages
  • Gender:Male

Posté 10 décembre 2022 - 02:17

Oracid, dommage que tu sois déçu. :(

 

Je suis étonné car avec les anciens contrôleurs (qui n'ont pas de frein) j'avais été étonné par le couple développé par le moteur même à basse vitesse.

Cela me convenait assez bien.

Mais bon je ne sais pas encore comparer étant donné que je n'arrive pas à faire fonctionner les nouveaux.

 

Si tu le souhaites je peux t'en envoyer un par la poste pour que tu testes.

Je te dois bien ça pour tout le temps que tu as passé à m'aider :) .



#151 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 769 messages
  • Gender:Male

Posté 10 décembre 2022 - 03:13

Si tu le souhaites je peux t'en envoyer un par la poste pour que tu testes.

Je te dois bien ça pour tout le temps que tu as passé à m'aider :) .

C'est avec plaisir, quand je peux aider.

J'ai déjà ce type de contrôleur, mais merci quand même.

 

L'objectif, pour moi, c'est de monter des escaliers et de pouvoir déplacer 100kg, voir 200kg, à petite vitesse. 

 

N'hésite pas, continue à questionner, je te répondrai avec plaisir.



#152 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 969 messages
  • Gender:Male
  • Location:Anglet

Posté 10 décembre 2022 - 03:33

Ce matin, j'ai décidé de faire les premiers tests en extérieur, sur ma terrasse.

Malheureusement, les tests ont été très décevants. En ligne droite, le robot avance et recule, sans problème.

Mais dès que je veux le faire tourner, il n'a pas assez de puissance pour compenser la forte adhérence du caoutchouc des roues.

En fait, il n'a aucune puissance, je l'arrête à la main sans aucun problème.

Les contrôleurs ZS-X11H ne délivrent aucune puissance. Ils font illusion, car les moteurs tournent bien sur un banc d'essai, mais à faible vitesse, on peut facilement les arrêter à la main.

 

Je suis très déçu et j'ai quelques scrupules d'avoir conseillé ces contrôleurs à Dakota.

 

Je ne vais pas abandonné ce projet. Je vais changé de contrôleurs pour ceux que j'avais acheté au début, https://www.robot-ma...board/?p=115679, je ne les avais pas utilisé car les ZS-X11H me semblaient plus simple d'utilisation.

 

Tout ceci est très frustrant.

Le coté positif, c'est que la structure globale du robot et le programme me semblent satisfaisants. La seule chose à changer, c'est le contrôleur.

 

Je vais tout remettre à plat. Mon objectif, c'est de faire tourner le moteur, très doucement, sans pouvoir l'arrêter avec ma main.

 

Pour cette fin d'année et début d'année prochaine, je vais être obligé de lever le pied, mais qui sait, peut-être qu'à temps perdu je vais quand même avancer.

 

Désolé, Dakota, vraiment.

 

Cela ne va pas t'aider pour monter des escaliers ... Mais à minima tu peux te dire que les solutions que tu as sont utilisables dans le cadre d'un 2 roues motrices avec des roues folles ...


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#153 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 769 messages
  • Gender:Male

Posté 10 décembre 2022 - 07:24

Cela ne va pas t'aider pour monter des escaliers 

Faut voir. J'ai déjà vu des UGV monter des escaliers, donc j'ai bon espoir. Aujourd'hui, le robot peut à peine porter son propre poids.

Faire un 2 roues, ou un 4 roues, sur un terrain lisse, je l'ai déjà fait en Lego.

Non, là, je voulais passer à une autre échelle, 100kg. C'est parfaitement faisable, il n'y a qu'à voir les vidéos sur YouTube.

Mais, je n'ai pas dit mon dernier mot.



#154 dakota99

dakota99

    Habitué

  • Membres
  • PipPip
  • 228 messages
  • Gender:Male

Posté 10 décembre 2022 - 09:58

J'ai un peu progressé (sans crier victoire trop vite...)

 

J'ai regardé le filtre à l'oscillo. On a des pulses avant et un courant bien continu après.

Le problème était que je ne pouvais pas régler la vitesse et pourtant la tension à la sortie du filtre avait l'air correcte (1V)

Si je ne raccorde pas le fil Start / stop alors cela fonctionne. Quand il est raccordé on mesure 5v sur la pin Signal et donc la roue tourne à fond les manettes. Quand j'enlève ce fil la tension sur la pin signal est la tension demandée.

De plus le frein fonctionne. Suffisamment pour arrêter l'engin qui roule à bonne vitesse avec une charge ? A vérifier

 

MOTOR_DRIVER_08.jpg

 

On n'a pas les mêmes exigences, (dans mon cas c'est 2 roues motrices avec 2 roues folles) mais le couple est assez impressionnant. Je ne sais pas si c'est suffisant pour monter des escaliers avec une belle-mère assise dessus.. mais à pleine puissance sur 4 roues motrices en 36V ça doit quand même envoyer.

 

@Oracid : Quand tu mets plein pot tu as bien 5V sur la pin signal ?



#155 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 769 messages
  • Gender:Male

Posté 11 décembre 2022 - 07:55

Quand il est raccordé on mesure 5v sur la pin Signal et donc la roue tourne à fond les manettes. Quand j'enlève ce fil la tension sur la pin signal est la tension demandée.

Cela est très surprenant ! A l'occasion, je vérifierais si j'ai la même chose.

De toute façon, la pin Start/Stop ne sert à rien. En Stop, on est en roue libre. Cela revient à envoyer un signal à 0V.

Si vraiment tu veux arrêter le robot, il faut utiliser le frein.

 

à pleine puissance sur 4 roues motrices en 36V ça doit quand même envoyer.

Oui, bien sûr, mais le problème, c'est qu'il faut aller doucement. Et, à faible vitesse, il n'y a plus de couple.

Ce que je veux, c'est du couple à faible vitesse. Sur un Hoverboard, un homme de 80kg, même à très faible vitesse, avance et tourne sans problème.

 

@Oracid : Quand tu mets plein pot tu as bien 5V sur la pin signal ?

Non, j'ai 3V.



#156 dakota99

dakota99

    Habitué

  • Membres
  • PipPip
  • 228 messages
  • Gender:Male

Posté 11 décembre 2022 - 08:58

 

 

Ce que je veux, c'est du couple à faible vitesse. Sur un Hoverboard, un homme de 80kg, même à très faible vitesse, avance et tourne sans problème.

 

J'ai exactement la même préoccupation. Faire des manoeuvres lentes et précises avec de la charge. Comme sur un siège PMR

J'avais posé une question similaire sur un forum et j'ai compris qu'il faut un asservissement de vitesse.

Si le robot ne se déplace pas à la vitesse souhaitée, on augmente la puissance jusqu'à ce qu'il bouge.

Il faut donc lire les valeurs des encodeurs et adapter la puissance pour obtenir la vitesse souhaitée ?

 

C'est juste on je raconte des bêtises ? Ou il y a moyen de faire autrement ?



#157 Sandro

Sandro

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 262 messages
  • Gender:Male

Posté 11 décembre 2022 - 11:30

Ce que je veux, c'est du couple à faible vitesse. Sur un Hoverboard, un homme de 80kg, même à très faible vitesse, avance et tourne sans problème.
J'avais posé une question similaire sur un forum et j'ai compris qu'il faut un asservissement de vitesse.

Si le robot ne se déplace pas à la vitesse souhaitée, on augmente la puissance jusqu'à ce qu'il bouge.

Il faut donc lire les valeurs des encodeurs et adapter la puissance pour obtenir la vitesse souhaitée ?

 

C'est juste on je raconte des bêtises ? Ou il y a moyen de faire autrement ?

 

@Oracid, quand tu dis que tu n'as pas de couple à faible vitesse, tu entends que tu n'as pas de couple à faible PWM, ou pas de couple à faible vitesse de rotation de la roue?

 

Si jamais c'est pas clair, il n'y a aucune correspondance entre vitesse de rotation et PWM à priori. Si tu coince ta roue dans un étau, tu peux mettre un PWM de 100%, et ta roue ne tournera pas. Inversement, si ta roue tourne dans le vide, alors un tout petit PWM suffit pour la faire tourner. On peut même aller encore plus loin : si tu forces assez, tu peux mettre un PWM de 100% vers l'avant, tout en forçant la roue (de manière externe) à tourner en arrière. NB : n'essayez pas en pratique de bloquer des roues ou de les faire tourner dans le mauvais sens avec un PWM de 100% : beaucoup de moteurs vont surchauffer puis cramer.

 

Autrement dit, le PWM et la vitesse ne sont liés (environ proportionnels) que si le couple résistif (ie la "force" qui s'oppose au mouvement) est constante.

Tant que le couple résistif est faible, l'approximation vitesse = constante * PWM indépendamment du terrain est à peu près valable (pour vous faire une idée, comparez la vitesse à vide du moteur et la vitesse nominale (ie avec le couple nominal) : en général, la différence est <20%, donc jusqu'au couple nominal, l'erreur reste <20%. Si vous avez besoin ponctuellement de plus de couple, alors la vitesse s’effondre.

NLSpeed-1024x509.jpg

(source : https://www.precisio...ives.com/ab-032 )

 

Donc pour résumer, tant que votre robot vas en ligne droite (ou léger virage) sur un sol plat, vous pouvez considérer sans trop d'erreur que le PWM est proportionnel à la vitesse.

 

Par contre, dès que ce n'est plus le cas (sol pas plat/lisse, pentes, virages serrés ou sur place (surtout avec roues rugueuses), ...), alors l'approximation ne tient plus (du tout).

Et là, la seule solution est d'utiliser un asservissement en vitesse, c'est à dire de corriger le PWM en fonction de l'erreur de vitesse.

Soit vous pouvez acheter un driver qui gère ça en interne (dans ce cas, vous lui envoyez directement une vitesse et pas un PWM), mais c'est souvent assez cher. Ou alors, vous lisez vous même la vitesse (soit à partir d'encodeurs externes, soit à partir des signaux des capteurs hall, soit (peut-être) à partir de la sortie speed de votre driver), puis vous calculez le PWM que vous voulez envoyer (je vous suggère d'utiliser un contrôleur PI (ou PID)).

 

 

Donc @Oracid : si à pleine vitesse tu as un couple satisfaisant, alors à faible vitesse de rotation, tu aura au moins autant de couple disponible, probablement même un peu plus. En revanche, à faible PWM, tu n'aura pas beaucoup de couple. Donc si tu confirmes que ce n'est qu'à faible vitesse que tu manques de couple, alors il n'y a aucun problème avec ton driver, il te faut juste modifier ton code pour ajouter un contrôleur en vitesse


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#158 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 769 messages
  • Gender:Male

Posté 11 décembre 2022 - 09:45

Merci Sandro, pour ton exposé. Je pense comprendre ce que tu dis, mais malheureusement cela ne fonctionne pas.

 

Sur le robot, j'ai installé un potentiomètre qui me permet de paramétrer le PWM. C'est vrai que je n'ai jamais été jusqu'à 255, mais plutôt 150. Le fait est que cela me fait un peu peur.

Une fois le PWM réglé, je lance le robot. En ligne droite, pas de problème, mais pour tourner sur place tout est bloqué.

Alors, avec ma radiocommande, je remplace le contrôleur qui gèrerait le couple en fonction de la vitesse, tout simplement en accélérant.

Même si j'ai installé un disjoncteur, j'évite quand même de faire chauffer le moteur. Donc, si au bout d'une seconde, ça bloque encore, et bien je relâche tout.

 

Je ne sais pas si je suis très clair.

En résumé, avec ma radiocommande, en accélérant, je pense faire exactement ce que ferait un contrôleur intelligent. 



#159 Sandro

Sandro

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 262 messages
  • Gender:Male

Posté 11 décembre 2022 - 10:53

Sur le robot, j'ai installé un potentiomètre qui me permet de paramétrer le PWM. C'est vrai que je n'ai jamais été jusqu'à 255, mais plutôt 150. Le fait est que cela me fait un peu peur.

Une fois le PWM réglé, je lance le robot. En ligne droite, pas de problème, mais pour tourner sur place tout est bloqué.

Alors, avec ma radiocommande, je remplace le contrôleur qui gèrerait le couple en fonction de la vitesse, tout simplement en accélérant.

Même si j'ai installé un disjoncteur, j'évite quand même de faire chauffer le moteur. Donc, si au bout d'une seconde, ça bloque encore, et bien je relâche tout.

 

Je ne sais pas si je suis très clair.

En résumé, avec ma radiocommande, en accélérant, je pense faire exactement ce que ferait un contrôleur intelligent. 

Désolé, j'ai un peu de mal à te suivre. Tu décris un seul montages ou deux différents (l'un avec potentiomètre + un mécanisme de départ, l'autre avec la radiocomande).

 

Si tu es en mode télécommandé, alors en effet, tu peux faire l'asservissement manuellement (ie tu vois que le robot ne vas pas assez vite, donc tu accélères.

 

Après, pour ta télécommande, est-ce que tu es sur qu'elle te génère un PWM classique (pour commander un controleur moteur) et pas un PWM de type servo-moteur (où le max ne correspond qu'à 2ms/20ms = 10%)?
 


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#160 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 769 messages
  • Gender:Male

Posté 12 décembre 2022 - 08:54

Je ne mets pas tout le code, pour simplifier.

 

Dans la fonction setup(), je lis un potentiomètre :      Speed = map(analogRead(POT),0,1023,0,255);

 

Dans la fonction loop(), j'appelle ma fonction RC(), puis la fonction Go().

void RC() {   // Radio control
  delay(10);
  c2  = pulseIn(A2,HIGH,25000); // receiver channel 2 getting value Forward and Backward
  c1  = pulseIn(A1,HIGH,25000); // receiver channel 1 getting value turn Left and Right 
  if (c1==0 | c2==0) { DBG(2); delay(500); resetFunc();} // if RC off then reset
  
  T = map(c1,970,1970,0,90);
  R = map(c2,970,1970,Speed,-Speed);
  L = map(c2,970,1970,Speed,-Speed);
 
  if ( R < 0 ) {digitalWrite(DIR_OUT_R, HIGH);} else{digitalWrite(DIR_OUT_R, LOW);}   // Backward right wheels
  if ( L < 0 ) {digitalWrite(DIR_OUT_L,  LOW);} else{digitalWrite(DIR_OUT_L, HIGH);}  // Backward left wheels
 
  R=R*cos(T*PI/180);  // turn right
  L=L*sin(T*PI/180);  // turn left
 
  R = abs(R); L = abs(L);
 
  if(R<=20 & L<=20 & T <= 10){R=Speed;L=Speed;digitalWrite(DIR_OUT_R, LOW);}    // turn right on a spot 
  if(R<=20 & L<=20 & T >= 80){R=Speed;L=Speed;digitalWrite(DIR_OUT_L, HIGH);}   // turn left  on a spot
}
 
void Go(){
  for( int i=0;i<=300;i++){
    analogWrite(PWM_OUT_R,R);       // write PWM value to output with LowPass Filter
    analogWrite(PWM_OUT_L,L);       // write PWM value to output with LowPass Filter
  }
}
 

 

Pour les valeurs du signal de radiocommande, j'utilise les valeurs 970us à 1970us, au lieu de 1000us à 2000us.

A une époque, j'avais dû déterminer que c'était les valeurs min et max que ma radiocommande.

Mais on s'en fiche.





Répondre à ce sujet



  


0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users