radiocommander avec arduino

Modérateur : Anim'Elec

Répondre
cedreatlas
Coursier local
Coursier local
Messages : 9
Enregistré le : 09 sept. 2016, 22:42
Numéro de département : 11
Pays : F

radiocommander avec arduino

Message par cedreatlas »

Bonjour
Je me fabrique un petit chenillard pour monter un broyeur, cette machine sera commandée par des distributeurs hydrauliques qui seront eux même commandés par des servo moteurs, pour une raison qui m'est inconnue, les servomoteurs type robot (non modelisme) achetés pour aller de 0 à 180° ne vont que de 0 à 90° avec une radiocommande et impossible de régler les paramètres de la radio, par contre, je contate qu'avec arduino, et un programme copié-collé (car je suis débutant en arduino), ces mêmes servo se déplacent à 180°, mon souci est de relier l'emeteur rc à l'arduino et de lui faire un programme pour le commander, il y a 7 commandes hydrauliques, plus démareur, préchauffage, caméra..
y a t'il des programmateurs en language C++?
Avatar du membre
thetux
Chauffeur sympa
Chauffeur sympa
Messages : 491
Enregistré le : 24 juil. 2012, 21:25
Pays : B
Localisation : Andenne
A remercié : 7 fois
A été remercié : 41 fois

Re: radiocommander avec arduino

Message par thetux »

Salut,

si les servos ne vont que de 0 à 90, alors qu'ils vont de 0 à 180 avec l'arduino, c'est juste une question de signal. Si tu programmes ta radio (si elle le permet) pour aller de 0 à 180°, tu auras le même résultat.

Tu peux placer un arduino entre le récepteur et les servos. Tout le jeu consiste à lire l'entrée, la transformer (pour aller de 0 à 180 plutôt que de 45 à 135°), et l'envoyer au servo. Ce n'est pas bien compliqué si tu as quelques notions de programmation et d'anglais:

http://rcarduino.blogspot.be/2012/04/ho ... draft.html
http://www.benripley.com/diy/arduino/th ... h-arduino/
https://www.arduino.cc/en/Tutorial/PWM

Si le broyeur est une machine autonome, tu peux le faire avec l'arduino et des senseurs d'entrée, sans RC.

Si tu as besoin de plus d'aide, n'hésites pas, j'ai déjà programmé l'un ou l'autre arduino ;-)

Bon travail, Nicolas.
cedreatlas
Coursier local
Coursier local
Messages : 9
Enregistré le : 09 sept. 2016, 22:42
Numéro de département : 11
Pays : F

Re: radiocommander avec arduino

Message par cedreatlas »

salut
Merci pour ta réponse;
ma radio radio turnigy 9xr ne me permet pas de changer l'angle de ces servos car ce sont des servos de robot, plus résistants pour mon bricolage, mais diférents de autres servos, point de vue signal; je suis débutant en arduino, je sais téléverser, changer les angles, du basic, mais quasiment nul point de vue programmation ..Je ne sais pas non plus comment brancher l'arduino et le recepteur.
j'ai besoin de:
préchauffage moteur TOR ,
démarreur TOR,
élargissement des voies TOR ,
avance chenille gauche ANA ,
avance chenille droite ANA,
balance moteur ANA,
moteur hydraulique broyeur ANA ,
relevage broyeur ANA,
déplacement latéral broyeur ANA,
accélérateur ANA ,
après je verais bien une caméra orientable donc ANA ,
et peut être une inclinaison automatique du moteur ;
le tout en 2.4gh ,12 v , j'ai déja le transfo 12-7.5volt pour les servos digitaux, ma turnigy n'est pas adaptée pour cet engin, je vais m'en servir pour m'entrainer..

une petite vidéo de cette machine:
https://www.youtube.com/watch?v=cvSzrUO1Ywk


Philippe
Avatar du membre
stephd
Garagiste en chef
Garagiste en chef
Messages : 5492
Enregistré le : 21 févr. 2006, 06:23
Numéro de département : 60
Pays : F
Localisation : Dans l'oise derriere mon PC
A remercié : 520 fois
A été remercié : 120 fois
Contact :

Re: radiocommander avec arduino

Message par stephd »

va voir là j'ai expliqué comment récupérer une information depuis un récepteur.
viewtopic.php?f=413&t=17056&start=30

L'approche est la suivante.
tu câbles le récepteur de tel façon a voir un signal sur l'arduino peut importe la voie.
ensuite l'information que tu as récupérés tu la lis avec le serial.
tu mets au neutre tu lis la valeur
tu fais de même en course basse et haute et tu relèves la valeur.
tu vas donc avoir 3 valeurs. après en créant une fonction mathématique tu va donc corréler les valeurs d'entrées avec les valeurs de sorties pour la commande du servo dans sa course totale ;)

commence par faire une lecture serial relève les valeurs et revient nous les communiquer.

peux tu aussi nous communiquer le bout de code avec la définition des variables qui est censé actionner ton servo.
A Tantôt... ;) vive le jus de fraise
cedreatlas
Coursier local
Coursier local
Messages : 9
Enregistré le : 09 sept. 2016, 22:42
Numéro de département : 11
Pays : F

