Radio-commander un camion minier

Tout ce qu'il faut savoir pour radio-commander vos modèles de voitures, robots, tractopelle, etc..
Avatar du membre
marc80
Modérateur
Modérateur
Messages : 424
Enregistré le : 27 juil. 2020, 14:22
Localisation : 80500 Montdidier

Radio-commander un camion minier

Message par marc80 »

Le camion minier se trouve ici : https://meccanocreations.fr/viewtopic.php?f=20&t=744&p=7376#p7376

Voilà le schéma de la partie Commande du camion minier. On y voit :
  • La carte Roméo sur la quelle sont câblés les moteurs d'entrainement du camion et de la benne. Les broches 3 à 6 sont réservées au contrôleur moteur interne et ne sont pas utilisables.
  • La carte Contrôleur moteur qui entaine le moteur de direction. cette carte est reliée sur les broches 2 et 3 de la carte Roméo (une broche par sens de rotation. La broche permettant un pilotage à vitesse variable n'est pas câblée.
  • La batterie qui alimente la partie puissance des 2 cartes. Un strop et posé sur la carte Roméo pour permettre l'alimentation de l'électronique à partir de l'alimentation de puissance. un interupteur permet de couper l'alimentation
  • Le récepteur Radio, alimenté à partir de la carte Roméo. 4 signaux "servomoteurs" sont raccordé à la carte Roméo sur les entrées analogiques A1 à A4, utilisées en tant qu'entrées numériques D15 à D18
  • Un interrupteur 3 positions, dont le point central est connecté à la masse. Les 2 autres broches sont connecté ax entrées 9 et 10 de la carte Roméo
  • Un fin de course permet de détecter la position basse de la benne pour arrêter le moteur. Il est cablé sur la broche 8
  • les 2 fins de courses de la direction cablés sur les broches 2 et 3
  • L'entrée A1 a été utilisée pour un potentiomètre de test qui finalement s'est avéré inutile.
Camion minier.png

Cela nous donne le câblage suivant :D0    Réservé communication TX USB
  • D1    Réservé communication RX USB
  • D2    Fin de course direction gauche
  • D3    Fin de course direction droite
  • D4    Contrôle Moteur 2 (intégré) Monte et baisse benne
  • D5    PWM moteur 2 (intégré)
  • D6    PWM moteur 1 (intégré) Avance / Recul
  • D7    Contrôle Moteur 1 (intégré)
  • D8    Fin de course benne
  • D9    Interrupteur 1 Bas
  • D10   Interrupteur 1 Haut
  • D11   Contrôle Moteur 3 (externe)
  • D12   Contrôle Moteur 3 (externe)
  • D13   Led intégrée
  • A0 / D14  Potentiomètre (pour test)
  • A1 / D15  Canal 1 Direction récepteur télécommande
  • A2 / D16  Canal 2 avance Recul
  • A3 / D17  Canal 3 Benne
  • A4 / D18  Canal 4 (inutilisé)
  • A5 / D19
  • A6
  • A7 5 boutons sur DFR Duino V1
 
Pour la programmation, je procède toujours par étapes. Je teste d’abord chaque fonction individuellement, puis je fais l’assemblage de tous les éléments pour réaliser le programme final.
Dans ce cas, voilà la liste des programmes :
  • Etape 1 : Test Carte et Entrées sorties hors moteurs :
    • Blink : programme clignement Led intégrée. Contrôle que la carte fonctionne
    • Inter_led : Allumage / extinction de la led par l'un ou l'autre sens de l’interrupteur.
    • Inter H_led : Allumage / extinction de la led par l’interrupteur en position haute (vérifie que l’interrupteur est dans le bon sens).
    • Boutons_carte_DFRDuino (inutile, mais permet aussi de contrôler que la carte fonctionne normalement) Utilisation des 5 boutons de la carte DFRDuino, sur entrée analogique A7.
    • FdC_led : Teste le fin de course benne : Extinction Led sur appui du FdC de la benne
    • FdC_direction_led : Allumage Led par appui sur un des FdC de direction. Affichage sur écran du sens détecté
  • Etape 2 : Test et réglage des moteurs
    • Contrôle Moteur 1 - Benne : Commande par interrupteur. Contrôleur moteur intégré. 2 sorties - Arret sur FdC en position basse
    • Contrôle Moteur 2 – Moteur Roues : Commande par interrupteur. Contrôleur moteur intégré. 2 sorties
    • Contrôle Moteur 3 – Direction : Commande par interrupteur. Contrôleur moteur externe, sans variation de vitesse. Interrupteur haut = Droite – Interrupteur bas = Gauche - Arrêt sur Fin de course correspondant
  • Etape 3 : Contrôle de la radiocommande et calibrage
    • Lecture 4 servos : Programme téléchargé tel quel sur Internet, simplement adapté en fonction des entrées utilisées et du nombre de canaux (pourquoi se casser la tête quand d'autres ont déjà fait le boulot). Pour la radio commande de la photo ( Radiocommande MHD6S 2,4 GHz), les Valeurs obtenues sont :
    • Canal 1 : 1160-1500-1855     joystick horizontal droit
    • Canal 2 : 1110-1500-1845     joystick vertical gauche
    • Canal 3 : 1040-1995             joystick vertical droit - signal continu, pas de point milieu
    • Canal 4 : 1130-1500-1830    joystick horizontal droit
  • Etape 4 : Programme complet
    • Pilotage Camion - Commande du camion par la radiocommande
      • intégration d'un test bloquant les signaux su la radiocommande est éteinte)
      • Avance et recul à partir du canal 2
      • Direction à partir du canal 1
      • Monte et baisse de la benne à partir du canal 3 et de l'interrupteur (permet de lever et baisser la benne, même si la radiocommande est inactive).
Les programmes principaux de l'étape 1 sont là :
inter_Led.zip
interH_Led.zip
FdC_Led.zip
Fdc_Direction_Led.zip

Voir le message suivant pour la suite.


 

Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Bon Meccano à tous ! :020:  Marc
 

Avatar du membre
marc80
Modérateur
Modérateur
Messages : 424
Enregistré le : 27 juil. 2020, 14:22
Localisation : 80500 Montdidier

Re: Radio-commander un camion minier

Message par marc80 »

Un programme est réalisé pour chaque moteur, en fonction du contexte du modèle .
Le programme de base est dans cet autre sujet : https://meccanocreations.fr/viewtopic.php?f=9&t=230&start=16

Je ne détaille ici que les spécificités de la partie active du programme. Les parties déclaratives, initialisation et impression de contrôle sont adaptées en fonction des variables de cette partie active. les impressions de controle se font sur le moniteur série (Voir découverte Arduino Platine de controle.

Moteur 1 (benne) :
moteur 1.png
Une variable complémentaire utilisée : fin de course. Ce contact est "normalement fermé" est connecté à la masse, il est donc dans un état "LOW" quand la benne n'est pas en appui sur le châssis (Au niveau arduino, il vaut mieux contacter par défaut tous les interrupteurs et Fin de course à la masse).
La consigne n'est pas variable est fixée à 1024.

la ligne suivante :
"else if ((marcheB == LOW) && (findecourse == LOW))"
indique que pour le moteur fonctionne, il faut que l'interrupteur soit activé en position basse et que le fin de course soit non activé pour que le moteur fonctionne. "&&" signifie ET en arduino.

Moteur 2 (Avance / Recul):
moteur 2.png
Rien de particulier par rapport au programme standard. La consigne est fixée aussi, car vu la vitesse du véhicule, la variation de vitesse n'apporte pas grand chose.


Moteur 3 : (direction)
moteur 3.png
pour le moteur 3, les 2 sens sont controlé par la position des fin de courses, comme la descente de la benne

Décodage RadioCommande :

Le programme permettant de décoder et calibrer la radio commande est un programme téléchargé sur Internet, utilisant la notion "d'interruption", pour calculer le temps de l'impulsion destinée au servo moteur est en déduire une consigne. celui ci gère 4 voies.
Il utilise 2 librairies qui doivent etre présente dans le sous dossier 'libraries" du répertoire où sont stocké les programmes.
Je ne vais pas chercher à le détailler ici (beau mal de crane en perspective :020: .
Il faut juste modifier les #define pour les donner les broches utilisées ici 15 à 18).

Pour le faire fonctionner, il faut activer le moniteur Série. Il faut positionner alternativement les manettes de la radiocommande en position extrême et entrer "p" dans le formulaire de saisie du moniteur et taper sur la touche "entrée" du clavier :
moniteur.png

les programmes :
controle_moteur_1_benne.zip
controle_moteur_2_roues.zip
controle_moteur_3_direction.zip
Lecture_4_Servos.zip

Cette approche par étape décrite plus haut facilite le travail de création des programmes. En cas d'anomalie de fonctionnement, il suffit de charger, via la prise USB les différents programmes de test pour identifier le composant qui pose problème. C'est pour cela qu'en expo, j'ai toujours un ordinateur portable avec tous les programmes (un peu comme les consoles de test qu'utilises nos garagistes maintenant).
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Bon Meccano à tous ! :020:  Marc
 

Avatar du membre
marc80
Modérateur
Modérateur
Messages : 424
Enregistré le : 27 juil. 2020, 14:22
Localisation : 80500 Montdidier

Re: Radio-commender un camion minier

Message par marc80 »

Le programme complet, par assemblage des 4 programmes précédants :
Pilotage_Camion.zip

Dans le cas de ce modèle, vu le poids et la faible vitesse des mouvements, je n'utilise pas de vitesse variable.
Au niveau de la radiocommande, un premier test vérifie qu'il n'y a pas de consigne anormale, ce qui peut être le cas quand la radio commande est éteinte. Une des valeurs peut être trop basse (inférieure à 900 - généralement, la consigne du dernier levier actionné).
Par expérience, ce test est impératif :

2021-03-15_20-34.png

Comme, il n'y a pas de variation de vitesse, je me contente de tester les consignes moteur par rapport à un seuil et à appliquer directement la valeur maximale aux sorties moteur.

2021-03-15_20-35.png
2021-03-15_20-36.png
 
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Bon Meccano à tous ! :020:  Marc
 

Avatar du membre
Suzimentvotre
Membre Expérimenté
Membre Expérimenté
Messages : 265
Enregistré le : 10 oct. 2020, 20:30

Re: Radio-commender un camion minier

Message par Suzimentvotre »

Wahou !!!  :003:

Avatar du membre
BB2906
Membre Confirmé
Membre Confirmé
Messages : 195
Enregistré le : 28 sept. 2020, 18:04
Localisation : Meurthe et moselle
Contact :

Re: Radio-commander un camion minier

Message par BB2906 »

Bonjour Marc , super boulot   Bravo

J'aurai cependant quelques questions , c'est absolument sans critique mais c'est pour comprendre ...
Dans ton premier .ino inter_led pourquoi tu n'utilise pas input_pullup dans l'affectation de la broche plutôt que de déclarer un
 digitalWrite(interH, HIGH);
D'autant que tu parles d'un forçage au niveau bas des fins de course et autres  ?

Cordialement

Bernard
Mon site de construction simulateur de vol : https://tabar57.blog4ever.com/
 

Avatar du membre
marc80
Modérateur
Modérateur
Messages : 424
Enregistré le : 27 juil. 2020, 14:22
Localisation : 80500 Montdidier

Re: Radio-commander un camion minier

Message par marc80 »

Je n'utilise pas input_pullpup, simplement parce que je ne connaissais pas l'instruction. Elle permet de gagner une ligne de programme pour le même travail. toutes mes entrées utilisent ce pull up (gorçage à 5 Volts, si le contact est ouvert.

Pour les fin de courses, j'ai utilisé le contact "normalement fermé" et une des bornes de chaque fin de course est à la masse.
Donc, si le fin de course est en place et qu'il n'est pas activé, j’aurai la valeur LOW et le moteur pourra fonctionner.
Par contre, si le le capteur est activé, absent ou débranché, j'aurais la valeur HIGH qui interdit le fonctionnement du moteur.

 
Bon Meccano à tous ! :020:  Marc
 

yvespetit86
Membre Expérimenté
Membre Expérimenté
Messages : 389
Enregistré le : 30 août 2020, 17:37
Localisation : Migné-Auxances

Re: Radio-commander un camion minier

Message par yvespetit86 »

Bonsoir Marc,

Je n'ai pas tout lu, mais quel travail! J'appréhende devant l'utilisation du joystick pour commander quatre moteurs...
Bonne fin de journée- A suivre- Yves

Répondre