在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用ESP32連通RPLidar激光雷達(dá)?

jf_Ufm3lVrj ? 來(lái)源:凌順實(shí)驗(yàn)室 ? 2023-03-07 10:47 ? 次閱讀

實(shí)驗(yàn)效果

凌順實(shí)驗(yàn)室(lingshunlab.com)本次分享如何用ESP32連通RPLidar激光雷達(dá)(RPLidar A1 A1M8),并且通過(guò)串口輸出全部角度和輸出指定角度的距離兩種方式,觀察測(cè)量的前方障礙物的距離。

本次實(shí)驗(yàn),使用ESP32,RPLidar A1 連接ESP32的串口2(Serial2),數(shù)據(jù)在串口(Serial)中輸出,這樣就可以方便觀察數(shù)據(jù)變化。

元件說(shuō)明

最大測(cè)量范圍(m) 最大測(cè)量頻率(Hz) 360°掃描測(cè)距 適用場(chǎng)景 適用電壓 俯仰角度
12 8000 支持 室內(nèi) 5V

RPLIDAR A1采用激光三角測(cè)距技術(shù),配合自主研發(fā)的高速的視覺采集處理機(jī)構(gòu), 可進(jìn)行每秒8000次以上的測(cè)距動(dòng)作。

RPLIDAR A1 的測(cè)距核心順時(shí)針旋轉(zhuǎn),可實(shí)現(xiàn)對(duì)周圍環(huán)境的360度全方位掃描測(cè)距檢測(cè), 從而獲得周圍環(huán)境的輪廓圖。

全面改進(jìn)了內(nèi)部光學(xué)和算法系統(tǒng), 采樣頻率高達(dá)8000次/秒,讓機(jī)器人能更快速、精確的建圖。

傳統(tǒng)的非固態(tài)激光雷達(dá)多采用滑環(huán)傳輸能量和數(shù)據(jù)信息,但由于存在機(jī)械磨損,其連續(xù)工作時(shí)僅有數(shù)千小時(shí)壽命。綜合無(wú)線供電和光通信技術(shù),獨(dú)創(chuàng)性的設(shè)計(jì)了光磁融合技術(shù)徹底解決了因物理接觸磨損導(dǎo)致電氣連接失效、激光雷達(dá)壽命短的問(wèn)題

可通過(guò)電機(jī)PWM信號(hào)控制雷達(dá)掃描頻率

注意:型號(hào)為A1M8

引腳說(shuō)明

732981fe-bc6e-11ed-bfe3-dac502259ad0.png

引腳 說(shuō)明
TX RPLIDAR 測(cè)距核心串口輸出
RX RPLIDAR 測(cè)距核心串口輸入
VCC_5V RPLIDAR 測(cè)距核心供電
GND RPLIDAR 測(cè)距核心地線
GND_MOTO RPLIDAR 掃描電機(jī)地線
CTRL_MOTO RPLIDAR 掃描電機(jī)使能/PWM 控制信號(hào)(高電平有效)
5V_MOTO RPLIDAR 掃描電機(jī)供電

BOM表

名稱 數(shù)量
ESP32 x1
RPLidar A1 360 激光掃描測(cè)距雷達(dá) x1
面包板 x1
跳線(杜邦線) 若干

接線方式

735374c8-bc6e-11ed-bfe3-dac502259ad0.png

ESP32 引腳 <-> RPLidar A1 引腳
16 <-> TX
17 <-> RX
5V <-> VCC_5V
GND <-> GND
GND <-> GND_MOTO
14 <-> CTRL_MOTO
5V <-> 5V_MOTO

程序提點(diǎn)

首先,需要安裝RoboPeak開發(fā)的RPlidar的Arduino庫(kù),由于在Arduino IDE的庫(kù)管理中沒(méi)有,所以需要手動(dòng)安裝。

解壓后,把「RPLidarDriver」文件夾,放在Arduino IDE 的安裝目錄下的「libraries」文件夾中,就可以使用RPLiadar的庫(kù),如果提示找不到,請(qǐng)重新檢查是否安裝正確。

