新聞中心

        EEPW首頁 > 模擬技術(shù) > 設(shè)計應用 > LiDAR激光雷達技術(shù)原理及Arduino示例代碼糾錯

        LiDAR激光雷達技術(shù)原理及Arduino示例代碼糾錯

        作者:硬之城 時間:2024-04-30 來源:搜狐科技 收藏

        (Light Detection and Ranging,LiDAR)即激光探測和測距,又稱光學雷達,是自動駕駛領(lǐng)域的一種基礎(chǔ)感測技術(shù)。LIDAR是激光科技與雷達技術(shù)的組合,以下以無人機和自動駕駛領(lǐng)域常用的LIDAR-Lite系列為例,介紹LIDAR與Arduino開發(fā)板的連接幾測距示例。

        本文引用地址:http://www.104case.com/article/202404/458254.htm

        LiDAR工作原理

        LiDAR工作原理與通信雷達一樣,都是飛行時間測量法(Time of Flight,TOF),只是發(fā)射介質(zhì)采用的是對人畜無害的紅外光束(Light Pluses),而不是無線電波。


        LiDAR示意圖

        LiDAR通過發(fā)射、反射和接收紅外光束來探測白天或黑夜下的特定物體及動態(tài)數(shù)據(jù),甚至由于反射度的不同,車道線和路面也是可以區(qū)分開來的。對于車用,光速是每秒30萬公里,要區(qū)分目標厘米級別的精確距離,對傳輸時間測量分辨率必須做到1納秒。要如此精確的測量時間,對應的測量系統(tǒng)的成本就很難降低,還需要使用巧妙的方法降低測量難度。


        激光雷達LiDAR系統(tǒng)組成

        LiDAR系統(tǒng)一般包括激光發(fā)射光源、接收器、伺服電機、斜面鏡和光學旋轉(zhuǎn)編碼器(又稱圓光柵)幾部分。通過旋轉(zhuǎn)的機械鏡面測量激光發(fā)出和收到回波的時間差,LiDAR可確定目標的方位和距離。由于激光雷達主動發(fā)射激光,因此受環(huán)境光變化的影響小,測距精確。

        LiDAR與Arduino連接

        LIDAR是激光科技與雷達技術(shù)的組合,不但應用前景廣闊,使用也非常簡便。通過Arduino開發(fā)板就能實現(xiàn)測距應用,必要的物料BOM表如下: USB micro-B電纜 USB 2.0 A-B型 x1 電阻器 1/4W 500歐姆 x1 SparkFun Arduino開發(fā)板 DEV-15123 x1 LIDAR-Lite v3傳感器 Garmin SEN-14032 x1 電容器 1000uF/25V去耦鋁電解電容器 x1 面包板 x1 跳線 若干


        LIDAR-Lite激光雷達

        其中,LIDAR-Lite前方有兩個鏡筒,里面分別是激光發(fā)射器和接收器,用以發(fā)現(xiàn)和檢測目標。側(cè)面的電氣接口用來連接6-wire電纜。底部的4個安裝孔用來固定傳感器,螺絲規(guī)格為 #6 or M3.5。 LIDAR-Lite有6個引線,用來與控制板通信。其功能分別為: 紅色:5V,連接5V電源。 橙色:PWR EN,電源使能(內(nèi)部上拉) 黃色:MODE,模式控制(用于PWM模式) 綠色:SCL,I2C時鐘 藍色:SDA,I2C數(shù)據(jù) 黑色:GND,接地線

        LIDAR-Lite的引線及功能說明

        由于LIDAR-Lite工作于4.5V to 5.5V,消耗的連續(xù)電流高達135mA (待機狀態(tài)為105mA),為了維持穩(wěn)定工作,需要在5V電源和GND之間連接一個680μF電容器,并盡量靠近LIDAR傳感器單元。 用于SCL和SD線路的I2C總線上拉電阻器一般為4.7kΩ,如果鏈路較長或系統(tǒng)器件較多,可改用較小阻值的電阻元件。當線路長度超過允許長度時,可采用總線擴展器。


        LIDAR傳感器與Arduino開發(fā)板連接

        按照電路圖將LIDAR傳感器與RedBoard或者其他Arduino兼容開發(fā)板連接,IDAR-Lite就可以通過I2C總線來測量距離了。

        LiDAR庫文件及代碼

        連接好電路圖后,用USB電纜將LiDAR連接到PC,就可以安裝專門的Arduino庫文件了。這很簡單,打開Arduino Library Manager按照提示操作就OK了。如果這些庫文件沒有鏈接到Arduino IDE,就需要手動操作,過程也不復雜。

        庫文件裝好后,打一個新的Arduino sketch,拷入如下代碼:

        /**

        * LIDARLite I2C Example

        * Author: Garmin

        * Modified by: Shawn Hymel (SparkFun Electronics)

        * Date: June 29, 2017

        *

        * Read distance from LIDAR-Lite v3 over I2C

        *

        * See the Operation Manual for wiring diagrams and more information:

        * http://static.garmin.com/pumac/LIDAR_Lite_v3_Operation_Manual_and_Technical_Specifications.pdf

        */

        #include <Wire.h>#include <LIDARLite.h>

        // Globals

        LIDARLite lidarLite;int cal_cnt = 0;

        void setup()

        {

        Serial.begin(9600); // Initialize serial connection to display distance readings

        lidarLite.begin(0, true); // Set configuration to default and I2C to 400 kHz

        lidarLite.configure(0); // Change this number to try out alternate configurations

        }

        void loop()

        {

        int dist;

        // At the beginning of every 100 readings,

        // take a measurement with receiver bias correction

        if ( cal_cnt == 0 ) {

        dist = lidarLite.distance(); // With bias correction

        } else {

        dist = lidarLite.distance(false); // Without bias correction

        }

        // Increment reading counter

        cal_cnt++;

        cal_cnt = cal_cnt % 100;

        // Display distance

        Serial.print(dist);

        Serial.println(" cm");

        delay(10);

        }

        代碼上傳成功后,打開Serial Monitor,就可以看到如下顯示的測量結(jié)果。

        LIDAR傳感器的測距結(jié)果

        如果Serial Monitor顯示有誤(nack error),大部分情況是I2C總線連接問題,因為I2C總線對接觸不良非常敏感,最好是事先在面包板上焊接幾根導線出來。當然,也可能是上拉電阻太大了,可換個小一點阻值的試試,直到正常測量為止。



        關(guān)鍵詞: 激光雷達

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 陵川县| 永寿县| 宁陕县| 凤庆县| 绥化市| 启东市| 桑植县| 香格里拉县| 呼和浩特市| 若尔盖县| 长子县| 大庆市| 星子县| 灵宝市| 淄博市| 寿光市| 浮山县| 北辰区| 沾益县| 水富县| 定远县| 万荣县| 芒康县| 灵川县| 永嘉县| 鲁甸县| 福建省| 武山县| 怀远县| 思茅市| 逊克县| 内黄县| 宾川县| 涿州市| 万安县| 博白县| 田阳县| 湄潭县| 商洛市| 蒲江县| 贵州省|