How can I get data from RP LIDAR sensor with arduino?
50 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (3)
FAUCHER Mickael
le 1 Fév 2020
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 commentaires
FAUCHER Mickael
le 3 Fév 2020
you will have more information on this pdf.
It explain the protocol of communication
good luck
FAUCHER Mickael
le 9 Fév 2020
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 commentaires
takamitsu hatakeyama
le 10 Fév 2020
Modifié(e) : takamitsu hatakeyama
le 10 Fév 2020
1 commentaire
Mingxin Bai
le 30 Oct 2020
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);
}
}
}
Voir également
Catégories
En savoir plus sur Modeling dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!