拯救你的久坐不起!用树莓派改造站立式办公桌:在随机时间升降,还有阻力检测功能

简介: 拯救你的久坐不起!用树莓派改造站立式办公桌:在随机时间升降,还有阻力检测功能

不知道有多少家长和文摘菌的一样,每次打电话都要强调身体问题,尤其是久坐了一定要站起来走走。

虽然有时候会很不耐烦,但这个说法并不是没有科学依据。

此前根据对澳洲63,048位中年男性的调查,每天坐着超过4小时就会显著增加诸如高血压、心脏病、糖尿病、癌症等慢性病的风险,坐的时间越久,得这些病的可能性越高。

更可怕的是,得病的几率和身体BMI无关,也就是说,就算是养成了每天健身的习惯,也挽回不了久坐对身体的危害。

这也同样引起了一位medium博主David Kong的担忧,对他来说,每天都有47%的清醒时间在工作,如果一直保持坐着的姿态,那必然对身体会造成极大的负担。

而作为一位慢生产力黑客,Kong十分喜欢对周围的事物进行优化,比如他现在的这个电动的坐立办公桌。

但很快Kong发现,这张办公桌并没有帮助他改善成天坐立不起的状态,哪怕他在手机上设置了提醒事项,但也会心理作祟,“我现在太累了,再坐一会我就站起来”。

于是,Kong决定对他的办公桌优化一下,让办公桌能按计划站起来。

Kong表示,自己从一开始并不期待这个项目能成功,那么最终结果怎样呢,来和文摘菌一起看看吧~

站立式办公桌大改造计划

首先,我们把这个桌子拆开看看。

取下几颗螺丝后,可以看到一排整齐排列的针脚。虽然这些针脚并不是专门为需要高效率的工作人群准备的,但也算是“歪打正着”,等会儿它们可有着大用处。

正确连接控制盒中的引脚,随即便可模拟按下控制盒前面的按钮。

真正需要做的是按一个按钮,将桌子升到站立高度。Kong表示,他并不担心站得太久,因此也就不需要过于复杂的控制器,在坐和站之间来回切换。最关键的是,大概每隔一小时左右,就把桌子升上去。

Kong发现,每隔30-60分钟在坐和站之间切换,是他保持活跃的好方法,不仅可以改善姿势,还能有效减少背部/颈部/膝盖的疼痛。

这个办公桌上有几个可编程的按钮,按下后可以直接将办公桌升到预设的高度,比如按钮1为坐姿高度,按钮2为站姿高度。

当把左边第三个针脚和右边第二个针脚连接起来时,按钮2的信号被发送到了控制书桌的微控制器上。他在这两个针脚上各焊了一根线,连接起来时,就可以使桌子升高。

那么,我们怎么以自动化的方式连接这些电线呢。

我们知道,继电器是一种简单的芯片,当在控制引脚上发送一个小电流时,它允许你连接两条线。继电器种类也有很多,在这里我们选择一个有4个引脚的固态继电器,东芝TLP222A,该继电器大约只有6毫米宽。

现在,还需要一些方法在控制引脚上以固定的时间间隔发送小电流。

再介绍一种常见的小芯片,555定时器。它的功能就是以固定的时间间隔连接电路,不过该定时器是为非常短的时间间隔而设计的,当试图把间隔提高时,就变得不那么可靠了。

于是,在这里我们可能需要在一个更复杂的电路中使用一系列的555计时器,不过,可以想见其复杂程度了。

与此同时,Kong订购了一个最简单最基本的Raspberry Pi Zero,但它已经能满足这个简单项目的所有需求了。

由于这个项目不需要用到完整的图形界面,也就没必要去连接显示器和带有键盘和鼠标的USB接口。Kong决定,只用自己的Macbook为树莓派编程。

树莓派没有以太网端口,所以在安装上进行了一些调整,使能够通过USB从Macbook SSH连接到树莓派。

现在就有了一个运行树莓派的终端。

SD卡上的Raspbian操作系统已经安装了Raspberry Pi Python库,所以还需要为其编程。

整个过程要做的,就是打开Python终端,输入import gpiozero,准备好用Python脚本来控制我的引脚,继而触发继电器并移动桌子。

在这里,Kong写了一个极其简单的Python脚本,在45到60分钟之间的一个随机时间间隔内触发树莓派上的一个GPIO引脚。

据Kong本人描述,之所以选择一个随机的时间间隔,是因为他不想去计划和期待桌子上升,而是希望它更加有机和不自觉。

当然,如果你有不同的节奏和想法,也可以调整下面的脚本。

from gpiozero import LED # The LED library allows easy pin control
from time import sleep
import randomrelay = LED(17) # I connected the relay to pin 17 and groundwhile True:

    relay.on()
    sleep(1)
    relay.off()
    sleep(random.randint(45, 60) * 60)

将脚本保存到/home/pi/Documents/moveDesk.py中,然后在/etc/rc.local中添加一行:

python /home/pi/Documents/moveDesk.py

将命令添加到/etc/rc.local中,意味着它将在树莓派启动时始终运行。

然后把两根线从桌子的控制板上焊接到继电器的两个“输出”引脚上,把继电器的两个控制引脚直接焊接到树莓派上。

最后,把树莓派插入一个USB电源,这个桌子就能正常工作了。

