Bonjour, cliquez-ici pour vous inscrire et participer au forum.
  • Login:



+ Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 16 à 28 sur 28

oh la belle girouette

  1. Ke2017

    Date d'inscription
    janvier 2018
    Âge
    26
    Messages
    9

    Re : oh la belle girouette

    peux tu me dire ou trouver le petit capteur? Au moins son petit noms car je ne le retrouve pas sur mes sites habituels. Merci

    -----

     


    • Publicité



  2. Murayama

    Date d'inscription
    août 2007
    Localisation
    Kyoto
    Messages
    731

    Re : oh la belle girouette

    Bonjour!

    peux tu me dire ou trouver le petit capteur? Au moins son petit noms car je ne le retrouve pas sur mes sites habituels. Merci
    Désolé du retard.
    J'avais mis un lien sur un site où on pouvait l'acheter dans un autre article, là où j'avais fait le premier prototype
    pour une mesure linéaire. Remontez de quelques pages, il s'agissait aussi d'un encodeur (mais linéaire) et d'Arduino.
    Le chip s'appelle TW11.
    Il vous faudra un circuit d'adaptation parce que c'est un boîtier QFN. Si vous googlez QFN16 to DIP breadboard
    et que vous choisissez les résultats images, vous en aurez un char et une barge.

    Bon, ben y'a pus qu'à!

    Pascal
     

  3. Ke2017

    Date d'inscription
    janvier 2018
    Âge
    26
    Messages
    9

    Re : oh la belle girouette

    Citation Envoyé par Murayama Voir le message
    Bon, ben y'a pus qu'à!

    Pascal
    milles merci, j'ai commander le materiel. je vais me familiariser avec l’environnement arduino au travers de t'es conseils. je vous tiens au courant.
     

  4. Murayama

    Date d'inscription
    août 2007
    Localisation
    Kyoto
    Messages
    731

    Re : oh la belle girouette

    Bonjour!

    À tout hasard, vu que ma responsabilité semble engagée, voici un schéma. C'est un circuit que
    j'ai réalisé, son fonctionnement est testé dans cette configuration là.

    screenshot_1011.png

    Quelques détails: Sur les 16 pins, il y en a beaucoup qui sont définis, à la masse, etc. Ce qu'il vous faut,
    c'est le +3V, la masse, et les signaux du SPI (MISO, MOSI, CLOCK, CS). Le reset du chip peut être utile,
    alors à tout hasard, câblez aussi TW_RST sur un GPIO. Je ne me suis pas servi de TW_REQ, et je ne sais
    d'ailleurs plus si c'est un signal qu'on envoie pour demander un échantillon ou le contraire, le chip dit
    qu'il a un échantillon de prêt.
    Ce que j'ai fait était décrit dans mon programme:
    1. Génération d'une interruption à un certain rythme que vous définissez.
    2. À la réception de l'interruption, vous allez lire le chip et vous utilisez les données.

    En ce qui concerne la soudure, chacun sa méthode, mais j'ai décrit la mienne il y a peu de temps: vous
    étamez les pistes, vous chauffez en maintenant le chip, et c'est soudé. Une fois qu'un côté est collé,
    vous soudez les 3 autres en apportant de la soudure. Et vous refaites le premier côté parce qu'il n'est
    pas forcément bien soudé (c'est pourquoi j'ai dit "collé" ci-dessus). Pour que ce soit bien soudé, le flux
    à l'intérieur de la soudure est indispensable.

    Ah oui, avec une panne en forme de tounevis plat, l'avantage est que vous soudez les 4 pins à la fois.
    Ne pas s'inquiéter, s'il y a du flux, il n'y aura pas de pont. Il faudrait que je fasse une video... Ça parait
    toujours un peu farfelu de souder un composant qui est plus petit que la panne du fer, mais ça marche
    tellement bien et c'est tellement rapide que ça vaut la peine d'essayer.

    Dans la video suivante, il y a une autre méthode:

    https://www.youtube.com/watch?v=-1jmYkNXOAI

    Je ne comprends pas comment on peut travailler avec un fer aussi crade, mais bon, il y arrive.
    Et comme vous pouvez le voir, (il y a un commentaire), il n'y a pas de pont de soudure.

    Autre méthode:

    https://www.youtube.com/watch?v=lhOKSqipwqg

    Bref, cherchez, il y a à peu près autant de méthodes que de techniciens. En ce qui me concerne, je n'utilise
    pas d'autre flux que celui qui est dans la soudure. (Sn Ag Cu, sans plomb).

    Voilà!

    Pascal
     

  5. mag1

    Date d'inscription
    juin 2011
    Âge
    71
    Messages
    2 973

    Re : oh la belle girouette

    Bonjour,

    En #8, je signalais un module boussole GY-273, ces modules ont plusieurs niveaux de sensibilité (du champ terrestre à 8 gauss).

    En faisant tourner un aimant au dessus, il y peut être une solution simple et précise. J'en ai commandé un, résultat dans... le temps que la boussole trouve son chemin.

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
     


    • Publicité



  6. Murayama

    Date d'inscription
    août 2007
    Localisation
    Kyoto
    Messages
    731

    Re : oh la belle girouette

    Bonjour!

    Oui, c'est probable que ça marche avec une précision suffisante. Il faudra juste
    éloigner suffisamment l'aimant pour éviter la saturation parce que 8 gauss, ce n'est
    pas beaucoup. Et ne pas trop l'éloigner non plus pour ne pas capter le champ terrestre.
    En plus, la carte est déjà câblée, ce qui simplifie le travail, surtout quand on n'a jamais
    soudé de QFN.

    Pascal
     

  7. Ke2017

    Date d'inscription
    janvier 2018
    Âge
    26
    Messages
    9

    Re : oh la belle girouette

    Cool de t'investir avec moi XD.

    J'ai vu sur le net des girouette anémomètre à ultrason.
    Il y as quelques tuto à ce sujet pour des DIY et ça me semble pas mal aussi ...

    Vous en pensez quoi?
     

  8. Murayama

    Date d'inscription
    août 2007
    Localisation
    Kyoto
    Messages
    731

    Re : oh la belle girouette

    Bonjour!


    Je ne suis pas fan des des systèmes entièrement statiques pour ce genre d'application.
    Dans le cas d'une girouette ordinaire, même si l'électronique a des vapeurs, on peut
    tout de même voir la girouette, donc avoir tout de même une valeur approximative.
    Et puis les ultrasons, il faut faire 2 mesurees en XY. Ou 4 (une dans chaque sens sur
    chaque axe). Puis calculer l'arc tangeante du rapport. Mais on ne peut pas faire les
    mesures en même temps. Et le vent près des voiles est assez turbulent. On ne peut pas
    être sûr que la direction n'aura pas changé pendant les 2 mesures qui définissent votre
    angle. Quid de la précision, je ne saurais le dire.
    Mais bon, ceci dit, si ça se fait, c'est que ça doit tout de même un peu fonctionner.


    Pascal
     

  9. Ke2017

    Date d'inscription
    janvier 2018
    Âge
    26
    Messages
    9

    Re : oh la belle girouette

    Salut,

    j'ai commencé a recevoir mes Equipements mais je ne m'en sort pas !

    Je me sent un peu blaireau mais est ce que quelqu'un aurais la gentillesse de me faire un programme?
    Je suis prêt a rémunéré celui qui voudras bien m'aider mais mon truc a moi c'est les bateaux ! pas la prog ^^^
    Je m'occupe de " la mécanique", possibilité de vous envoyer les elements ...

    Par avance merci a vous et si l'un d'entre vous est de la Rochelle ou a envie d'y passer quelques jours faire du bateau pour découvrir son programme en fonction se seras avec plaisirs. -> hébergement possible à bord !
     

  10. mag1

    Date d'inscription
    juin 2011
    Âge
    71
    Messages
    2 973

    Re : oh la belle girouette

    Citation Envoyé par Ke2017 Voir le message
    Salut,
    j'ai commencé a recevoir mes Equipements mais je ne m'en sort pas !
    Bonjour,

    "Le responsable" va repasser.

    Entre temps, j'ai vu un système de girouette avec deux capteurs à effet hall linéaire, placés à 90°, avec un aimant tournant au milieu.
    On obtient deux sinusoïdes en quadrature, en entrant dans une table, on connait l'angle.

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
     

  11. Murayama

    Date d'inscription
    août 2007
    Localisation
    Kyoto
    Messages
    731

    Re : oh la belle girouette

    Bonjour!

    "Le responsable" va repasser.
    Si c'est de moi que vous parlez, je n'ai jamais su repasser. C'est ce qui fait que
    j'ai opté depuis longtemps pour des chemises blanches infroissables qui feraient
    blêmir BHL pire que lors de ses nombreux entartages.

    Entre temps, j'ai vu un système de girouette avec deux capteurs à effet hall linéaire,
    placés à 90°, avec un aimant tournant au milieu.
    On obtient deux sinusoïdes en quadrature, en entrant dans une table, on connait l'angle.
    Ben c'est exactement ce que fait ce chip. Sauf qu'il y a 3 capteurs à 120 degrés.
    Et d'une manière générale, les sinusoïdes en quadrature, c'est la base de TOUS les
    encodeurs récents, qu'ils soient optiques ou magnétiques. Et dès que vous avez besoin
    de plus de, disons 1000 ou 2000 points par tour, alors la seule solution est de se
    colleter avec du traitement analogique sin / cos avant convertisseur AD. Même les
    "resolvers" fonctionnent sur ce principe après démodulation.

    À tout hasard pour ceux qui auraient envie d'essayer, il faut absolument calibrer
    les signaux. Suffisamment grands pour avoir une résolution correcte avec l'ADC du
    microcontrôleur que vous utilisez. Et pas trop pour ne pas "clipper". Et il faut
    aussi calibrer la phase, ce qui est un peu technique, mais peut se faire avec quelques
    amplis op. Si la phase n'est pas exactement à 90, on a un lissajous elliptique, une
    erreur d'angle. Et il faut aussi calibrer l'offset. Dans l'ordre, calibrer d'abord
    l'offset, ensuite la phase, et l'amplitude.
    Bref, fait en discret, c'est une usine à gaz, ce qui fait que l'utilisation d'un chip
    dédié est de loin la solution la plus simple.

    Je me sent un peu blaireau mais est ce que quelqu'un aurais la gentillesse de me faire un programme?
    Ce n'est pas une question d'être un blaireau ou pas. Si c'est votre première réalisation,
    on peut dire que vous n'avez pas pris le plus simple pour commencer, mais il n'y a pas
    de quoi se décourager.
    Dans la liste de ce qui peut merder:
    - Soudure sèche. Le chip est assez petit, et si on n'est pas habitué à souder des QFN,
    c'est une panne probable.
    - Aimant mal placé. Je m'aperçois que j'avais oublié d'en parler, mais comme vous avez
    pu le voir, l'aimant que j'ai utilisé est cylindrique. MAIS: sa magnétisation est radiale,
    et non axiale. Sinon, le chip verrait toujours le même champ, que ça tourne ou pas.
    En clair, l'axe de magnétisation de l'aimant doit être perpendiculaire à la normale
    au chip. Ou en d'autres termes, l'axe nord-sud de l'aimant doit être contenu dans un
    plan parallèle à celui de la surface du chip.
    - Ensuite, il peut y avoir des problèmes de programmation. Vous utilisez Arduino?
    J'ai juste utilisé Arduino une fois pour voir ce que c'était. J'ai vu. J'ai allumé
    une LED et fait quelques programmes, mais j'ai préféré continuer avec les cartes
    Launchpad de Texas.

    Je suis prêt a rémunéré celui qui voudras bien m'aider mais mon truc a moi c'est les
    bateaux ! pas la prog ^^^
    Je peux vous le faire, mais ça va vous coûter un max en chocolats! Non, sérieux, attendez
    que je reprenne le boulot au labo et je vous fais un programme simplifié sur une Launchpad.
    NB: ce Lundi est férié. Et puis je fais en principe en priorité le boulot qui me nourrit, mais
    je vais voir lors de mes pauses café cette semaine.
    Je vais en fait simplifier celui que j'ai fait pour qu'il tienne en 1 page, et je verrai
    si je peux trouver un LCD plus standard.

    Par avance merci a vous et si l'un d'entre vous est de la Rochelle ou a envie d'y passer
    quelques jours faire du bateau pour découvrir son programme en fonction se seras avec
    plaisirs. -> hébergement possible à bord !
    Chiche! J'attendrai au bistrot du port, histoire de ne pas gerber mon quatre heures,
    ce qui serait incongru devant les filles de la Rochelle.

    Affaire à suivre.

    Pascal
     

  12. Ke2017

    Date d'inscription
    janvier 2018
    Âge
    26
    Messages
    9

    Re : oh la belle girouette

    YEAAAAH ! De l'aide !

    Effectivement c'est ma première création et sans doute la seule ! non pas que je soit décourager mais simplement que j'ai découvert que ce n’était pas pour moi ( chacun son truc après tout, je suis pas très branché informatique à la base ^^)

    Pour le programme je te propose de t'envoyer tout les équipements que j'ai acheter pour les faire fonctionner ensemble ou alors tu me donne tout ce que je dois acheter). après je m'occuperais de la partie " mécanique" avec des fichiers 3D pour aller les faire imprimer ( le dessin indus c'est mon truc, enfin ça l'était , j'ai fait ça pendant 6 ans).

    Pour info le projet a un réel intérêt pour pas mal de navigateur. je ne souhaite pas en faire un commerce mais je divulguerais sans doute cela autour de moi.
    Une centrale de navigation ( projet final) dont le dépannage est simple et toujours possible avec des fonctions de base à moindre coût ...

    Aujourd'hui les produits du commerce les plus simples n'on qu'entre 20 et 30% d’utilité et coûtent entre 4000 et 6000 euro. Et autant vous dire que quand les 1% des 20% utiles merde. c'est tout qui est mort. ( je parle là du projet final , la centrale de navigation)

    ce serait simpas que l'on parle de tout celà en message privé Pascal. biensur je ferais suivre l'avancé du projet sur le forum.
     

  13. Murayama

    Date d'inscription
    août 2007
    Localisation
    Kyoto
    Messages
    731

    Re : oh la belle girouette

    Bonjour!

    Je ne sais pas si vous êtes toujours là, mais voici un programme simplifié qui fonctionne.
    J'ai été un peu plus sollicité que prévu, ce qui a causé mon retard.
    J'ai fait pour que le programme tienne en un seul fichier, ce qui n'est pas la façon la plus
    élégante de programmer, mais en tout cas c'est la plus efficace quand il s'agit de faire un
    programme exemple.
    - Il n'y a pas de sortie LCD. La seule chose que le programme fait, c'est de lire la valeur
    du registre d'angle toutes les 50 ms environ.
    - Le timing utilise le VCO interne et n'est donc pas précis. Mais il n'y a pas besoin de précision.
    L'horloge est autour de 1 MHz.
    - Le programme principal tient en 6 lignes, configuration et démarrage des interruptions.
    - La LED orange ne sert à rien, je l'ai mise juste pour avoir un point qui me permette de
    vérifier la fréquence à l'oscillo.

    Ce que le pogramme fait:
    - Configuration du timer, et du SPI
    - Lecture du capteur d'angle à chaque interruption.

    Voilà.

    Pascal



    Code:
    #include "MSP430F5529.h"
    
    
    typedef unsigned long uint32;
    typedef unsigned short uint16;
    typedef unsigned char uint8;
    
    
    //  Definition of the LED related GPIOs, which will be used to measure the
    //  processing time with the scope.
    #define LED_PORT_DIR    P8DIR
    #define LED_PORT_OUT    P8OUT
    #define ORANGE_LED      0x02
    #define GREEN_LED       0x04
    //  Definition of the sensor signals
    #define TW11_CS         0x40
    #define TW11_RESET      0x10
    #define Select()        (P2OUT &= ~TW11_CS)
    #define Deselect()      (P2OUT |= TW11_CS)
    #define SPI_BITS        0x07
    
    
    //  Function prototypes
    void GPIOInit(void);
    void SPIInit(void);
    void TimerInit(void);
    uint8 SPIWriteByte(uint8 b);
    uint16 ReadSensor(void);
    void TW11Reset(void);
    
    
    void main( void ) {
        WDTCTL = WDTPW + WDTHOLD;
        GPIOInit();
        SPIInit();
        TW11Reset();
        TimerInit();
        __bis_SR_register(LPM0_bits + GIE);
    }
    
    
    void GPIOInit(void) {
        LED_PORT_DIR |= ORANGE_LED | GREEN_LED;     //  Enable LED pins output mode
        LED_PORT_OUT = 0;                           //  Off by default
        P2DIR |= TW11_CS | TW11_RESET;              //  Enable control pins
        P2DIR = TW11_CS | TW11_RESET;               //  Set control pins to 0
        P2OUT = TW11_CS | TW11_RESET;
     }
    
    
    void SPIInit() {
        P3SEL |= SPI_BITS;                          //  Change the output assignment from default output to SPI
        UCB0CTL1 |= UCSWRST;                        //  Put SPI engine to reset mode in order to configure it.
        UCB0BRW = 2;                                //  Max possible bit rate for current clock frequency
        UCB0CTL0 = UCSYNC   |                       //  SPI is synchronous
                UCMST       |                        //    Master mode
                UCMSB;                              //  Transmit most significant bit first.
        UCB0CTL1 |= UCSSEL_2;                        //    Select Sub Master clock (SMCLK)
        UCB0CTL1 &= ~UCSWRST;                       //  Enable SPI engine
    }
    
    
    void TimerInit(void) {
        TBCCTL0 = CCIE;                             //  CCR0 interrupt enabled
        TBCCR0 = 54000;                             //  Timer period
        TBCTL = TBSSEL_2 + MC_1 + TBCLR;            //  SMCLK, contmode, clear TBR
    }
    
    
    uint8 SPIWriteByte(uint8 b) {
        uint8 retval;
        UCB0IFG &= ~UCTXIFG;
        UCB0TXBUF = b;                              //  Send the parameter
        while(!(UCB0IFG & UCRXIFG));                   //  Wait until byte is sent (and therefore something is received)
        retval = UCB0RXBUF;                         //  Get received value
        return retval;                              //  return received value
    }
    
    
    uint16 ReadSensor(void) {
        uint16 retval;
        uint8 * retbuf = (uint8 *)(&retval);
        Select();
        retbuf[1] = SPIWriteByte(0);
        retbuf[0] = SPIWriteByte(0);
        Deselect();
        retval &= 0x03FF;                    //    Return only 10 bits
        return retval;
    }
    
    
    void TW11Reset(void) {
        P2OUT &= ~TW11_RESET;
        __delay_cycles(50000);
        P2OUT |= TW11_RESET;
    }
    
    
    #pragma vector=TIMER0_B0_VECTOR
    __interrupt void Timer0B0_interrupt(void) {
        static uint32 sensorval;
        _DINT();            //  Avoid nested interrupts
        LED_PORT_OUT ^= ORANGE_LED;
        sensorval = ReadSensor();
        if(sensorval > 1) LED_PORT_DIR |= GREEN_LED;
        else LED_PORT_DIR &= ~GREEN_LED;
        _EINT();            //  Reenable interrupts
    }
     


    • Publicité







Sur le même thème :





 

Discussions similaires

  1. Girouette sur RS232
    Par malo777 dans le forum Électronique
    Réponses: 13
    Dernier message: 21/11/2014, 12h55
  2. Actu - Science décalée : la belle-fille provoque la ménopause de la belle-mère
    Par RSSBot dans le forum Commentez les actus, dossiers et définitions
    Réponses: 5
    Dernier message: 28/08/2012, 21h11
  3. La Lune et la girouette
    Par jbfe dans le forum Matériel astronomique et photos d'amateurs
    Réponses: 11
    Dernier message: 04/10/2011, 13h15
  4. Girouette electronique
    Par planoss dans le forum Électronique
    Réponses: 1
    Dernier message: 17/06/2009, 09h17
  5. La lune et la girouette
    Par jbfe dans le forum Matériel astronomique et photos d'amateurs
    Réponses: 32
    Dernier message: 25/10/2008, 13h21