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 :

Lidar et Lidar TF 03


Sujet :

Arduino

  1. #161
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    On progresse

    On affinera plus tard pour le bug avec 200

  2. #162
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2021
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 158
    Points : 5
    Points
    5
    Par défaut
    non le "slave" beep 3 coups très rapides toutes le 5 s mais il me transmet pas les beep du master

    il doit y avoir un truc à modifier concernant le slave....
    le master m'indique bien la mesure et beep parfaitement...!

    Jay, on arrive à piloter un écran comme celui que je vous ai montré avec un Pro Mini...?

  3. #163
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Pour le slave faudra que je regards - on connectera sans doute l’écran lcd dessus pour voir ce qu’il reçoit (vous n’avez pas la console ouverte - on est d’accord ?)

    Le pro mini fait tout ce que fait la Uno ou nano - il
    N’a juste pas la partie usb.

  4. #164
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2021
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 158
    Points : 5
    Points
    5
    Par défaut Jay M
    non non je n'ai pas ouvert la console, j'alimente le master et le slave par des accu

  5. #165
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Salut - bien arrivé à l’hôtel (confinement obligé, voyage en 2 fois)

    Pouvez vous connecter le lcd sur le slave (branchements et déclaration dans le code identiques que sur le master.
    Il y a l’import de la bibliothèque et la déclaration de la variable lcd en début de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <LiquidCrystal_I2C.h>    
    LiquidCrystal_I2C lcd(0x27, 16, 2); // address, #cols, #lines. NB other LCD may use 0x3F
    puis dans le setup l’appel dinitialisation à rajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       // init lcd
      lcd.begin();
      lcd.backlight();
      lcd.print(F("Welcome"));
    Puis Modifiez la fonction de réception des codes
    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
     void checkHC12()
    {
      if (HC12.peek() != -1) { // did we get an update from the Master?
        char received = HC12.read();
        switch (received) {
          case sleepPillCode: goToSleep(); break;
          case minDistanceBeepCode ... maxDistanceBeepCode:
            keepAliveChrono = millis();
            distanceCode = received;
    
            lcd.clear();
            lcd.print(F("Code: '"));
            lcd.print(distanceCode);
            lcd.print(F("' "));
    
            break;
          default: break;
        }
      }
    }
    Vous devriez alors voir ce que reçoit le slave

  6. #166
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2021
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 158
    Points : 5
    Points
    5
    Par défaut Jay M
    Bonjour Jay,

    merde c'est con ce confinement...!

    bon j'ai tout fait bien dans le code et j'ai branché le LCD ...
    master branché et detection code 0

    sur le slave j'ai que welcome et mes 3 beep ultra rapide.... j'ai rien d'autre

  7. #167
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Salut

    De retour

    Faut qu’on fasse quelques tests pour voir sir les composants fonctionnent. Je vous envoie un bout de code plus tard dans la matinée

  8. #168
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2021
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 158
    Points : 5
    Points
    5
    Par défaut Jay M
    Eh eh Jay le retour....! alors cette Rando...? ca a du faire du bien ....!

  9. #169
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    très cool les randos, temps magnifique

    pouvez vous connecter vos 2 HC-12 à deux Arduino Nano (ou Uno) avec alimentation sur 5V/GND et RX du HC12 connecté à la pin 2 et TX du HC12 connecté à la pin 3 et SET connecté à la pin 4.

    puis charger le code suivant sur chacun:


    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
    // Author: Jay M for Arduino forums.
    // Standard MIT License applies. https://opensource.org/licenses/mit-license.php
     
    // HC12 documentation @https://opencircuit.shop/resources/file/0f8d974f31fd813604c4d3fb0e9004ec3b483706466/HC-12-Datasheet.pdf
     
    const uint8_t hc12RxPin  = 2;  // connnected to uno acting as Tx
    const uint8_t hc12TxPin  = 3;  // connnected to uno acting as Rx
    const uint8_t hc12SetPin = 4;  // used to go to AT mode if connected to GND (10kΩ internal pullup, could float)
    long hc12Bbaud = 9600;        // default HC12 speed. OK with Software Serial.
     
    bool ATMode = true;
     
    #include <SoftwareSerial.h>
    SoftwareSerial HC12(hc12TxPin, hc12RxPin);
     
    void setATCommandMode(bool activate)
    {
      digitalWrite(hc12SetPin, activate ? LOW : HIGH);
      delay(activate ? 40 : 80); // according to specifications (40ms to be active, 80ms to save changes upon exit)
    }
     
    const uint8_t messageMaxSize = 50;
    char serialMessage[messageMaxSize + 1] = {'\0'}; // +1 for trailing '\0'
    byte serialMessageIndex = 0;
     
    boolean gotSerialMessage(const char endMarker = '\n')
    {
      boolean messageReady = false;
     
      int r = Serial.read(); // -1 si erreur, sinon notre charactère
      if (r != -1) {
        if (r == endMarker) {
          if (serialMessageIndex == 0) serialMessage[0] = '\0'; //empty cString
          serialMessageIndex = 0;
          messageReady = true;
        } else if (r != '\r') { // ignore CR
          serialMessage[serialMessageIndex++] = (char) r;
          serialMessage[serialMessageIndex] = '\0'; // maintain cString
          if (serialMessageIndex >= messageMaxSize) serialMessageIndex = messageMaxSize - 1; // don't overrflow
        }
      }
      return messageReady;
    }
     
    void setup() {
      pinMode(hc12SetPin, OUTPUT);
      Serial.begin(115200);
      HC12.begin(hc12Bbaud);
      setATCommandMode(ATMode);
      Serial.println(F("READY\n"));
    }
     
    void loop() {
      if (gotSerialMessage()) {
        if (!strncmp(serialMessage, "!!", 2)) {
          ATMode = !ATMode;
          Serial.println(ATMode ? F("AT command Mode") : F("Serial Mode"));
          setATCommandMode(ATMode);
        } else HC12.println(serialMessage);
      }
      while (HC12.available()) Serial.write(HC12.read());
    }
    Si vous pouvez connecter les 2 Arduinos sur 2 PC différents c'est plus simple, vous ouvrez la console à 115200 bauds avec "NewLine" en validation des commandes

    Si vous n'avez qu'un PC il faudra ouvrir un logiciel d'émulation de terminal série (je suis sur mac, j'utilise CoolTerm) pour vous connecter à un des 2 Arduinos et l'autre pourra être sur la console série de l'IDE.

    Une fois que c'est fait tapez AT et validez dans chacune des consoles et dites moi si vous obtenez OK.
    si vous avez obtenu "OK", tapez AT+RX et dites moi quelle est la réponse

    si vous n'avez pas obtenu de OK, modifiez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    long hc12Bbaud = 9600;        // default HC12 speed. OK with Software Serial.
    pour mettre 4800 à la place de 9600 et re-essayez

  10. #170
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2021
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 158
    Points : 5
    Points
    5
    Par défaut Jay M
    salut Jay,

    desolé du retard... boulot boulot...

    bon j'ai testé... mais ca parle pas
    j'ai bien mon "ok"
    puis sur la sequence "AT+RX" j'ai 9600 FU03 ETC ETC
    mais de l'autre coté que dalle

    j'ai aussi changé pour 4800 bauds mais idem...

  11. #171
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Salut - oui boulot first ;-)

    vous avez ça sur les 2 cartes ?
    j'ai bien mon "ok"
    puis sur la sequence "AT+RX" j'ai 9600 FU03 ETC ETC
    que dit le AT+RX exactement ?

  12. #172
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2021
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 158
    Points : 5
    Points
    5
    Par défaut Jay M
    ben sur mon ordi quand je fait AT+RX

    ca me fait 4 ligne (j'ai pas noté) et sur l'autre ordi, rien

    par contre sur l'autre ordi (on va l'appeler slave) si je tape AT et entré ca me dit "ok" mais que sur l'ordi slave

  13. #173
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    c'est normal qu'ils ne se parlent pas s'ils ne sont pas configurés de manière identique

    --> il faudrait taper "AT+RX" des deux côtés et regarder si vous avez la même chose
    S'ils sont identiques, tapez !! et validez (de chaque côté) - ça fait sortir les modules du mode commande AT et ils sont alors liés. ce que vous tapez d'un côté devrait apparaître de l'autre

  14. #174
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2021
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 158
    Points : 5
    Points
    5
    Par défaut Jay M
    je comprend pas trop le but alors...

    j'ai les 2 meme arduino avec les 2 HC12 sur 2 ordi differents sur un je tape AT+RX et ca me repond les 4 lignes que j'ai cité et sur l'autre pareil...

  15. #175
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Citation Envoyé par Stantedy Voir le message
    je comprend pas trop le but alors...

    j'ai les 2 meme arduino avec les 2 HC12 sur 2 ordi differents sur un je tape AT+RX et ca me repond les 4 lignes que j'ai cité et sur l'autre pareil...
    Je voudrais évacuer le problème matériel avant de plonger plus dans le code complexe. donc tester une communication simple entre les 2 modules.

    La question initiale donc c'est de savoir si les 4 lignes sont EXACTEMENT identiques (et j'aimerais bien les voir) sur les 2 modules. Si ce n'est pas le cas, ils ne peuvent pas communiquer.

    Si c'est identique, et qu'après avoir tapé (et validé) !! sur chacune des consoles séries, vous n'arrivez pas à échanger des messages, alors c'est qu'il y a un souci matériel (ou d'interférence)

  16. #176
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2021
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 158
    Points : 5
    Points
    5
    Par défaut Jay M
    Salut Jay,
    un peu bousculé en ce moments...

    bon alors pour la commande AT+RX

    que ce soit sur le "maitre ou l'escalve) on obtiens

    OK+B9600
    OK+RC001
    OK+RP:+20Dbm
    OK+FU3

    si on tape "!!"

    on obtiens

    serial mode

  17. #177
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    OK donc les 2 modules sont réglé en configuration usine, par défaut plein pot

    avez vous essayé de taper quelque chose une fois que vous aviez entré les !!? Tout ce que vous tapez d'un côté devrait apparaître de l'autre.

  18. #178
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2021
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 158
    Points : 5
    Points
    5
    Par défaut Jay M
    oui ca marche d'un coté comme de l'autre

    bon signe non...?

  19. #179
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    cool donc les modules sont fonctionnels!

    On va forcer la configuration au cas où:

    relancez le code de chaque côté puis tapez dans la console (dans cet ordre):

    • AT+P4
    • AT+C003
    • AT+FU2
    • AT+B4800
    • !!


    sur chacun des modules. Quittez le programme, modifiez dans le code source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    long hc12Bbaud = 9600;        // default HC12 speed. OK with Software Serial.
    pour mettre à la place 4800 bauds:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    long hc12Bbaud = 4800;        // HC12 speed for FU2
    Rechargez les code, retapez AT+RX

    vous devriez voir

    OK+B4800
    OK+RC003
    OK+RP:+08dBm
    OK+FU2


    si vous avez bien cela des 2 côtés, tapez à nouveau !! et vérifiez que ce que vous tapez d'un côté arrive bien de l'autre.

    Si ça fonctionne c'est que la puissance et la config sont OK et on peut revenir au montage et code "officiel"

  20. #180
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2021
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2021
    Messages : 158
    Points : 5
    Points
    5
    Par défaut Jay M
    impec tout marche....

    on a en gros 20 metres de portée

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/08/2023, 10h17
  2. Réponses: 3
    Dernier message: 22/05/2020, 19h30
  3. [Débutant] I2c - NI 8451 - Lidar Lite v3 - write to register
    Par RT team dans le forum MATLAB
    Réponses: 0
    Dernier message: 28/02/2018, 10h52

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