1、使用现有的硬件和开发环境可以自定义羽毛球拍击计数器为例简便开发自定义程序。这个程序的逻辑就是就是简单计算加速度传感器的动态变化,超过限值后就说明需要进入拍击计数的过程。
2、程序逻辑是在现有范例代码的框架下搭建的,显示驱动和传感器的读取都没有变化,主逻辑如下面代码
if __name__=='__main__':
LCD = LCD_1inch28()
LCD.set_bl_pwm(65535)
qmi8658=QMI8658()
count = 0
olddate =0
newdate =0
count = gesture_update(newdate,olddate,count)
while(True):
#read QMI8658
xyz=qmi8658.Read_XYZ()
newdate = xyz[2]
gesture = gesture_update(newdate,olddate,count)
olddate = newdate
#gesture = gesture_update(newdate,olddate,count)
LCD_update(LCD , xyz, count)
# count = (count + 1) % 1000
time.sleep(0.1)
首先设定一个全局变量Gate,这个需要在实际测试中选择合适的,
然后,初始化lcd和传感器器,
LCD = LCD_1inch28()
LCD.set_bl_pwm(65535)
qmi8658=QMI8658()
进入循环中,就是依次更新传感器的数据,并用监测代码对比在z方向的数值,对比超过限制就给计数器count递增,
def gesture_update(newdate,olddate,count):
if ( ( newdate -olddate)> = GATE ):
hit = 1
count = count + 1
hit = 0
return count
其中LCD显示部分也单独归入一个函数中,这样可以使得主程序循环更简洁。
3、运行效果
可以用自定义数据更改背景的颜色,修改前面的说明数据,显示如下。
这个是专属的EEworld评测范例,实际运行的过程中,sleep的数据选择有些更新慢,0.1秒显然有些大了,所以计数补正常。
不过,作为演示的范例,这个流程执行起来还是非常便捷的。