间歇训练包括定时的爆发性锻炼和定时的休息时间。已经创建了多种方案,可能最著名的是 Tabata[1],它包括 20 秒的高强度训练,然后休息 10 秒,总共重复 8 次——总共 4 分钟。
使用秒表测量间隔有点容易出错,因此市场上出现了许多计时器来填补这一空白。
我看到的间隔计时器的问题是,您仅使用几个键将间隔输入到一个小框中,这是一种令人沮丧且容易出错的方法。
我的解决方案是将间隔数据作为 .txt 文件存储在 SD 卡上,可以使用记事本等标准软件轻松编辑,然后将其弹出到 GymGeneral,选择所需文件并运行它。
连接到 SPI 总线的数据记录扩展板(SD 卡)如下:
MOSI - 引脚 11
味噌 - 针脚 12
时钟 - 引脚 1
CS-引脚 10
触摸传感器:
电源到正极和接地,信号线到 Arduino 外部中断引脚 2 和 3。
液晶背包:
电源到正极和接地,SDA 到 Arduino SDA 和 SCL 到 Arduino SCL。
压电发声器:
对 Arduino PWM 引脚 9 为正,对地为负。
该软件是代码重用的练习。
显示器背包使用 NewLiquidCrystal 库,我也使用同一页面 [2] 中的设置代码来显示,请注意我的显示器是使用地址 0x3F 的奇怪显示器之一,大多数使用 0x27,所以如果你看不到任何东西首先找到并修改这个数字。
我没有在 Arduino 上使用过 SD 卡,所以我使用 Arduino ReadWrite 教程 [3] 来了解如何从 SD 卡读取数据。
我的下一步是尝试使用 Arduino Listfiles 教程 [4] 代码来了解如何浏览 SD 卡上的文件。
我将上述示例中的大块代码复制到我的项目中,并自己做了一些小修改;我添加了代码,以便在读取最后一个文件名后,我们循环回到第一个文件名并改变文件的显示方式。
显示例程基于模型、视图控制器。这样做的想法是将显示和控件与程序主体分离。缺点是使用全局变量作为不同代码块之间的通信方式。
我使用硬件 PWM 从小型压电发声器元件生成音调。发声器连接到引脚 9,该引脚的 PWM 输出频率由定时器 1 控制,我选择该引脚是因为我可以改变 PWM 频率而不影响使用定时器 0 [5] 运行的 delay() 函数。
延迟是使用 Arduino delay() 处理的,我认为这在这种情况下的准确性是可以接受的 [6]。我承认,对于长时间的例程,由于文件读取和循环代码,时间会变得越来越倾斜,我没有尝试量化这一点。
文本文件中间隔的数据被视为由 4 个逗号分隔的整数值 [7] 组成的块。
数据格式:
<重复>,<音调>,<第十秒的开启时间>,<第十秒的关闭时间>,
Tone 对低频使用 1,对高频使用 2。
例子:
20,2,1,9, = 20 次高频重复,开启十分之一秒,关闭十分之九秒。
因此,对于 Tabata 方案,文本文件将包含以下内容:
20,2,1,9,10,1,1,9,20,2,1,9,10,1,1,9,20,2,1,9,10,1,1,9,20, 2,1,9,10,1,1,9,20,2,1,9,10,1,1,9,20,2,1,9,10,1,1,9,20,2, 1,9,10,1,1,9,20,2,1,9,
您可能想在开始时添加一个小延迟,让自己做好准备;我通常给自己 15 秒,例如 15,1,1,9, .
我也倾向于在结束时添加更长的哔哔声来标记锻炼的完成,例如 3,1,10,0,(3 秒的低音)
在 SD 卡上设置一个或多个间隔文件。
使用连接到 Arduino 引脚 2 的触摸传感器向下循环浏览可用文件,直到显示所需文件的名称。
另一个触摸传感器充当回车键,按下时将开始播放间隔。
没有停止功能。
电路布局显示的 SD 卡读卡器与我使用的和上面列出的读卡器不同。
关于 GymGeneral 这个名字,我进行了英国知识产权局商标搜索和美国商标电子搜索 (TESS),没有发现任何相似之处。(2017 年 9 月 7 日)
在我的项目中,我将间歇训练视为高强度间歇训练 (HIIT) 的同义词,而实际上更长的训练方案也可以这样分类,例如 Couch to 5K 的第一周包括 8*1 分钟跑步穿插 90 秒休息时间 [8]。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !