Utiliser un arduino pour autopiloter mon contrôleur

Modérateur : Dehas

Avatar du membre
crtleroy
Messages : 6
Enregistré le : lun. 31 juil. 2017 14:24
Réputation : 0

Utiliser un arduino pour autopiloter mon contrôleur

Message non lu par crtleroy »

Salut tout le monde,


Je bosse sur un octocopter, que je voudrais faire contrôler par un arduino. Mon idée est donc de ne pas utiliser une radiocommande mais d'embarquer mon arduino mega 2560 dans mon drone, et de le faire "passer" pour un recepteur RC ! Je précise que mon flight controller est un SP Racing F3 et j'utilise cleanflight.


Donc, plus précisément, je voudrais que mon arduino imite un récepteur en envoyant des signaux PWM dans les entrées RC de mon contrôleur de vol. Le premier truc à faire est donc déjà de connaître la nature des signaux PWM à la sortie d'un récepteur classique, chose que j'ai trouvée ici : http://diydrones.com/forum/topics/pwm-o ... m-receiver" onclick="window.open(this.href);return false;
A priori la commande PWM va de 1ms à 2ms sur une période totale de 20ms, pour un récepteur Spektrum classique. Je suppose donc qu'il me suffit de générer le même signal pour simuler une radiocommande. Ce qui me rassure pour la forme de l'onde c'est la nature de la commande sur cleanflight, qui va de 1000 à 2000 : il s'agit donc de 1000μs à 2000μs, c'est sûrement ça.

Donc, je génère un signal PWM de cette nature avec ce code Arduino très très simple :


void setup()
{
pinMode(13, OUTPUT);
}

void loop()
{
digitalWrite(13, HIGH);
delayMicroseconds(1300);
digitalWrite(13, LOW);
delayMicroseconds(20000 - 1300);
}

et je connecte la masse de l'arduino à l'entrée masse du récepteur (pin 1 de la broche IO-1 sur le SP F3) et la pin 13 de l'arduino sur n'importe laquelle des chaînes RC du contrôleur (j'ai tout essayé, pin 3, 4, etc, c'est à dire le throttle, les AUX, tout).

Bref, là, a priori j'envoie un signal PWM comme le récepteur est censé le faire. J'ouvre cleanflight et je regarde la commande sur les chaîne et rien du tout :( Elles sont toutes bloquées à 1500 comme d'hab. pourtant je pense avoir envoyé un signal de 1300...

Alors voilà, est ce que quelqu'un s'est déjà amusé à faire ça ? Ou s'y connaitrait un peu mieux que moi en PWM ou en communciation RC ? Je ne sais plus trop quoi faire :(

Votre soutien sera le bienvenu :) Merci d'avance !

Corentin


Avatar du membre
Crisssss
Tricopter
Messages : 113
Enregistré le : sam. 3 juin 2017 13:21
Réputation : 0
Localisation : Neuville sur Ain

Re: Utiliser un arduino pour autopiloter mon contrôleur

Message non lu par Crisssss »

Un signal pwm sert a controler une seule voie il me semble..
C'est plutot un signal ibus ou sbus que tu devrais generer ;)


Youtube : https://www.youtube.com/user/vidalcris/" onclick="window.open(this.href);return false;
Thingiverse : https://www.thingiverse.com/Vidalcris/about" onclick="window.open(this.href);return false;
Shops : https://www.shapeways.com/designer/vidalcris/creations" onclick="window.open(this.href);return false;
https://www.shapeways.com/shops/superfa ... christophe" onclick="window.open(this.href);return false;
Avatar du membre
furynick
Administrateur du site
Messages : 2754
Enregistré le : mer. 5 févr. 2014 13:46
Réputation : 5
Localisation : Portet-sur-Garonne
Contact :

Re: Utiliser un arduino pour autopiloter mon contrôleur

Message non lu par furynick »

Utilises les pin PWM de ton arduino, ça sera déjà beaucoup plus pratique à coder.
Ensuite, la pin13 c'est la LED, mieux vaut éviter de l'utiliser.
Enfin, c'est particulièrement scabreux comme projet ... autant programmer directement le vol automatique sur le contrôleur sans quoi il te faudra coder le support d'une centrale inertielle tout comme un FC. Tu te retrouverais donc avec un FC complet qui pilote un FC.


Image Bourdons.fr
Tx:Taranis+ & T6J
Yon²:Talon v2, E600, 14x4.7, X2&M8N, APM3.2, T-2D, H3+S, X8R
Rēsu:ZMR 250, RCX10, 5x3, Naze32, X4R
Akuro:F450, Afro slim, 9x5 tri, X2&M8N, APM3.2, X4R
Avatar du membre
crtleroy
Messages : 6
Enregistré le : lun. 31 juil. 2017 14:24
Réputation : 0