不仅学会了使用树莓派,还养成了健康的节奏

根据Kong的“售后体验”,这个桌子已经完美无缺地运行了几个月,目前也没有必要进行调整。随机的45-60分钟间隔效果很好,他每天都有了更多的时间站立。

在设计这个桌子之前,Kong尝试了各种方法,但都会以分散注意力作为代价,而且还不得不有意识地选择站立,以使自己保持坐和站的健康节奏。现在,这种健康的节奏是自动发生的,有时候,办公桌开始向上移动时,他也会不自觉地跟着站起来。

需要注意的是,这张桌子有一个阻力检测功能。如果办公桌开始上升,遇到一些物体的阻挡,它就会停止并倒退回去。如果不这样安排的话,当本人不在身边时,办公桌自行上升,可能会打破一些东西或伤害到别人。

Kong表示,他知道用一个Linux服务器来移动办公桌的升降是非常过分的。但是它又便宜又简单,还让他学会了如何使用树莓派,何乐而不为呢?

不过,由于疫情影响,Kong已经搬离了这个办公楼,目前他们在WeWork的新办公区,这里可没有站立式办公桌。Kong表示,他会试图进行一些探索,就让我们期待一下吧~

相关报道:
https://medium.com/@davidkongfilm/how-i-hacked-my-standing-desk-with-a-raspberry-pi-a50ed14c7f6f

相关文章
|
7月前
|
Oracle 数据库 UED
后台查询接口影响响应时间最大的因素:用空间换时间的优缺点及解决方案
1.当数据库的一个表记录很多显然查询数据很慢。 2.当数据库的一个表记录不大,但是数据很大也可能很慢。 我们的一个用户表中一个building很大,当查询100条数据就会把服务器的内存搞爆掉。 当然查询时要查询筛选有用字段,不可以直接把记录的所有字段都查拆来。这样能减少内存消耗和提高查询速度。 3.在经常查询字段上建立索引。据说oracle上用索查询和不用索引查询在超多记录的情况下相差1000倍。 4.若出现嵌套查询显然会大大增加相应查询时间。要先预处理用管道操作把能合并的查询合并到一个查询中,然后生成map,然后再处理。这是标准的用空间换时间的方案。
100 8
|
6月前
|
缓存 运维 Serverless
函数计算产品使用问题之安装一个插件持续时间很长是什么原因
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
缓存 网络协议 数据挖掘
如何使用弱网环境来验证游戏中的一些延迟问题
如何使用弱网环境来验证游戏中的一些延迟问题
|
NoSQL Java 应用服务中间件
时间驱动:探索计时器方案和革命性的时间轮技术
本文将带领你深入了解计时器的原理和应用场景,并详细介绍时间轮技术的革命性特点。文章首先解释了计时器的概念和重要性,以及在各种应用中的广泛应用,如任务调度、事件触发和性能监控等。接着,文章引入了时间轮作为一种创新的时间管理工具,其能够以环形结构高效地管理和触发定时任务。你将深入了解时间轮的工作原理、数据结构和相关算法,以及如何利用时间轮提高应用程序的性能和响应能力。
119 0
|
存储 运维 监控
一个开关就让服务网格变快 —— 概述篇
作为业内首个全托管Istio兼容的阿里云服务网格产品ASM,一开始从架构上就保持了与社区、业界趋势的一致性,控制平面的组件托管在阿里云侧,与数据面侧的用户集群独立。ASM产品是基于社区Istio定制实现的,在托管的控制面侧提供了用于支撑精细化的流量管理和安全管理的组件能力。通过托管模式,解耦了Istio组件与所管理的K8s集群的生命周期管理,使得架构更加灵活,提升了系统的可伸缩性。从2022年4月
一个开关就让服务网格变快 —— 概述篇
[解决]:【TeamViewer作为个人用途免费,但仅可使用在有限数量的设备上。您已经到达可使用设备的上线】
[解决]:【TeamViewer作为个人用途免费,但仅可使用在有限数量的设备上。您已经到达可使用设备的上线】
525 0
|
Kubernetes 监控 安全
一个开关就让服务网格变快——实验篇
作为业内首个全托管Istio兼容的阿里云服务网格产品ASM,一开始从架构上就保持了与社区、业界趋势的一致性,控制平面的组件托管在阿里云侧,与数据面侧的用户集群独立。ASM产品是基于社区Istio定制实现的,在托管的控制面侧提供了用于支撑精细化的流量管理和安全管理的组件能力。通过托管模式,解耦了Istio组件与所管理的K8s集群的生命周期管理,使得架构更加灵活,提升了系统的可伸缩性。从2022年4月
一个开关就让服务网格变快——实验篇
|
监控 Python
python 办公自动化系列 (1) 从22053条数据中统计断网次数并计算平均断网时间
找到通网后的第一个日志和断网前的最后一个日志,然后提取 date 列的时间做减法,获得本次断网时间,之后用同样的方法统计每次的断网时间,最后计算总的断网次数和断网时间的平均值
263 0
python 办公自动化系列 (1) 从22053条数据中统计断网次数并计算平均断网时间
|
Arthas Web App开发 运维
线上 RTT 过长,我用这一招解决了!
线上 RTT 过长,我用这一招解决了!