[Programmation] Construction d'une radiocommande R/C
Répondre à la discussion
Page 1 sur 3 12 DernièreDernière
Affichage des résultats 1 à 30 sur 69

Construction d'une radiocommande R/C



  1. #1
    sylvainmahe

    Smile Construction d'une radiocommande R/C


    ------

    Bonjour

    J'ouvre ce sujet pour vous montrer la radiocommande que je fabrique, boîtier, électronique, et logiciel sont faits à partir de zéro (pas de bibliothèque arduino, ni de bibliothèque avr, ni de bibliothèque c++ en supplément du langage lui même, ..), par contre je ne créé pas les manches de la radio (je n'avais qu'une semaine pour faire les usinages).

    dsc06923.jpg
    dsc06927.jpg
    dsc07168.jpg
    dsc07166.jpg
    dsc07145.jpg

    Le programme de cette radio fait 4036 lignes (et sera téléchargeable bientôt), le principe de ce programme est entièrement basé sur mon système que j'ai développé (MODULE), et est entièrement téléchargeable sur mon site (logiciel + plans des cartes).

    L'automate programmable est le MODULABLE M32, il est équipé de l'ATmega1284P.

    Le composant qui fait la communication 2.4GHz est le nRF24L01+, mon système de programmation comporte une classe (Nrf24l01p.h) dédiée à ce composant.

    Les caractéristiques de la radiocommande:
    - Automate programmable MODULABLE M32 équipé du microcontrôleur ATmega1284P.
    - Émetteur/récepteur radio 2.4Ghz (composant nRF24L01+, portée 1km environ).
    - Communication bi-directionelle.
    - Antenne Trèfle omnidirectionnelle 3 branches.
    - Communication par trames de 32 bits.
    - Affichage digital avec afficheur à digits MAX7219.
    - Buzzer de signalement.
    - Système à tolérance de pannes (fail-safe) envoyé au modèle sur 6 bits (0 à 63).
    - 1 menu principal + 1 menu des paramètres/réglages.
    - Réglage de la tension de batterie faible du modèle (de 0V à 100V).
    - Réglage d'une temporisation (de 0s à 3600s).
    - Aucune mémoire de modèles (la mémoire est située dans les modèles).
    - Possibilité de copier les réglages d'un modèle vers un autre très facilement.
    - Jusqu'à 16 paramètres/réglages personnalisés envoyés par le modèle.
    - Verrouillage des menus (plus de réglages possibles, ni d'extinction de la radiocommande).
    - Affichage de la tension de la batterie de la radiocommande.
    - Alarme (visuelle et sonore) niveau de batterie faible de la radiocommande.
    - Affichage de la tension de la batterie du modèle.
    - Alarme (visuelle et sonore) niveau de batterie faible du modèle (si paramétrée).
    - Affichage d'une temporisation (temps d'utilisation du modèle/autre).
    - Affichage des trims (verrouillage et remise à 0 possible par le bouton de sélection).
    - Affichage d'une télémétrie personnalisée.
    - Affichage des paramètres/réglages personnalisés.
    - Menu de mise à jour des paramètres/réglages du modèle.
    - Allumage ou extinction de la radiocommande ou du modèle dans n'importe quel ordre.
    - Accumulateur NIMH (+1.2V par élément) 8S 600mAh (+9.6V).
    - Prise de charge de la batterie (XT30).
    - Boîtier fermé en Aluminium, Acier inoxydable, bois (contreplaqué 5mm), et Ertalon.
    - Dimensions: 214mm x 204mm x 117mm.
    L'interface électromécanique entre l'homme et la machine:
    - 2 manches analogiques (1 gaz/rouli + 1 tangage/lacet) sur 10 bits (0 à 1023).
    - 4 interrupteurs de trims (3 positions) sur 2 bits chacun (0 à 2).
    - 1 interrupteur de coupure moteur/autre (2 positions) sur 1 bit (0 à 1).
    - 3 interrupteurs auxiliaires (3 positions) sur 2 bits chacun (0 à 2).
    - 1 bouton rotatif auxiliaire sur 10 bits (0 à 1023).
    - 1 bouton rotatif de sélection du menu sur 10 bits (0 à 1023).
    - 1 bouton poussoir de sélection du menu (2 positions, dont 1 momentanée) sur 1 bit (0 à 1).
    - 1 interrupteur d'alimentation maintenue on/off (2 positions).
    Le concept de cette radiocommande:
    Depuis les premiers temps ou je pilote des modèles radiocommandés dans des associations d'aéromodélisme jusqu'à aujourd'hui, je me suis souvent demandé et au vu de l'avancée précédente et actuelle en matière d'électronique embarquée:
    Mais pourquoi donc les radiocommandes du commerce ont'elle des mémoires de modèles ? Les mémoires de modèles permettent en effet de retenir les réglages relatifs à un modèle, dans la mémoire de la radiocommande.
    À ce propos je ne citerais que l'exemple d'un ami au terrain de modélisme sans le nommer, qui par mégarde se trompe assez régulièrement de mémoire de modèles (il vol avec beaucoup de choses). En conséquence cela lui arrive souvent d'écraser ses réglages, ou d'écraser son modèle tout simplement au sens physique du terme !

    En fait, cette "lacune" des mémoires de modèles dans les radiocommandes modernes trouve historiquement ses racines dans la conception même des premiers radio-émetteurs/récepteurs. En effet, les premières radiocommandes se contentaient uniquement d'être émetteur d'information, et le modèle étant lui simplement un récepteur. Dans cette situation (unidirectionnelle), il est facile de comprendre que le modèle reste toujours muet.

    Plus tard, les concepteurs et divers industriels se sont décidés (au vue de la demande qui augmentait) à ajouter une communication du modèle vers la radiocommande, sur un circuit électronique bien distinct et avec une antenne radio supplémentaire sur le modèle et la radiocommande. C'est un retour air/sol qui a été appelé télémétrie (en rapport avec la télémétrie à l'époque des débuts de la conquête spatiale jusqu'à nos jours).

    L'avancée en matière de miniaturisation des composants permet aujourd'hui d'avoir dans une même puce un émetteur et un récepteur, qui se sert de la même antenne radio pour communiquer, ces systèmes sont appelés tranceivers (émetteurs/récepteurs).
    Le concept que je développe ici permet de vous expliquer l'idée même de ma radiocommande, celle-ci n'a en effet aucune mémoire de modèles, aillant souhaité aller au bout de ma logique, c'est le modèle qui contient la mémoire !
    Cette idée simple permet beaucoup de choses, notamment le fait que c'est le modèle qui envoi des paramètres et réglages personnalisés à la radiocommande, qui à l'origine dispose d'un menu des paramètres et réglages presque vide. La radiocommande se voit alors garnie de paramètres personnalisés relatifs au modèle qui est actuellement en communication avec elle. Elle dispose également de l'affichage de la tension de la batterie du modèle en temps réel, et d'une télémétrie personnalisée en fonction du modèle.

    Une fois cette notion comprise, tout est alors possible. Ma radiocommande dispose d'un maximum de 16 paramètres personnalisés par le modèle, ceci est largement suffisant parce que par définition même, ils sont spécifiques au modèle considéré.

    Terminé les réglages et menus à n'en plus finir (souvent la plupart du temps inutilisés) dans les radiocommandes du commerce ! Dans ce que je propose ici, vous disposez des réglages uniquement nécessaires au modèle mis en oeuvre, ce qui facilite grandement son utilisation sur le terrain de modélisme !

    Si vous souhaitez en savoir plus et avoir d'autres explications pour mieux comprendre ce projet, je ne peux que vous conseiller de lire l'article que j'ai écrit sur mon blog qui est un peu plus documenté (demandez moi les liens si besoin).

    J'y explique par exemple "La copie des paramètres d'un modèle", ou bien encore "La vitesse de communication", ce qui peut vous intéresser !


    N'hésitez pas si vous avez des questions

    -----

  2. #2
    gienas
    Modérateur

    Re : Construction d'une radiocommande R/C !

    Bonjour sylvainmahe et tout le groupe

    Pour une raison incompréhensible, ton message a été publié dans les projets, ce qui est, en principe impossible.

    Il a été replacé dans le forum traditionnel, où c'est sa place normale.

    Attention, cependant, que pour être "dans les clous" du forum,

    Citation Envoyé par sylvainmahe Voir le message
    ... Le programme de cette radio fait 4036 lignes (et sera téléchargeable bientôt) ...


    Ceci doit figurer dans le fil de discussion, sans avoir à le demander, et

    Citation Envoyé par sylvainmahe Voir le message
    ... N'hésitez pas si vous avez des questions ...
    Ceci est bien entendu, sous entendu.
    Dernière modification par gienas ; 17/08/2017 à 14h55.

  3. #3
    paulfjujo

    Re : Construction d'une radiocommande R/C !

    bonjour,

    Super design !
    aussi bien mecanique qu'electronique.

    au fait, l'ensemble pese combien ?

    lien sur ton blog ?
    Dernière modification par paulfjujo ; 17/08/2017 à 16h38.

  4. #4
    sylvainmahe

    Re : Construction d'une radiocommande R/C !

    Bonjour gienas, oui le programme sera mis en pièce jointe quand j'aurais clôturé le projet.


    Merci pour le commentaire sinon, pour la masse de la radio, je dirais un petit peu plus lourd que ma FUTABA T12FG du commerce, mais pas beaucoup plus finalement.
    Je peux l'équiper d'une sangle autour du cou pour être plus à l'aise pour piloter de toute façon

    Si tu veux le lien vers plus d'infos (c'est ce que tu demandes, à la modération de virer le lien si je me suis trompé), ici tu en auras plus: #### Lien autopromotionnel supprimé.

    Mais il me semble que les liens vers nos propres sites, sont considérés ici comme de la pub.
    Dernière modification par gienas ; 17/08/2017 à 19h36. Motif: le lien est à mettre dans le profil, pas dans le corps des messages

  5. A voir en vidéo sur Futura
  6. #5
    sylvainmahe

    Post Re : Construction d'une radiocommande R/C !

    Si vous êtes intéressé par les caractéristiques de mon automate programmable qui équipe la radiocommande:
    - Microcontrôleur ATmega164P, Atmega324P, Atmega644P ou ATmega1284P.
    - Régulateur de tension LM7805 +5V 1A assisté par un transistor Darlington BD646 8A.
    - 2 ports d'alimentation de +7V à +35V.
    - 1 port pour la programmation en SPI.
    - 32 entrées/sorties (partie commande), avec 32 +5V et 32 GND (partie puissance).
    - Fréquence de fonctionnement: 16Mhz.
    - Dimensions: 88.9mm x 40.64mm.
    - Entres-axes de fixations: 81.28mm x 33.02mm.
    - Fixations par vis M3 (perçages diamètre 3.2mm).
    Ici c'était en version avec régulateur LT1073:
    dsc07071.jpgdsc07033.jpg

    J'ai mi le plan de cette carte en pièce jointe (avec en plus mon système MODULE), #####.
    Fichiers attachés Fichiers attachés
    Dernière modification par gienas ; 17/08/2017 à 19h39. Motif: Idem #-1

  7. #6
    invitef86a6203

    Re : Construction d'une radiocommande R/C !

    Tu dit que tu utilise un module RF24L01+ !
    As tu testé la portée de ce module ?
    Les modules avec antenne PCB n'ont qu'une centaine de mètres de portée.
    Le datasheet dit jusqu'à 1km.
    Certains site disent "avec de la chance" LOL.
    D'autres vendent des modules en disant 1.8km...
    Bref , y a de tout avec le même circuit.
    Apparemment celui de la photos as un connecteur, y a t il aussi un ampli intégré en plus ?
    un lien sur ce modèle serait sympa.

    Sur le fichier librairie , il y a plusieurs µp , je suppose que le prog ne passe pas sur un 328 par exemple ?

    Pourquoi utiliser un afficheur LEDs qui consomme et affiche peu de données.

    Il y a des fonctions gyro sur la lib tu envisage aussi un récepteur ?
    Ton prog d'émission est compatible avec une marque existante ?
    L'antenne récepteur est comme celle de l'émetteur (Pinwhell) ?

    Pour le PCB et schéma , tu utilise quelle logiciel ?
    Pourrait tu le mettre sous forme JPG ?

  8. #7
    sylvainmahe

    Re : Construction d'une radiocommande R/C !

    Citation Envoyé par freepicbasic Voir le message
    Tu dit que tu utilise un module RF24L01+ !
    As tu testé la portée de ce module ?
    Les modules avec antenne PCB n'ont qu'une centaine de mètres de portée.
    Le datasheet dit jusqu'à 1km.
    Certains site disent "avec de la chance" LOL.
    D'autres vendent des modules en disant 1.8km...
    Bref , y a de tout avec le même circuit.
    Apparemment celui de la photos as un connecteur, y a t il aussi un ampli intégré en plus ?
    un lien sur ce modèle serait sympa.

    Sur le fichier librairie , il y a plusieurs µp , je suppose que le prog ne passe pas sur un 328 par exemple ?

    Pourquoi utiliser un afficheur LEDs qui consomme et affiche peu de données.

    Il y a des fonctions gyro sur la lib tu envisage aussi un récepteur ?
    Ton prog d'émission est compatible avec une marque existante ?
    L'antenne récepteur est comme celle de l'émetteur (Pinwhell) ?

    Pour le PCB et schéma , tu utilise quelle logiciel ?
    Pourrait tu le mettre sous forme JPG ?
    Déjà bonjour

    Je vais prendre "tes questions" étapes par étapes, parce qu'il y en a beaucoup:

    Tu dit que tu utilise un module RF24L01+ !
    As tu testé la portée de ce module ?


    Il a un circuit pour booster la puissance effectivement, il est donné pour + d'1km avec une antenne baton (pas terrible), moi je l'ai testé avec antenne trèfle:
    https://www.tindie.com/products/ICSt...ll_prod_search


    Sur le fichier librairie , il y a plusieurs µp , je suppose que le prog ne passe pas sur un 328 par exemple ?
    Il ne passe pas sur un 328p déjà par rapport au nombre d'entrées/sorties (étant donné que je ne voulais pas multiplexer les inters et potars), ensuite par rapport à la mémoire effectivement. Le 48p, 88p, 168p, et 328p en boîtier DIP28, et le 164p, 324p, 644p, et 1284p en boîtier DIP40, ce qui correspond aux 2 automates programmables que j'ai conçu: le MODULABLE M20 (20 entrées/sorties) et le MODULABLE M32 (32 entrées/sorties). Donc il n'est dans tous les cas pas question du 328p ici puisque pour mes projets futurs je ne fabrique plus que le M32 qui me plaît bien.


    Pourquoi utiliser un afficheur LEDs qui consomme et affiche peu de données.
    Parce que justement il ne consomme pas beaucoup (y a qu'à mettre un ampèremètre dessus), que je les utilisent dans tous mes projets, et que j'ai horreur des écrans lcd, celui la permet d'afficher toutes les infos dont j'ai besoin, et est surtout extrêmement rapide à rafraîchir à la vitesse du SPI, contrairement à une matrice de milliers de points.

    Utilisé aussi par exemple sur mon compteur Geiger, ça rempli parfaitement ses fonctions:
    dsc02873.jpg


    Il y a des fonctions gyro sur la lib tu envisage aussi un récepteur ?
    C'est un système complet (regardes les photos), le modèle R/C est fabriqué depuis longtemps et vol avec mon algorithme perso:
    dsc02048.jpgdsc06758.jpg

    En pièce jointe je t'ai mis le programme de vol du quadri si tu veux, qui fonctionne avec n'importe quelle radio et récepteur standard de modélisme.

    Ton prog d'émission est compatible avec une marque existante ? non
    L'antenne récepteur est comme celle de l'émetteur (Pinwhell) ? émetteur/récepteur c'est une trèfle 3 et 4 branches.

    Pour le PCB et schéma , tu utilise quelle logiciel ? Kicad avec ma bibliothèque de composants perso (également en pièce jointe si tu veux).
    Pourrait tu le mettre sous forme JPG ? oui, mais je les met toujours au format Gerber standard utilisé par tout le monde
    Je peux prendre une photo si tu veux..

    N'hésites pas si tu as d'autres remarques.
    Fichiers attachés Fichiers attachés

  9. #8
    invitef86a6203

    Re : Construction d'une radiocommande R/C !

    Tu compile avec quoi ?
    La librairie fonctionne sous AVR studio 4 ?
    Et aussi sous arduino ?
    As tu fait un manuel de ta radio ?
    Les manches de commande viennent d'où ?
    5K linéaire ?
    Pourquoi une tension si élevée 9.6V ?
    Avec 2 x 3.7V , ce n'était pas suffisant ?

    Peux tu publier un premier jet du soft , même si ce n'est pas terminé ?

  10. #9
    invitef86a6203

    Re : Construction d'une radiocommande R/C !

    le bouton rotatif c'est un contact droite gauche ou une roue codeuse ?

  11. #10
    sylvainmahe

    Re : Construction d'une radiocommande R/C !

    Citation Envoyé par freepicbasic Voir le message
    Tu compile avec quoi ?
    La librairie fonctionne sous AVR studio 4 ?
    Et aussi sous arduino ?
    As tu fait un manuel de ta radio ?
    Les manches de commande viennent d'où ?
    5K linéaire ?
    Pourquoi une tension si élevée 9.6V ?
    Avec 2 x 3.7V , ce n'était pas suffisant ?

    Peux tu publier un premier jet du soft , même si ce n'est pas terminé ?
    le bouton rotatif c'est un contact droite gauche ou une roue codeuse ?
    Tu compile avec quoi ?
    avr-gcc

    La librairie fonctionne sous AVR studio 4 ?
    je ne sais pas, je n'est jamais rien utilisé à part avr-gcc en ligne de commande sur linux ubuntu

    Et aussi sous arduino ?
    je ne pense pas étant donné que ça n'a rien à voir avec arduino

    As tu fait un manuel de ta radio ?
    J'ai pas vraiment fait un manuel, mais pour l'instant un bon aperçu des fonctions sur mon site + quelques détails de procédures (voir pièce jointe).

    Les manches de commande viennent d'où ?
    N'ayant eu qu'une semaine pour faire les usinages (dans l'ancien atelier de mon père), j'ai pas pris le temps de faire les manches effectivement. Ce sont ceux en plastique de l'AURORA9 de chez hitec.

    5K linéaire ? Oui, le circuit de conversion analogique/numérique du microcontrôleur est optimisé pour fonctionner avec des impédances en entrée de 10kΩ, et peut fonctionner correctement de 1kΩ à 100kΩ.

    Pourquoi une tension si élevée 9.6V ?
    Heureusement que je ne te parle pas du 400V de mon compteur geiger alors
    Pourquoi 9.6V, parce que cela donne plus d'autonomie tout simplement (sans changer l'intensité), et que mon dropout (datasheet) est de 2V, faisant tourner le microcontrôleur à 5V (pour rester dans les données constructeur pour 16Mhz de cadence), et que je peux alimenter jusqu'à +35V le régulateur.

    Peux tu publier un premier jet du soft , même si ce n'est pas terminé ?
    Je préfère tout tester en vol avant sur le terrain.


    le bouton rotatif c'est un contact droite gauche ou une roue codeuse ?
    Ni l'un ni l'autre, c'est un potentiomètre 10k, et avec MODULE je lui met un cycle d'hysteresis avec ma classe Hysteresis.h , donc c'est très sympa à utiliser le menu dans ces conditions, en moins de 5 minutes toute à l'heure j'ai réglé entièrement mon quadri-hélicoptère, autrement dit j'ai réglé ces paramètres (que tu peux trouver déja réglé dans le programme que je t'ai mis en pièce jointe dans mon autre réponse):

    FREQUENCY ESC = 1000; (en hertz)
    CUT ESC = 100; (en micrseconde)
    MIN ESC = 129; (en micrseconde)
    MAX ESC = 248; (en micrseconde)
    SPEED PITCH = 340; (en degrés par seconde)
    SETUP_SPEED_ROLL = 340; (en degrés par seconde)
    SPEED YAW = 340; (en degrés par seconde)
    GAIN PITCH = 97; (en pourcentage)
    GAIN ROLL = 94; (en pourcentage)
    GAIN YAW = 97; (en pourcentage)
    TRAVEL PITCH ROLL VS YAW = 40; (en pourcentage)
    THRUST PROPELLER = 90; (en pourcentage)
    LOCK = 60; (en pourcentage)
    LIMIT THROTTLE = 90; (en pourcentage)


    Soit pas mal de paramètres, j'aurais mi plus de 5 minutes à régler cela avec ma FUTABA T12FG du commerce, mais surtout, j'aurais tout simplement pas pu les régler ! En fait il m'aurais fallut 19 voies à mon récepteur de modélisme standard, soit 5 voies de pilotage (throttle, pitch, roll, yaw, throttle cut) + les 14 paramètres.



    Si tu veux plus d'infos et de réponses à tes questions sur la radiocommande et ce qui entour ce projet, je t'ai mi en pièce jointe des pdf que tu peux consulter (il y a des exemples et une aide pour se servir de la bibliothèque sur lequel est basé le programme de la radiocommande et du quadri-hélicoptère).
    Fichiers attachés Fichiers attachés

  12. #11
    invitef86a6203

    Re : Construction d'une radiocommande R/C !

    Questions:

    Envisage tu de créer un forum sur ton blog ?

    J'essais sur UBUNTU;
    Sur le 1er exemple tu met comment charger le compilateur les lib et l'usbasp ! (je l'ai fait)
    Mais tu ne met pas la ligne pour compiler et dans quel répertoire tu met le fichier,
    car j'ai vu que l'include de module, c 'est ../module/etc..
    Le mieux serait de mettre la même structure de fichiers que toi!

    Apparemment tu connais bien Linux , répondrais tu à des questions Linux ?

    Connais tu "multiWII" ?

    Sur linux utilise tu eclipse ?

    La lib tu l'as créé ou c 'est une lib public ?
    Quelle origine?

    Peut on la porter sur l' ATMEGA2560 ?

    Pourrait tu faire une vidéo de la manip pour gérer les modèles et paramètres avec les boutons ?

    Peut tu commenter ce que font ces paramètres programmables ?

    La communication est duplex ?
    Sur le récepteur tu met le même module ?
    Sais tu s'il y a un PA comment il font la réception ?
    (car l'antenne est après le PA et la sortie du RF24 est connecté au PA, ou alors il faut 2 modules)


    protocole;
    Tu envoie 64 bits , tu dis 2 fois 32 bits, c'est le nRF24L01 qui l'envoie en 2 fois ?
    Tu met 0X55 ou 0xAA comme entête ?
    Il y a un CRC ?
    Il n'y a pas d'extensions pour communication futur ?
    (du genre une 3 iem salve de 32 bits facultative, ça obligerait peut être à signer chaque bloc pour les différencier)





    Commentaires:

    Ton boitier (y compris le chassis du quadri) est MAGNIFIQUE, mais tout le monde n'a pas accès à un tour fraiseuse et plaque d'alu...
    L'atmega1264 est assez cher et moins répandu que l' ATMEGA2560.
    Envisage tu une version "low cost" ou avec "différentes options" ,
    personnellement je pensais mettre un LCD et plusieurs petite carte genre arduino nano.
    Et pour le récepteur un STM32.

  13. #12
    sylvainmahe

    Re : Construction d'une radiocommande R/C !

    Citation Envoyé par freepicbasic Voir le message
    Questions:

    Envisage tu de créer un forum sur ton blog ?

    J'essais sur UBUNTU;
    Sur le 1er exemple tu met comment charger le compilateur les lib et l'usbasp ! (je l'ai fait)
    Mais tu ne met pas la ligne pour compiler et dans quel répertoire tu met le fichier,
    car j'ai vu que l'include de module, c 'est ../module/etc..
    Le mieux serait de mettre la même structure de fichiers que toi!

    Apparemment tu connais bien Linux , répondrais tu à des questions Linux ?

    Connais tu "multiWII" ?

    Sur linux utilise tu eclipse ?

    La lib tu l'as créé ou c 'est une lib public ?
    Quelle origine?

    Peut on la porter sur l' ATMEGA2560 ?

    Pourrait tu faire une vidéo de la manip pour gérer les modèles et paramètres avec les boutons ?

    Peut tu commenter ce que font ces paramètres programmables ?

    La communication est duplex ?
    Sur le récepteur tu met le même module ?
    Sais tu s'il y a un PA comment il font la réception ?
    (car l'antenne est après le PA et la sortie du RF24 est connecté au PA, ou alors il faut 2 modules)


    protocole;
    Tu envoie 64 bits , tu dis 2 fois 32 bits, c'est le nRF24L01 qui l'envoie en 2 fois ?
    Tu met 0X55 ou 0xAA comme entête ?
    Il y a un CRC ?
    Il n'y a pas d'extensions pour communication futur ?
    (du genre une 3 iem salve de 32 bits facultative, ça obligerait peut être à signer chaque bloc pour les différencier)





    Commentaires:

    Ton boitier (y compris le chassis du quadri) est MAGNIFIQUE, mais tout le monde n'a pas accès à un tour fraiseuse et plaque d'alu...
    L'atmega1264 est assez cher et moins répandu que l' ATMEGA2560.
    Envisage tu une version "low cost" ou avec "différentes options" ,
    personnellement je pensais mettre un LCD et plusieurs petite carte genre arduino nano.
    Et pour le récepteur un STM32.
    Bonjour

    Je vais être obligé (désolé) de recopier encore tes questions pour plus de clarté, car il y en as beaucoup pour y répondre.


    Envisage tu de créer un forum sur ton blog ?
    Ce ne sera jamais fait non, à l'époque j'ai déjà fait ça en php sur un autre site, même avec un tchat temps réel (ou on voyait les frappes clavier des intervenants en temps réel, ceci pour ajouter plus de convivialité et de spontanéité à la conversation), mais ici le blog restera comme ça.


    J'essais sur UBUNTU;
    Sur le 1er exemple tu met comment charger le compilateur les lib et l'usbasp ! (je l'ai fait)
    Mais tu ne met pas la ligne pour compiler et dans quel répertoire tu met le fichier,
    car j'ai vu que l'include de module, c 'est ../module/etc..
    Le mieux serait de mettre la même structure de fichiers que toi!

    Dans l'archive de MODULE, tu as en fait un fichier batch que j'ai écrit qui s'appelle Compiler.sh, ce fichier la fait tout pour toi (compilation + upload), il détecte le microcontrôleur sur la carte (dans les 8 supportés par MODULE), change les fusibles, réinitialise notament les lock bits par un cycle "erase", (comme ça peut import d'ou les gens récupèrent leur microcontroleur, d'une poubelle ou quoi, ça doit marcher),. etc..

    Voila la ligne (pour compiler) qu'il y a dans ce fichier Compiler.sh:
    Code:
    avr-gcc main.cpp -mmcu=atmega$device -Wall -Wno-sign-compare -Os -ffunction-sections -fdata-sections -Wl,--gc-sections -std=c++11 -o main.elf
    Si tu veux tout faire en manuel, les fusibles du microcontrôleur doivent être les bons (lfuse: 0xff hfuse: 0xdf efuse: 0xfc), le programmateur que j'utilise est un USBasp, donc ma ligne avr-dude est:
    Code:
    avrdude -P /dev/ttyACM0 -c usbasp -p m$device -U flash:w:main.hex:i

    Pour la structure de tes répertoires, tu as un dossier qui s'appelle "toto" on va dire, le dossier "module" est dans "toto", et le dossier de ton projet, je vais reprendre "example" (comme dans mon archive) est aussi dans "toto".

    Dans ce dossier "example" il y a ton main.cpp, et la routine de compilation + upload. Donc les inclusions de fichiers (include) ont se chemin d'adresse effectivement:
    Code:
    #include "../module/1284p/GpioRead.h"
    #include "../module/1284p/GpioWrite.h"
    etc...

    Apparemment tu connais bien Linux , répondrais tu à des questions Linux ?
    Connais tu "multiWII" ?

    Oui je connais sans m'y intéresser, depuis le début de ce projet à vrai dire (puisque ça fait plus de 15 ans que je pratique l'aéromodélisme), l'origine (il me semble bien) ce sont des universitaires qui ont créés un concours de "choses volantes en tri et quadricoptère" (c'est un peu les inventeurs de la formule compacte qu'on connaît actuellement), le but était le vol autonome ou semi-autonome, mais ça remonte à longtemps, on en voyait les débuts dans le magasine RCM assez connu, je ne sais pas si ça existe encore ce concours. L'armée s'y intéressait beaucoup à l'époque.


    Sur linux utilise tu eclipse ?
    Non je l'ai jamais utilisé, mais il parait qu'il est bien.
    Sur windows je programmais avec nodepad++, juste un editeur de texte au final avec la coloration syntaxique, la j'utilise gedit sur linux qui est un peu l'équivalent.
    C'est juste un bloc-note coloré on peut dire


    La lib tu l'as créé ou c 'est une lib public ?
    Quelle origine?

    Laquelle, MODULE? Si c'est le cas, oui, c'est une création personnelle (voir documentation1.zip doc1 module.pdf).
    Si je me trompe, alors précises ton interrogation?


    Peut on la porter sur l' ATMEGA2560 ?
    Oui, sans problème. C'est d’ailleurs pas très très difficile car, Microchip (anciennement Atmel) je trouve ont fait un boulo super concernant les adresses de leurs registres communes à toute leur gamme ATmega.

    Par exemple j'ai du mettre 30 minutes, ou peut être 1 heure pour porter du 328p au 168p, parce que je souhaitais tout vérifier. Alors qu'en fait tout correspondait parfaitement sauf la mémoire flash de 32k vers 16k. Pour passer du 328p au 1284p par exemple, c'était un peu plus long parce qu'ils n'ont pas les mêmes pins et distribution des pins, mais rien de méchant.


    Pourrait tu faire une vidéo de la manip pour gérer les modèles et paramètres avec les boutons ?
    De la radiocommande, oui quand j'aurais fini d'y mettre l'électronique à l'intérieur. Pour l'instant elle à les boyaux sortis.


    Peut tu commenter ce que font ces paramètres programmables ?
    Les paramètres programmables envoyés par le (ou du) quadricoptère?

    Si c'est le cas:
    FREQUENCY ESC = 1000; (en hertz)
    C'est la fréquence du pwm envoyé au contrôleurs de moteur brushless, qui sont actuellement sur mon prototype des kiss esc 18A, mais un controlleur brushless perso qui fonctionne avec MODULE est actuellement en conception aussi:

    dsc06985.jpgdsc06986.jpg

    (il est gros parce que c'est un prototype afin d'y voir plus clair)
    Pour l'instant je dois perfectionner mon système de digitalisation du back EMF, mais il fonctionne déjà pas mal.


    CUT ESC = 100; (en microseconde)
    La coupure moteur des contrôleurs de moteur brushless.

    MIN ESC = 129; (en microseconde)
    Le ralenti moteur des contrôleurs de moteur brushless.

    MAX ESC = 248; (en microseconde)
    Le plein gaz des contrôleurs de moteur brushless.

    SPEED PITCH = 340; (en degrés par seconde)
    La vitesse maximum que tu souhaites avoir en tangage (quand ton manche est braqué à fond).

    SETUP_SPEED_ROLL = 340; (en degrés par seconde)
    La vitesse maximum que tu souhaites avoir en roulis (quand ton manche est braqué à fond).

    SPEED YAW = 340; (en degrés par seconde)
    La vitesse maximum que tu souhaites avoir en lacet (quand ton manche est braqué à fond).

    GAIN PITCH = 97; (en pourcentage)
    Le gain (ou sensibilité) de la boucle d'asservissement gyroscope pour l'algorithme de vol sur l'axe de tangage, comme pour un hélicoptère à rotor classique et à gyroscope du commerce, il faut ici faire des tests en vol pour trouver la valeur maximale avant le "pompage", autrement dit avant la rentrée en résonance de cette boucle.

    Avec un hélicoptère à rotor classiques cela se trouve en effectuant des translations rapides en avant et en arrière, et dans le vent + vent relatif (cela se juge à l'oreille pour savoir si le gain est bien réglé).

    GAIN ROLL = 94; (en pourcentage)
    Le gain (ou sensibilité) de la boucle d'asservissement gyroscope pour l'algorithme de vol sur l'axe de roulis.

    GAIN YAW = 97; (en pourcentage)
    Le gain (ou sensibilité) de la boucle d'asservissement gyroscope pour l'algorithme de vol sur l'axe de lacet.

    TRAVEL PITCH ROLL VS YAW = 40; (en pourcentage)
    Dans mon algorithme, les débattements sont toujours au maximum (la en l’occurrence de 129us à 248us comme réglé plus haut), cela signifie que l'algorithme dispose du "plein pouvoir" pour stabiliser le vol. Ce pourcentage est pas évident à expliquer, 40% signifie que 40% des débattements sont attribués au tangage et au roulis pour effectuer les corrections, et que 60% (le reste) du débattement est confié au lacet.

    Imaginons que tu construises un hélicoptère au chassis plus court que le miens, et donc aux bras de levier moins importants, les hélices sont donc plus proches les unes des autres, il faudra donc moins de différentiel de gaz pour effectuer des mouvements sur l'axe de lacet, et donc il y aura besoin de moins de débattements alloués au lacet comparé au tangage et roulis, ce paramètre de 40% (donc 60% laissé au lacet) pourra être remonté.


    THRUST PROPELLER = 90; (en pourcentage)
    Ça c'est la gestion du rendement des hélices qui augmente en fonction de leurs vitesse, cela agit sur les valeurs de gains écrites plus haut. Autrement dit, quand tu es plein gaz, tu as 90% de tes gains (indiqués en paramètre), quand tu es gaz au ralenti, tu as 100%.

    C'est pour avoir des gains optimisés quel que soit le rendement des hélices.


    LOCK = 60; (en pourcentage)
    Quand tu effectues une action sur le manche de tangage, roulis, ou lacet, les gains que tu as indiqué en paramètre se voient augmenter de 60% (avec un lissage au cours du temps, mais passons) sur l'axe concerné. C'est pour la voltige ! Ça participe au verrouillage du quadricoptère lors des actions vives sur les manches et pour des acrobaties.


    LIMIT THROTTLE = 90; (en pourcentage)
    Participe au verrouillage du quadri lors des mise gaz ralenti, plein gaz, gaz ralenti, plein gaz, etc...
    Ça remet pas tout à fait plein gaz justement, ça met 90% (ici) de gaz, ce qui laisse l'algorithme avec plus de liberté pour effectuer ses corrections.

    En fait j'ai ajouté ce paramètre parce que j'ai un quadricoptère complètement sur-motorisé, pour une fois je suis sorti des données constructeur en faisant par exemple fonctionner des moteurs prévus en 3s avec du 4s. Ils tournent à 36000trs minute environ, mais ce qui m'intéresse c'est la voltige à vue (uniquement), pas le coté "drone" (avec caméra), ce qui explique.

    Faut bien comprendre que quand on est gaz au ralenti, on ne peux pas sur des moteurs mettre encore moins de gaz pour effectuer des corrections, et quand on est plein gaz, la seule méthode est de diminuer les tours de certains moteurs pour effectuer des corrections de l'assiette du modèle.

    Il s'avère qu'a des puissances trop grandes des moteurs, j'ai constaté que c'est plus compliqué de stabiliser un vol en diminuant le gaz sur les moteurs concernés plutôt qu'en augmentant le gaz. Ce 90% en paramètre (ou ce qu'on veut %, c'est à définir en fonction de ta config) permet de laisser une marge de 10% à l’algorithme pour mettre du gaz en positif pour effectuer des corrections d'assiette.

    Mais c'est très très subtil, faut vraiment faire de la voltige pour s'en rendre compte !


    Après, désolé si c'était des paramètres de la radiocommande dont tu parlais...


    La communication est duplex ?
    Dans les 2 sens oui, étant donné que c'est tranceiver.


    Sur le récepteur tu met le même module ?
    La radiocommande et le modèle sont équipés exactement de la même chose, c'est un montage parfaitement symétrique.


    Sais tu s'il y a un PA comment il font la réception ?
    (car l'antenne est après le PA et la sortie du RF24 est connecté au PA, ou alors il faut 2 modules)

    Oui il y a un PA, après comment est fait le truc, je ne sais pas trop.


    protocole;
    Tu envoie 64 bits , tu dis 2 fois 32 bits, c'est le nRF24L01 qui l'envoie en 2 fois ?

    Dans ma classe Nrf24l01p.h, les variables que tu créé (à envoyer) sont 32 bits signés (ce qui laisse pas mal de flexibilité du système au niveau du type de données que tu peux envoyer).

    Le nRF24L01+ qu'en à lui envoi la clé unique (32 bits) + la variable (ta donnée perso sur 32 bits) + l'adresse de la variable que tu as défini (8 bits) + j'imagine un checksum.

    Ma radiocommande elle envoi :
    - Gaz sur 10 bits (0 à 1023).
    - Axe de rouli sur 10 bits (0 à 1023).
    - Axe de tangage sur 10 bits (0 à 1023).
    - Axe de lacet sur 10 bits (0 à 1023).
    - Interrupteur de coupure moteur/autre sur 1 bit (0 à 1).
    - Interrupteur auxiliaire A sur 2 bits (0 à 2).
    - Interrupteur auxiliaire B sur 2 bits (0 à 2).
    - Interrupteur auxiliaire C sur 2 bits (0 à 2).
    - Bouton rotatif auxiliaire D sur 10 bits (0 à 1023).
    - Système à tolérance de pannes (fail-safe) sur 6 bits (0 à 63).
    - Ordre de mise à jour sur 1 bit (0 à 1).

    Donc ça prend 2 communications avec le nRF24L01+, pas plus.
    Le modèle lui retourne sa tension de batterie (sur 10 bits), sa télémétrie perso (en supplément, sur 21 bits), et la confirmation qu'il a fait la mise à jour des paramètres quand c'est demandé depuis la radiocommande (sur 1 bit).


    Tu met 0X55 ou 0xAA comme entête ? Ou ?


    Il y a un CRC ? Oui, et un accusé de réception.


    Il n'y a pas d'extensions pour communication futur ?
    (du genre une 3 iem salve de 32 bits facultative, ça obligerait peut être à signer chaque bloc pour les différencier)
    Je ne pense pas à vrai dire.

  14. #13
    sylvainmahe

    Re : Construction d'une radiocommande R/C !

    Commentaires:

    Ton boitier (y compris le chassis du quadri) est MAGNIFIQUE, mais tout le monde n'a pas accès à un tour fraiseuse et plaque d'alu...

    Merci pour les encouragements, après, mon idée de base était de faire une radiocommande plus ou moins à l’arrache toute en bois, pour bien faire kéké sur les terrains de modélisme avec leurs radiocommandes du commerce, mais comme d'hab, je dévie du projet initial comme toujours.

    Les gens ne sont pas obligés de faire comme ça, tu prends une planche de contre plaqué, tu visses tes cartes électronique dessus, tu met une sangle vite fait bien fait, 2 manches, 1 inter, et voila la radio est faite (comme certains projets sympas et amusants qu'on voit sur le net).

    Pour un tour ou une fraiseuse, il faut regarder des fois sur les annonces, ou les lycées techniques, ou vieilles entreprises qui mettent ce genre de matériel carrément à la casse (puisque maintenant cela se fait beaucoup en usinage commande numérique). Après, faut de la pratique, moi j'ai commencé l'usinage j'avais même pas 10 ans, j'en est 32 maintenant (mais tout s’apprend).


    L'atmega1264 est assez cher et moins répandu que l' ATMEGA2560.
    Envisage tu une version "low cost" ou avec "différentes options" ,
    personnellement je pensais mettre un LCD et plusieurs petite carte genre arduino nano.
    Et pour le récepteur un STM32.


    Tout est possible, c'est vrai. J'envisage pas le 2560 parce que je ne soude que des composants traversants, j'ai eu beaucoup de réflexion à ce sujet, mais moi j'aime bien le coté bricoleur avec de l'électronique qui fait un peu vieille école. C'est un choix.

    Encore une fois tout est possible, si tu veux faire ça avec le 2560, c'est tout à ton honneur.

    Pour le reste LCD, etc.. c'est également libre à toi (ce n'est pas mon truc), mais beaucoup se tournent vers le lcd. Par contre "au revoir" à mon avis la vitesse de la boucle (à moins d'un miracle).


    J'espère avoir répondu à peu prêt à tes questions

  15. #14
    sylvainmahe

    Re : Construction d'une radiocommande R/C !

    L'atmega1284 est assez cher et moins répandu que l' ATMEGA2560

    Oui pour le "répandu", mais non pour le prix.

    Sur un site ou je vais souvent, le 1284P est à 7.25€, alors que le 2560 est à 15.91€ !

  16. #15
    invitef86a6203

    Re : Construction d'une radiocommande R/C !

    7.65 € Arduino complet avec le câble port compris;
    http://www.ebay.fr/itm/Mega-2560-R3-...YO0g-aWjv7AlMw

    Sur ton site il n'y a aucun schéma ?
    J'ai l'impression que tu fait des cartes direct , sans schéma !

    As tu le schéma du driver ?
    Et du soft ?
    tu dis 1000hz pour le driver , normalement on envoie du PPM comme un servo ?

    Quelle capacité la batterie du quadri ?

    Quelle référence les moteurs ?

    Je n'ai pas bien compris le ralenti sur un moteur électrique, peut tu expliquer ?
    Et l'arret moteur ?
    Sur les moteurs thermiques, on règle de façon à ce que le triim mini cale le moteur lorsqu'il est au ralenti !
    Mais avec un électrique ? ( à moins que ce soit pour garder la compatibilité...)

    Tu parle de calcul en mode acrobatique par rapport au ralenti, pas compris peux tu expliquer ?
    (je n'ai pas cette expérience...)


    Je pensais que M20 était un système (soft) autonome , en fait c'est la carte et la lib ?


    Je vais me mettre sur le soft , ça devrait être assez portable c est du GCC !

  17. #16
    invitef86a6203

    Re : Construction d'une radiocommande R/C !

    Tu as testé les différents µp et les différentes fonctions de ta lib ?

  18. #17
    invitef86a6203

    Re : Construction d'une radiocommande R/C !

    dans compiler.sh tu fait appel à avrdude pour avoir le nom du µc

    Ok quand tout est installé c est bien.




    Mais pour débuter j’essaie de compiler .
    Donc le sh ne convient pas
    Je garde que la ligne de compile
    je fait un fichier go.sh

    Mais il faut lui donner les droit en mettant ./ devant toute en étant dans le répertoire example.
    chmod +x .\go.sh

    J'essaie ça ne fonctionne pas
    les include appellent ../module/1284p au lieu de ../1284p

    bon ok ça compile après corrections

    Mais dans main.c il y a que des include LOL un gag non ?

    comment voir le fichier asm ?

  19. #18
    sylvainmahe

    Re : Construction d'une radiocommande R/C !

    Citation Envoyé par freepicbasic Voir le message
    7.65 € Arduino complet avec le câble port compris;
    http://www.ebay.fr/itm/Mega-2560-R3-...YO0g-aWjv7AlMw

    Sur ton site il n'y a aucun schéma ?
    J'ai l'impression que tu fait des cartes direct , sans schéma !

    As tu le schéma du driver ?
    Et du soft ?
    tu dis 1000hz pour le driver , normalement on envoie du PPM comme un servo ?

    Quelle capacité la batterie du quadri ?

    Quelle référence les moteurs ?

    Je n'ai pas bien compris le ralenti sur un moteur électrique, peut tu expliquer ?
    Et l'arret moteur ?
    Sur les moteurs thermiques, on règle de façon à ce que le triim mini cale le moteur lorsqu'il est au ralenti !
    Mais avec un électrique ? ( à moins que ce soit pour garder la compatibilité...)

    Tu parle de calcul en mode acrobatique par rapport au ralenti, pas compris peux tu expliquer ?
    (je n'ai pas cette expérience...)


    Je pensais que M20 était un système (soft) autonome , en fait c'est la carte et la lib ?


    Je vais me mettre sur le soft , ça devrait être assez portable c est du GCC !
    Bonjour

    7.65 € Arduino complet avec le câble port compris;
    http://www.ebay.fr/itm/Mega-2560-R3-...YO0g-aWjv7AlMw

    Oui, enfin nan, c'est clair que sur ebay on peut tout avoir pour 1€ symbolique si on veut
    La j'ai juste été regarder les 2 composants sur farnell.com

    Moi aussi je peux t'acheter un "drone" sur ebay à 10$, et ça te prendra pas 3 ans de développement, crois moi , il sera plug&play à la sortie du carton !


    Sur ton site il n'y a aucun schéma ?
    J'ai l'impression que tu fait des cartes direct , sans schéma !

    Je commence par des dessins sur feuilles a4 petits careaux, puis des prototypes sur plaques epoxy à trous, ensuite je dessine sur kicad en vue schématique, puis en vue PCB, et ensuite je lance la production du PCB chez pcbway.com (hongkong), et l'achat des composants principalement chez e44.com.


    As tu le schéma du driver ?
    Et du soft ?

    Mon contrôleur de moteur brushless perso? Je peux te photographier le schéma que j'ai dessiné si tu veux, comme cette version même sur son PCB est encore un prototype, la dans kicad je ne suis pas passé par la case schématique, j'ai directement dessiné tout en vue PCB (on s'en fou c'est un prototype).


    tu dis 1000hz pour le driver , normalement on envoie du PPM comme un servo ?
    Non c'est du PWM, et la fréquence historiquement de ce PWM en modélisme rc est de 50Hz, c'est assez standard. Sauf que pour avoir les meilleures performances (verrouillage de l'assiette en vol, réactivité, etc...) les constructeurs de contrôleurs de moteurs brushless se sont rapidement mis à produire du matériel qui accepte jusqu'à 2000Hz. Aillant testé un PWM de 125hz à 1000hz, je peux te dire que cela change tout !


    Quelle capacité la batterie du quadri ?
    C'est une 2200mAh (voir pièce jointe le .pdf).


    Quelle référence les moteurs ?
    Tiger motor MN2206


    Je n'ai pas bien compris le ralenti sur un moteur électrique, peut tu expliquer ?
    Le ralenti moteur, c'est la vitesse avant décrochage à cause d'un BEMF trop faible. C'est comme sur un moteur thermique, il y a un ralenti moteur quand le moteur brushless n'est pas équipé de capteurs de position du rotor.

    Il y a donc une largeur d'impulsion PWM qui corespond à cet endroit (juste avant le décrochage), moi je l'ai vu à 129us (- marge de sécurité, quelques us).


    Et l'arret moteur ?
    Sur les moteurs thermiques, on règle de façon à ce que le triim mini cale le moteur lorsqu'il est au ralenti !
    Mais avec un électrique ? ( à moins que ce soit pour garder la compatibilité...)

    C'est la largeur d'impulsion PWM en dessous de laquelle le contrôleur de moteur brushless décide dans ses conditions logiques (son programme qui tourne dans son microcontrôleur) de ne plus commuter les phases du rotor (soit les phases laissées en l'air).


    Tu parle de calcul en mode acrobatique par rapport au ralenti, pas compris peux tu expliquer ?
    (je n'ai pas cette expérience...)

    C'est pas évident à expliquer mieux que ce que j'ai expliqué, mais en gros quand on pousse la machine dans ses retranchements, il faut faire certains calculs qui améliorent les trajectoires et la prise de décision de algorithme de vol pour stabiliser cette machine.


    Je pensais que M20 était un système (soft) autonome , en fait c'est la carte et la lib ?
    Tout est expliqué dans les .pdf que je t'ai mis en pièce jointe, c'est l'une de mes cartes oui.
    Images attachées Images attachées

  20. #19
    sylvainmahe

    Re : Construction d'une radiocommande R/C !

    Tu as testé les différents µp et les différentes fonctions de ta lib ?
    Oui pendant 3 ans


    dans compiler.sh tu fait appel à avrdude pour avoir le nom du µc

    Ok quand tout est installé c est bien.

    Toutes les explications sont dans les .pdf que je t'ai mis en pièce jointe, tout est expliqué de a à z pour y arriver tout seul, c'est très simple à mettre en oeuvre.


    Mais dans main.c il y a que des include LOL un gag non ?
    C'est à dire?


    comment voir le fichier asm ?
    Tu envois une commande à avr-gcc.

  21. #20
    invitef86a6203

    Re : Construction d'une radiocommande R/C !

    J'ai compilé sur UBUNTU
    OK RAS , ça foncrionne

    Par contre sur windows une bizarrerie !
    Il faut mettre tout le core.h dans le main.cpp pour que ça compile OK !
    (ça fonctionne comme ça, mais c est pas cool)
    Sinon il dit que la class Core n'est pas déclarée. ??? bizarre ???
    ça ressemble à un bug , si tu as une idée ?
    J'ai essayé de mettre core.h dans le même répertoire, pareil.


    Sur arduino il y a évidemment des conflits
    Où est déclaré RISING et FALLING ça bloque la dessus entre autre
    Et n’apprécie pas round aussi , surement une fonction arduino.
    Il y a aussi un core arduino, différent , ça doit être pas mal en conflit.

  22. #21
    sylvainmahe

    Re : Construction d'une radiocommande R/C !

    Citation Envoyé par freepicbasic Voir le message
    J'ai compilé sur UBUNTU
    OK RAS , ça foncrionne

    Par contre sur windows une bizarrerie !
    Il faut mettre tout le core.h dans le main.cpp pour que ça compile OK !
    (ça fonctionne comme ça, mais c est pas cool)
    Sinon il dit que la class Core n'est pas déclarée. ??? bizarre ???
    ça ressemble à un bug , si tu as une idée ?
    J'ai essayé de mettre core.h dans le même répertoire, pareil.


    Sur arduino il y a évidemment des conflits
    Où est déclaré RISING et FALLING ça bloque la dessus entre autre
    Et n’apprécie pas round aussi , surement une fonction arduino.
    Il y a aussi un core arduino, différent , ça doit être pas mal en conflit.
    Ok c'est cool tu as avancé

    Pour linux, oui ça fonctionne avec ce que j'ai expliqué dans les .pdf (sur une installation fraîche d'ubuntu en suivant très exactement ma procédure).

    Pour windows, c'est curieux, je n'ai jamais eu ce genre de problème. J'avais essayé de compiler chez un ami, pas de soucis mise à part son driver d'usbasp qui a été galère à trouver.

    Je ne sais pas quoi te dire en fait, Core.h est inclu de façon tout à fait conventionnelle.


    En ce qui concerne les conflits, ça c'est évident. Arduino change des valeurs sur pleins de registres, et déclare pleins de trucs de façon global...

    round n'est pas une fonction arduino, mais arduino inclu math.h qui a cette fonction d'arrondi au plus proche (round), le compilateur indique bien qu'il existe 2 round dans le code.

    Bref, mettre Module dans Arduino ça équivaut un peu à une tambouille dans le genre émuler un logiciel, on est jamais sûr du résultat et l'intérêt final y est perdu...

  23. #22
    invitef86a6203

    Re : Construction d'une radiocommande R/C !

    Il est possible que la version avr-gcc ne soit pas la bonne ?

    gcc version 4.7.2 (AVR_8_bit_GNU_Toolchain_3.4.2 .939)

    Quant à la version UBUNTU j'ai dû l'installé l'année dernière , mais il y a eu des mises à jour.
    Mais AVR-GCC je l'ai chargé comme ton exemple.

    Pour Arduino évidemment il y a une usine à gaz derrière...
    Mais l'intérêt ce sont des cartes toutes faites et pas cher, malgré la prise USB qui ne servira plus, quoiqu'il y a des versions nano sans la partie USB.


    Peu tu porter la lib sur d'autre µc ?
    AT90USB162
    ATMEGA2560
    Ou me dire quel sont les chose à modifier ?
    Apparemment surtout le define.h mais peut être aussi dans les .cpp ?

  24. #23
    invitef86a6203

    Re : Construction d'une radiocommande R/C !

    Peux tu expliquer les paramètres ?
    avr-gcc main.cpp -mmcu=atmega328p -Wall -Wno-sign-compare -Os -ffunction-sections -fdata-sections -Wl,--gc-sections -std=c++11 -o main.elf
    -mmcu=atmega328p OK

    -Wall tout warning OK

    -Wno -sign -compare je suppose qu'il vont ensemble pour enlever des warnings , mais quoi comme wartning???

    -Os Optimise la taille OK

    -ffunction-sections mettre les fonctions
    -fdata-sections et mettre les datas dans leur propre section ,
    je pensais que le compilo le faisait systématiquement ou alors il fait autre en plus


    -Wl, ?????? et la virgule c est pourquoi ?
    --gc-sections ??????????
    -std=c++11 ????????

    -o main.elf OK

  25. #24
    sylvainmahe

    Re : Construction d'une radiocommande R/C !

    Citation Envoyé par freepicbasic Voir le message
    Il est possible que la version avr-gcc ne soit pas la bonne ?

    gcc version 4.7.2 (AVR_8_bit_GNU_Toolchain_3.4.2 .939)

    Quant à la version UBUNTU j'ai dû l'installé l'année dernière , mais il y a eu des mises à jour.
    Mais AVR-GCC je l'ai chargé comme ton exemple.

    Pour Arduino évidemment il y a une usine à gaz derrière...
    Mais l'intérêt ce sont des cartes toutes faites et pas cher, malgré la prise USB qui ne servira plus, quoiqu'il y a des versions nano sans la partie USB.


    Peu tu porter la lib sur d'autre µc ?
    AT90USB162
    ATMEGA2560
    Ou me dire quel sont les chose à modifier ?
    Apparemment surtout le define.h mais peut être aussi dans les .cpp ?
    Bonjour freepicbasic,

    Il est possible que la version avr-gcc ne soit pas la bonne ?
    C'est une possibilité, j'ai un peu de mal à y croire étant donné que j'avais testé récemment, et également presque au début du projet (il y a 2ans et demi)(pour pouvoir au moins tester mes commandes en batch windows), c'était ok, ...

    Je vais essayer de trouver un pc windows dans le coin pour voir ce problème, ça va pas être évident car: éloignement des personnes aillant ce système d'exploitation + souvent indisponibilité pour faire un test (ce qui ce comprend)...


    Peu tu porter la lib sur d'autre µc ?
    Oui, il faut que j'achète la carte sur lequel est monté le microcontrôleur également, car ma bibliothèque dépend non seulement du micro, mais également de la manière dont les constructeurs de la carte ont distribués les ports sur celle-ci.

    Pour mes cartes j'ai pris au plus simple, de la pin 1 jusqu'à la dernière (dans l'ordre), mais tout le monde ne fait pas ça.


    Ou me dire quel sont les chose à modifier ?
    Oui ce serait l'idéal, mais quand je vois déjà le temps que je met à répondre à toutes tes questions (y en a beaucoup à chaque fois), je crois que j'irais plus vite à faire les modifs.

    Effectivement les changements c'est surtout la classe pwm read (pour les pin change interrupt), la classe des interruptions (int0, int1, etc...), les defines, dans core ce sont par exemple les "pinToRegisterDdr" (pour la distribution des pins qui n'est pas la même selon le micro), la fonction erase dans la classe memory (dans la boucle for, changer la taille de la mémoire), etc...


    -Wl,-gc-sections supprime les sections inutilisées. Ça ne fonctionne qu'avec cette syntaxe d'après mes souvenirs d'il y a quelques années, honnêtement j'ai pas cherché à savoir pourquoi.

    -std=c++11 Demande de compiler du code c++ standard (c++11 c'est la dernière norme: ISO/CEI 14882:2011)

    -Wno-sign-compare C'est le compilateur qui m'avait conseillé cette ligne au début de mon projet de bibliothèque. Le compilateur retournait un warning quand on comparait des entiers signés avec des non-signés (si mes souvenirs sont bons, j'espère), tu m'a remis le doute, j'ai donc refait des tests, apparemment dans les dernières versions d'avr gcc il n'y a plus ce warning, je vais donc virer cette petite ligne sur mes fichiers locaux et en ligne. Et tu peux l'enlever également.

  26. #25
    sylvainmahe

    Re : Construction d'une radiocommande R/C !

    Petite rectification:
    -Wno-sign-compare c'est bien pour pouvoir comparer des signés avec des non signés, il y a quelques mois ma classe Timer.cpp retournait le temps en signé 64 bits (précision 1 microseconde), cependant j'aimais bien dans mes programmes pouvoir comparer du temps signé et des valeurs non signés sans warning du compilateur.

    Ne voyant pas l'utilité dans aucun de mes projets de compter le temps à l'envers, jusqu'en négatif, j'avais modifié ma classe Timer.cpp pour qu'elle retourne des non signés finalement.

    Enfin pour dire que -Wno-sign-compare était la parce que ma bibliothèque n'était pas encore finalisée et que je me posais encore certaines questions à ce propos, ce qui n'est plus le cas, maintenant je spécifie tout le temps par exemple 10ll ou 10ull, ou transforme une variable via (unsigned long long)(variable), etc..


    J'ai fait une petite mise à jour de ma bibliothèque en ce qui concerne le nrf, je l'ai mis à envoyer en 1Mbps (c'est un bon compromis entre distance et vitesse), et j'ai enlevé le retry à 1 si un envoi échoue, d’où la pièce jointe. (et d’où l'utilité des liens sur sites officiels qui sont forcément les dernières versions).

    J'ai eu des meilleurs performances à travers des obstacles (2 murs en béton + tas de terre qui masque complètement + haie de 2mètres50 + rangée d'arbres : portée 100mètres) avec cette config, donc je préfères te mettre au courant et remettre en pièce jointe la nouvelle version

    Comme le spécifie le datasheet du nrf, 250kbps c'est bien pour la portée mais moins bon pour les colisions en bi-directionnel, inversement pour le 2Mbps, et par contre à 1Mbps c'est un bon compromis. Aillant renouvelé des tests, c'est donc ce que j'ai finalement choisi.
    Fichiers attachés Fichiers attachés

  27. #26
    invitef86a6203

    Re : Construction d'une radiocommande R/C !

    linux donne la version 4.9 de GCC et windows 4.7.2 , tout de même assez proche.
    Sur windows c est toolchain pour AVR studio 4.

    J ai trouvé une version 7 de AVR-GCC qui va sur arduino d'après le site, mais ils mettent en garde pour d'éventuelles incompatibilités...
    D'ailleurs ils parlent de Windows et dessous il y a des apt-get de Linux,
    ("vous avez dit Bizarre , comme c est étrange !")


    J'ai posté "une discussion sur le NRF + PA" !

    C'est le cas de "ton module"

    Ils disent 1.4km , mais ne précise pas le mode .
    A mon avis en duplex ça ne fonctionne pas ?
    Dernière modification par Antoane ; 23/08/2017 à 08h26. Motif: Réparation url

  28. #27
    sylvainmahe

    Re : Construction d'une radiocommande R/C !

    Citation Envoyé par freepicbasic Voir le message
    linux donne la version 4.9 de GCC et windows 4.7.2 , tout de même assez proche.
    Sur windows c est toolchain pour AVR studio 4.

    J ai trouvé une version 7 de AVR-GCC qui va sur arduino d'après le site, mais ils mettent en garde pour d'éventuelles incompatibilités...
    D'ailleurs ils parlent de Windows et dessous il y a des apt-get de Linux,
    ("vous avez dit Bizarre , comme c est étrange !")


    J'ai posté "une discussion sur le NRF + PA" !

    C'est le cas de "ton module"

    Ils disent 1.4km , mais ne précise pas le mode .
    A mon avis en duplex ça ne fonctionne pas ?
    J'ai lu avec attention votre discussion qui est intéressante. Par contre je ne comprends pas très bien ta question dans ce fil de discussion, étant donné que pleins de nRF24L01+ sont déjà livrés sur PCB avec PA dans le commerce, et qu'en lien justement tu indiques le PCB que je t'ai passé (?).

    Ce que je veux dire: que veux-tu de plus? Et quel est réellement ton projet? (contraintes, etc...)


    windows 4.7.2
    Curieusement ça a toujours été un problème cette "obsolescence" d'avr gcc sur windows comparé à linux, il y a 3 ans quand j'ai débuté mon projet de bibliothèque, c'était déjà "un problème", et l'arduino embarquait déjà une version ancienne comparé à linux, ça n'a pas changé, il y a toujours un train de retard, allez savoir pourquoi. Peut être qu'à chaque version, il n'y a personne qui se porte volontaire pour compiler ça pour windows. C'est dommage.

    Je ne peux pas t'apporter grand chose comme réponse, j'ai pas de windows à disposition !


    Ils disent 1.4km , mais ne précise pas le mode .
    A mon avis en duplex ça ne fonctionne pas ?


    C'est possible mais avec quelle antenne, certainement une unidirectionnelle, et encore.

    À présent je préfères être en 1Mbps, pour la vitesse et les collisions, j'ai pas retesté la portée à vue depuis, j'ai juste testé à travers des obstacles. La portée avec obstacles de indoor à outdoor:
    tranceiver 1 // 2 murs en béton espacés de 3 mètres + une bute de terre qui masque + une haie de sapins + une rangée d'arbres à feuilles // tranceiver 2
    <-------------------------------------------------------------------- 80 mètres -------------------------------------------------------------------->


    Ce qui est nettement supérieur à ma futaba t12fg 2.4GHz qui coûtait à l'époque 830 euros dans le commerce, donc je pense que c'est prometteur pour faire de l'aéromodélisme ce petit nrf

    Il faut que j'essaye ça à nouveau à vue pour voir ce que ça donne en 1Mbps.

    Pour le duplex je crois pas que ça diminue la portée, dans ma classe nrf j’envoie les bits qu'il faut au composant pour le basculer d'émetteur à récepteur, ou inversement, lorsque tu décides soit de recevoir, soit d'envoyer de l'information..

  29. #28
    invite5637435c

    Re : Construction d'une radiocommande R/C !

    Bonsoir,

    très belle réalisation!

  30. #29
    invitef86a6203

    Re : Construction d'une radiocommande R/C !

    Tu nous a fais bien baver d'envie devant le superbe boitier métal , qui ne sera pas à ma porté , vu que je ne suis pas équipé pour le faire.
    Personnellement, je vais adapter une ancienne télec vintage , hors d'age...
    Nom : fs85.jpg
Affichages : 1556
Taille : 365,9 Ko
    L'intérêt est la qualité des manches, ce qui se fait maintenant , c'est du consommable fait pour ne pas durer.
    Après je ferais surement un boitier en 3D.

    Pour l'électronique je dois m'en sortir , ma bête noire a toujours été ces satanés boitiers, quoique maintenant avec l'imprimante 3d, ça permet de résoudre ce problème.
    L'intérêt de ton post c'est surtout de m'avoir donné la motivation de continuer mon projet.
    Et c'est surtout le coté technique , plutôt que le coté loisir qui m'intéresse.


    Le circuit RF24L01 remplace un émetteur à PLL + le récepteur + une gestion de protocile.
    Autrement dit ça remplace (un émetteur avec son PLL en circuit logique)
    http://senderbau.egyptportal.ch/veronica1.htm
    + le récepteur.
    http://www.mission-modelisme.com/rad...hz_72-mhz.html
    + la gestion
    Que l'on pourrait imager par un ordinateur de l’époque, genre Apple par exemple.
    https://upload.wikimedia.org/wikiped...le_II_plus.jpg

    Et tout ça dans une puce de 5mm pour un prix RIDICULE.
    C'est magique !
    Mais malheureusement la plupart des gens n'en sont même pas conscient.
    Comme tout ces gamins qui jouent avec leur téléphone comme si c'était un hochet , alors que c'est une merveille de technologie.

    Bref, pourquoi je me posent tant de questions sur le PA etc...
    Car il a 2 modes de fonctionnement.
    Un sécurisé avec réponse du récepteur et acquits.
    L'autre simple comme une simple télec classique.

    Et la transmission sécurisée oblige le récepteur à émettre donc à avoir la même puissance d'émission.
    Les circuit vendus sont vendus sans schéma, et si on regarde les photos de PCB avec PA .
    Celui ci par exemple

    ou là

    ou là

    pas de commutation !

    Les nouvelles télec 2.4ghz , scannent la bande avant de déterminer le canal choisi sur les 128 disponibles.
    Alors la question, c est comment avec une antenne réception non commutée ?

    Je pense que la plupart des caractéristiques des produits "made in China" sont gonflées artificiellement afin d'attirer le client.
    Les mêmes produits sont parfois vendus avec des caractéristiques différentes.
    Mon dernier achat une simple alime 12V 2A , en fait après test elle fait seulement 1.43A..
    ( vu le prix on ne va pleurer ! ça fonctionne tout de même, mais , combien de temps ? Car votre marge de sécurité calculée est détruite par ces mensonges))
    Soit plus de 25% en moins qu'annoncé et en plus c'est inscrit dessus 2A !
    Même parfois ce qui est écrit est délirant pour un électronicien, par exemple; comme 12V 2A pour LEDs de 50W, alors que la puissance annoncée est de 24W et en réelle en fait c'est encore moins...

    Enfin, donc ces histoires de portée annoncée et en fait réelles, ça me laisse assez méfiant.
    Sachant que la radio c'est vraiment pas la sureté absolue du résultat.
    Dernière modification par Antoane ; 27/08/2017 à 09h59. Motif: Rapatriement des PJ sur le serveur du forum

  31. #30
    Laboum

    Re : Construction d'une radiocommande R/C !

    Bonjour a tous,
    @ sylvainmahe : Chapeau bas pour cette superbe réalisation
    Citation Envoyé par freepicbasic Voir le message
    Mais malheureusement la plupart des gens n'en sont même pas conscient.
    Comme tout ces gamins qui jouent avec leur téléphone comme si c'était un hochet , alors que c'est une merveille de technologie.
    L'essentiel n'est-il pas de garder, (comme moi ), une âme d'enfant, de t'émerveiller devant les prodigieux progrès technologiques.
    Reste passionné
    Bon dimanche a tous

Page 1 sur 3 12 DernièreDernière

Discussions similaires

  1. Interupteur ON/OFF radiocommandé
    Par invite936f401c dans le forum Électronique
    Réponses: 6
    Dernier message: 04/01/2011, 22h33
  2. radiocommande
    Par invitea00b5e9e dans le forum Électronique
    Réponses: 4
    Dernier message: 22/03/2009, 10h24
  3. radiocommande
    Par invite2259f4b7 dans le forum Électronique
    Réponses: 1
    Dernier message: 25/08/2007, 22h06
  4. radiocommande
    Par invite54d0d83a dans le forum Électronique
    Réponses: 20
    Dernier message: 23/10/2006, 17h38
  5. la radiocommande
    Par invite755b062d dans le forum Électronique
    Réponses: 10
    Dernier message: 06/01/2006, 01h12
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...