Véhicule RC

PieM

Senior Member
Comme beaucoup de choses dans votre post, vous me faites dire des choses que je n'ai jamais dites.
"Une autre approche serait bêtement d'utiliser un accéléromètre (un seul axe suffit) et de limiter les gaz a une certaine accélération."
"Quand a faire ça avec un Picaxe, ça ne pose guère de problème d'autant qu'un seul axe est nécessaire. Mais il faut un accéléromètre."

ou, quand la mauvaise foi s'ajoute à la condescendance.

PS: concernant votre leçon #230, pour votre info un simulateur de vol ne peut pas être équipé de vérins pneumatiques. Ce sont des vérins hydrauliques commandés par servo valves.
Bien que je puisse vous en donner les raisons techniques d'asservissement, je m'abstiens bien entendu de vous l'expliquer en ce lieu.
 

PieM

Senior Member
@ Jeremy:

tu peux passer le bout de ton programme modifié ?
Comme on ne peut pas connaitre la vitesse instantané du VHL , je pense pas qu'il n'y a pas de solution miracle
ça ne change rien à l'affaire si tu ne peux pas agir dessus par ralentissement ou freinage!
Si tu veux sortir par la bretelle d'autoroute, ce n'est pas parce que tu lis ta vitesse que tu va prendre le virage.
Si tu ne peux pas ralentir, soit tu te retournes, soit tu vas dans le décor parce que la trajectoire n'est pas assurée.
 

dje8269

Senior Member
Oups j'ai oublié de le mettre ;

Code:
[color=Green]'------  Joystick direction    ------[/color]
[color=Blue]if [/color][color=Black]mem_vitesse [/color][color=DarkCyan]= [/color][color=Navy]0 [/color][color=Blue]then
      if [/color][color=Black]vm_moteur [/color][color=DarkCyan]> [/color][color=Navy]230 [/color][color=Blue]then
            [/color][color=Black]V_dir_min [/color][color=DarkCyan]= [/color][color=Navy]90
            [/color][color=Black]V_dir_max [/color][color=DarkCyan]= [/color][color=Navy]210
      [/color][color=Blue]else
            [/color][color=Black]V_dir_min [/color][color=DarkCyan]= [/color][color=Navy]60
            [/color][color=Black]V_dir_max [/color][color=DarkCyan]= [/color][color=Navy]240
      [/color][color=Blue]end if
end if

if [/color][color=Black]mem_vitesse [/color][color=DarkCyan]= [/color][color=Navy]1 [/color][color=Blue]then
      select case  [/color][color=Black]vm_moteur
            [/color][color=Blue]case [/color][color=DarkCyan]> [/color][color=Navy]200
                  [/color][color=Black]V_dir_min [/color][color=DarkCyan]= [/color][color=Navy]130
                  [/color][color=Black]V_dir_max [/color][color=DarkCyan]= [/color][color=Navy]170
            [/color][color=Blue]case [/color][color=DarkCyan]> [/color][color=Navy]170
                  [/color][color=Black]V_dir_min [/color][color=DarkCyan]= [/color][color=Navy]100
                  [/color][color=Black]V_dir_max [/color][color=DarkCyan]= [/color][color=Navy]200
            [/color][color=Blue]else
                  [/color][color=Black]V_dir_min [/color][color=DarkCyan]= [/color][color=Navy]80
                  [/color][color=Black]V_dir_max [/color][color=DarkCyan]= [/color][color=Navy]220
      [/color][color=Blue]end select
end if

