IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Souci capteur ultrason


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    à la retraite
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : à la retraite
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut Souci capteur ultrason
    Bonjour à tous, je suis en plein séchage malgré ma recherche ... je bricole un anti souris sur arduino avec un code trouvé sur le net ... mais un message erreur à la compil :
    exit status 1
    'class Ultrasonic' has no member named 'MeasureInCentimeters'
    et là ... canicule en mode séchage ...
    je vous colle le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    #include <Ultrasonic.h>
    
    //Optimisation de la consommation
    #include <avr/power.h>
    #include <avr/sleep.h>
    #include <avr/power.h>
    #include <avr/wdt.h>
    volatile int f_wdt=1;
    // variables du projet
    Ultrasonic ultrasonic1(2);
    Ultrasonic ultrasonic2(4);
    long distanceMesuree;
    double tempsMax = 180.00; //temps en secondes
    double tempsMin = 60.00; // temps en secondes
    double tempsDesire, tempsIntervalUltrasonic;
    double tempsIntervalUltrasonicMax = 30; //temps en seconde
    
    // Watchdog Interrupt Service est exécité lors d’un timeout du WDT
    ISR(WDT_vect) {
    if(f_wdt == 0) {
    f_wdt = 1; // flag global
    }
    }
    
    // paramètre : 0=16ms, 1=32ms, 2=64ms, 3=128ms, 4=250ms, 5=500ms, 6=1 sec,7=2 sec, 8=4 sec, 9=8 sec
    void setup_watchdog(int ii) {
    byte bb;
    int ww;
    if (ii > 9 ) ii=9;
    bb=ii & 7;
    if (ii > 7) bb|= (1<<5);
    bb|= (1<<WDCE);
    ww=bb;
    // Clear the reset flag
    MCUSR &= ~(1<<WDRF);
    // start timed sequence
    WDTCSR |= (1<<WDCE) | (1<<WDE);
    // set new watchdog timeout value
    WDTCSR = bb;
    WDTCSR |= _BV(WDIE);
    }
    
    void enterSleep(void) {
    set_sleep_mode(SLEEP_MODE_PWR_DOWN);
    sleep_enable();
    sleep_mode(); //Entre dans le mode veille choisi
    
    // Le programme va reprendre ici après le timeout du WDT
    
    sleep_disable(); // La 1ère chose à faire est de désactiver le mode veille
    }
    
    void setup() {
    // put your setup code here, to run once:
    Serial.begin(9600);
    
    tempsMax = convertiSecondeToMilli(tempsMax);
    tempsMin = convertiSecondeToMilli(tempsMin);
    tempsIntervalUltrasonicMax = convertiSecondeToMilli(tempsIntervalUltrasonicMax);
    
    //Optimisation de la consommation
    //power_adc_disable(); // Convertisseur Analog / Digital pour les entrées analogiques
    
    //power_spi_disable();
    //power_twi_disable();
    // Si pas besoin de communiquer par l’usb
    //power_usart0_disable();
    //Extinction des timers, attention timer0 utilisé par millis ou delay
    //power_timer0_disable();
    //power_timer1_disable();
    //power_timer2_disable();
    
    setup_watchdog(9);
    }
    
    void loop() {
    // put your main code here, to run repeatedly:
    
    if (f_wdt == 1) {
    // Effectuer les mesures ici
    f_wdt = 0; // Ne pas oublier d’initialiser le flag
    Serial.println(" Sortie de veille ");
    tempsDesire = random(tempsMin, tempsMax);
    tempsIntervalUltrasonic = random(0, tempsIntervalUltrasonicMax);
    Serial.print(" tempsDesiré : " );
    Serial.println(tempsDesire);
    Serial.print(" tempsIntervalUltrasonic : " );
    Serial.println(tempsIntervalUltrasonic);
    
    delay(tempsDesire);
    
    emeteurOn();
    
    Serial.println(" Mise en veille ");
    enterSleep(); //Revenir en mode veille
    } else {
    /* Do nothing. */
    }
    
    }
    
    void ultrasonicOn(int numUltrasonic) {
    switch (numUltrasonic) {
    case 1 :
    ultrasonic1.MeasureInCentimeters();
    
    Serial.println("Ultrasonic1 On");
    delay(300);
    
    break;
    
    case 2 :
    ultrasonic2.MeasureInCentimeters();
    
    Serial.println( "Ultrasonic2 On" );
    delay(300);
    
    break;
    default:
    break;
    }
    }
    
    void emeteurOn() {
    ultrasonicOn(1);
    delay(tempsIntervalUltrasonic);
    ultrasonicOn(2);
    }
    
    double convertiSecondeToMilli(double valeur) {
    double tempsMilli = valeur / 0.001;
    return tempsMilli;
    }
    ============

    si vous avez une idée ... je n'ai pas eu de réponse du dév qui l'a mis en ligne avant de vous appeler au secours ...

    merci à vous et bonne fin de semaine

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Bonjour,

    j'ai regardé la documentation de la bibliothèque : https://www.arduino.cc/reference/en/...es/ultrasonic/
    La fonction MeasureInCentimeters n'existe pas. Pour les conversions cm / pouces (inches), voici un exemple avec la fonction read() : https://wokwi.com/projects/312346565007114818

  3. #3
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    Ce doit être lié à la bibliothèque retenue car dans celle-ci, la fonction existe bien.

  4. #4
    Membre habitué
    Homme Profil pro
    à la retraite
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : à la retraite
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    Merci à tous pour le "support" ...
    mais je n'y suis pas arrivé malgré les différents essais de version de Ultrasonic.h ...
    je vais tenter à nouveau de contacter le dev' qui dit que "ça marche" ...
    ou sinon recherche d'un autre bidule ...

    encore merci à tous ...

  5. #5
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 908
    Par défaut
    mais je n'y suis pas arrivé malgré les différents essais de version de Ultrasonic.h ...
    détruisez les versions de Ultrasonic que vous avez et assurez vous d'installer uniquement https://github.com/Seeed-Studio/Seee...r/Ultrasonic.h

    elle offre bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        long MeasureInCentimeters(uint32_t timeout = 1000000L);
        long MeasureInMillimeters(uint32_t timeout = 1000000L);
        long MeasureInInches(uint32_t timeout = 1000000L);

  6. #6
    Membre habitué
    Homme Profil pro
    à la retraite
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : à la retraite
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    hello,

    Ok je vais épurer toutes les Ultrasonic du dossier arduino et vais faire comme conseillé ... je vous dis le résultat dès que j'ai dix minutes pour faire le truc ...

  7. #7
    Membre habitué
    Homme Profil pro
    à la retraite
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : à la retraite
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    ...

    compilation Ok ! ... me reste à faire le montage avec les deux ultrason et je vous donne le résultat ..

    super

  8. #8
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 908
    Par défaut
    super. amusez vous bien

  9. #9
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Une question : quel émetteur ultrason utilises-tu ? Le HC-SR04 ?

  10. #10
    Membre habitué
    Homme Profil pro
    à la retraite
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : à la retraite
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    Bonjour,

    oui juste le petit module standard acheté sur le lama zone ...
    ça fonctionne mais juste à tester avec les souris qui viennent boulotter sur ma terrasse ...

  11. #11
    Membre habitué
    Homme Profil pro
    à la retraite
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : à la retraite
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    le montage est assez simple ... je lui ai rajoté deux led qui "visualisent" le déclenchement des ultrasons ...

    Nom : repoussesouris.jpg
