🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    lidar lite v3

    M5 Stick/StickC
    3
    8
    8.3k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      cepics
      last edited by

      Hi all,
      can I connect this Lidar to M5Stick grove connector?
      if yes, I need a voltage divider for SDA and SCL?

      tanks a lot

      ajb2k3A 1 Reply Last reply Reply Quote 0
      • ajb2k3A
        ajb2k3 @cepics
        last edited by

        @cepics said in lidar lite v3:

        Hi all,
        can I connect this Lidar to M5Stick grove connector?
        if yes, I need a voltage divider for SDA and SCL?

        tanks a lot

        Technically yes as its i2c but no code will exist.

        UIFlow, so easy an adult can learn it!
        If I don't know it, be patient!
        I've ether not learned it or am too drunk to remember it!
        Author of the WIP UIFlow Handbook!
        M5Black, Go, Stick, Core2, and so much more it cant be fit in here!

        C 1 Reply Last reply Reply Quote 0
        • C
          cepics
          last edited by

          Can I try this one?

          
          #include <Wire.h>
          #include <LIDARLite.h>
          
          LIDARLite myLidarLite;
          
          void setup() {
          
           myLidarLite.begin(0, true); // Set configuration to default and I2C to 400 kHz
          
            /*
              configure(int configuration, char lidarliteAddress)
              Selects one of several preset configurations.
              Parameters
              ----------------------------------------------------------------------------
              configuration:  Default 0.
                0: Default mode, balanced performance.
                1: Short range, high speed. Uses 0x1d maximum acquisition count.
                2: Default range, higher speed short range. Turns on quick termination
                    detection for faster measurements at short range (with decreased
                    accuracy)
                3: Maximum range. Uses 0xff maximum acquisition count.
                4: High sensitivity detection. Overrides default valid measurement detection
                    algorithm, and uses a threshold value for high sensitivity and noise.
                5: Low sensitivity detection. Overrides default valid measurement detection
                    algorithm, and uses a threshold value for low sensitivity and noise.
              lidarliteAddress: Default 0x62. Fill in new address here if changed. See
                operating manual for instructions.
            */
            myLidarLite.configure(1); // Change this number to try out alternate configurations
          }
          
          void loop() {
          
            // Take a measurement with receiver bias correction and print to serial terminal
            Serial.println(myLidarLite.distance());
          
          delay(50);
          }
          

          best regards

          1 Reply Last reply Reply Quote 0
          • C
            cepics @ajb2k3
            last edited by

            @ajb2k3 Hi, trying the sketch above, the serial monitor say:

            >nack
            >nack
            >nack
            >nack
            >nack
            >nack
            >nack
            >nack
            >nack
            >nack
            >nack
            >nack
            >nack
            >nack
            >nack
            >nack
            >nack
            >nack
            

            the same sketch on esp8266 works!!

            ideas??

            tnks a lot

            1 Reply Last reply Reply Quote 0
            • H
              heybin
              last edited by

              hello, gpio sda:21 scl:22, in m5stack red grove

              C 1 Reply Last reply Reply Quote 0
              • C
                cepics @heybin
                last edited by

                @heybin which is the difference between the red I2C (M5Stack) and the white one (M5Stick) ??

                I'm trying on M5Stick....

                1 Reply Last reply Reply Quote 0
                • C
                  cepics
                  last edited by

                  Hi, all
                  connecting the lidar lite to M5Stick on grove connector makes m5Stick burn!!!

                  this is the sketch:

                  
                  
                  #include <Arduino.h>
                  #include <U8g2lib.h>
                  
                  U8X8_HAVE_HW_SPI
                  #include <SPI.h>
                  #include <Wire.h>
                  #define LedPin 19
                  #define IrPin 17
                  #define BuzzerPin 26
                  
                  #define BtnPin 35
                  
                  int x = 870; 
                  int cm;
                  int feet;
                  int inches;
                  int INCHES;
                  bool unit = 0;
                  
                  #include "MPU9250.h"
                  
                  U8G2_SH1107_64X128_1_4W_HW_SPI u8g2(U8G2_R1, /* cs=*/ 14, /* dc=*/ 27, /* reset=*/ 33);
                  
                  // an MPU9250 object with the MPU-9250 sensor on I2C bus 0 with address 0x68
                  MPU9250 IMU(Wire, 0x68);
                  //MPU9250 IMU(Wire,0x71);
                  int status;
                  int orienta;
                  
                  unsigned long pulseWidth;
                  
                  void setup() {
                    Serial.begin(115200);
                    u8g2.begin();
                    status = IMU.begin();
                  
                    
                    pinMode(25, OUTPUT); // Set pin 2 as trigger pin
                    digitalWrite(25, LOW); // Set trigger LOW for continuous read
                  
                    pinMode(13, INPUT); // Set pin 3 as monitor pin
                  
                    pinMode(BtnPin, INPUT_PULLUP);
                    pinMode(BuzzerPin, OUTPUT);
                    digitalWrite(BuzzerPin, LOW);
                  
                    if (digitalRead(BtnPin) == 0) {
                      unit = !unit;
                  
                      //bounce sound
                      for (int f = 0; f < 500; f++) {
                        digitalWrite(BuzzerPin, HIGH);
                        delay(1);
                        digitalWrite(BuzzerPin, LOW);
                        delay(1);
                      }
                    }
                  
                  
                  }
                  
                  void loop() {
                      pulseWidth = pulseIn(13, HIGH); // Count how long the pulse is high in microseconds
                  
                    // If we get a reading that isn't zero, let's print it
                    if(pulseWidth != 0)
                    {
                      pulseWidth = pulseWidth / 10; // 10usec = 1 cm of distance
                      Serial.println(pulseWidth); // Print the distance
                    }
                    
                  
                    cm = (pulseWidth) / 10;
                  //  inches = (myData.time + x) / 74 / 2;
                    feet = inches / 12;
                    INCHES = inches % 12; //es x = 7% 5; // X ora contiene 2
                  
                    if (unit) {
                      stampaCM();
                    } else {
                      //stampaFT();
                      stampaCM();
                    }
                  
                    if (digitalRead(BtnPin) == 0) {
                     // x = 5800 - myData.time ;
                    }
                  
                    IMU.readSensor();
                    orienta = IMU.getAccelY_mss();
                    Serial.println("orienta = ");
                    Serial.println(orienta);
                    if (orienta < 0) {
                      u8g2.setFlipMode(1);
                    } else {
                      u8g2.setFlipMode(0);
                    }
                    delay(50);
                  }
                  
                  void stampaCM() {
                    u8g2.firstPage();
                    do {
                      u8g2.setFont(u8g2_font_7Segments_26x42_mn);
                  
                      if (cm < 10) {
                        u8g2.setCursor(70, 52);
                        u8g2.print(cm);
                      }
                      if (cm < 100 && cm >= 10) {
                        u8g2.setCursor(40, 52);
                        u8g2.print(cm);
                      }
                  
                      if (cm >= 100) {
                        u8g2.setCursor(20, 52);
                        u8g2.print(cm);
                      }
                    } while (u8g2.nextPage());
                  }
                  
                  void stampaFT() {
                    u8g2.firstPage();
                    do {
                      u8g2.setFont(u8g2_font_7Segments_26x42_mn);
                      u8g2.drawDisc(63, 52, 2, U8G2_DRAW_ALL);
                  
                      if (feet < 10) {
                        u8g2.setCursor(30, 52);
                        u8g2.print(feet);
                      } else {
                        u8g2.setCursor(1, 52);
                        u8g2.print(feet);
                      }
                  
                      if (INCHES < 10) {
                        u8g2.setCursor(75, 52);
                        u8g2.print(INCHES);
                      } else {
                        u8g2.setCursor(60, 52);
                        u8g2.print(INCHES);
                      }
                    } while (u8g2.nextPage());
                  }
                  

                  alt text

                  what is this??
                  can I repare it??

                  1 Reply Last reply Reply Quote 0
                  • H
                    heybin
                    last edited by

                    m5stick grove is different, pin is gnd, vcc, 25, 13, those can be viewed from the back of the stick

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post