国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 2356|回復(fù): 0
打印 上一主題 下一主題

【開源教程15】瘋殼·開源編隊(duì)無(wú)人機(jī)-I2C(激光測(cè)距)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2022-8-19 15:36:17 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
COCOFLY教程
——瘋殼·無(wú)人機(jī)·系列
I2C(激光測(cè)距)





    圖1


    一、VL53L1X 簡(jiǎn)介
    VL53L1X 屬于 STMicroelectronics 即常說(shuō)的意法半導(dǎo)體(ST)公司推出的
    FlightSense™ 產(chǎn)品系列 ToF(Time of flight)激光測(cè)距傳感器
    VL53L1X 是目前市場(chǎng)上最快的微型 ToF 傳感器,精確測(cè)距能力達(dá) 4 米,測(cè)距頻率快至 50 Hz。它采用微型、可回流焊封裝,集成了一個(gè)單光子雪崩二極管
    (SPAD)接收陣列、一個(gè) 940nm 不可見(jiàn)激光 1 類發(fā)射器、物理紅外濾波器和光學(xué)器件,可在各種環(huán)境照明條件下實(shí)現(xiàn)最佳測(cè)距性能,并提供一系列覆蓋窗口選擇。
    由于封裝小巧,因此它很容易集成到設(shè)備中。與傳統(tǒng)的紅外傳感器不同, VL53L1X 采用 ST 最新一代 ToF 技術(shù),無(wú)論目標(biāo)顏色和反射率如何,都可以進(jìn)行絕對(duì)距離測(cè)量。還可以對(duì)接收陣列上的 ROI(感興趣區(qū)域)大小進(jìn)行編程,從而減小傳感器 FoV(視場(chǎng)角)。VL53L1X 激光測(cè)距傳感器的實(shí)物圖如下圖所示。

   
    圖2
    二、I2C 概述
    Inter-Integrated Circuit,即內(nèi)部集成電路接口,縮寫為 IIC 或 I2C。IIC 總線是一種由 PHILIPS 公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。I2C 總線在物理連接上非常簡(jiǎn)單,分別由 SDA(串行數(shù)據(jù)線)和 SCL(串行時(shí)鐘線)及上拉電阻組成。通信原理是通過(guò)對(duì) SCL 和 SDA 線高低電平時(shí)序的控制, 來(lái)產(chǎn)生 I2C 總線協(xié)議所需要的信號(hào)進(jìn)行數(shù)據(jù)的傳遞。在總線空閑狀態(tài)時(shí),這兩根線一般被上面所接的上拉電阻拉高,保持著高電平。如下圖所示為單片機(jī)與 I2C接口的傳感器之間通信示意圖。



    圖3

    三、I2C 總線協(xié)議
    對(duì) I2C 總線的操作實(shí)際就是主從設(shè)備之間的讀寫操作。大致可分為以下兩種操作情況:
    第一,主設(shè)備往從設(shè)備中寫數(shù)據(jù)。數(shù)據(jù)傳輸格式如下:

   