Re: Utiliser un arduino pour autopiloter mon contrôleur

Message non lu par crtleroy »

furynick a écrit :autant programmer directement le vol automatique sur le contrôleur sans quoi il te faudra coder le support d'une centrale inertielle tout comme un FC. Tu te retrouverais donc avec un FC complet qui pilote un FC.
Alors non en fait, je ne compte pas remplacer mon contrôleur de vol, je me rends bien compte que ce serait tordu. Non, ce que je veux faire c'est juste remplacer la radiocommande par une commande externe automatisée et embarquée. Par exemple, pour écrire une chorégraphie, actionner les servos au bon moment, et plus généralement robotiser le drone.

A vrai dire je compte aller encore plus loin puisque je voudrais en fait effectivement avoir une radiocommande, mais dont le récepteur est branché sur l'arduino. Ce qui me permet de piloter directement en bypassant les informations ou d'actionner à tout moment un pilote automatique programmable à souhait. Finalement le contrôleur de vol reste toujours le pilote, mais l'arduino est un copilote.


Avatar du membre
crtleroy
Messages : 6
Enregistré le : lun. 31 juil. 2017 14:24
Réputation : 0

Re: Utiliser un arduino pour autopiloter mon contrôleur

Message non lu par crtleroy »

furynick a écrit :Ensuite, la pin13 c'est la LED, mieux vaut éviter de l'utiliser.
Oh et effectivement sur les arduino les pins à utiliser de préférence sont les 3, 5, 6, 9, 10, et 11;
Mais là je travaille avec un arduino Mega donc ça devrait fonctionner de la pin 2 à 13 et 44 à 46 :) (https://www.arduino.cc/en/Reference/AnalogWrite)

Bon en revanche , je me suis rendu compte que j'utilisais digitalwrite() au lieu d'analogwrite()... Donc voilà j'ai de quoi réessayer ce soir j'espère que ça fonctionnera :)


Avatar du membre
crtleroy
Messages : 6
Enregistré le : lun. 31 juil. 2017 14:24
Réputation : 0

Re: Utiliser un arduino pour autopiloter mon contrôleur

Message non lu par crtleroy »

Crisssss a écrit :Un signal pwm sert a controler une seule voie il me semble..
Alors oui, et pour l'instant ce que j'essaye de faire c'est de générer plusieurs PWM pour contrôler tous mes canaux.

Mais effectivement je considère carrément l'idée de générer un signal PPM, qui pourra contrôler mes 8 canaux avec une seule voie :).


Avatar du membre
furynick
Administrateur du site
Messages : 2754
Enregistré le : mer. 5 févr. 2014 13:46
Réputation : 5
Localisation : Portet-sur-Garonne
Contact :

Re: Utiliser un arduino pour autopiloter mon contrôleur

Message non lu par furynick »

Je ne pense pas que tu puisses piloter un FC en pré-programmant des séquences de commande pour la simple et bonne raison que le milieu dans lequel l'appareil évolue et totalement instable.

Actionner la commande de roulis de 15% pendant 1s n'aura jamais le même effet.


Image Bourdons.fr
Tx:Taranis+ & T6J
Yon²:Talon v2, E600, 14x4.7, X2&M8N, APM3.2, T-2D, H3+S, X8R
Rēsu:ZMR 250, RCX10, 5x3, Naze32, X4R
Akuro:F450, Afro slim, 9x5 tri, X2&M8N, APM3.2, X4R
Avatar du membre
crtleroy
Messages : 6
Enregistré le : lun. 31 juil. 2017 14:24
Réputation : 0

Re: Utiliser un arduino pour autopiloter mon contrôleur

Message non lu par crtleroy »

Je suis bien d'accord ! L'idée n'est pas vraiment de donner toute la main à un arduino pour le pilotage. C'est d'utiliser l'arduino, avec davantage de capteurs, pour réaliser des séquences plus compliquées. Par exemple pour larguer un colis, arrivé proche de la cible, l'arduino prend le relais, pour un atterrissage difficile, il prend le relais, pour une manoeuvre d'évitement automatique s'il y a un obstacle, il prend le relais, etc :) A côté de ça c'est la possibilité d'activer des modes de vols via l'arduino, ou même d'armer/désarmer via arduino, donc ça veut dire que je peux l'armer avec mon téléphone aussi (ce n'est qu'un exemple pour montrer l'ouverture que ça apporte)

Je note que l'implémentation de lois de commande et de correcteurs pour une stabilisation externe du drone ne me fait pas vraiment peur (et non, ce n'est pas une stabilisation en "plus" de celle du correcteur de vol, c'est simplement celle que l'on fait avec nos mains quand on pilote par exemple. notre cerveau dirige naturellement nos pouces pour stabiliser le drone, même s'il est déjà censé être stable)

Bref, et quoi qu'il en soit j'ai réussi hier soir à générer du PPM pour contrôler 8 canaux avec une seule voie :). Du coup j'ai le contrôle sur 8 canaux directement depuis l'arduino. Je le mettrai en bypass pour piloter à la main et je m'occuperai d'implementer d'autres choses plus tard ! ais bon en tout cas ça a marché, c'est bon ;)


