Marche AV, marche AR

L’espace pour parler de tout ce qui concerne la propulsion de nos modèles
Avatar de l’utilisateur
oniff
Messages : 186
Inscription : 07 mars 2011 20:00
Localisation : Rennes

Re: Marche AV, marche AR

Message par oniff »

No, désoler je n'ai pas de référence, je les avait prélevés de radiocommande d'hélico RC.
Image
Image
Image
Avatar de l’utilisateur
Geeks
Messages : 3593
Inscription : 03 juil. 2010 21:04
Localisation : Brive la Gaillarde (Correze 19)

Re: Marche AV, marche AR

Message par Geeks »

Ok, donc tu utilise le même système que moi.

Bon, tu remarquera que la mesure ne va pas jusqu'au bout et qu'avec de telle commande, le neutre est pas tout juste. Mais ça fonctionne. :Up:

Donc, tu va devoir faire:
- Soit un rattrapage numérique des valeurs. Il te suffira de faire une séquence: Pousser le manche en avant, prise de la valeur -> stockage -> mise à 0. Idem en arrière et pour chaque commande
- Soit un rattrapage électronique des valeurs. Soit un simple potar qui viendra rattraper tout ça.
- Soit un trim qui viendra changer la position des potars.

Moi j'utilise le dernier cas mais chu un peu déçu avec cette méthode de trim. Je vais, je pense coller les trims et passer au trim numérique....
A défaut d'avoir la science infuse, j'infuse la science. - Racleur de fond depuis Pons 2014.
Sous-marin en état de repos sur cale : Minimog 01
Avatar de l’utilisateur
oniff
Messages : 186
Inscription : 07 mars 2011 20:00
Localisation : Rennes

Re: Marche AV, marche AR

Message par oniff »

Ok, pour les joysticks c'est plutôt une bonne nouvelle :Up:
J'en ai démonté un pour voir en pensant gagner un peu de rotation sur le potentiomètre et éventuellement changer sa position, mais non la course du potard est identique que monté avec le manche. La valeur reste bien sur identique. Donc je pense avoir recours à la solution n°1.

Pour en revenir au multiplexage, je crois avoir trouver un truc tip-top: http://mchobby.be/PrestaShop/product.php?id_product=72
Avatar de l’utilisateur
Geeks
Messages : 3593
Inscription : 03 juil. 2010 21:04
Localisation : Brive la Gaillarde (Correze 19)

Re: Marche AV, marche AR

Message par Geeks »

Oui.

Une solution, aussi est de faire un test au démarrage et de prendre la valeur manche en position centrale comme le 90°.

Ainsi, si ton 90 vaut 300 sur l'un et 310 sur l'autre, ils vaudrons 90° dans tous les cas. Seul les extrêmes changent.

Un 90°-90° = 0 donc si t'a 300- mini théorique = 0 théorique.

Après pour les mixages, c'est une autre paire de manche, la dans ce domaine, c'est pas gagner !
A défaut d'avoir la science infuse, j'infuse la science. - Racleur de fond depuis Pons 2014.
Sous-marin en état de repos sur cale : Minimog 01
Avatar de l’utilisateur
Geeks
Messages : 3593
Inscription : 03 juil. 2010 21:04
Localisation : Brive la Gaillarde (Correze 19)

Re: Marche AV, marche AR

Message par Geeks »

Oh t'inquiète, tu va vite y arrivé :lol:

Bon, c'est vrai que mon explication n'est pas clair. Je suppose que tu va utiliser une fonction map(). Pour être exact elle transforme toute valeur entre deux extrême par d'autres valeurs. Une tension en angle par exemple. Fonction map().

Si je fais un "map(0, 1023, 0, 180);" je vais donc assigner toute valeur entre 0 et 1023 pour 0 à 180°. Ainsi, si j'ai 1023/2 = 511,5, j'obtiendrais 90°. Si j'ai 0, j'obtiendrais 0° et enfin, si je pousse à 1023, j'aurais 180°.

Tu remarquera que les angles sont exploitable directement par des servomoteurs car si j'ai 0°, l'impulsion PWM sera de 1ms toute les 20ms et si je me retrouve avec 90°, j'ai une impulsion de 1.5ms toute les 20ms et enfin si j'ai 180°, j'ai 2ms toute les 20ms. :Up:

Donc, si je résume vite paf tu va créer le code suivant un pseudo code similaire à celui que je vais te donner:

Code : Tout sélectionner

