树莓派与matlab联动并安装opencv
樹莓派與matlab聯(lián)動并安裝opencv
- 背景
- 樹莓派鏡像
- 修改軟件源
- 方法
- 更改默認python版本為python3
- 安裝ftp服務器
- 安裝opencv
- 檢查確認效果
- 補充:開機自動上報ip
背景
我有一塊閑置的樹莓派,想用它建立智能駕駛平臺,硬件采用平跑車搭載樹莓派做主控,使用樹莓派控制arduino輸出pwm控制電調(diào)調(diào)速,由于沒有編碼器采用開環(huán)控制。matlab對樹莓派具有硬件支持,選擇在matlab上訓練模型部署到樹莓派運行的方式。
樹莓派鏡像
首先需要安裝matlab的樹莓派硬件支持包,配置部分按照實際板子的型號選擇,填入必要的信息即可。我采用的是3b+型號,直接在github上下載需要注意對應版本,不是越新越好的。下載好之后對鏡像進行校驗,完成后設置連接網(wǎng)絡的方式,我選擇無線連接,設置好ssid和密碼就可以一路下一步write寫入tf卡了。過程簡單不予贅述。
修改軟件源
眾所周知,樹莓派默認軟件源在國外,訪問速度不高,建議修改軟件源為國內(nèi)的鏡像。
方法
如果一切正常,在matlab中使用
rpi=raspi()可以得到一個樹莓派對象,可以看到樹莓派的ip地址。本例中為192.168.2.169。
使用putty或vnc viewer訪問樹莓派,默認用戶名為pi,密碼是raspberry,輸入密碼時不顯示字符,正常輸入后回車就可以登錄到樹莓派的界面了。
建議首次登陸后修改默認密碼:
輸入兩次新密碼即可。
注意:修改密碼后原來的連接可能會斷開,重新使用新密碼登錄即可。
打開命令行,輸入
這里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
保存文件,修改系統(tǒng)源:
這里我選擇清華源:
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查看應該看到上邊兩個地址已經(jīng)配置成功。
使用
更新軟件,需要安裝新的直接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為優(yōu)先級,越大越靠前。
安裝ftp服務器
為了傳文件方便,我在樹莓派上安裝vsftpd,參考其他文章的配置工作配置好就行。
sudo apt-get install vsftpd編輯配置略。重新啟動vsftpd更新配置之后在資源管理器上輸入:ftp:\192.168.2.169,就可以訪問樹莓派的文件系統(tǒng)了。
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我在命令中包含了其他科學計算包不需要的可以不裝。
在這里選擇要安裝的版本,在命令行輸入對應的命令。
建議使用
查看好下載的文件名稱是opencv_python-4.5.5.64-cp37-cp37m-linux_armv7l.whl
,crtl+c停止進程,在電腦上下載好對應的文件,傳輸?shù)綐漭??!?/p>
進入下載好的文件所在的文件夾
在python2上安裝opencv:
檢查確認效果
在命令行中使用python進入,import cv2,如果不報錯說明安裝成功??梢杂淇斓氖褂胢atlab連接樹莓派玩耍了!
補充:開機自動上報ip
由于采用DHCP方式獲取ip,地址是不固定的,我采用python獲取本機ip通過微信(server醬)和郵箱分別發(fā)送獲取ip。源代碼如下,<KEY>部分表示server醬上獲取的token。<mail>表示郵箱地址,我選擇163郵箱自己發(fā)給自己<Passwd>表示郵箱授權碼。
#!\usr\bin\env python # coding=utf-8 import time import socket import requests import smtplib from email.mime.text import MIMETextdef getLocalIP():s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)s.connect(("1.1.1.1", 80))ipaddr = s.getsockname()[0]s.close()return ipaddrdef post(ip):url = "https://sctapi.ftqq.com/<KEY>.send"data = "title=樹莓派ip&desp=%s" % ipresults = requests.get(url, data)def send_email(content):mail_host = "smtp.163.com"mail_user = "<mail>@163.com"mail_pass = "<Passwd>"# *發(fā)件人sender = '<mail>@163.com'# *收件人receivers = ['<mail>@163.com']message = MIMEText('Thank You!', 'plain', 'utf-8')message['Subject'] = contentmessage['From'] = sendermessage['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("正在獲取網(wǎng)絡地址")else:post(ip)send_email(ip)passbreaktime.sleep(5)文件名保存為ip-push.py保存路徑在~/Documents/下,
編輯/etc/rc.local文件,在exit 0 前添加一行:
總結
以上是生活随笔為你收集整理的树莓派与matlab联动并安装opencv的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM第十二章-垃圾回收器
- 下一篇: 进销存软件的价值是多少?它能帮企业做什么