【STMF407 Discovery】三轴加速度传感器的研究,MicroPython开发
micropython吧
全部回复
仅看楼主
level 7
就是这玩意。把micropython移植到上面。STMF407 Discovery ,意法半导体生产的STM32开发板。自带一个加速段传感器SIL302DL。我的PCB版本是MB997A,带的是SIL302DL三轴加速度传感器,如果是MB997B,带的是LIS3DSH。使用差不多,板子默认使用SPI接口驱动SIL302DL。
官方自带的MicroPython固件不带这个传感器的驱动,需要自己编译的时候加上staccel.py。
我把编译好的上传到百度网盘,需要的自取
还编译进了ssd1306 OLED 屏的驱动。
未完待续........
2019年10月24日 13点10分 1
level 7
传感器的方向定义:
使用rshell 连上开发板测试。
~$ rshell --buffer-size=30 -p /dev/ttyS4
/home/xdl> repl
MicroPython v1.11-427-gd5cbee3cf-dirty on 2019-10-24; F4DISC with STM32F407
Type "help()" for more information.
>>>
>>> import staccel
>>> accel=staccel.STAccel() # 初始化一个实例
>>> accel. # 可使用的方法和属性
__class__ __init__ __module__ __qualname__
__dict__ x y spi
convert_raw_to_g read_bytes write_bytes
read_id z xyz cs_pin
who_am_i sensitivity
>>> accel.who_am_i # 返回加速度传感器的寄存器ID地址
59
>>> bin(59)
'0b111011'
对比LIS302DL数据手册上的Who_Am_I地址
相同说明能够正常使用。。。
分别获取X,Y,Z方向上的加速度值
>>> accel.x()
0.288
>>> accel.y()
-0.036
>>> accel.z()
0.81
>>> accel.xyz() # 返回三个方向上加速度的三元组
(-0.306, 0.306, 1.008)
2019年10月24日 14点10分 2
level 7
官方的staccel驱动默认设置了采样率是100Hz,即一秒采集100次数据,检测范围是+-2g,(g就是重力加速度=9.8m/s^2)
查看SPI属性可以看到
>>> accel.spi
SPI(1, SPI.MASTER, baudrate=328125, prescaler=256, polarity=0, phase=1, bits=8)
SPI的时钟极性polarity=0,时钟相位phase=1,使用的是SPI的模式1
预分频器是256,传输的位数为8bit
开发板时钟频率
>>> import pyb
>>> pyb.freq()
(168000000, 168000000, 42000000, 84000000)
为168MHz
。。。。。。。
参考:LIS302DL数据手册 http://www.hqchip.com/ic/LIS302DL
SPI:http://docs.micropython.org/en/latest/library/pyb.SPI.html#pyb-spi
2019年10月24日 15点10分 3
1