//Loop() //Début de boucle
   //Faire l'aquisiton Analogique -> Numérique (via le CAN)
   //Faire le calcul de valeur (via map())
   //C'est ici que tu gèrera les cas particuliers. Si il se passe ça... enfin les if(), for()...
   //J'ai des angles, je les fournis en sortie sur la PWM (1ms à 2ms)
   //Pause 20ms (on peut faire moins, j'arrive perso à faire tourné les servos sur 5ms sans problème)
//Boucler
Une technique qui fonctionne très bien et qui puis est est très pratique. C'est l'emploie de tableau. Mettons que j'ai 6 servos à piloter. Je génère un tableau de 6 valeurs. A ce moment la, une boucle fort de 0 à 5 (oui, 6 valeurs quoi) permet de rentrer toute les données. Une autre boucle fort permet d'en écrir les sorties. Mais là, on en reparlera quand on en sera à la simplification de ton programme. Si tu fais une petite recherche vite paf sur le net, "boucle for() arduino" tu devrais avoir déjà des indiscations.

J'espère que je ne vais pas trop vite. Si c'étais le cas, je baisserais le curseur d'un cran :mrgreen:
A défaut d'avoir la science infuse, j'infuse la science. - Racleur de fond depuis Pons 2014.
Sous-marin en état de repos sur cale : Minimog 01
Avatar de l’utilisateur
oniff
Messages : 186
Inscription : 07 mars 2011 20:00
Localisation : Rennes

Re: Marche AV, marche AR

Message par oniff »

Merci Geeks,
Non ça va tes explications sont clair. :Up: et ça me rassure cette fonction "map"
Par contre pour la carte, je vais commander une Méga 2560 R3, ce sera plus simple pour moi. Elle dispose d'un nombre d' entrées analog/PWM et numériques sans avoir à rajouter de shield ou de multiplexeurs ect... Et niveau tarif, cela me coûtera au final moins cher de la prendre qu'une R3 Uno et les autre composants.
Voila déjas pour les potentiomètre joysticks d' entrées analog, tout à l'air de passer, et il me reste 3 entrées analog pour le coups.
Image
Et après réflexion, je disposerais de cette carte en surface donc pas de souci d'encombrement. Éventuellement les ponts H, variateur et batteries seront dans le submersible.
Bon, je vais déjas commander touts les moteurs, servos, Leds, carte méga, ext... afin de disposer de tout mes éléments à contrôler...
Avatar de l’utilisateur
Geeks
Messages : 3593
Inscription : 03 juil. 2010 21:04
Localisation : Brive la Gaillarde (Correze 19)

Re: Marche AV, marche AR

Message par Geeks »

Un conseil, place tes leds sur les ports numéro 22 à 53. Gaffe les deux dernières broches sont des GND. Des masses, dans le jargon GRounD. :Up:

Ainsi tu va libéré tes ports analogiques ;)

Gros +1 pour la 2560 qui est très bien. Gros espace de stockage et puis beaucoup de port. Mais valable que si tu a la place. Moi, dans nombre de mes projets, je prévoie de miniaturisé donc je vais pas avoir le choix... Je pense à la nano voir à d'autres type de carte.

Super que tu ai compris mes explications. Je suis désolé je m'emballe vite quand il faut parler code. M'enfin, à titre d'exemple, ça te donne la voie à suivre :lol:
A défaut d'avoir la science infuse, j'infuse la science. - Racleur de fond depuis Pons 2014.
Sous-marin en état de repos sur cale : Minimog 01
Avatar de l’utilisateur
oniff
Messages : 186
Inscription : 07 mars 2011 20:00
Localisation : Rennes

Re: Marche AV, marche AR

Message par oniff »

Geeks a écrit :Un conseil, place tes leds sur les ports numéro 22 à 53
Je peux mettre les potards des LEDs sur du digital? Ou juste les LEDs en sorties?

J'avais pas vu, sur mon schéma, j'ai zappé la A7. Léger décalage, je m’arrête à A11.
Geeks a écrit : Gros +1 pour la 2560 qui est très bien. Gros espace de stockage et puis beaucoup de port. Mais valable que si tu a la place. Moi, dans nombre de mes projets, je prévoie de miniaturisé donc je vais pas avoir le choix... Je pense à la nano voir à d'autres type de carte.
La carte, je ne vais pas la mettre dans le rov, en sois que ce soit:

commandes___________________________cable_______________________________arduino/Composants/Batteries/ROV
commandes/arduino____________________cable_______________________________Composants/Batteries/ROV