Affichages : 217
Taille : 75,5 Ko

  12. #12
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 908
    Par défaut
    avec deux modules assurez vous de ne pas déclencher en même temps et de laisser un temps d'attente entre deux pings pour que les ultra-sons de l'un (ou les rebonds) ne viennent pas perturber l'autre

  13. #13
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    C'est curieux que cela les fasse fuir car d'après les documents que j'ai trouvés le HC-SR04 a une fréquence de 40kHz et les souris sont sensibles aux ultrasons entre 10 et 12kHz.

  14. #14
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 197
    Billets dans le blog
    47
    Par défaut
    Les ultrasons, ce n'est pas pour leur casser les oreilles, c'est pour détecter un obstacle, ici la souris (l'obstacle réfléchit le train d'ultrasons qui revient vers le capteur, le temps que met le train d'ultrasons pour faire l'aller-retour donne une image de la distance de l'obstacle).

    Quand l'obstacle (la souris) est détecté, tu peux déclencher une action : tir de mitrailleuses, explosion de mines ou autre truc sympa

  15. #15
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 126
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 126
    Par défaut
    Hey,

    Citation Envoyé par Auteur Voir le message
    [...] les souris sont sensibles aux ultrasons entre 10 et 12kHz.
    C'est plus des ultrasons dans cette gamme de fréquences, c'est des sons aigus, oui, très aigus, mais audibles !

  16. #16
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Hey,
    C'est plus des ultrasons dans cette gamme de fréquences, c'est des sons aigus, oui, très aigus, mais audibles !
    c'est vrai, oui. Mais en ce qui me concerne je ne les entends plus

    Citation Envoyé par f-leb Voir le message
    Quand l'obstacle (la souris) est détecté, tu peux déclencher une action : tir de mitrailleuses, explosion de mines ou autre truc sympa
    Imagine la terrasse après ça

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Capteur ultrasons
    Par TintinTerm dans le forum Arduino
    Réponses: 33
    Dernier message: 28/03/2015, 09h43
  2. [STM32] Capteurs ultrasons + bip sonore STM32F4
    Par safaensi dans le forum Embarqué
    Réponses: 2
    Dernier message: 06/02/2015, 08h41
  3. Réponses: 0
    Dernier message: 20/06/2013, 00h32
  4. Modulation d'un signal pour capteur ultrasons
    Par inter69 dans le forum Signal
    Réponses: 4
    Dernier message: 05/01/2008, 18h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo