標(biāo)題:
STM32+VL53L0X激光測距源碼
[打印本頁]
作者:
busyyang
時(shí)間:
2018-4-25 16:57
標(biāo)題:
STM32+VL53L0X激光測距源碼
實(shí)驗(yàn)器材:
精英STM32F103開發(fā)板
實(shí)驗(yàn)?zāi)康?
學(xué)習(xí)ATK-VL53L0X激光測距模塊的使用,實(shí)現(xiàn)距離校準(zhǔn)、普通測量模式和中斷測量模式的功能,距離校準(zhǔn)數(shù)據(jù)會(huì)存儲(chǔ)在24C02上.
硬件資源:
1,DS0、DS1(連接在PB5\PE5)
2,串口1(波特率:115200,PA9/PA10連接在板載USB轉(zhuǎn)串口芯片CH340上面)
3,ALIENTEK 2.8/3.5/4.3/7寸TFTLCD模塊(通過FSMC驅(qū)動(dòng),FSMC_NE4接LCD片選/A10接RS)
4,按鍵KEY0(PE4)/KEY1(PE3)/KEY_UP(PA0)
5,24C02(IIC連接在PB6/PB7上面)
6,ATK-VL53L0X模塊一個(gè)(連接在PB11(SCL),PB10(SDA),PA15(XSH),PA4(INT)上面),也可直接插在板上ATK-MODULE的接口。
實(shí)驗(yàn)現(xiàn)象:
本實(shí)驗(yàn)功能簡介:本實(shí)驗(yàn)用于測試ATK-VL53L0X激光測距模塊,總共包含三大項(xiàng)測試:
1,校準(zhǔn)測試-通過KEY_UP按鍵進(jìn)入此項(xiàng)測試。該功能實(shí)現(xiàn)對(duì)傳感器測量誤差的校準(zhǔn),進(jìn)入
測試后,會(huì)看到LCD屏幕提示,提示需要一個(gè)白色的目標(biāo)(可以是白紙),且白色的目
標(biāo)需與模塊保持在100mm的距離,確認(rèn)目標(biāo)和距離無誤后,這時(shí)可按下LCD屏幕提示
的 KEY1按鍵執(zhí)行校準(zhǔn)操作,若不想執(zhí)行校準(zhǔn)可按下KEY_UP返回主菜單。按下KEY1按
鍵后,LCD 屏幕會(huì)顯示開始校準(zhǔn),這時(shí)校準(zhǔn)需要一定的時(shí)間,若校準(zhǔn)成功,則會(huì)將校準(zhǔn)
的數(shù)據(jù)存入到24C02上。否則,將不會(huì)進(jìn)行數(shù)據(jù)保存,校準(zhǔn)過程結(jié)束后,會(huì)自動(dòng)返回主
菜單頁面。
2,普通測量測試-此測試是使用Single ranging(單次測量)工作模式,采用輪詢方式,讀取
測量數(shù)據(jù),通過KEY1按鍵進(jìn)入此項(xiàng)測試。此項(xiàng)測試包含4個(gè)精度模式子項(xiàng),其中包括:
默認(rèn)、高精度、長距離、高速。通過屏幕提示的KEY1按鍵操作,進(jìn)行精度模式的切換。
選擇好精度模式后,按下KEY0按鍵可進(jìn)入此模式測試。進(jìn)入測試后,若之前成功校準(zhǔn)過,
會(huì)將保存在24C02的校準(zhǔn)數(shù)據(jù)寫進(jìn)模塊上,測量的數(shù)據(jù)通過輪詢方式采集。數(shù)據(jù)采集結(jié)
束后,數(shù)據(jù)顯示在屏幕上、同時(shí)也打印在串口調(diào)試助手上。單擊按下KEY_UP,可返回精
度模式選項(xiàng)頁面,雙擊按下,則返回主菜單頁面。
3,中斷測量測試-此測試是使用Continuous ranging(連續(xù)測量)工作模式,采用中斷方式,
讀取測量數(shù)據(jù)。通過KEY0按鍵進(jìn)入此項(xiàng)測試。此項(xiàng)測試包含4個(gè)精度模式子項(xiàng),其中包
括:默認(rèn)、高精度、長距離、高速。通過LCD屏幕提示的KEY1按鍵操作,進(jìn)行精度模式
的切換。選擇好精度模式后,按下KEY0按鍵可進(jìn)入此模式測試。進(jìn)入測試后,若之前成
功校準(zhǔn)過,會(huì)將保存在24C02的校準(zhǔn)數(shù)據(jù)寫進(jìn)模塊上。在LCD屏幕上,會(huì)顯示距離上下
限閥值,當(dāng)測出的距離在上下限閥值范圍之間,模塊不觸發(fā)測距工作,中斷沒有輸出,若
在閥值外,則啟動(dòng)測距工作,測量結(jié)束會(huì)觸發(fā)一次中斷,通過中斷讀取測量數(shù)據(jù),距離數(shù)
據(jù)會(huì)顯示在屏幕上,同時(shí)也會(huì)打印在串口調(diào)試助手上。單擊按下KEY_UP,可返回精度模
式選擇頁面,雙擊按下,則返回到主菜單頁面。
(關(guān)于工作模式和精度的介紹,請看ATK-VL53L0X激光傳感器模塊用戶手冊_V1.0)
注意事項(xiàng):
1,4.3寸和7寸屏需要比較大電流,USB供電可能不足,請用外部電源適配器(推薦外接12V 1A電源).
2,本例程在LCD_Init函數(shù)里面(在ILI93xx.c),用到了printf,如果不初始化串口1,將導(dǎo)致液晶無法顯示!!
3,校準(zhǔn)過程中可能會(huì)受環(huán)境溫度、紅外線以及光線的影響,導(dǎo)致校準(zhǔn)數(shù)據(jù)不準(zhǔn)。
4,由于模塊是屬于光學(xué)器件,傳感器表層的不潔凈,會(huì)容易導(dǎo)致測量數(shù)據(jù)不佳。所以模塊在使用前,保持傳感器表層的清潔度,工作時(shí)請勿用手去觸摸,以免導(dǎo)致模塊工作不正常。
單片機(jī)源程序如下:
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"
#include "24cxx.h"
#include "usmart.h"
#include "vl53l0x.h"
//主函數(shù)
int main(void)
{
delay_init(); //延時(shí)函數(shù)初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級(jí)分組為組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
uart_init(115200); //串口初始化為115200
usmart_dev.init(72); //初始化USMART
KEY_Init(); //按鍵初始化
LED_Init(); //初始化與LED連接的硬件接口
LCD_Init(); //初始化LCD
AT24CXX_Init(); //IIC初始化
POINT_COLOR=RED; //設(shè)置字體為紅色
LCD_ShowString(30,50,200,16,16,"Elite STM32");
LCD_ShowString(30,70,200,16,16,"Sensor VL53L0X TEST");
LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(30,110,200,16,16,"2017/6/25");
POINT_COLOR=BLUE;//設(shè)置字體為藍(lán)色
while(AT24CXX_Check())//檢測不到24c02
{
LCD_ShowString(30,150,200,16,16,"24C02 Check Failed!");
delay_ms(500);
LCD_ShowString(30,150,200,16,16,"Please Check! ");
delay_ms(500);
LED0=!LED0;//DS0閃爍
}
while(1)
{
vl53l0x_test();//vl53l0x測試
}
}
復(fù)制代碼
所有資料51hei提供下載:
(標(biāo)準(zhǔn)庫版本,適合精英STM32開發(fā)板)擴(kuò)展實(shí)驗(yàn)21 ATK-VL53L0X模塊實(shí)驗(yàn).rar
(496.85 KB, 下載次數(shù): 359)
2018-4-25 16:56 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
久落凡塵
時(shí)間:
2018-4-27 14:35
樓主, vl53l0x一定要校準(zhǔn)嗎,能直接測距嗎
作者:
上帝之杖
時(shí)間:
2018-8-4 16:17
謝謝樓主
作者:
mycnxp
時(shí)間:
2018-8-8 17:05
很想要。
作者:
mycnxp
時(shí)間:
2018-8-8 17:06
很想要,找了好久
作者:
assassin6279
時(shí)間:
2018-8-26 19:12
樓主 這是f1資料里面的內(nèi)容嗎 現(xiàn)在在用f4但是沒有相關(guān)資料 是的話我就去下f1的資料了
作者:
Liqipeng0822
時(shí)間:
2019-1-16 13:20
謝謝樓主的分享,最近打算嘗試這個(gè)模塊。
作者:
史蒂芬?guī)?nbsp;
時(shí)間:
2019-1-18 16:15
感謝分享。。。。。。。。。。。。
作者:
史蒂芬?guī)?nbsp;
時(shí)間:
2019-1-18 16:15
非常感謝分享
作者:
Liqipeng0822
時(shí)間:
2019-2-28 09:42
久落凡塵 發(fā)表于 2018-4-27 14:35
樓主, vl53l0x一定要校準(zhǔn)嗎,能直接測距嗎
您好!我也想問一下,如果VL53L0X不經(jīng)過校準(zhǔn),直接使用,長時(shí)間會(huì)對(duì)精度產(chǎn)生影響嗎?
作者:
zhongfei123
時(shí)間:
2019-3-28 18:29
找了好久,驗(yàn)證看能不能移值到VL53L1上
作者:
18779103902
時(shí)間:
2019-5-6 18:56
很不錯(cuò),謝謝樓主
作者:
temp009
時(shí)間:
2019-8-4 11:54
很不錯(cuò),謝謝樓主
作者:
hbthgsli
時(shí)間:
2019-8-4 15:40
謝謝分享,很實(shí)用
作者:
小蘇ka
時(shí)間:
2019-8-8 16:11
感謝!!
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1