然后就可以開始編程

加載剛安裝的RPLidar庫(kù)

// 加載RPLidar庫(kù)
#include 

創(chuàng)建實(shí)例:

// 創(chuàng)建一個(gè)名為lidar的雷達(dá)驅(qū)動(dòng)實(shí)例 
RPLidar lidar;

定義控制電機(jī)的PWM引腳:

#define RPLIDAR_MOTOR 3

綁定指定串口:

lidar.begin(Serial1);

設(shè)置控制電機(jī)的引腳為輸出模式

pinMode(RPLIDAR_MOTOR, OUTPUT);

這里ESP32和Arduino 不一樣,ESP32的PWM控制需要多幾行代碼進(jìn)行定義和使用,在這次示例中,簡(jiǎn)化了這個(gè)電機(jī)的控制速度,為HIGH,LOW控制。需要ESP32 PWM控制的,可以查看相關(guān)例子,然后自己進(jìn)行修改。

使用以下判斷可以返回lidar是否正常工作的值

IS_OK(lidar.waitPoint()

返回當(dāng)前距離值,以毫米(mm)為單位

float distance = lidar.getCurrentPoint().distance;

返回當(dāng)前角度度數(shù)

float angle    = lidar.getCurrentPoint().angle;

返回該點(diǎn)是否屬于一個(gè)新的掃描點(diǎn)

bool  startBit = lidar.getCurrentPoint().startBit;

返回當(dāng)前測(cè)量的質(zhì)量

byte  quality  = lidar.getCurrentPoint().quality;

ESP32編譯RPLidar庫(kù)時(shí)出現(xiàn)的錯(cuò)誤

選擇使用ESP32開發(fā)板程序時(shí),在編譯過(guò)程中,可能會(huì)出現(xiàn)如下錯(cuò)誤:

In member function 'bool RPLidar::begin(HardwareSerial&)'

warning: no return statement in function returning non-void [-Wreturn-type]

7386c198-bc6e-11ed-bfe3-dac502259ad0.png

大概意思是RPLidar::begin()這個(gè)函數(shù)定義了是bool的返回值,但在函數(shù)里面卻沒(méi)有返回值。

為什么在使用Arduino 系列開發(fā)板沒(méi)有提示,而在ESP系列開發(fā)板會(huì)有提示?凌順實(shí)驗(yàn)室(lingshunlab.com)大概認(rèn)為是,語(yǔ)法要求ESP系列是比較嚴(yán)謹(jǐn)一些。

這時(shí),我們要修改一下RPLidar庫(kù)的兩個(gè)文件,分別是RPlidar.hdivRPlidar.cpp,把RPLidar::begin()函數(shù)的定義bool>RPlidar.cpp,把RPLidar::begin()函數(shù)的定義bool>RPlidar.cpp,把RPLidar::begin()函數(shù)的定義bool 改成 void ,定義為無(wú)返回值即可,以下圖片是修改參考:

73a2640c-bc6e-11ed-bfe3-dac502259ad0.png

73c089e6-bc6e-11ed-bfe3-dac502259ad0.png

再次編譯,錯(cuò)誤提示消失。

程序代碼

以下是完整的代碼,是在RPlidar的例程simple_connect為基礎(chǔ),進(jìn)行修改的。

// lingshunlab.com
// https://lingshunlab.com/book/arduino/esp32-use-rplidar-a1

// This sketch code is based on the RPLIDAR driver library provided by RoboPeak
// include library // 加載庫(kù)
#include 

// 創(chuàng)建一個(gè)名為lidar的雷達(dá)驅(qū)動(dòng)實(shí)例 
RPLidar lidar;

#define RPLIDAR_MOTOR 14  // 用于控制 RPLIDAR 電機(jī)速度。因?yàn)镋SP32的PWM設(shè)置較復(fù)雜,
                          // 現(xiàn)在只是簡(jiǎn)單使用HIGH,LOW進(jìn)行控制
                          // 該引腳應(yīng)與RPLIDAR的MOTOCTRL信號(hào)相連。

// welcome to lingshunlab.com
void setup() {
  Serial.begin(115200);
  // bind the RPLIDAR driver to the arduino hardware serial
  // 將RPLIDAR驅(qū)動(dòng)與ESP32 的 Serial2 硬件串口綁定。
  Serial2.begin(115200, SERIAL_8N1, 16, 17);
  while(lidar.begin(Serial2));
  // set pin modes
  // 設(shè)置引腳模式
  pinMode(RPLIDAR_MOTOR, OUTPUT);
  delay(1000);
  // 啟動(dòng)雷達(dá)轉(zhuǎn)動(dòng)
  digitalWrite(RPLIDAR_MOTOR, HIGH);
}

void loop() {
  if (IS_OK(lidar.waitPoint())) {
    float distance = lidar.getCurrentPoint().distance; //distance value in mm unit
                                                        //距離值以毫米為單位
    float angle    = lidar.getCurrentPoint().angle;   //anglue value in degree
                                                      //度數(shù)的角度值
    bool  startBit = lidar.getCurrentPoint().startBit;  //whether this point is belong to a new scan
                                                        //該點(diǎn)是否屬于一個(gè)新的掃描點(diǎn)

    byte  quality  = lidar.getCurrentPoint().quality;   //quality of the current measurement
                                                        //當(dāng)前測(cè)量的質(zhì)量

    //在這里進(jìn)行數(shù)據(jù)處理...
    // - 1 -
    // perform data processing here...
    // Output all data in the serial port  
    //在串口中輸出所有數(shù)據(jù)

    //    for(int i = 0;i < 6 - String(angle).length(); i++){
    //      Serial.print(" ");
    //    }
    //    Serial.print(String(angle));
    //    Serial.print(" | ");
    //    for(int i = 0;i < 8 - String(distance).length(); i++){
    //      Serial.print(" ");
    //    }
    //    Serial.print(distance);
    //    Serial.print(" | ");
    //    Serial.print(startBit);
    //    Serial.print(" | ");
    //    for(int i = 0;i < 2 - String(quality).length(); i++){
    //      Serial.print(" ");
    //    }
    //    Serial.println(quality);

    // - 2 - 
    // Output the specified angle data
    // 輸出指定角度
    if(angle > 0 and angle < 100 ){
      Serial.print(angle);
      Serial.print(" | ");
      Serial.println(distance);
    }
  } else {
    digitalWrite(RPLIDAR_MOTOR, LOW); //stop the rplidar motor
                                   //停止rplidar馬達(dá)

    // try to detect RPLIDAR...
    // 嘗試檢測(cè)RPLIDAR... 
    rplidar_response_device_info_t info;
    if (IS_OK(lidar.getDeviceInfo(info, 100))) {
       // detected...
       // 檢測(cè)到
       lidar.startScan();

       // start motor rotating at max allowed speed
       // 啟動(dòng)電機(jī)以最大允許速度旋轉(zhuǎn)
       digitalWrite(RPLIDAR_MOTOR, HIGH);
       delay(1000);
    }
  }
}

上傳完成后,可以看到指定角度輸出的數(shù)據(jù)。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 激光雷達(dá)
    +關(guān)注

    關(guān)注

    968

    文章

    3972

    瀏覽量

    189923
  • 無(wú)線供電
    +關(guān)注

    關(guān)注

    14

    文章

    97

    瀏覽量

    51076
  • RPLIDAR
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    7760
  • ESP32
    +關(guān)注

    關(guān)注

    18

    文章

    971

    瀏覽量

    17261

原文標(biāo)題:ESP32 使用RPLidar激光雷達(dá)測(cè)距(RPLidar A1 A1M8)

文章出處:【微信號(hào):凌順實(shí)驗(yàn)室,微信公眾號(hào):凌順實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    激光雷達(dá)分類以及應(yīng)用

    激光雷達(dá)實(shí)際上是一種工作在光學(xué)波段(特殊波段)的雷達(dá),它的優(yōu)點(diǎn)非常明顯:1、具有極高的分辨率:激光雷達(dá)工作于光學(xué)波段,頻率比微波高2~3個(gè)數(shù)量級(jí)以上,因此,與微波雷達(dá)相比,
    發(fā)表于 09-19 15:51

    常見激光雷達(dá)種類

    單線激光雷達(dá)特點(diǎn):結(jié)構(gòu)簡(jiǎn)單、掃描速度快、分辨率高、可靠性高、成本低。單線激光雷達(dá)實(shí)際上就是一個(gè)高同頻激光脈沖掃描儀,加上一個(gè)一維旋轉(zhuǎn)掃描。單線激光雷達(dá)雖然原理簡(jiǎn)單但是可以有效、高頻的測(cè)
    發(fā)表于 09-25 11:30

    消費(fèi)級(jí)激光雷達(dá)的起航

    自動(dòng)導(dǎo)航車(Automatic Guided Vehicle,即AGV)領(lǐng)域的固態(tài)激光雷達(dá)CE30。對(duì)比傳統(tǒng)的機(jī)械式激光雷達(dá)激光雷達(dá)是通過(guò)機(jī)械轉(zhuǎn)軸的高速旋轉(zhuǎn)來(lái)完成四周環(huán)境的掃描。固態(tài)激光雷達(dá)
    發(fā)表于 12-07 14:47

    固態(tài)設(shè)計(jì)激光雷達(dá)

    ``一年一度的國(guó)際消費(fèi)類電子產(chǎn)品展覽會(huì)(CES)已經(jīng)完滿收官,短短的幾天時(shí)間里,我們見識(shí)了Intel無(wú)人飛機(jī)燈光秀、百度無(wú)人車、移動(dòng)行李箱等眾多“黑科技”。而北醒不僅展示了性能卓越的固態(tài)激光雷達(dá),在
    發(fā)表于 01-25 09:41

    一文詳解激光雷達(dá)核心指標(biāo),實(shí)用性和可靠性第一

    測(cè)距激光雷達(dá)的噩夢(mèng)。但從實(shí)用性角度看,一款標(biāo)稱10米以上的激光雷達(dá),必須至少能在6米距離以上有效得進(jìn)行檢測(cè)。但是RPLIDAR A2M6即使在10米距離下,仍舊可以對(duì)其進(jìn)行有效檢測(cè)。RPLID
    發(fā)表于 02-02 14:06

    激光雷達(dá)的核心重要指標(biāo)到底是什么?

    激光雷達(dá)的噩夢(mèng)。但從實(shí)用性角度看,一款標(biāo)稱10米以上的激光雷達(dá),必須至少能在6米距離以上有效得進(jìn)行檢測(cè)。但是RPLIDAR A2M6即使在10米距離下,仍舊可以對(duì)其進(jìn)行有效檢測(cè)。RPLIDAR
    發(fā)表于 02-07 13:40

    激光雷達(dá)除了可以激光測(cè)距外,還可以怎么應(yīng)用?

    在很多人印象中激光雷達(dá)還是那個(gè)通過(guò)旋轉(zhuǎn)完成激光測(cè)距幫助機(jī)器人完成定位、建圖輔助后續(xù)導(dǎo)航的激光傳感器RPLIDAR定位建圖 但其實(shí),除了可以應(yīng)用在機(jī)器人定位建圖、自主導(dǎo)航、障礙物檢測(cè)與規(guī)
    發(fā)表于 05-11 15:33

    機(jī)器人和激光雷達(dá)都不可或缺

    控制,延長(zhǎng)產(chǎn)品淘汰周期。思嵐的RPLIDAR 系列雷達(dá)采用電磁融合技術(shù),這種非物理接觸的無(wú)線供電和無(wú)線數(shù)據(jù)傳輸技術(shù),解決了因物理接觸機(jī)械磨損導(dǎo)致電氣連接失效、激光雷達(dá)壽命短的問(wèn)題,能讓雷達(dá)
    發(fā)表于 02-15 15:12

    TOF激光雷達(dá)

    TOF 方案激光雷達(dá)激光雷達(dá)新一代技術(shù)方案,本產(chǎn)品解決了如市場(chǎng)三角測(cè)試法等產(chǎn)品組裝問(wèn)題難,價(jià)格成本高等問(wèn)題,目前提供面陣及單光子技術(shù),基于COM產(chǎn)品。集成了SPAD,TDC,DSP,RAM
    發(fā)表于 06-07 00:03

    RPLIDAR A2 360°激光雷達(dá),能不能輸出數(shù)據(jù)到arduino上?

    大神出來(lái)聊聊: RPLIDAR A2 360°激光雷達(dá),能不能輸出數(shù)據(jù)到arduino上?或者說(shuō)arduino能跟得上嗎?
    發(fā)表于 08-14 08:02

    激光雷達(dá)

    想了解行業(yè)國(guó)內(nèi)做固態(tài)激光雷達(dá)的廠家,激光雷達(dá)里面是怎么樣的啊
    發(fā)表于 01-17 15:29

    FMCW激光雷達(dá)與dTOF激光雷達(dá)的區(qū)別在哪?

    FMCW激光雷達(dá)與dTOF激光雷達(dá)的區(qū)別在哪?
    發(fā)表于 07-23 13:22

    當(dāng)“思嵐”激光雷達(dá)邂逅盲人拐杖

    的具體姿勢(shì)視覺傳感器:結(jié)合激光雷達(dá),做SLAM建圖圖源:Science Robotics其中,相信大家對(duì)這款激光雷達(dá)很眼熟,就是思嵐科技的 RPLIDAR A1。A1的應(yīng)用,可以用來(lái)幫助盲人探測(cè)周圍物體
    發(fā)表于 11-12 14:12

    怎樣去使用激光雷達(dá)RPLIDAR A1呢

    激光雷達(dá)RPLIDAR A1使用教程一.雷達(dá)硬件連接1.A1雷達(dá)包含組件RPLIDAR A1開發(fā)套裝包含了如下組件:oRPLIDAR A1模
    發(fā)表于 01-05 07:25

    思嵐科技RPLIDAR系列激光雷達(dá)

    對(duì)于激光雷達(dá)傳感器在機(jī)器人、無(wú)人駕駛等領(lǐng)域的應(yīng)用相信大家并不陌生,但除了這兩大領(lǐng)域,激光雷達(dá)傳感器還可被廣泛應(yīng)用于其他領(lǐng)域。以思嵐科技的RPLIDAR系列激光雷達(dá)來(lái)說(shuō),雖說(shuō)目前的大部分
    發(fā)表于 10-14 14:15 ?2072次閱讀
    主站蜘蛛池模板: 狠狠色丁香六月色| 伊人免费网| 国产老师的丝袜在线看| 白丝丝袜高跟国产在线视频| 一级片a| 久久久久久久久久免免费精品| 午夜国产理论| 国产午夜爽爽窝窝在线观看| 欧美xxxx日本| 中文字幕在线观看日剧网| 69日本xxxxxxxxx18| 嘿嘿嘿视频在线观看| 上海一级毛片| 国外一级毛片| 日本特黄视频| 一区不卡视频| 天天色天天摸| 狠狠se| yy4080午夜理论一级毛片| 狂捣猛撞侍卫攻双性王爷受| 色婷婷综合激情| 午夜影院在线视频| 欧美性黑人极品1819hd| 色婷婷丁香| 99国产国人青青视频在线观看| 毛片8| 亚洲国产成人最新精品资源| 久久美女免费视频| 特黄级| 亚州三级视频| 三级视频在线| 在线免费影视| 男男h全肉耽污| 女色专区| 天堂网最新版www中文| 办公室桌震娇喘视频大全在线| 欧美特级黄| 天天碰天天干| 日本视频三区| 日本一道dvd在线中文字幕| 最近高清在线视频观看免费|