树莓派与matlab联动并安装opencv

树莓派与matlab联动并安装opencv

背景

我有一块闲置的树莓派,想用它建立智能驾驶平台,硬件采用平跑车搭载树莓派做主控,使用树莓派控制arduino输出pwm控制电调调速,由于没有编码器采用开环控制。matlab对树莓派具有硬件支持,选择在matlab上训练模型部署到树莓派运行的方式。

树莓派镜像

首先需要安装matlab的树莓派硬件支持包,配置部分按照实际板子的型号选择,填入必要的信息即可。我采用的是3b+型号,直接在github上下载需要注意对应版本,不是越新越好的。下载好之后对镜像进行校验,完成后设置连接网络的方式,我选择无线连接,设置好ssid和密码就可以一路下一步write写入tf卡了。过程简单不予赘述。

修改软件源

众所周知,树莓派默认软件源在国外,访问速度不高,建议修改软件源为国内的镜像。

方法

如果一切正常,在matlab中使用

rpi=raspi()

可以得到一个树莓派对象,可以看到树莓派的ip地址。本例中为192.168.2.169。

树莓派与matlab联动并安装opencv
使用putty或vnc viewer访问树莓派,默认用户名为pi,密码是raspberry,输入密码时不显示字符,正常输入后回车就可以登录到树莓派的界面了。
建议首次登陆后修改默认密码:
sudo passwd pi

输入两次新密码即可。
注意:修改密码后原来的连接可能会断开,重新使用新密码登录即可。
打开命令行,输入

sudo nano /etc/apt/sources.list

这里nano可以换成其他你喜欢的文本编辑器,编辑源路径,因为离杭州更近我选择阿里云的源,选择其他源也可以。注意:只修改http://到/raspbian之间的地址。

deb http://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi

树莓派与matlab联动并安装opencv
保存文件,修改系统源:
sudo nano /etc/apt/sources.list.d/raspi.list

这里我选择清华源:

deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui

接下来修改pip源:

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip config set global.extra-index-url https://mirrors.aliyun.com/pypi/simple/

换好之后使用

pip config list

查看应该看到上边两个地址已经配置成功。
使用

sudo apt-get update
sudo apt-get upgrade

更新软件,需要安装新的直接y就可以。

更改默认python版本为python3

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

这里100和150为优先级,越大越靠前。

安装ftp服务器

为了传文件方便,我在树莓派上安装vsftpd,参考其他文章的配置工作配置好就行。

sudo apt-get install vsftpd

编辑配置略。重新启动vsftpd更新配置之后在资源管理器上输入:ftp:\192.168.2.169,就可以访问树莓派的文件系统了。

sudo service vsftpd restart

安装opencv

numpy默认版本有可能版本与opencv的不匹配则需要安装numpy并更新,没有pip的要安装pip:

sudo apt-get install python-numpy python-scipy python-matplotlib python-pandas
sudo apt-get install python3-pip -y
pip install -U numpy

我在命令中包含了其他科学计算包不需要的可以不装。
这里选择要安装的版本,在命令行输入对应的命令。

树莓派与matlab联动并安装opencv
建议使用
sudo pip3 install opencv-python==4.5.5.64

查看好下载的文件名称是opencv_python-4.5.5.64-cp37-cp37m-linux_armv7l.whl
,crtl+c停止进程,在电脑上下载好对应的文件,传输到树莓派。。

树莓派与matlab联动并安装opencv
进入下载好的文件所在的文件夹
在python2上安装opencv:
sudo apt-get install python-opencv

检查确认效果

在命令行中使用python进入,import cv2,如果不报错说明安装成功。可以愉快的使用matlab连接树莓派玩耍了!

补充:开机自动上报ip

由于采用DHCP方式获取ip,地址是不固定的,我采用python获取本机ip通过微信(server酱)和邮箱分别发送获取ip。源代码如下,


import time
import socket
import requests
import smtplib
from email.mime.text import MIMEText

def getLocalIP():
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.connect(("1.1.1.1", 80))
    ipaddr = s.getsockname()[0]
    s.close()
    return ipaddr

def post(ip):
    url = "https://sctapi.ftqq.com/.send"

    data = "title=树莓派ip&desp=%s" % ip
    results = requests.get(url, data)

def send_email(content):
    mail_host = "smtp.163.com"
    mail_user = "@163.com"
    mail_pass = ""

    sender = '@163.com'

    receivers = ['@163.com']
    message = MIMEText('Thank You!', 'plain', 'utf-8')
    message['Subject'] = content
    message['From'] = sender
    message['To'] = receivers[0]
    try:
        s = smtplib.SMTP()
        s.connect(mail_host, 25)
        s.login(mail_user, mail_pass)
        s.sendmail(sender, receivers, message.as_string())
        s.quit()
    except smtplib.SMTPException as e:
        print('error', e)

if __name__ == "__main__":
    time.sleep(20)
    while True:
        ip = getLocalIP()
        print(ip)
        if ip == False:
            post("正在获取网络地址")
        else:
            post(ip)
            send_email(ip)
            pass
        break
    time.sleep(5)

文件名保存为ip-push.py保存路径在~/Documents/下,
编辑/etc/rc.local文件,在exit 0 前添加一行:

sudo python ~/Documents/ip-push.py

Original: https://blog.csdn.net/AFATAR/article/details/123454592
Author: AFATAR
Title: 树莓派与matlab联动并安装opencv

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/704332/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球