圖4
    第二,主設(shè)備從從設(shè)備中讀數(shù)據(jù)。數(shù)據(jù)傳輸格式如下:

   
    圖5
    實(shí)際上把 I2C 協(xié)議拆分開來(lái)它的組成有:起始條件、終止條件、地址段、數(shù)據(jù)段、響應(yīng) ACK、非響應(yīng) NACK。
    (1)START 和 STOP,起始和終止條件都是由主機(jī)(master)發(fā)起產(chǎn)生。總線在起始條件之后處于忙碌狀態(tài),在停止條件之后又處于空閑狀態(tài)。

   
    圖6
    起始條件:SCL 線是高電平時(shí),SDA 線從高電平向低電平切換。停止條件:SCL 線是高電平時(shí),SDA 線從低電平向高電平切換。
    (2)地址段,地址段由 7bit 地址+讀寫位組成,一個(gè) 7-bit 的地址是從最高位(MSB) 開始發(fā)送的,這個(gè)地址后面會(huì)緊跟 1-bit(R/W)的操作符,1 表示讀操作,0 表示寫操作。 接下來(lái)的一個(gè) bit 是 NACK/ACK,當(dāng)這個(gè)幀中前面 8 bit 發(fā)送完后,接收端的設(shè)備獲得 SDA 控制權(quán),此時(shí)接收設(shè)備應(yīng)該在第 9 個(gè)時(shí)鐘脈沖之前回復(fù)一個(gè) ACK(將 SDA 拉低)以表示接收正常,如果接收設(shè)備沒(méi)有將SDA 拉低,則說(shuō)明接收設(shè)備可能沒(méi)有收到數(shù)據(jù)(如尋址的設(shè)備不存在或設(shè)備忙) 或無(wú)法解析收到的消息,如果是這樣,則由 master 來(lái)決定如何處理,比如:停止。

  
    圖7
    (3)數(shù)據(jù)段,SDA 數(shù)據(jù)線上的每個(gè)字節(jié)必須是 8 位,每次傳輸?shù)淖止?jié)數(shù)量沒(méi)有限制。每個(gè)字節(jié)后必須跟一個(gè)響應(yīng)位(ACK)。首先傳輸?shù)臄?shù)據(jù)是最高位
    (MSB),SDA 上的數(shù)據(jù)必須在 SCL 高電平周期時(shí)保持穩(wěn)定,數(shù)據(jù)的高低電平翻轉(zhuǎn)變化發(fā)生在 SCL 低電平時(shí)期。


    圖8
    以傳輸 Byte:1010 1010 (0xAAh)為例,SDA SCL 傳輸時(shí)序如下所示:

  
    圖9
    (4)響應(yīng) ACK(Acknowledge)和非響應(yīng) NACK(Not Acknowledge),
    每個(gè)字節(jié)傳輸必須帶響應(yīng)位,相關(guān)的響應(yīng)時(shí)鐘也由主機(jī)產(chǎn)生,在響應(yīng)的時(shí)鐘脈沖期間(第 9 個(gè)時(shí)鐘周期),發(fā)送端釋放 SDA 線,接收端把 SDA 拉低。以上圖傳輸 101010101 為例,SCL 第 9 位時(shí)鐘高電平信號(hào)期間,SDA 拉低其代表了有ACK響應(yīng)位。當(dāng)在 SCL 第 9 位時(shí)鐘高電平信號(hào)期間,SDA 仍然保持高電平,這種情況定義為 NACK 非響應(yīng)位。這種情況下,主機(jī)可以直接產(chǎn)生 STOP 條件終止以后的傳輸或者繼續(xù)重新 START 開始一個(gè)新的傳輸。以下情況會(huì)導(dǎo)致出現(xiàn) NACK 位:
    a、接收機(jī)沒(méi)有發(fā)送機(jī)響應(yīng)的地址,接收端沒(méi)有任何 ACK 發(fā)送給發(fā)射機(jī);
    b、由于接收機(jī)正在忙碌處理實(shí)時(shí)程序?qū)е陆訜o(wú)法接收或者發(fā)送; c、傳輸過(guò)程中,接收機(jī)識(shí)別不了發(fā)送機(jī)的數(shù)據(jù)或命令;
    d、接收機(jī)無(wú)法接收;
    e、主機(jī)接收完成讀取數(shù)據(jù)后,要發(fā)送 NACK 結(jié)束告知從機(jī)。以下圖例代表 NACK 時(shí)序:

   
    圖10

    根據(jù) I2C 協(xié)議分解的各個(gè)部分,可得出讀和寫的時(shí)序圖,以向某傳感器的地址為 0x09 的寄存器寫入兩個(gè)字節(jié) 0x02 和 0x84 為例,如下圖所示為該過(guò)程時(shí)序圖。


    圖11
    以從某傳感器的地址為 0x09 的寄存器中讀出兩個(gè)字節(jié) 0x02 和 0x84 為例, 該時(shí)序圖如下所示。

   
    圖12

    四、激光測(cè)距實(shí)驗(yàn)

    激光測(cè)距實(shí)驗(yàn)使用STM32 的GPIO 模擬I2C 與激光測(cè)距模組VL53L1X 相連接,串口 1 即UART1,通過(guò) USB 轉(zhuǎn)串口模塊連接電腦,把 I2C 獲取到的VL53L1X的距離值(mm 為單位)通過(guò)串口 1 傳輸?shù)诫娔X端的串口調(diào)試助手顯示出來(lái)。做該實(shí)驗(yàn)的時(shí)候需要把視覺(jué)模組暫時(shí)取下,并且把 USB 轉(zhuǎn)串口的線接到視覺(jué)模組接口處。激光測(cè)距模組 VL53L1X 在無(wú)人機(jī)支架底部,杜邦線和 SH1.0 接口接到主板上的 USART3(這里用該接口的 GPIO 模擬 I2C)的接口上,如下圖所示。

   
    圖13
    根據(jù)原理圖,可以看到 VL53L1X 的 I2C 接口分別是:PB10、PB11,如下圖所示。

   
    圖14
    串口 1 的配置可以參考《串口(基礎(chǔ)收發(fā)),配置代碼(通過(guò)調(diào)用官方庫(kù))。獲取 VL53L1X 的測(cè)距數(shù)據(jù)代碼編寫的思路如下:
    代碼思路

   
    表1
    模擬 I2C 的 GPIO 初始化代碼如下:


    圖15
    VL53L1X 的初始化代碼如下。

   
    圖16
    VL53L1X 的測(cè)距代碼如下。

   
    圖17
    每隔 5s 讀取一次距離,并發(fā)送到串口上。代碼如下所示。


    圖18
    這里注意要把串口的發(fā)送也配置好,這樣才能把數(shù)據(jù)發(fā)送到電腦。串口 1 通過(guò) USB 轉(zhuǎn)串口模塊接到電腦,保存、編譯、下載代碼,可以看到串口調(diào)試助手每隔 5s 在打印 VL53L1X 的 2 個(gè)字節(jié)的距離數(shù)據(jù)(mm 為單位),數(shù)據(jù)如下圖所示:

  
    圖19




    文件下載請(qǐng)點(diǎn)擊: 【8】I2C(激光測(cè)距).pdf (868.42 KB)