L'un dans l'autre, je pense que ce soit du pareil au même.
Au moins si j'ai un souci d'étanchéité je pourrais préserver la carte.
Si il faut impérativement que la carte soit embarquée, je peut toujours modifier la structure du ROV donc pas de souci.
J’espère juste que les signaux passeront, c'est du 5Volt c'est ça? Je ne peux pas mettre des condensateurs ou quelque chose dans le ROV pour que le signal soit certain de passer ou réduire le temps de réponse. Pi-être il y aura 100M de cable...
Les composants prévus dans le ROV (emabrquer) J'ai 1 variateur, les doubles ponts H et batteries 12V qui seront dans un caisson étanche et autres si il faut.
Geeks a écrit :Super que tu ai compris mes explications. Je suis désolé je m'emballe vite quand il faut parler code. M'enfin, à titre d'exemple, ça te donne la voie à suivre :lol:
C'est tip top, j'arrive à suivre ;)
Avatar de l’utilisateur
Geeks
Messages : 3593
Inscription : 03 juil. 2010 21:04
Localisation : Brive la Gaillarde (Correze 19)

Re: Marche AV, marche AR

Message par Geeks »

Alors il faut retenir plusieurs choses sur les GPIO (C'est le nom donné aux ports d'entrées "Input" et sorties 'Output").

Si tu a une valeur pouvant allé entre GND "Le ground, 0V" et le VCC "+5v", tu dois utiliser un port analogique en ENTREE.
Si tua une valeur numérique, comprise entre GND et VCC, tu peux utilise sans problème un port analogique en ENTREE et un port numérique en ENTREE.

Si tu veux faire marché une ampoule (5v on a pas mais on fera comme si c'étais une charge quelconque), alors tu peux faire varier en toute logique un port analogique (je dit ça mais pour le coup, j'ai pas essayer car je reste le plus possible sur du numérique). Là le mode SORTIE est tout indiqué.

En revanche, pour une diode, le mieux c'est la sortie digitale. Car elle ne sait pas faire de valeur intermédiaire entre GND et VCC. C'est soit GND, soit VCC. mais voila, moi je sait faire varier l'intensité d'une diode ou d'une charge avec une sortie numérique. Mais alors comment ?

Très simple, avec de la PWM. Si tu fais varier le rapport entre le temps GND et le temps VCC, tu en résulte une tension intermédiaire dépendante de ta charge. En gros, c'est pas l'intensité qui est ici changé, mais bien la quantité d'énergie dans le temps.

Si j'écris:

Code : Tout sélectionner

//Loop()
   //Mettre à VCC
   //Delay(5) //Pour 5ms
   //Mettre à GND
   //Delay(20) //pour 20 ms
//Boucler
Alors je ne fourni du jus (5V) pendant 5 millisecondes toutes les 20 millisecondes.

Si j'écris:

Code : Tout sélectionner

//Loop()
   //Mettre à VCC
   //Delay(20) //Pour 20ms
   //Mettre à GND
   //Delay(5) //pour 5ms
//Boucler
Alors je ne fourni du jus (5V) pendant 20millisecondes toutes les 5 millisecondes.

Dans le premier cas, je fais pas beaucoup éclairer. Dans le second cas beaucoup. Le rapport à changer. C'est sur ce principe qu'avec un pont en H on fait varier la vitesse de rotation d'un moteur. C'est aussi pour ça qu'il joue de la musique, car il couine à l'oscillation donné du rapport de hachage. En d'autres terme, tout variateur électronique moderne fait cela. Même un bon vieux variateur de chez robbe de type navi.

Par contre, ce que je dis là est très théorique. Notamment dans la mesure ou je n'ai pas traiter de la Force Electro-Motrice qui est donné par le moteur lorsque on a un effort donné. De la même façon le rapport n'est plus le même, la courbe n'est plus aussi carré quand on alimente une bobine (un moteur quoi) que si c'est une charge de type ampoule (résistif).

Dernier point. Ne t'amuse pas à alimenter une ampoule de 5V en direct. Tu dépasserais de beaucoup la capacité en milliampère du port et tu risque sa destruction.

Pour moi LED = port numérique en SORTIE. Potar = port analogique en ENTREE.

En espérant que ce petit cours sur la modulation, les ports ne soit pas trop lourd à digéré.
A défaut d'avoir la science infuse, j'infuse la science. - Racleur de fond depuis Pons 2014.
Sous-marin en état de repos sur cale : Minimog 01
Répondre