select case [/color][color=Black]V_dir                         [/color][color=Green]' Point milieu = de 126-130
      [/color][color=Blue]case [/color][color=DarkCyan]= [/color][color=Navy]0                            [/color][color=Green]' vers la droite = du PM a 221-222  valeur a envoyer de 150 a 240
            [/color][color=Black]V_dir [/color][color=DarkCyan]= [/color][color=Navy]150                   [/color][color=Green]' vers la gauche = du PM a 28-29    valeur a envoyer de 150 a 60
      [/color][color=Blue]case [/color][color=DarkCyan]> [/color][color=Navy]132                          
            [/color][color=Black]V_dir [/color][color=DarkCyan]= [/color][color=Black]V_dir [/color][color=DarkCyan]+ [/color][color=Navy]18 [/color][color=DarkCyan]max [/color][color=Black]V_dir_max    
      [/color][color=Blue]case [/color][color=DarkCyan]< [/color][color=Navy]126
            [/color][color=Black]V_dir [/color][color=DarkCyan]= [/color][color=Black]V_dir [/color][color=DarkCyan]+ [/color][color=Navy]24 [/color][color=DarkCyan]min [/color][color=Black]V_dir_min
      [/color][color=Blue]else
            [/color][color=Black]V_dir [/color][color=DarkCyan]= [/color][color=Navy]150[/color]
[color=Blue]end select

hi2cout [PLAIN][[/PLAIN][/color][color=Black]SD_20[/color][color=Blue][PLAIN]][/PLAIN][/color][color=Black],[/color][color=Navy]18[/color][color=Black],[/color][color=Blue]([/color][color=Black]Vm_moteur,V_dir,V_dir[/color][color=Blue])                        [/color][color=Green]' Envoi des donnees au SD20   [/color]
 

dje8269

Senior Member
mem_vitesse , est la recopie du flag de vitese . ( falg que j'utilise pour m'assurer du passage de vitesse et non un parasite)

Code:
[color=Green]' Ordre de passage de vitesse[/color]
[color=Blue]if [/color][color=Black]flag_Vitesse [/color][color=DarkCyan]<> [/color][color=Black]Mem_Vitesse [/color][color=Blue]then       [/color][color=Green]' Compare flag des vitesses a la valeur enregistee
      [/color][color=Blue]inc [/color][color=Black]Compt_Vitesse                   [/color][color=Green]' incremente un compteur il faut 3 tours pour valider la valeur
            [/color][color=Blue]if [/color][color=Black]Compt_Vitesse [/color][color=DarkCyan]>= [/color][color=Navy]3 [/color][color=Blue]then
                  gosub [/color][color=Black]Vitesse           [/color][color=Green]' Si les 3 tours sont valides on va changer les differentiels
            [/color][color=Blue]end if
else
      [/color][color=Black]Compt_Vitesse [/color][color=DarkCyan]= [/color][color=Navy]0                   [/color][color=Green]' Si la valeur n'as pas changee on efface le compteur [/color]
[color=Blue]endif[/color]
C'est ce que j'écris en EEPROM , a chaque changement de vitesse . Il s'agit donc de la valeur de la vitesse qui est enclenchée ;

a 0 on est en petite vitesse
à 1 on est en grande vitesse .

PS : Aprés reflexion, j'ai bien une solution . Radicale !!! ; mais qui me plait .

EN fait la grande vitesse , comme dis précédemment , est quasi inutile , car trop rapide . elle peut éventuellement servir quand on veut aller vite sur une très grande ligne droite . Mais ebn aucun cas, pour aller doucement . Je vais donc d'emblée limitée le debattement en grande vitesse, même si l'on va tout doucement .

Si la personne me dis qu'en allant doucement il peut pas tourné , je lui répondrai qu'il a cas passé en petite vitesse vu qu'il va doucement ! . ca me parait logique en plus . la grande vitesse n'est pas fais pour aller doucement;
 

PieM

Senior Member
OK.

mais prends l'habitude d'utiliser des bits pour les flags, afin de ne pas utiliser de la mémoire inutilement.
Ce n'est pas le mieux de travailler en limitation avec les max et les min, car on perd de la sensibilité.
Il est préférable de travailler avec un coef qui s'applique à l'amplitude de la direction autour du neutre:
La commande direction c'est quelquechose en plus ou en moins de 150, ce quelquechose étant fonction de la vitesse.

Le passage vitesse se fait en roulant ?
 

dje8269

