Aller au contenu


Photo
- - - - -

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


410 réponses à ce sujet

#61 Sandro

Sandro

    Pilier du forum

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

Posté 27 septembre 2022 - 08:13

Le courant max (en continue) pour un pin de sortie de l'arduino est 20mA (40mA toléré en pic).

Disons 15mA pour être large.

 

Si le condensateur est entièrement déchargé, tu as 5V aux bornes de ta résistance.

 

Donc R_min=U_min/I_max = 5V/0.015A = 333 ohms

 

Donc tant que ta résistance est suppérieure à 330 ohms, tu es bon (un peu plus bas, ça marchera probablement encore, mais ça devient joueur).

 

 

 

Si on suppose que l'entrée est purement résistive, alors branche juste une résistance R entre 5V et l'entrée du driver (qui a une résistance interne r à trouver).

Tu formes alors un diviseur de tension.

Tu mesures la tension V_driver aux bornes du driver.

Tu as V_driver = 5V * r/(R+r).

Donc V_driver/5V=r/(R+r), donc (V_driver/5V)*(R+r) = r, donc r * (1-V_driver/5V)=(V_driver/5V)*R, donc r=R * 1/(5V/V_driver  - 1)


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.


#62 Oracid

Oracid

    Pilier du forum

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

Posté 27 septembre 2022 - 10:37

Merci Sandro.

 

J'ai utilisé R=1000 ohms

Entre l'entrée potentiomètre et le 5V, j'ai mesuré, V_driver=0.472V

 

Tes calculs:

1...  V_driver = 5V * r/(R+r)

2...  V_driver/5V=r/(R+r)

3...  (V_driver/5V)*(R+r) = r

4...  r * (1-V_driver/5V)=(V_driver/5V)*R

5...  r=R * 1/(5V/V_driver  - 1)

 

En remplaçant tes variables, ligne par ligne, par mes valeurs, ça donne ça :

1... 0,472 = 5 * r / (1000 + r)

2... 0,472 / 5 = r / (1000 + r)

3... (0,472 / 5) * (1000 + r) = r

4... r * (1 - 0,472 / 5) = (0,472 / 5) * 1000

5... r = 1000 * 1 / (5 / 0,472 - 1)

6... r = 1000 / 5 / 0,528

7... r = 378,79

 

Par contre, déjà, je ne comprends pas ta première ligne.

 



#63 Oracid

Oracid

    Pilier du forum

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

Posté 27 septembre 2022 - 11:05

J'ai fait un test avec une R=10K et C=1u.

L'ondulation est tout à fait acceptable et la tension est d'environ 2.5V.

La vitesse du moteur est largement au-dessus de ce que je souhaite.

Donc ça me parait plutôt, pas mal.

 

Par contre, le moteur "broute" assez souvent au démarrage ou au changement de direction (après arrêt complet) que je fais avec un bouton relié au driver (pas à l'Arduino).

Il me semble que ce "broutage" est dû au fait que ce driver ne gère pas les capteurs Hall.

Mais, de toute façon, avec l'autre driver qui, lui, gère les capteurs Hall, cela arrive également. Alors ?!



#64 dakota99

dakota99

    Habitué

  • Membres
  • PipPip
  • 228 messages
  • Gender:Male

Posté 27 septembre 2022 - 02:55

Bonjour. De mon côté voici ce que j'essaie de faire fonctionner sans grand succès pour l'instant.

J'ai simplement tenté d'appliquer ce que j'ai vu dans ce tuto.

 

Avec ce driver.

 

20220927_151805.jpg

 

Et avec le code ci-dessous.

Objectif faire tourner la roue une fois pendant 3 secondes.

La compilation du programme se passe bien.

Mais rien ne bouge du côté moteur.

 

//#######################################
int els=5;   // EL
int hal=3;   // Signal - Hall sensor
int dir=4;   // ZF
int spd=2;   //VR
//#######################################
int speed1=0;

void setup()
{
Serial.begin(9600);
delay(1000);

pinMode(els, OUTPUT);
pinMode(hal, INPUT);
pinMode(dir, OUTPUT);
pinMode(spd, OUTPUT);

speed1=50;
digitalWrite(els,LOW);
analogWrite(spd,speed1);
delay(100);
digitalWrite(dir,HIGH);
delay(3000);
digitalWrite(els,HIGH);
}

void loop()
{

}

 

 

 



#65 Oracid

Oracid

    Pilier du forum

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

Posté 27 septembre 2022 - 05:16

Je n'ai pas ce driver qui semble être le JYQD-V7.3E2 par JYITECH.

J'ai le ZS-X11B par RioRand qui lui ressemble beaucoup et qui a été remplacé par le ZS-X11H.

J'attends avec beaucoup d'impatience le résultat de tes tests.

As-tu fait le test en manuel ? Je pense qu'il le décrit dans la partie 1.

Il faut peut-être commencer par-là, pour voir si le moteur tourne avant de le tester avec un Arduino.

 

Je suppose que tu veux faire un Forward. 

Regarde ton code, l'ordre des instructions est différent de celui proposé et le premier delay() également.

 
void wheelMoveForward(){
      analogWrite(m1_VR_speed, speed1);
      digitalWrite(m1_EL_Start_Stop,LOW);
      delay(1000);
      digitalWrite(m1_ZF_Direction,HIGH);
      delay(1000);
      digitalWrite(m1_EL_Start_Stop,HIGH);
}


#66 Sandro

Sandro

    Pilier du forum

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

Posté 27 septembre 2022 - 07:10

J'ai utilisé R=1000 ohms

Entre l'entrée potentiomètre et le 5V, j'ai mesuré, V_driver=0.472V

 

Tes calculs:

1...  V_driver = 5V * r/(R+r)

...

Par contre, déjà, je ne comprends pas ta première ligne.

En gros, je fais l'hypothèse (pas forcément correcte, mais c'est la plus simple) que le driver se comporte comme une résistance ® vers la masse.

