【掌控】mpython-14…带上handpy走四方

2018-10-067984
AI 快速预览详细 收起
本文介绍了一个使用掌控板mPython制作简易计步器的项目。通过检测Y轴加速度变化来实现计步功能,具体阈值为0.5。项目包括初始化读数变量、定义计步函数以及主循环中的步数计算。适合初学者,特别是对编程感兴趣的儿童。
走四方 路迢迢水长长 迷迷茫茫一村又一庄
看斜阳 落下去又回来 地不老天不荒 岁月长又长
走四方 路迢迢水长长 迷迷茫茫一村又一庄
看斜阳 落下去又回来 地不老天不荒 岁月长又长
做个简易计步器,带上handpy走四方。【掌控】mpython-14…带上handpy走四方图1

其实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]

后面将尝试掌控的蓝牙及物联网功能。
虽是入门,也要有进阶不是吗。

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(3)
rzyzzxw
rzyzzxw
作者
[code]from mpython import * #此库为掌控板内置传感器驱动
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]
DI玩
DI玩
这是一拨可谓掌控“开天辟地”系列教程!
rzyzzxw
rzyzzxw
作者
回复DI玩
哈哈,早拿到试用板而已。
这是一块属于大家的板子,期待后面的图形化软件出来,小朋友也能玩起来。
germanpan
germanpan
学习了,支持支持:O
- 没有更多了 -