Senior Member
mais prends l'habitude d'utiliser des bits pour les flags, afin de ne pas utiliser de la mémoire inutilement.
Oui mais b0 et b1 sont déjà utilisé pour les TOR , je n'ai donc plus de champ de bits de disponible , enfin je crois ?

Le passage vitesse se fait en roulant ?
Non, le passage de vitesse immobilise le VHL, afin de soulager la mécanique .

Ce n'est pas le mieux de travailler en limitation avec les max et les min, car on perd de la sensibilité.
Oui , j'en suis conscient

Il est préférable de travailler avec un coef qui s'applique à l'amplitude de la direction autour du neutre:
La commande direction c'est quelquechose en plus ou en moins de 150, ce quelquechose étant fonction de la vitesse.
Oui c'est clair .
La difficulté réside dans le fait que la commande de direction est déjà soumis a une mise a l'échelle , pour atteindre les valeures adéquates . il faudrait donc faire une mise à l'échelle de la mise à l'échelle . Déjà qu'avec une j'y arrive pas , alors deux ......
 

PieM

Senior Member
Oui mais b0 et b1 sont déjà utilisé pour les TOR , je n'ai donc plus de champ de bits de disponible , enfin je crois ?
tu disposes de b2 et b3 aussi soit 32 bits au total.

pour atteindre les valeures adéquates . il faudrait donc faire une mise à l'échelle de la mise à l'échelle .
ça se résume à une seule mise à l'echelle, sans multiplier tests et calculs.
 

dje8269

Senior Member
tu disposes de b2 et b3 aussi soit 32 bits au total.
Ok je le saurai pour la prochaine fois .

ça se résume à une seule mise à l'echelle, sans multiplier tests et calculs.
..... Oui .....

Bon je viens de re-refaire des tests . Je valide , que je bride totalement le débattement quand on est en grande vitesse . a fond ou au ralenti , si on est en grande vitesse on presque pas tourné . Ainsi j'evite les accidents , et les tracas de programmation . lol .
 

PieM

Senior Member
Bon je viens de re-refaire des tests . Je valide , que je bride totalement le débattement quand on est en grande vitesse . a fond ou au ralenti , si on est en grande vitesse on presque pas tourné . Ainsi j'evite les accidents , et les tracas de programmation . lol .
Il faut être conscient que c'est un pis-aller que de brider l'angle de braquage! car si un obstacle imprévu surgit pas certain de pouvoir l'éviter !

Si tu dois dans l'avenir avoir un engin lourd et rapide, il faut impérativement qu'il soit équipé d'un système de freinage/ralentissement indépendant de celui du contrôleur de moteur.
Il me semblait avoir lu que le fait de couper le moteur permettait un ralentissement rapide suffisant pour éviter le salto avant du freinage.
 

BESQUEUT

