Aller au contenu


bubu17

Inscrit(e) (le) 21 janv. 2023
Déconnecté Dernière activité avril 24 2024 07:47
-----

#119618 Robot suiveur de fil

Posté par bubu17 - 11 octobre 2023 - 12:44

Bonjour

 

j'ai une tondeuse robot qui utilise un fil périmétrique, je me suis inspirer du site Ardumover. il faut absolument une boucle pour que le générateur fonctionne.

mais je pense qu'il est facile d'inclure 2 points en ligne droite dans une boucle.

 

wiki.ardumower.de/index.php?title=Hauptseite




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

Posté par bubu17 - 22 avril 2023 - 09:35

Bonsoir,

consigne+=inc;
      if (consigne >= 800) {inc = -1;}
      if (consigne <= 15) {inc =  1;}

j'ai rajouter ce bout de code pour faire une rampe d'accélération jusqu'à 800 tr/mn et ensuite ralentir jusqu'à 15tr/mn.

le pid a bien suivi jusqu'à 500tr/mn, ensuite la somme des erreurs étant au maximum je n'est pas atteint les 800tr/mn.

c'était pour voir , je l'est transformer pour faire une rampe d'accélération pour ma tondeuse, à chaque départ et manœuvre.

 

              if (consignemoteur < 32){                          // rampe d'accélération

                  consignemoteur+=inc;                           //incrémente de 1 à chaque boucle

                   }

 

dans le code la consigne moteur sera à 18 , et montera à 32.

 

​la dernière ligne

err = consigne - rpm; // pour le proportionnel

c'est le calcule de l'erreur: la ligne est mal écrite, la consigne n'est pas la même que les 3 lignes au dessus, il faut écrire:

                  err = consigemoteur - rpm;

 

consignemoteur = vitesse demandé        entre 18 vitesse minimum et 32 maximum(pour ma tondeuse)

rpm = vitesse réelle.

 

 

concernant ta lecture de la log,

Tu as un écart entre la consigne (Target_Hz) et la mesure (Hall_Hz).

​ce n'est pas le pid qui doit être = à la consigne mais le (Hall_Hz)

je trouve que Hall_Hz et pid varie trés peu avec l'effort

 

je ne comprend pas les différences de valeurs entre ton moteur et le mien 

à 32 tr/mn le pid est à10-11 à vide et avec effort je monte à 50

​peut-être le contrôleur moteur?? 

 

 

             :

 

Et bien l'utilisation de 3 potentiomètres pour paramétrer Kp, Ki et Kd est vraiment une excellente solution.

Voici mon code qui est inspiré de vos conseils :

Spoiler

 

Et voici la log :

Spoiler

 

Comme vous pouvez le constater, le pid_Hz est très proche de Target_Hz (la consigne).

C'était bien l'objectif à atteindre. Et cela, même lorsque je freine fortement la roue avec ma main gantée.

On s'aperçoit du freinage, lorsque Hall_Hz passe de 31Hz à 30Hz. Et malgré tout, pid_Hz reste très proche de la consigne, Target_Hz.

 

Néanmoins :

- je ne comprends pas la valeur de Hall_Hz.

- la somme des erreurs rSum est instantanément au maximum, 1000. Et donc, la valeur de Ki*rSum est constante.

- à mon avis, Kd n'a aucune incidence.

 

Bubu, pourquoi dans ton code tu fais :

      consigne+=inc;
      if (consigne >= 800) {inc = -1;}
      if (consigne <= 15) {inc =  1;}
      err = consigne - rpm; // pour le proportionnel
 

 

 




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

Posté par bubu17 - 15 avril 2023 - 06:42

pour que la lecture fonctionne, il faut que la roue tourne

essaie de la lancer à la main, si ca ne marche pas essai d'enlever la securité; " if (freq > 800) ...

remet dans le serial la lecture de newtick et prevtick pour les controller




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

Posté par bubu17 - 15 avril 2023 - 08:29

Bonjour

 

j'ai essayer ton code et modifier plusieurs fois sans succès,

donc je suis reparti de mon code en reprenant au maximum tes données , il fonctionne bien pour la parti effort, moins bien pour le freinage.

je n'ai pas de bouton, la consignemoteur donne la vitesse cible:

 

     actuellement  30 tr/mn

     fréquence de 20-22hz

     rpm mesuré  29-31tr/mn

     pid (pwm) 11-14

     vitesse(roue de 10 pouce) 1,5 km/h

 

je ferais une copie du sérial plus tard(j'ai un RDV)   

Fichier(s) joint(s)




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

Posté par bubu17 - 25 janvier 2023 - 09:28

La tondeuse travail en aléatoire sur une surface délimité par un filtre périmétrique,

le capot sert de parechoc frontal et latéral pour dévier la tondeuse à droite ou à gauche

 

le capot  est en plastique d'une citerne récupérer, former au décapeur thermique et souder au fer à souder

 

le pwm pour la ligne droite est asservie par un pid (voir le code que j'avais joint dans mon premier message) à améliorer

actuellement je limite le pwm max à 70.

avant cela la tondeuse suivait tous les défaut de la pelouse et s'arrêtait sur la première difficulté.

 

actuellement mon problème est le manque d'adhérence des roues (6,5 pouces)

les roues patines sur les racines apparentes des arbres ou dans un trou.

je pense installer des pneus plus grand.

 

avec sa batterie (29,4V et 8,8Ah) elle travaille 2H30, le challenge sera de la faire rentrer toute seule pour se recharger.




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

Posté par bubu17 - 23 janvier 2023 - 10:44

voici le lien pour voire la vidéo sur youtube:

 




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

Posté par bubu17 - 23 janvier 2023 - 07:09

voici deux photos de ma tondeuse

 

 

tondeuse 1.jpg

 

 

tondeuse 2.jpg

 

 

hier j'ai fait une video de 3mn52 : 479 Mo .

je n'arrive pas à l'envoyer: je la sélectionne dans choisir une pièce jointe

je clic sur joindre ce fichier, l'ordinateur travail pendent 30mn et puis il affiche: erreur aucun fichier n'a été sélectionné pour être envoyer .  comment faut-il faire? 




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

Posté par bubu17 - 21 janvier 2023 - 11:10

Bonjour à tous

je bricole un robot tondeuse avec des moteurs d'hoverboard.

le moteur envoie 90 impulsions par tour (haute et basse )

je les compte avec des interruptions et régule la vitesse par un pid

code en pièce-jointe

Fichier(s) joint(s)