Re: radiocommander avec arduino

Message par cedreatlas »

bonsoir
après avoir télécharger le code, j'ai à 9600 baud:

je doit Aatre au neutre
le manche est en bas
..
..etc..

je n'ai pas le controle des manettes de la radio..et aucune valeur!
Avatar du membre
stephd
Garagiste en chef
Garagiste en chef
Messages : 5492
Enregistré le : 21 févr. 2006, 06:23
Numéro de département : 60
Pays : F
Localisation : Dans l'oise derriere mon PC
A remercié : 520 fois
A été remercié : 120 fois
Contact :

Re: radiocommander avec arduino

Message par stephd »

peux tu faire une photo de ton câblage stp? ou un schéma comme tu as câblé?
A Tantôt... ;) vive le jus de fraise
cedreatlas
Coursier local
Coursier local
Messages : 9
Enregistré le : 09 sept. 2016, 22:42
Numéro de département : 11
Pays : F

Re: radiocommander avec arduino

Message par cedreatlas »

bonjour
je re essaye ce matin avec un autre programme que j'ai "modifié", et j'obtiens les 3 valeurs que voici
manette en :
haut: 1965
milieu: 1338
bas: 979
cedreatlas
Coursier local
Coursier local
Messages : 9
Enregistré le : 09 sept. 2016, 22:42
Numéro de département : 11
Pays : F

Re: radiocommander avec arduino

Message par cedreatlas »

et voici le code que j'ai utilisé:
/On utilise 2 voies sur le récepteur de radiomodélisme 2.4Ghz
// Ch1 = STeering (volant) pilotage gauche/droite avec un servomoteur
// Ch2 = THrottle (gachette de puissance) régler la vitesse de moteur
// Ch3 non utilisé par la télécommande à 2 cannaux
//========================================================
int ch1; // Nos deux cannaux de RC
int ch2;

void setup() {
//Relier les masses du récepteur et de l'arduino, et

pinMode(6, INPUT); // ch2 sur Arduino pin6 THrottle
Serial.begin(9600);

}

void loop() {
//Pulsin n'est pas très optimisé mais ça fonctionne
//Signaux de largeur modulée (1ms à 2ms) sur cycle 20ms
//Donc 1000 microsec = zéro, 2000 micsec = max et 1500 = neutre

ch2 = pulseIn(6, HIGH, 25000); // Lire ch2



Serial.print(" Ch2 = ");
Serial.println(ch2);

delay(100); //Petit delai

}
Avatar du membre
stephd
Garagiste en chef
Garagiste en chef
Messages : 5492
Enregistré le : 21 févr. 2006, 06:23
Numéro de département : 60
Pays : F
Localisation : Dans l'oise derriere mon PC
A remercié : 520 fois
A été remercié : 120 fois
Contact :

Re: radiocommander avec arduino

Message par stephd »

Ok maintenant sans faire appel a la télécommande, si tu veux actionner ton servo, par le code pour tester quel serait le programme, pour le mettre au neutre, puis ouvert a 180 ° dans un sens et aussi dans l'autre sens ? qu'avais tu testé?
A Tantôt... ;) vive le jus de fraise
cedreatlas
Coursier local
Coursier local
Messages : 9
Enregistré le : 09 sept. 2016, 22:42
Numéro de département : 11
Pays : F

Re: radiocommander avec arduino

Message par cedreatlas »

ça ne fonctionne pas avec ce programme, j'ai donc mis un autre progrmme, et toujours rien.
/*
Commande de servo-moteur par impulsion
Nanomaître 2015
Le servo est connecté au pin 8 de l'arduino
*/
int periode=20000;// période entre chaque début d'impulsion en microsecondes
int pinServo=8; // variable pour le pin connecté à la commande du servo

void setup() {
pinMode(pinServo,OUTPUT);// on prépare le pin en mode OUTPUT
digitalWrite(pinServo,LOW); // on l'initialise à l'état bas
}

//boucle principale
void loop() {
for (int angle=0;angle<=180;angle+=20){//on fait varier l'angle de 0 à 180° par tranche de 20°
setAngle(angle);// on appelle la fonction setAngle définie plus bas
}
}

//fonction setAngle pour envoyer les impulsions
void setAngle(int a){
int duree=map(a,0,179,1000,2000);// on transforme l'angle en microsecondes et on stocke dans la variable duree
digitalWrite(pinServo,LOW);//on met le pin à l'état bas

// la boucle qui suit est nécessaire
// pour laisser le temps au servo d'aller à sa position
for (int t=0;t<300;t++){
digitalWrite(pinServo,HIGH);// on envoie l'impulsion
delayMicroseconds(duree); // pendant la bonne durée
digitalWrite(pinServo,LOW); // on stoppe l'impulsion
delayMicroseconds(periode-duree); // on attend le temps restant pour atteindre la période
}
}
cedreatlas
Coursier local
Coursier local
Messages : 9
Enregistré le : 09 sept. 2016, 22:42
Numéro de département : 11
Pays : F

Re: radiocommander avec arduino

Message par cedreatlas »

ha, si, avec la masse branchée ça fonctionne, mais rien dans le serial
Répondre

Retourner vers « le fabuleux destin de l'Arduino »