13024|18

661

帖子

30

TA的资源

版主

楼主
 

ST VL6180X试用【ST主题月】 [复制链接]

 
     VL6180XSTTOF芯片,可以测量亮度和距离,测试使用的板子是:NUCLEO-F401REX-NUCLEO-6180XA1VL6180X-SATEL
  打开RangingAndALS工程编译烧录,程序中有距离测量光度测量,通过拨码开关切换,
可以在60cm以内精确的测距,在20cm内精度到达1毫米级,20-40cm精度达到2毫米级,40-60cm精度达到3毫米级。如下图:
  亮度测量如下图:
      VL6180X可以设置IIC地址,可以通过一个IIC来控制多个VL6180X,烧录代码中的RangingWithSatellites例程,结果如下图:
      多个VL6180X可以进行简单的手势姿势检测,ST也提供相关的算法,有兴趣的同学可以自己试试。
      VL6180X性能真是甩掉常用的超声波测距和红外测距几条街啊,实测测距相当准确,也不需要进行转换,从寄存器里读出来就是距离值。就是测距距离小了点,不过ST马上要出的VL53L0测距达到200cm,非常期待。

查看本帖全部内容,请登录或者注册
此帖出自stm32/stm8论坛

最新回复

楼主好强大!然而我还是有点晕,得好好研究下~ardinuo有个加载库,可是vl6180x下面那些文件都不符合他加载的要求呢  详情 回复 发表于 2016-11-4 12:32
点赞 关注
个人签名QQ:252669569
 

回复
举报

483

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
想买都联系不到ST啊
此帖出自stm32/stm8论坛

点评

你可以去ST的指定供应商看看,包括:贸泽电子,Digi-Key,力源芯城  详情 回复 发表于 2016-6-3 13:46
 
个人签名http://www.jslaser.com高性价比激光测距传感器
 

回复

483

帖子

0

TA的资源

纯净的硅(初级)

板凳
 
精度还是比较差的,特别是跟激光传感器比起来
此帖出自stm32/stm8论坛

点评

如果跟超声波和红外比起来还是不错的,也小巧,精度和距离与激光比起来估计还是不行  详情 回复 发表于 2016-6-3 13:48
 
个人签名http://www.jslaser.com高性价比激光测距传感器
 

回复

148

帖子

0

TA的资源

一粒金砂(中级)

4
 
不是有个红外的也能测距的
此帖出自stm32/stm8论坛

点评

红外也是可以用来测距的,你是说的哪款  详情 回复 发表于 2016-6-3 13:49
 
 
 

回复

661

帖子

30

TA的资源

版主

5
 
kangkls 发表于 2016-6-3 11:46
想买都联系不到ST啊

你可以去ST的指定供应商看看,包括:贸泽电子,Digi-Key,力源芯城
此帖出自stm32/stm8论坛
 
个人签名QQ:252669569
 
 

回复

661

帖子

30

TA的资源

版主

6
 
kangkls 发表于 2016-6-3 11:48
精度还是比较差的,特别是跟激光传感器比起来

如果跟超声波和红外比起来还是不错的,也小巧,精度和距离与激光比起来估计还是不行
此帖出自stm32/stm8论坛
 
个人签名QQ:252669569
 
 

回复

661

帖子

30

TA的资源

版主

7
 
zfz0122 发表于 2016-6-3 12:12
不是有个红外的也能测距的

红外也是可以用来测距的,你是说的哪款
此帖出自stm32/stm8论坛
 
个人签名QQ:252669569
 
 

回复

97

帖子

0

TA的资源

一粒金砂(中级)

8
 
距离太近了。ISL29501红外测距可以到2m
此帖出自stm32/stm8论坛
 
 
 

回复

1727

帖子

0

TA的资源

五彩晶圆(初级)

9
 
可以申请个过来玩下吗?
此帖出自stm32/stm8论坛

点评

暂时没听说有这款板子的申请,不过可以去ST指定的芯片商城去购买  详情 回复 发表于 2016-6-5 23:17
 
 
 

回复

33

帖子

0

TA的资源

一粒金砂(中级)

10
 
怎么申请试用?
此帖出自stm32/stm8论坛

点评

暂时没听说有这款板子的申请,不过可以去ST指定的芯片商城去购买  详情 回复 发表于 2016-6-5 23:18
 
 
 

回复

1706

帖子

4

TA的资源

纯净的硅(初级)

11
 
200cm + 手势姿势会玩的很high!!!!
此帖出自stm32/stm8论坛

点评

恩,如果是200cm,支持手势的话确实会很好玩,不过这个芯片只能检测到简单的手势比如上滑,左滑等。要是能像kinect和realsence一样支持动作检测,拥有深度视觉那就更好玩了,不过听说realsence的激光阵列技术也是用  详情 回复 发表于 2016-6-5 23:23
 
 
 

回复

661

帖子

30

TA的资源

版主

12
 
cat3902982 发表于 2016-6-3 17:38
可以申请个过来玩下吗?

暂时没听说有这款板子的申请,不过可以去ST指定的芯片商城去购买
此帖出自stm32/stm8论坛
 
个人签名QQ:252669569
 
 

回复

661

帖子

30

TA的资源

版主

13
 

暂时没听说有这款板子的申请,不过可以去ST指定的芯片商城去购买
此帖出自stm32/stm8论坛
 
个人签名QQ:252669569
 
 

回复

661

帖子

30

TA的资源

版主

14
 
DavidZH 发表于 2016-6-5 22:41
200cm + 手势姿势会玩的很high!!!!

恩,如果是200cm,支持手势的话确实会很好玩,不过这个芯片只能检测到简单的手势比如上滑,左滑等。要是能像kinect和realsence一样支持动作检测,拥有深度视觉那就更好玩了,不过听说realsence的激光阵列技术也是用的ST的相关芯片。
此帖出自stm32/stm8论坛
 