本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产护士一级毛片高清 | 激情视频网站在线观看 | 亚洲国产精品自在现线让你爽 | 日韩永久免费进入2015 | 欧美三级久久 | 日本护士视频 | 欧美xx在线观看 | 91亚洲精品福利在线播放 | 精品一区二区久久 | 99久久99热精品免费观看国产 | 久久99国产精品久久99无号码 | 久久中文字幕不卡一二区 | 国产精品不卡无毒在线观看 | 欧美国产一区二区三区 | 国产尤物二区三区在线观看 | 中文字幕一区二区三区免费视频 | 欧美天天射 | 欧美精品国产一区二区 | 欧美日韩在线一本卡 | 国产午夜亚洲精品不卡免下载 | 亚洲视频四区 | 特片网在线观看 | 国产福利在线观看永久视频 | 欧美在线视频在线观看 | 菊花综合网 | 国内第一永久免费福利视频 | 亚洲大胆美女人体一二三区 | 免费亚洲黄色 | 毛片高清一区二区三区 | 成人一区二区丝袜美腿 | 亚洲国产精品久久久久久网站 | 久久精品高清视频 | 国产精品视频观看 | 日韩在线观看免费完整版视频 | 激情久久久久久久久久久 | 国产伦理片在线观看 | 成人精品视频在线观看完整版 | 日韩在线播放一区 | 亚洲最大黄色网站 | 欧美日韩性视频一区二区三区 | 国产一区二区三区手机在线观看 |