On obtient donc un diviseur de tension (cf https://fr.wikipedia...seur_de_tension , paragraphe "Principe du diviseur de tension non-chargé", avec R1=R, R2=r, U=5V, U2=V_driver). La première ligne est simplement l'équation du diviseur de tension. La suite, c'est que des maths (on résout l'équation du diviseur de tension avec r comme inconnue)
 


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.


#67 dakota99

dakota99

    Habitué

  • Membres
  • PipPip
  • 228 messages
  • Gender:Male

Posté 27 septembre 2022 - 07:39

Merci Oracid,

 

J'ai fait quelques essais avec le code mais résultat identique.

Oui tu as raison je vais commencer par le test manuel.



#68 Oracid

Oracid

    Pilier du forum

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

Posté 27 septembre 2022 - 08:01

Oui tu as raison je vais commencer par le test manuel.

J'ai fait mes tests sur 2 moteurs, et ils ne fonctionnent pas de la même manière.

Il vaut donc mieux éliminer les problèmes, à la base.



#69 Oracid

Oracid

    Pilier du forum

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

Posté 03 octobre 2022 - 11:46

J'ai fait un câble avec le filtre RC soudé en l'air sur les pins d'un connecteur Dupont.

La résistance de 10K et 1/8W est minuscule et permet une bonne intégration dans le connecteur.

Idem pour le condensateur céramique de 1uF.

 

CableRC-1-S.jpg CableRC-2-S.jpg

 

Bien entendu, cela fonctionne parfaitement. 

Test réalisé avec le driver  ZS-X11F V1 (pas de capteur Hall), ci-dessous.

 

ZS-X11F-V1-S.jpg

 

Je me suis rendu compte qu'en imposant rapidement une tension maximum au démarrage, puis rapidement, la tension désirée, le moteur ne broutait pas.

Pour inverser le sens de rotation, il est nécessaire de stopper le moteur, puis appliquer le changement de direction, et pareil, appliquer une tension maximum suivie de la tension désirée.

Je pense qu'en programmation, cela devrait plus facile que de tourner un potentiomètre à la main.

Bien entendu, le potentiomètre est relié à l'Arduino, pas au driver.

 

J'ai reçu un nouveau driver ZS-X11H V2 (avec capteur Hall), ci-dessous. Je vais le tester avec cette méthode.

 

ZS-X11F-V2-S.jpg



#70 Oracid

Oracid

    Pilier du forum

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

Posté 04 octobre 2022 - 06:13

J'ai testé le driver ZS-X11H V2 (avec capteurs Hall), il fonctionne très bien avec ma commande RC.

 

L'avantage du ZS-X11H V2 (avec capteurs Hall) par rapport au ZS-X11F V1 (pas de capteur Hall), c'est qu'il peut changer de direction, même à grande vitesse, et cela sans "brouter".

Par contre, dans un sens, le bruit de la rotation est doux, alors que dans l'autre sens , c'est plus bruyant.

La chose bizarre avec le ZS-X11H V2 (avec capteur Hall), c'est qu'il faut inverser les connecteurs jaune et vert du moteur sur la carte, sinon cela ne fonctionne pas, mais il ne faut pas inverser les capteurs Hall,

Alors que sur le ZS-X11F V1 (pas de capteur Hall), cette même inversion, change le sens de rotation, ce qui est normal.

Cela vient peut-être du moteur. Je vais tester avec un autre moteur.

 

​Depuis, le début, je me plantais sur le changement de vitesse parce que j'utilisais mal un interrupteur à 3 pattes. Comme quoi, il faut tout vérifier. Le diable se cache dans les détails.



#71 Oracid

Oracid

    Pilier du forum

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

Posté 05 octobre 2022 - 06:42

Mais rien ne bouge du côté moteur.

Jusqu'à aujourd'hui, la rotation du moteur n'était pas vraiment fluide et le changement de direction était chaotique.

J'ai eu la bonne idée de changer l'ordre des 3 fils de l'alimentation du moteur ainsi que les l'ordre des 3 fils des capteurs Hall. Bien entendu, je n'ai pas touché aux + et au -.

Cela fait un paquet de possibilités.

J'ai eu la main verte en trouvant une combinaison qui offrait une rotation dans les 2 sens, vraiment fluide, et changement de direction à pleine vitesse, sans problème.

J'ai cherché une autre combinaison où les 2 sens de rotation du moteur étaient inversés par rapport à la précédente, et je l'ai trouvée assez rapidement.

C'est important, car les moteurs à gauche et à droite d'un robot ne tournent pas dans le même sens.

 

Tout ça pour te dire, qu'il y a effectivement des combinaisons ou le moteur ne tourne pas, mais l'intensité est bien présente.

Je suis en 36V et cela peut monter à 5A, puis ça disjoncte à l'intérieur du moteur. J'ai une pince ampèremétrique.

En tout cas, il faut faire attention. Moi je travaille avec un disjoncteur de 20A.



#72 Oracid

Oracid

    Pilier du forum

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

Posté 11 octobre 2022 - 04:32

Et voilà la vidéo !

Bon, maintenant, il n'y a plus qu'à faire le robot.

 



#73 dakota99

dakota99

    Habitué

  • Membres
  • PipPip
  • 228 messages
  • Gender:Male

Posté 11 octobre 2022 - 08:48

Super Oracid !

Beau travail.

Pour ma part je suis toujours occupé à remplacer une télécommande d'un siège PMR par un Arduino.

J'ai donc laissé un peu de côté le moteur d'hoverboard mais ton succès me pousse à remettre le projet sur la table.

J'ai juste essayé d'inverser les fils jaune vert bleu mais le moteur ne veut décidément pas tourner.

Si j'ai bien compris, le filtre passe bas c'est juste au cas où il faut rendre la rotation plus fluide. Avec le contrôleur sans modif le moteur devrait quand même tourner...

Je vais passer commande pour le même contrôleur que toi ... mais 15 jours de délai ...



#74 Oracid

Oracid

    Pilier du forum

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

Posté 12 octobre 2022 - 08:18

Si j'ai bien compris, le filtre passe bas c'est juste au cas où il faut rendre la rotation plus fluide.

Non, pas du tout !

 

La sortie PWM d'un Arduino, ou autre, est "faussement" analogique.

On peut faire varier la luminosité d'une led, mais en réalité, c'est la persistance rétinienne qui donne cet effet de continuité dans la variation.

On peut également mesurer la tension avec un voltmètre à aiguille, et là, c'est l'inertie de l'aiguille qui donne l'illusion d'une tension analogique. 

Mais si tu testes avec un multimètre numérique, là, cela ne fonctionne plus.

 

Quel est le problème ? Les contrôleurs des moteurs d'HoverBoard sont assez complexes à mettre en œuvre lorsque l'on veut utiliser leur entrée PWM.

Par contre, ils sont assez faciles d'emploi, lorsque l'on utilise leur entrée, potentiomètre.

Que fait ce potentiomètre ? Il fait varier une tension ! Cette tension est bien un signal analogique !

 

L'idée, c'était de convertir un signal PWM en un signal analogique.

Il y a sans doute plusieurs moyens, mais le moyen le plus simple, c'est le Filtre Passe Bas. Merci Partick, merci Sandro.

 

J'utilise donc ce Filtre Passe Bas, à la place d'un potentiomètre.

 

Pour commencer tu pourrais peut-être faire ce montage sur une BreadBoard, avec un Arduino, et le tester avec un voltmètre numérique ou un oscilloscope, si tu en as un.

 

Tu peux parfaitement utiliser le contrôleur que tu as. Dans la première partie de ton tuto de référence à 2'04", il montre comment brancher un potentiomètre.

Il suffit de remplacer ce potentiomètre par une Filtre Passe Bas.

Mais le plus simple pour commencer, c'est déjà de faire tourner ton moteur avec un potentiomètre.

Ici:



#75 dakota99

dakota99

    Habitué

  • Membres
  • PipPip
  • 228 messages
  • Gender:Male

Posté 12 octobre 2022 - 07:45

Merci Oracid pour cette synthèse...

Je n'ai pas le matériel sous la main donc je ne peux pas tester immédiatement mais effectivement d'abord tester avec un pod puis ma carte devrait aussi fonctionner.



#76 Oracid

Oracid

    Pilier du forum

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

Posté 13 octobre 2022 - 06:26

d'abord tester avec un pod 

Petite précision.

Les branchements avec le code de couleurs des fils du moteur ne sont pas les même que ceux indiqués par le fabricant du contrôleur.

De même, avec le code des capteurs Hall qui, dans mon montage, n'est pas en phase avec les fils du moteur. 

Tout ceci est très surprenant, mais pourtant cela fonctionne avec un vieux moteur, celui de la vidéo, mais également avec un moteur neuf.

C'est comme si les fabricants mélangeaient tout volontairement, pour éviter le hacking. Enfin, j'ai un doute.



#77 dakota99

dakota99

    Habitué

  • Membres
  • PipPip
  • 228 messages
  • Gender:Male

Posté 15 octobre 2022 - 02:23

Bonjour

 

J'ai fait le test avec un potentiomètre de 10k mais le moteur fait le mort (ou il est mort)

 

DRIVER.jpg

 

12V entre les bornes 1 et 2

5V entre les bornes 3 et 4

Tension variable de  5 à 0V entre les bornes 4 et 5 (borne 5 = VR)

 

J'ai testé différentes combinaisons pour les 3 fils qui viennent du moteur

Je n'ai pas raccordé les capteurs hall.

Oracid tu avais connecté les capteurs hall pour les tests avec potentiomètre ?



#78 Oracid

Oracid

    Pilier du forum

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

Posté 15 octobre 2022 - 06:25

Oracid tu avais connecté les capteurs hall pour les tests avec potentiomètre ?

Oui, bien sûr ! Tu as les couleurs des branchements dans ma vidéo à 5'03". Vers le bas.

Je ne vois pas le branchement de ton potentiomètre, pourrais-tu élargir ta photo ? Il y a beaucoup de fils, je ne comprends pas, un potentiomètre, c'est 3 fils.

Peux-tu me donner un lien vers la boutique où tu as acheté ce contrôleur ?

 

Tu n'as pas des borniers ? C'est plus simple.

 

Si j'en crois le schéma au milieu de cette page, Contrôleur de moteur sans balais 12V 36V, 500W PWM, Module de panneau de commande pour conducteur de voiture, BLDC | AliExpress , le potentiomètre doit être connecté au +, au GND et au VR.

Est-ce vraiment le cas dans ton montage ?



#79 dakota99

dakota99

    Habitué

  • Membres
  • PipPip
  • 228 messages
  • Gender:Male

Posté 15 octobre 2022 - 08:41

Voici le lien pour le driver

 

https://www.amazon.f...0?ie=UTF8&psc=1

 

Oui ce serait plus simple avec des borniers en effet. Mais je n'en ai pas. C'est aussi pour cela je préfère ta carte  à la mienne.

 

Dans une vidéo j'avais compris que cela pouvait fonctionner sans les capteurs hall. J'ai une seconde carte identique excepté qu'elle n'a pas le connecteur pour les capteurs hall.

 

Je les ai maintenant raccordés et cela fonctionne !!

Quel bonheur de voir cette roue tourner en silence, de manière régulière à la vitesse souhaitée. :)

Je ne m'en lasse pas :)

Etape suivante l'Arduino.

Un grand merci pour ton aide Oracid.



#80 Oracid

Oracid

    Pilier du forum

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

Posté 16 octobre 2022 - 06:39

Quel bonheur de voir cette roue tourner en silence, de manière régulière à la vitesse souhaitée. :)

Bravo !

 

Mais, je veux tout savoir !

Il n'y a pas de bruit ?

C'est fluide ?

Tu as fait le montage du lien que je t'ai proposé ?

Cela m'intéresse de voir comment tu as connecté les capteurs Hall, surtout l'ordre des couleurs.

Juste une photo, sans pastille, mais où on voit bien la couleur des fils. 





Répondre à ce sujet



  


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

0 members, 0 guests, 0 anonymous users