个人签名QQ:252669569
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

15
 
你好,请问用ardinuo应该怎么控制VL6180测距呢~~谢谢
此帖出自stm32/stm8论坛

点评

你说的ardinuo是ST的这个NUCLEO还是那个意大利款的呢?如果是ST的那就方便了,直接有接口使用,如果是那个意大利款的话,需要移植一下库文件,主要是IIC的接口需要重新配置下。  详情 回复 发表于 2016-11-2 20:49
 
 
 

回复

661

帖子

30

TA的资源

版主

16
 
zzy999 发表于 2016-11-2 17:52
你好,请问用ardinuo应该怎么控制VL6180测距呢~~谢谢

你说的ardinuo是ST的这个NUCLEO还是那个意大利款的呢?如果是ST的那就方便了,直接有接口使用,如果是那个意大利款的话,需要移植一下库文件,主要是IIC的接口需要重新配置下。
此帖出自stm32/stm8论坛
 
个人签名QQ:252669569
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

17
 
lb8820265 发表于 2016-11-2 20:49
你说的ardinuo是ST的这个NUCLEO还是那个意大利款的呢?如果是ST的那就方便了,直接有接口使用,如果是那 ...

我的是Ardinuo mega2560...接口应该如何配置呢?  谢谢!!
此帖出自stm32/stm8论坛

点评

我不得不说你这个问题问得有点大啊,移植不是一件简单的事,不过我喜欢。 1. 先移植库文件,路径是STM32CubeExpansion_VL6180X_V1.2.0\Drivers\BSP\Components\vl6180x将这个路径下的文件全部复制到你的工程下面就  详情 回复 发表于 2016-11-4 01:17
 
 
 

回复

661

帖子

30

TA的资源

版主

18
 
zzy999 发表于 2016-11-3 09:40
我的是Ardinuo mega2560...接口应该如何配置呢?  谢谢!!

我不得不说你这个问题问得有点大啊,移植不是一件简单的事,不过我喜欢。
1. 先移植库文件,路径是STM32CubeExpansion_VL6180X_V1.2.0\Drivers\BSP\Components\vl6180x将这个路径下的文件全部复制到你的工程下面就好。
2. 了解IIC接口位置,你需要明白所有的API操作都是在操作IIC,因此只要IIC接口弄好了,基本就没问题了,在vl6180x_i2c.c文件中,你需可以看到VL6180x_I2CWrite和VL6180x_I2CRead是外部调用的,也就是IIC接口处。
3. 重写接口,这两个接口函数可以写在任何地方,例程中写在了main.c中,全部如下:
  1. #define i2c_bus      (&hi2c1)
  2. #define def_i2c_time_out 100
  3. int VL6180x_I2CWrite(VL6180xDev_t dev, uint8_t *buff, uint8_t len) {
  4.     int status;
  5.     status = HAL_I2C_Master_Transmit(i2c_bus, dev->I2cAddr, buff, len, def_i2c_time_out);
  6.     if (status) {
  7.         XNUCLEO6180XA1_I2C1_Init(&hi2c1);
  8.     }
  9.     return status? -1 : 0;
  10. }
  11. int VL6180x_I2CRead(VL6180xDev_t dev, uint8_t *buff, uint8_t len) {
  12.     int status;
  13.     status = HAL_I2C_Master_Receive(i2c_bus, dev->I2cAddr, buff, len, def_i2c_time_out);
  14.     if (status) {
  15.         XNUCLEO6180XA1_I2C1_Init(&hi2c1);
  16.     }
  17.     return status? -1 : 0;
  18. }
复制代码

这个函数里面的内容,不同的控制器会有不同的IIC接口函数,不过大体差不多,替换为使用的控制器的库函数即可。
4. 简单的API,这个你可以参考例程,或者参考使用API使用说明书,说明书位置STM32CubeExpansion_VL6180X_V1.2.0\Documentation\VL6180X_API_Documentation.chm
这里将里面的简单使用贴出来,详细的请参考文档或例程。
  1. void Sample_SimpleRanging(void)
  2. {    VL6180xDev_t myDev;   
  3. VL6180x_RangeData_t Range;   
  4. MyDev_Init(myDev);           // your code init device variable   
  5. MyDev_SetChipEnable(myDev);  // your code assert chip enable   
  6. MyDev_uSleep(1000);          // your code sleep at least 1 msec   
  7. VL6180x_InitData(myDev);   
  8. VL6180x_Prepare(myDev);   
  9. do {        VL6180x_RangePollMeasurement(myDev, &Range);     
  10.    if (Range.errorStatus == 0 )           
  11. MyDev_ShowRange(myDev, Range.range_mm,0); // your code display range in mm     
  12.    else         
  13.   MyDev_ShowErr(myDev, Range.errorStatus); // your code display error code   
  14. } while (!MyDev_UserSayStop(myDev)); // your code to stop looping
  15. }
复制代码

此帖出自stm32/stm8论坛
 
个人签名QQ:252669569
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

19
 
lb8820265 发表于 2016-11-4 01:17
我不得不说你这个问题问得有点大啊,移植不是一件简单的事,不过我喜欢。
1. 先移植库文件,路径是STM32 ...

楼主好强大!然而我还是有点晕,得好好研究下~ardinuo有个加载库,可是vl6180x下面那些文件都不符合他加载的要求呢
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

猜你喜欢
随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【有奖直播】2025是德科技数字月-数字新品来助阵
直播时间:3月19日(周三)14:00
直播奖励:小米口红充电宝、倍思充电线、是德科技十周年鼠标垫

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表