【掌控】mpython-14…带上handpy走四方
2018-10-067984
AI 快速预览详细
本文介绍了一个使用掌控板mPython制作简易计步器的项目。通过检测Y轴加速度变化来实现计步功能,具体阈值为0.5。项目包括初始化读数变量、定义计步函数以及主循环中的步数计算。适合初学者,特别是对编程感兴趣的儿童。
|
走四方 路迢迢水长长 迷迷茫茫一村又一庄 看斜阳 落下去又回来 地不老天不荒 岁月长又长 走四方 路迢迢水长长 迷迷茫茫一村又一庄 看斜阳 落下去又回来 地不老天不荒 岁月长又长 做个简易计步器,带上handpy走四方。![]() 其实ESP32可以实现很强大的功能的,可是我还在低水平上徘徊。 入门课程,入门哈。 希望我能够把掌控的神力打开。 【程序】 功能,走路计步。 按A键清0。 [mw_shl_code=python,true]from machine import Pin #导入引脚库 from mpython import * #此库为掌控板内置传感器驱动 import time #导入时间库 #定义按钮引脚 BTNA = Pin(0, mode=Pin.OPEN_DRAIN, pull=Pin.PULL_UP, value=1) BTNB = Pin(2, mode=Pin.OPEN_DRAIN, pull=Pin.PULL_UP, value=1) #初始化读数变量 step = 0 #定义计步函数 def jibu(): display.fill(0)#清屏,以清掉以前显示数据 display.DispChar('diy 计步器', 32, 0) display.text("%d" % (step), 40, 32) display.show() #刷新显示屏 #x1 = accelerometer.get_x() #获取初始加速度数据 y1 = accelerometer.get_y() #z1 = accelerometer.get_z() jibu() while True: if BTNA.value() == 0 and BTNB.value() == 1 :#按下按钮A数据回0 step = 0 jibu() #x2 = accelerometer.get_x() #获取第2个加速度值 y2 = accelerometer.get_y() #z2 = accelerometer.get_z() if abs(y1 - y2) > 0.5: #abs(x1 - x2) > 0.5 or abs(y1 - y2) > 0.5 or abs(z1 - z2) > 0.5: #y轴的分时差值超过0.5,则认为检测到走动 step = step + 1 #步数加1 jibu() y1 = y2 #将y2数据存入y1 time.sleep_ms(400) #延时和个人行走步速有关,请根据个人情况调整[/mw_shl_code] 后面将尝试掌控的蓝牙及物联网功能。 ![]() 虽是入门,也要有进阶不是吗。 |






import time #导入时间库
#初始化读数变量
step = 0
#定义计步函数
def jibu():
oled .fill(0)#清屏,以清掉以前显示数据
oled.DispChar('diy 计步器', 32, 0)
oled.text("%d" % (step), 40, 32)
oled.show() #刷新显示屏
x1 = accelerometer.get_x() #获取初始加速度数据
y1 = accelerometer.get_y()
z1 = accelerometer.get_z()
jibu()
while True:
x2 = accelerometer.get_x() #获取第2个加速度值
y2 = accelerometer.get_y()
z2 = accelerometer.get_z()
if abs(x1 - x2) > 0.5 or abs(y1 - y2) > 0.5 or abs(z1 - z2) > 0.5:
#x or y or z轴的分时差值超过0.5,则认为检测到走动
step = step + 1 #步数加1
jibu()
x1 = x2 #将x2数据存入x1
y1 = y2
z1 = z2
time.sleep_ms(500) #延时和个人行走步速有关,请根据个人情况调整[/code]
这是一块属于大家的板子,期待后面的图形化软件出来,小朋友也能玩起来。