How can I get data from RP LIDAR sensor with arduino?
41 次查看(过去 30 天)
显示 更早的评论
Hello
I'm takamitsu.
I would like to ask about above question.
RP LIDAR sensor equip serial comunication(TX RX), So I thought it is possible to receive data using serial receive block.
I conected cable like attatched pdf, and drived arduino with my simulink model.(attatched model)
But, serial reseve block returned 0 state(that mean
unsuccess comunication), and I failed receive data from RP LIDAR.
So could you give me advice?
0 个评论
回答(3 个)
FAUCHER Mickael
2020-2-1
Hello,
I have the same project and I can't receive information. I am not an expert with aruino board but I think the USB communication between computer and arduino use TX and RX pin. If you want create 2 serial communication (1 with RPLIDAR and 1 with the computer) you need create a virtual serial port with 2 digital pin (for the RPILARD) and use RX and TX for the computer.
Me I try to connect directly the computer and the RPLIDAR (without arduino). I create communication, but I can't command the RPLIDAR and I can't receive information.
If you succes to create communication, please help me.
7 个评论
FAUCHER Mickael
2020-2-3
you will have more information on this pdf.
It explain the protocol of communication
good luck
FAUCHER Mickael
2020-2-9
I don't understand something, if it's the same the "simple_connect.ino", you have in this sketch the serial connection with the rplidar but you don't have the serial connection with the computer. How you can communicate without this serial connection?
0 个评论
takamitsu hatakeyama
2020-2-10
编辑:takamitsu hatakeyama
2020-2-10
1 个评论
Mingxin Bai
2020-10-30
Hello, I am using arduino due with rplidar a2, I have very tough time get the lidar start and read the data. Please see my code below if you could suggest me where I may did wrong. Much appreciated!
#include <RPLidar.h>
RPLidar lidar;
#define RPLIDAR_MOTOR 3
void setup()
{
// bind the RPLIDAR driver to the arduino hardware serial
lidar.begin(Serial2);
Serial2.begin(115200);
Serial.begin(115200);
//Serial1.begin(115200);
// set pin modes
pinMode(RPLIDAR_MOTOR, OUTPUT);
delay(500);
}
void loop()
{
lidar.stop();
if (IS_OK(lidar.waitPoint()))
{
float distance = lidar.getCurrentPoint().distance; //distance value in mm unit
float angle = lidar.getCurrentPoint().angle; //anglue value in degree
bool startBit = lidar.getCurrentPoint().startBit; //whether this point is belong to a new scan
byte quality = lidar.getCurrentPoint().quality; //quality of the current measurement
Serial.print(", distance: ");
Serial.print(distance);
Serial.print(", angle: ");
Serial.print(angle);
Serial.print(", startBit: ");
Serial.print(startBit);
Serial.print(", quality: ");
Serial.println(quality);
}
else
{
analogWrite(RPLIDAR_MOTOR, 0); //stop the rplidar motor
// try to detect RPLIDAR...
rplidar_response_device_info_t info;
if (IS_OK(lidar.getDeviceInfo(info, 100)))
{
// detected...
lidar.startScan();
// start motor rotating at max allowed speed
analogWrite(RPLIDAR_MOTOR, 155);
delay(100);
}
}
}
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Modeling 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!