树莓派心率计
文章目录
- 前言
- 一、安装系统
- 1.下载树莓派官方系统
- 2.安装系统
- 二、开机启动以及基本配置
- 1.有显示器
- 2.无显示器使用网线
- 3.VNC
- 3.更新源
- 三、TensorFlow环境配置
- 1.安装python3.7.3
- 2.安装TensorFlow2.0
- 3.其他包安装
- 四、树莓派串口使用
- 五、在树莓派用运行代码
前言
这个只是我自己跑通的一个方法,基本参考知乎这篇文章https://www.zhihu.com/collection/723286847和助教给的那个文档,好多地方我也不懂,基本是遇到什么问题百度啥。可能还有更简单的环境配置方法。也有可能你会遇到新的问题。
一、安装系统
1.下载树莓派官方系统
网址:https://www.raspberrypi.com/software/operating-systems/
建议下载如下图Raspberry Pi OS with desktop版本,这个版本不带推荐软件,占用空间小一点。
不然8G内存卡装完系统剩下的不够装python和tensorflow了。建议装完系统还剩余2G空间。
官网最新的bullseye版本上一代是buster版本,bullseye版本后面更新源需要用阿里源,清华源没这个版本的。
我用的是2021-12-02-raspios-buster-armhf这个版本
系统下载完成后解压,解压出来的内容是.img结尾的系统文件。
2.安装系统
1.使用DiskGenius将SD卡格式化,具体步骤可参考该视频https://www.bilibili.com/video/BV1bt411c7fC?p=3
2.格式化完毕以后打开Win32 Disk Imager,选择刚刚格式化的SD卡,先点击红色圈起来的按钮,找到开始下载好的系统文件,再点击write,然后就等待系统写入。
3.在系统镜像烧写完成以后,在boot里面添加ssh文件(要打开文件扩展名显示),参考该视频[https://www.bilibili.com/video/BV1bt411c7fC?p=3]
二、开机启动以及基本配置
1.有显示器
1.1SD 卡插入树莓派底部卡槽,HDMI线分别接入树莓派和显示器,给树莓派接入键盘和鼠标,接入电源开机。
1.2按照提示设置国家语言时区,修改密码(建议默认,点击next)
1.3设置ssh和vnc。打开终端 输入命令:sudo raspi-config 会弹出下图界面,选择Interfacing 那一项,点击Enter键。
分别开启SSH和VNC
1.4扩展SD卡容量,选择Advanced Options项,进入选择第A1项
2.无显示器使用网线
2.1电脑连接wifi,右击电脑选择网络设置→点击更改适配器→右击WiFi选择属性→属性里面选择分享,打上勾,确认。
2.2连接上网线分别插入树莓派和电脑网口,然后给树莓派供电。等绿等停止闪烁的时候,系统启动完成。
2.3打开电脑的终端,win+R, 输入cmd,进入后输入命令 :arp -a (p和- 之间有空格),会出现如下类似内容
192.168.137.1下面第一个ip就是树莓派通过电脑分享后的 IP。(如果下面有多个IP,物理地址一样的那几个,挨个尝试)
2.4打开putty软件,输入IP地址点击open,
如果输入的网址正确,会显示下图:
点击Accept进入,然后输入用户名和密码。默认用户名:pi,密码:raspberry(输入密码的时候就是不显示的。输完按enter键就行。
2.5输入命令:sudo raspi-config,之后步骤和有显示器的相同。
3.VNC
1.下载VNC软件,并安装。
2.网线连接树莓派和电脑,打开VNC软件。
3.蓝色框内输入树莓派IP地址,进入以后输入用户名和密码,默认用户名pi,raspberry
填写完,点击ok就好了
3.更新源
bullseye版本系统需要使用阿里源
buster版本更新清华源,步骤如下:(可以参考视频:https://www.bilibili.com/video/BV1bt411c7fC?p=4)
可以在putty中使用命令行操作,也可以用VNC进入树莓派桌面中使用命令行操作。
使用管理员权限编辑/etc/apt/sources.list文件
sudo nano /etc/apt/sources.list
删除原文件所有内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi
使用管理员权限编辑/etc/apt/sources.list.d/raspi.list文件
sudo nano /etc/apt/sources.list.d/raspi.list
删除原文件所有内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
三、TensorFlow环境配置
基本是按照知乎这篇文章来配置的。
基于硬件树莓派0-Tensorflow的心电图识别 - Ethan-Q的文章 - 知乎
https://zhuanlan.zhihu.com/p/336918922
然后参考了此文:https://blog.csdn.net/happywlg123/article/details/107286458
1.安装python3.7.3
先看一下树莓派系统自带的python版本
python3 -V
如果是python3.7.3,就可以跳过python安装的步骤,直接安装tensorflow。
2021-12-02-raspios-buster-armhf这个版本好像自带的就是python3.7.3
1.1安装依赖包
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev
sudo apt-get install -y libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
sudo apt-get install -y libncurses5-dev libncursesw5-dev xz-utils tk-dev
1.2下载python3.7
sudo wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
1.3解压python3.7
sudo tar -zxvf Python-3.7.3.tgz
1.4进入解压包并安装python
cd Python-3.7.3
sudo ./configure --prefix=/usr/local/python3
sudo make
1.5安装完成,创建软连接
ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
有时会出现软连接已存在问题,需要删除原有软连接
rm -rf /usr/local/bin/python3
rm -rf /usr/local/bin/pip3
1.6打印版本测试
python3 -V
pip3 -V
安装完成!
2.安装TensorFlow2.0
2.1检查配置相关环境
python3 --version
pip3 --version
virtualenv --version
python3和pip3前面刚装的应该都有。
可能会没有virtualenv,则需要以下操作:
sudo apt update # 更新
sudo apt install python3-dev python3-pip # 如已经安装了Python3和pip3则跳过此命令
sudo apt install libatlas-base-dev # 此命令必选
sudo pip3 install -U virtualenv
2.2创建虚拟环境并激活虚拟环境
virtualenv --system-site-packages ./venv
source ./venv/bin/activate
2.3更新pip并且安装依赖包
pip install --upgrade pip #更新pip
# 安装依赖包
pip install keras_applications==1.0.8 --no-deps
pip install keras_preprocessing==1.1.0 --no-deps
pip install h5py==2.9.0
pip install -U six wheel mock
2.4下载并安装TensorFlow2.0
在github上下载Tensorflow2.0,并使用VNC将下载包传递至树莓派内。放在对应目录下。然后安装
pip install tensorflow-2.0.0-cp37-none-linux_armv6l.whl
安装结束后,测试安装结果:
python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
如输出tf.Tensor(1035.3678, shape=(), dtype=float32)
则表示安装成功!
2.5安装失败后的处理。
如果安装失败,可以重试。此时使用rm -r venv/
删除安装失败的TensorFlow所在虚拟环境,即可从第2.2步开始重试。
3.其他包安装
接着上一步,还是在虚拟环境下,命令行前头有(venv)则表示在虚拟环境中
pip install matplotlib # 画图
pip install sklearn # 使用sklearn里面的数据处理模块
然后查看具体安装了哪些包:
pip list
是否有pyserial(串口),pywavelets(小波变换库),python3-gi-cairo(没有这个库后面画图会包错)
如果没有,缺啥装啥。
我的是缺pywavelets和python3-gi-cairo。pywavelets直接安装,下载太慢。建议下载依赖包后手动安装。
推荐PyWavelets-1.1.1-cp37-cp37m-linux_armv7l.whl这个版本。
下载地址:https://www.piwheels.org/simple/pywavelets/
将下载好的包传到树莓派上,放在对应文件夹下。
pip install PyWavelets-1.1.1-cp37-cp37m-linux_armv7l.whl
安装python3-gi-cairo,这里我是直接安装的
sudo apt-get install python3-gi-cairo
四、树莓派串口使用
参考了此文:https://blog.csdn.net/qq_43725844/article/details/97682424
1.按照AD8232_STM32资料包里的说明,连接底板、STM32最小系统板、AD8232模块、蓝牙和导联电极(电极是一次性的,建议先不装电极)
2.将示例代码用ST-LINK下载到STM32最小系统板
3.带USB的那个蓝牙模块插在树莓派上
4.在命令行输入lsusb
即可出现所有的串口,看自己的设备是否连接上ch340,有的话会显示
5.接着输入ls -l /dev/tty*
这里可以看到自己的ch340模块被识别成什么,可能是0,也可能是1;
接着,输入stty -F /dev/ttyUSB1
(若识别为0则写0)
即可看到目前USB串口的波特率
五、在树莓派用运行代码
1.将continuous_test.py(连续获取心电信号代码,并绘制图),ECG_test.py(实时心电数据监测),model.tflite(tflite单导联模型)传到树莓派上
2.运行代码。
2.1使用命令行运行:
打开命令行,激活虚拟环境
source ./venv/bin/activate
使用python xxx.py
命令运行代码(xxx为要运行的文件名称)
2.2使用树莓自带编程软件Thonny运行:
更改解释器,如图所示,单击Run,在弹出的菜单栏选择第一个,Select interpreter。
在弹出的配置窗口,根据下图选择。
选择前面创建的虚拟环境的位置,并定位python执行文件的位置,一般为/bin/python。
配置成功之后ThonnyIED会输入如下所示的提示信息。
3.更改代码中的串口名称
更改为之前被识别到的名称,例如/dev/ttyUSB0
4.运行程序
运行continuous_test.py,会显示原始心电图和小波变换滤波后的心电图
运行ECG_test.py,也会显示原始心电图和小波变换滤波后的心电图,以及下图内容