使用Arduino从LeddarVu8 Lidar获取数据

时间:2018-01-09 09:42:23

标签: arduino-uno lidar

我正在开展一个类似于此的房间可视化项目(取自this video):

image from video

我使用leddartech的LeddarVu8(见下图),arduino uno(使用rs485shield):

Arduino + LeddarVu8 Setup

我还使用了simple16channel(无lcd)的leddartech提供的代码:

            #include "C:\Program Files (x86)\Arduino\libraries\Leddar.h"
            /*
             Simple Leddar(TM) Example - Without LCD
             Language: Arduino

             This program lists the detections read on the serial port of the Arduino.
             Can be used with Arduino IDE's Serial Monitor.

             Shields used:
             * RS-485 Shield

             Created 01 Jun. 2015
             by Pier-Olivier Hamel

             This example code is in the public domain.
            */
            Leddar16 Leddar1(115200,1);
            //Baudrate = 115200
            //Modbus slave ID = 01

            void setup()
            {
                //Initialize Leddar 
                Leddar1.init();
            }
            void loop()
            {
                char result = Leddar1.getDetections();
                if (result >= 0)
                {
                    for (int i = 0; i < Leddar1.NbDet; i++)
                    {
                        Serial.print("Segment: ");
                        Serial.print(Leddar1.Detections[i].Segment);
                        Serial.print("      Distance: ");
                        Serial.print(Leddar1.Detections[i].Distance);
                        Serial.print("\n");
                    }  
                }
                else
                {
                    Serial.print("Error: "); 
                    Serial.print((int)result);
                    Serial.print("\n");
                }
                delay(50);
            }

(来自https://support.leddartech.com/downloads/files/89-leddarsdk3-2-0-pi2-tar-gz

问题是arduino的串行监视器只输出一系列?????。那是为什么?

1 个答案:

答案 0 :(得分:0)

  

问题是arduino的串口监视器只输出一系列?????。那是为什么?

因为您已将LIDAR的TX连接到Arduino的TX。串行监视器窗口“监听”Arduino TX引脚(通过USB),因此串行监视器实际上正在侦听激光雷达。 LIDAR串行运行在115200,但您的串行监视器可能设置为9600.当波特率不匹配时,您将获得垃圾字符。

另请注意,您有两个串行TX引脚相互连接。如果Arduino和LIDAR都试图同时传输,这也会破坏字符。

您可以将LIDAR RX连接到Arduino TX,将LIDAR TX连接到Arduino RX。这将允许您在“串行监视器”窗口中查看Leddar库命令。它还会导致所有Serial打印件进入激光雷达(和PC)。如果Leddar命令包具有特殊格式,则可能没问题。这将允许Leddar忽略您的调试打印,因为它们不能正确格式化。

在该配置中,您必须断开Arduino引脚0以通过USB上传新草图。有些人在那根电线上放一个开关,以便于断开连接。