Senior Member
A priori un pilote qui aborde un virage va :
- freiner pour avoir une vitesse compatible avec la courbe a engager,
- braquer au maximum possible en entrée de courbe,
- a partir du point de tangence intérieur, accélérer en redressant progressivement la direction.
Techniques-de-pilotage ou [URL="http://www.pilotedudimanche.net/virages-trajectoire.html]"virages-trajectoire[/URL]
A priori, si on freine après avoir tourné les roues, on part dans le décor...
 
Last edited:

dje8269

Senior Member
Si tu dois dans l'avenir avoir un engin lourd et rapide, il faut impérativement qu'il soit équipé d'un système de freinage/ralentissement indépendant de celui du contrôleur de moteur.
Pour parler avenir proche, tout dépendras de mon prototype . S'il séduit, il servira de base, a la création d'un vrai drone, avec beaucoup plus d'argent engagé . Mais on en est encore pas la . Même si je sais déjà ce que je ferais ( vehicule 6 roues avec motoreducteur)

Il me semblait avoir lu que le fait de couper le moteur permettait un ralentissement rapide suffisant pour éviter le salto avant du freinage.
il faut distinguer deux choses ; le roue libre et le freinage !

En vitesse max (grande vitesse), si on bascule la commande en arrière pour freiner , il fait salto; pas bien
En vitesse max (grande vitesse), si on relâche la commande seulement, pour ce mettre au point mort, son propre poids le ralenti assez bien . certes une fois le principal ralenti , un petit freinage manque mais bon .

Yes BESQUEUT , c'est vrai ;

Mais il faut bien distinguer pilotage réel , et pilotage d'un UGV en immersion . Il n'est pas possible de voir la courbe d'un virage a l'avance, on s'en aperçois qu'une fois dedans; la camera se trouve a 15cm du sol ! Le reflex naturel, démontre qu' a l'arrive sur un virage on lache les gaz avant de tourner ;
 

PieM

Senior Member
Le reflex naturel, démontre qu' a l'arrive sur un virage on lache les gaz avant de tourner ;
Bien entendu, et c'est pour cela que cette manoeuvre peut déclencher automatiquement un système de ralentissement/freinage (mecanique ou électromagnétique)
passage marche AR : frein (si c'est le même type de conrôleur moteur)
retour au neutre: ralentissement.
 

dje8269

Senior Member
Bonjour à tous,

Alors j'ai eu des réponses sur la toile concernant la vidéo . Il semble pas possible , de mettre la vidéo seulement en ligne , sans pouvoir l'enregistrer, ou alors ce serais une usine a gaz ; Donc ce cas de figure je vous propose de ma la demander en MP , si vous etes interresser et je vous l'enverrai un mail avec la vidéo ; Bien sur merci de la garder pour vous ! des fois que quelqu'un veille me copier .
 

dje8269

Senior Member
Bonsoir à tous ,

Je tiens très sincèrement à remercier tout les protagonistes , qui m'ont aidés , dans la réalisation de ce projet . sans vous c'était clairement impossible, et la dessus internet et vraiment génial ;

Avec une grosse mention pour PieM et BESQUEUT , merci pour votre patience , et vos compétences sont toutes simplement énormes ;

Après moultes tests , j'ai enfin finis par rendre mon projet , sur Powerpoint pour le moment .

Autant vous dire que c'est un véritable succés au delà de mes espérences ; tellement bien qu' aussitot sortis de la réunion au m'as demandé d'effectuer un devis pour un produit plus finis . Alors la où on aurais pus croire que l'aventure s'arrête , en fait elle démarre .

La portée de 500m est largement dépassée. En terrain découvert on couvre 800m facilement, c'est l'émetteur radio qui ne suit pas ; et non la vidéo comme on aurait pus le croire .

Sans nous lancés des fleurs , on est bien au dessus des UGV que l'on trouve ici par exemple ou encore la

Mais comme je l'ai expliqué au dessus de moi , ce VHL est un prototype , servant de base et de référence de test , pour ce rendre compte des nombreuses difficultés et problématiques rencontrées , et les améliorations futures à apportés .

Je peut d'ores et déjà vous parlez de tout ça . mais ce fera l'objet d'un autre sujet ; qui repousse les limites encore et encore !

A faire à suivre .
 
Last edited:

PieM

Senior Member
Bravo Jeremy; toutes mes félicitations.
Ta ténacité est venue à bout des embûches nombreuses dans ce genre d'exercice.
Pour le prochain, pense à réfléchir (beaucoup) avant de te lancer dans un quelconque achat et, stp, chiade ton cahier des charges pour qu'il soit le plus exhaustif possible. C'est un préliminaire... qui limitera les déboires éventuels avec ton donneur d'ordre.
 

dje8269

Senior Member
Merci PieM, pour ton message, sache que ça me touche.
J'ai déjà posé sur papier le cdc. Mais je le peaufine encore et encore .jy ai d'ailleurs travailler tout ce weekend .
Mais je reste persuadé d'un truc, cest qu'il faut toujours savoir s'adapter à la situation , et essayer qu'autant de faire ce peu , d'anticiper .
 
Top