Re: Fabrication radiocommande + quadri-hélicoptère maison
Posté : sam. 28 juil. 2018 15:36
hate de voir ca
https://multi-rotor-fans-club.com/
https://multi-rotor-fans-club.com/viewtopic.php?f=80&t=23063
Bonjour,sylvainmahe a écrit : ↑dim. 2 déc. 2018 16:35 Bon bah la personne ne m'a jamais envoyé la vidéo, dommage.
Code : Tout sélectionner
#include <AnalogRead.h>
#include <GpioRead.h>
#include <SpiNrf24l01p.h>
int main()
{
AnalogRead myStickThrottle = AnalogRead (25);
AnalogRead myStickPitch = AnalogRead (26);
AnalogRead myStickRoll = AnalogRead (27);
AnalogRead myStickYaw = AnalogRead (28);
GpioRead myButtonCut = GpioRead (1, true, 10);
SpiNrf24l01p myChannelThrottle = SpiNrf24l01p (1);
SpiNrf24l01p myChannelPitch = SpiNrf24l01p (2);
SpiNrf24l01p myChannelRoll = SpiNrf24l01p (3);
SpiNrf24l01p myChannelYaw = SpiNrf24l01p (4);
SpiNrf24l01p myChannelCut = SpiNrf24l01p (5);
SpiNrf24l01p::start (5, 32, 1524003746, true);
while (true)
{
myStickThrottle.read();
myStickPitch.read();
myStickRoll.read();
myStickYaw.read();
myButtonCut.read();
myChannelThrottle.transmit (myStickThrottle.value);
myChannelPitch.transmit (myStickPitch.value);
myChannelRoll.transmit (myStickRoll.value);
myChannelYaw.transmit (myStickYaw.value);
myChannelCut.transmit (myButtonCut.bistable);
}
return 0;
}
Code : Tout sélectionner
#include <SpiNrf24l01p.h>
#include <PwmWrite.h>
#include <Math.h>
int main()
{
SpiNrf24l01p myChannelThrottle = SpiNrf24l01p (1);
SpiNrf24l01p myChannelPitch = SpiNrf24l01p (2);
SpiNrf24l01p myChannelRoll = SpiNrf24l01p (3);
SpiNrf24l01p myChannelYaw = SpiNrf24l01p (4);
SpiNrf24l01p myChannelCut = SpiNrf24l01p (5);
PwmWrite myServoThrottle = PwmWrite (1);
PwmWrite myServoPitch = PwmWrite (2);
PwmWrite myServoRoll = PwmWrite (3);
PwmWrite myServoYaw = PwmWrite (4);
SpiNrf24l01p::start (5, 32, 1524003746, true);
PwmWrite::start (50);
while (true)
{
myChannelThrottle.receive();
myChannelPitch.receive();
myChannelRoll.receive();
myChannelYaw.receive();
myChannelCut.receive();
if (myChannelCut.data == true)
{
myServoThrottle.us (1000);
}
else
{
myServoThrottle.us (Math::curve (0, myChannelThrottle.data, 1023, 1000, 2000, 0));
myServoPitch.us (Math::curve (0, myChannelPitch.data, 1023, 1000, 2000, 0));
myServoRoll.us (Math::curve (0, myChannelRoll.data, 1023, 1000, 2000, 0));
myServoYaw.us (Math::curve (0, myChannelYaw.data, 1023, 1000, 2000, 0));
}
}
return 0;
}
C'est affolant comme j'ai l'impression de discuter avec un moi même venu d'un univers parallèle!sylvainmahe a écrit : ↑dim. 3 janv. 2021 10:37 Y a des moments lors de ce développement je pensais crever tellement ça me prennait un temps de ouf, même plus le temps de rien...
Alors là tu met le doigt dans un engrenage infernal mdr. Tout ces projet n'ont parfois rien à voir avec les drone/modélisme.sylvainmahe a écrit : ↑dim. 3 janv. 2021 10:37 mais j'aimerais bien voir ce que tu fais aussi, et on pourrait peut-être s'aider par exemple
Merci, c'est assez modeste, mais c'est le fruit de nombreuses tentatives et échecs qui finissent parfois par devenir un succès, bien sur ça reste perfectible notamment sur le coté pratique et le design pour lesquels je n'ai souvent pas la moindre intuition comme l'indique la forme toute carrée du radin laoder mdr.sylvainmahe a écrit : ↑mar. 5 janv. 2021 00:01 Génial tes projets ! J'adore la modélisation 3D que tu fais.
J'apprécie ta proposition, mais je pense qu'actuellement niveau programmation je n'ai pas grand chose en cours.sylvainmahe a écrit : ↑mar. 5 janv. 2021 00:01 Du coup, comment je peux t'aider et dans quel domaine ? Par exemple y a t'il du code source que j'ai écrit qui pourrait servir dans tes projets, fonctions C ou autres choses ? Merci d'avance.
Si tu dois écouter tout les dégénérés consanguins finis à l'urine tu n'a pas fini, commence par oublier ces déchets, renvoie les dans les cordes s'ils s'approchent trop près et c'est tout.sylvainmahe a écrit : ↑mar. 5 janv. 2021 00:01 Y en a même qui m'ont indiqués de tout arrêter et me suicider, c'était quand je débutais l'électronique il y a 5 ans, car je n'allais tout simplement arriver à rien.
Mais parfois il faut savoir lever le pied pour avoir du temps à consacré à autre chose. Je partage ce genre de problème... trop d'idées et trop peu de temps.sylvainmahe a écrit : ↑mar. 5 janv. 2021 00:01 Mais je ne fais pas ça pour l'argent, je fais ca car sinon je creve, je meurs à petit feu. Je ne peux pas m'arrêter de créer des choses
Pour être franc je n'ai pas compris en quoi consiste et quel est l'intérêt de ce système (ça ne veux pas dire qu'il n'y en a pas mais il m'échappe), mettons par rapport à arduino ide qui si je ne m'abuse sert à programmer le même genre de carte, quelle est la différence?sylvainmahe a écrit : ↑mar. 5 janv. 2021 00:01 j'aimerais tant que plus de monde comprennent le système électronique complet que j'ai développé, qui n'est pas plus dédié au modélisme qu'à autre chose
Attention, je n’ai sûrement pas toutes les compétences nécessaires... je retourne à son « pseudo » math.h, il a un avantage sur certaines programmations (PICxxx) la taille! Je persiste à croire que son approche est intéressante...BL08 a écrit : ↑mar. 5 janv. 2021 13:19 Pour être franc je n'ai pas compris en quoi consiste et quel est l'intérêt de ce système (ça ne veux pas dire qu'il n'y en a pas mais il m'échappe), mettons par rapport à arduino ide qui si je ne m'abuse sert à programmer le même genre de carte, quelle est la différence?
Code : Tout sélectionner
#include <TwiMpu6050.h>
main()
{
TwiMpu6050 myGyroscope = TwiMpu6050 (0x68);
while (true)
{
myGyroscope.read();
}
return 0;
}
En relisant votre message, je pense que je peux apporter des comparaisons techniques factuelles avec par exemple arduino, parce que c'est la bibliothèque grand publique la plus utilisée dans le monde pour l'embarqué. Effectivement est ce que c'est approprié de vouloir comparer mon travail avec arduino, je ne sais pas, le seul rapprochement est d'ordre utilisation de microcontrôleurs similaires, et utilisation du même langage de programmation, le C++, mais il me semble que beaucoup sur les forums seraient tentés de le faire, c'est pourquoi certaines fois je m'offre quelques divagations à évoquer moi aussi ce système concurrent dont on entend parler partout, pratiqué même chez les professionnels qui ne savent pas faire des projets et programmer des microcontrôleurs sans cette bibliothèque (je veux parler de certains ingénieurs qui sortent des écoles actuelles, dont les projets de fin d'études se résument à un montage type lego sur arduino ou raspberry).En gros c'est l'art de faire plus avec moins (une philosophie que j'adore au passage).
Et je suis à peu près certain que j'ai raté une bonne partie du concept et ce malgré le fait que je soit un habitué de ces microcontrôleurs via arduino, esp8266...
Pourquoi j'ai pas pigé? Parce-que ton niveau de compétence est bien supérieur au miens, ce, alors même que je pense ne pas être le moins averti des publics!
Et micros :Returns the number of milliseconds passed since the Arduino board began running the current program. This number will overflow (go back to zero), after approximately 50 days.
Pourquoi ces limitations ? Parce que les variables sont sur 32 bits et que les registres relatifs au timer concerné (certainement le timer0) sont renseignés avec des valeurs qui donnent ces limitations, toute la logique est mauvaise à la base.Returns the number of microseconds since the Arduino board began running the current program. This number will overflow (go back to zero), after approximately 70 minutes. On 16 MHz Arduino boards (e.g. Duemilanove and Nano), this function has a resolution of four microseconds (i.e. the value returned is always a multiple of four). On 8 MHz Arduino boards (e.g. the LilyPad), this function has a resolution of eight microseconds.
Code : Tout sélectionner
#include <Timer.h>
int main()
{
Timer myTimer = Timer();
myTimer.start (0);
while (true)
{
myTimer.state();
//myTimer.s est le temps écoulé en secondes
//myTimer.ms est le temps écoulé en millisecondes
//myTimer.us est le temps écoulé en microsecondes
}
return 0;
}