Avatar du membre
bruno
Pilote toutes catégories
Messages : 1820
Enregistré le : mar. 15 avr. 2014 11:39
Réputation : 1
Localisation : Créteil (94)

Re: Utiliser un arduino pour autopiloter mon contrôleur

Message non lu par bruno »

Y-a sylvain qui avait fait un gros travail déjà viewtopic.php?f=80&t=14875

Les modos: Désolé pour le déterrage ... mais Bruno is back :33:


Avatar du membre
Dehas
Administrateur du site
Messages : 16171
Enregistré le : ven. 3 juin 2011 12:50
Réputation : 5
Localisation : Saint Dié des Vosges
Genre :
Contact :

Re: Utiliser un arduino pour autopiloter mon contrôleur

Message non lu par Dehas »

Et content de te revoir [yahoo.gif]


Avatar du membre
klmnl
Pilote toutes catégories
Messages : 873
Enregistré le : lun. 6 mai 2013 19:28
Réputation : 1
Localisation : Nice MAC Nice

Re: Utiliser un arduino pour autopiloter mon contrôleur

Message non lu par klmnl »

crtLeroy bonjour.
Va voir ici
viewtopic.php?f=10&t=22444
Ne concerne qu'un seul canal.
Mais éducatif tout de même.
Larguer un colis (une grenade par exemple), c'est facile : interruption de l'alimentation d'un électro aimant.
Éviter un obstacle, c'est plus dur. Furynic a déjà abordé le chapitre difficulté.
Arduino embarqué te permettra des choses simples, mais va probablement nécessiter son alimentation séparée.
Cdlt
PS va voir un site qui s'appelle locoduino (loco, comme locomotive) : un passionné d’Arduino et de modélisme ferroviaire. Beaucoup de choses à apprendre y compris des trucs un peu hard comme les timers.


Avatar du membre
azbloc
Pilote toutes catégories
Messages : 2152
Enregistré le : lun. 13 juil. 2015 22:51
Réputation : 2
Contact :

Re: Utiliser un arduino pour autopiloter mon contrôleur

Message non lu par azbloc »

content de te lire ici Bruno ;)


VENDU :perv: Vend valise de transport étanche grand volume, idéal multi-rotors ou RC. 50 €

Un petit TILT pou le rRaid Handbike Via Rhôna A.L.A.R.M.E. 2017 :arrow: :arrow: TILTER ICI! :)
Avatar du membre
guiss
Bicopter
Messages : 12
Enregistré le : mar. 24 mars 2020 13:14
Réputation : 0
Genre :

Re: Utiliser un arduino pour autopiloter mon contrôleur

Message non lu par guiss »

Salut

Je déterre un peu ton post, mais as tu réussi a programmer ton arduino pou piloter ton contrôleur?

Je suis intéressé par ton projet.


Avatar du membre
burna
Messages : 2
Enregistré le : mer. 12 oct. 2022 14:27
Réputation : 0
Genre :

Re: Utiliser un arduino pour autopiloter mon contrôleur

Message non lu par burna »

salut Bruno, c'est Burna qu'est ce que tu deviens ? :96:
Je me suis aussi lancée dans un drône et j'ai besoin de conseil.
J'aimerai contrôler mon drône (controleur de vol f55 A pro II) grâce à un arduino pour lui donner des instructions de types fait un vol stationnaire à un mètre du sol.
Grosses bises mes bichons :97:


Avatar du membre
mlebret
Octocopter
Messages : 574
Enregistré le : sam. 9 mars 2013 11:27
Réputation : 5
Localisation : Sud Quimper

Re: Utiliser un arduino pour autopiloter mon contrôleur

Message non lu par mlebret »

burna a écrit : mer. 12 oct. 2022 14:35f55 A pro II
La référence que tu donnes et celle d'un ESC?

Il pourrait être associé à une carte de vol (c'est parfois utile) capable de fonctionner avec "Arducopter", logiciel qui permet de gérer le stationnaire à un mètre du sol avec les bons périphériques (GPS et Lidar)


Répondre

Retourner vers « Modules et Montages DIY »