背景
- 期望在一定时间之后,补充一些俯卧撑来锻炼身体
- 让尘封已久的树莓派重新工作
- 决定自己动手做一个俯卧撑解锁Mac电脑
准备
开始下列步骤之前,假定下列项已准备好:
- 树莓派,系统已安装
- Mac电脑
整体工作架构
效果预览
步骤总览
- Mac和树莓派连通(ssh设置)
1.1 开启Mac机器的ssh服务
1.2 开启树莓派机器的ssh服务
1.3 相互认证Mac和树莓派(无密码ssh登录) - Mac的环境安装
2.1 安装定时锁屏脚本
2.2 设置锁屏时不息屏 - 树莓派环境安装
3.1 安装opencv和pose模型
3.2 安装俯卧撑计数程序 - Ready!Go!
1.1 开启Mac机器的ssh服务
如果已开启,可以跳过此步骤。
设置路径,系统设置 >> 共享 >> 远程登录
在终端执行以下脚本
ssh-keygen
cd ~/.ssh
touch authorized_keys
chmod 644 authorized_keys
1.2 开启树莓派机器的ssh服务
如果已开启,可以跳过此步骤。
设置路径,开始菜单 >> Preference >> Raspberry Pi Configuration
在终端执行以下脚本
ssh-keygen
cd ~/.ssh
touch authorized_keys
chmod 644 authorized_keys
1.3 相互认证Mac和树莓派(无密码ssh登录)
在Mac机器上执行,替换 {pi_host_ip} 为真实的树莓派IP
scp ~/.ssh/id_rsa.pub pi@{pi_host_ip}:/tmp/mac_id_rsa.pub
ssh pi@{pi_host_ip} 'cat /tmp/mac_id_rsa.pub >> ~/.ssh/authorized_keys'
在树莓派上执行,替换{mac_username}和{mac_host_ip}为真实mac的用户名、IP
scp ~/.ssh/id_rsa.pub {mac_username}@{mac_host_ip}:/tmp/rspi_id_rsa.pub
ssh {mac_username}@{mac_host_ip} 'cat /tmp/rspi_id_rsa.pub >> ~/.ssh/authorized_keys'
完成之后,在Mac和树莓派上分别测试一下免密ssh登录
2.1 Mac - 安装定时锁屏脚本
cd ${mac_pushup_dir}
git clone https://github.com/gladpieland/pushup-unlock.git
cd pushup-unlock/
# 安装脚本运行时,需要输入树莓派的IP、pushup-unlock目录(${rspi_pushup_dir}/pushup-unlock)
bash mac/install.sh
2.2 Mac - 设置锁屏时不息屏
因为Mac在锁屏之后,会很快进入sleep,导致网络中断,所以一个程序保持屏幕亮着。
从官网下载KeepingYouAwake,官网地址,git地址,安装之后点亮右上角的图片即可,如下:
3.1 树莓派 - 安装opencv和pose模型
sudo apt-get update
sudo apt upgrade
sudo apt-get install libhdf5-dev libhdf5-serial-dev libatlas-base-dev libjasper-dev libqtgui4 libqt4-test -y
sudo apt-get install espeak-ng -y
pip3 install mediapipe-rpi4
# TODO 版本指定新的版本
pip3 install opencv-contrib-python==4.5.5.62
其中安装opencv-python会比较耗时,因为默认使用https://www.piwheels.org/的源,需要翻墙。这里可以在有VPN的电脑,从https://www.piwheels.org/project/opencv-python/ 下载已编译的包,然后传输到树莓派,再直接安装pip install opencv_contrib_python-4.5.5.62-cp37-cp37m-linux_armv7l.whl
。
为加快安装过程,还可以优化pip的源,使用清华的源镜像,参考文章设置国内镜像。清华pypi镜像
3.2 树莓派 - 安装俯卧撑计数程序
cd ${rspi_pushup_dir}
git clone https://github.com/gladpieland/pushup-unlock.git
cd pushup-unlock/
# 安装脚本运行时,需要输入python home目录(如果是虚拟环境)、Mac的用户名+IP+pushup-unlock目录(${mac_pushup_dir}/pushup-unlock)
bash rspi/install.sh
4. Ready!Go!
因为再国内网络的问题,一些资源访问会受限,需要耐心。
有了这个,个人运动量是够够的。
pushup-unlock
如果发现问题或者有需求,可以提issue到到git https://github.com/gladpieland/pushup-unlock