Go Down

Topic: Signal Rx pour l'arduino (Read 1 time) previous topic - next topic

RoToRx88

Bonjour à toutes et à tous,

Voilà, je me présente, je suis nouveau sur ce forum, je suis en classe de Terminale S SI, et j'ai donc un projet à élaborer durant toute mon année.
Je suis actuellement en charge de la partie électronique et surtout logiciel de mon projet, qui consiste à créer une fonction de parck automatique pour une voiture RC.

Je m' explique; Une rangée de voitures sont positionnées le long d'une route, et il y a une place. Je pilote donc ma voiture radiocommandé avec la radio, puis, au moment ou je vois une place, je m'arrête un peu avant, et enclenche un mode automatique, et la voiture va alors détecter si la place disponible est suffisante ou si elle ne l'est pas. Dans le second cas, elle fera clignoter une led rouge, tendit que dans le cas ou il la place est suffisante, elle entamera le séquence de parck.
Pour commander mon servo de diréction, et mon moteur, j'utilise la librairie Servo.h, pas de problème en théorie. ( oui j'ai pas entamé les tests, que je vais faire à la rentrée )

Cependant, pour capter les signaux radio, et interpréter ce que dis le Rx aux différentes entrées de la carte arduino, bah je sais vraiment pas comment faire. J'ai fouiné sur le web, partout ou je pouvais, mais je ne comprend pas bien comment faut-il faire. Je suis encore débutant dans ce domaine donc vu la compéxité de la chose,trame ppm etc..., je pensais prendre un code existant et m'en inspirer.

Voilà, j'espère avoir été asses clair, donc si quelqu'un peux me dire comment interpréter les signaux d'un Rx pour faire varier par exemple l'angle d'un servo, je vous en serai reconnaissant.

Bonne soirée,
RoToR

UniseV

#1
Mar 03, 2013, 11:51 pm Last Edit: Mar 04, 2013, 12:01 am by UniseV Reason: 1
Si tu débute complètement à ce niveau, il faut déjà que tu intègre bien ce qu'est un signal servo :

C'est la durée du créneau "haut" qui donnera l'angle du servo :
1ms = A fond à gauche
1.5ms = Au milieu
2ms = A fond à droite

Il se trouve sur le fil blanc de la prise servo.

Pour débuter, je te conseille d'essayer de capter les différents signaux de ton Rx à l'aide de la commande pulseIn().
Ca devrait te permettre de débuter sereinement sans trop de complexité ;)

EDIT : Un vieux bout de code qui traînait...
Code: [Select]
      Ch1Pos = pulseIn(2, HIGH, 20000);
     Ch2Pos = pulseIn(3, HIGH, 20000);
     Ch3Pos = pulseIn(4, HIGH, 20000);


Ici, je mesurais 3 canaux, branché sur les PIN 2,3 & 4 de l'arduino.
La commande pulseIn me renvoyait des milli-secondes, donc le résultat devait être entre environ entre 1000 & 2000 (avec une position milieu à environ 1500)
20000 c'est le timeout de la fonction en micro-secondes, si au bout 20ms le signal n'est pas HAUT, la commande redonne la main.
EN: Libraries are my Gurus, they make me believe anything they want !
FR: Les librairies sont mes gourous, elles me font croire ce qu'elles veulent !

skywodd

Bonjour,

Tu perdrais moins de temps à faire ta propre télécommande avec un nRF24L01, un joystick et une seconde carte arduino que d'essayer d'interpréter des signaux de contrôle dont le format t'est inconnu.

Pour la mesure de distance tu as prévu quoi comme capteurs ?
Tu doit pouvoir utiliser des capteurs infrarouge Sharp moyennant un bon positionnement dans les coins de la voiture.
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

UniseV

#3
Mar 05, 2013, 10:44 am Last Edit: Mar 05, 2013, 10:51 am by UniseV Reason: 1

Tu perdrais moins de temps à faire ta propre télécommande avec un nRF24L01, un joystick et une seconde carte arduino que d'essayer d'interpréter des signaux de contrôle dont le format t'est inconnu.


Je ne suis pas de cet avis, l'avantage des signaux servo, c'est qu'il sont standardisé et connus, on peut ainsi interfacer facilement tout équipement RC (servo, contrôleur de moteur, récepteur...).

Je pense qu'il y a moins de travail à développer un programme qui écoute et numérise les signaux, plutôt que de concevoir la liaison dans sa globalité.

La librairie servo est un exemple d'interfaçage standard, et elle suffit dans bien des cas.

EDIT :  En revanche, je suis le premier à dire qu'il faudra changer ce standard qui commence à être dépassé  ;)
EN: Libraries are my Gurus, they make me believe anything they want !
FR: Les librairies sont mes gourous, elles me font croire ce qu'elles veulent !

skywodd


Je ne suis pas de cet avis, l'avantage des signeaux servo, c'est qu'il sont standardisé et connus, on peut ainsi interfacer facilement tout équipement RC (servo, controleur de moteur, récepteur...).

Est-ce qu'il est sûr que sa télécommande sort un signal RC "standard" ?
Si oui d'accord c'est la meilleur solution, sinon faut connaitre la forme du signal et voir comment il réagit.

Si c'est une voiture RC "grand publique" ya des chances que le contrôleur soit un truc made in chinois avec un circuit de sonnette de porte :smiley-roll:
(oui ça sent le vécu)
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Go Up