Raspberry Pi 透過 Serial Port 連線 - 踩雷筆記
最近因為想要從 serial port 登入樹梅派而入手了一個 USB 轉 TTL 傳輸線,沒想到設定過程踩了不少雷,故寫了這篇作為提醒用。
我是從電子材料行買的,型號為CONCBLUSBTTL,使用 PL2303TA 晶片
理論上 win10 可以自動抓可以用的驅動,不需要特別下載。但如果有問題的話還是可以從晶片製造商的驅動程式下載頁面下載最新的驅動。解壓縮後除了驅動程式外還有一個小程式可以用來檢查晶片型號。
這裡遇到我採的第一個雷 (自己雷):在我一開始無法順利設定時,經爬文得知,由於舊款晶片 (PL2303HX 系列) 有偽造情形,故 win10 自動抓的驅動並不支援該款晶片的產品,需要下載舊版驅動才行,我還以為自己真幸運在 2021 還買得到舊款晶片,大費周章跑去前人的 blog 載舊版驅動,結果還是不行;又因為在舊版驅動下跑上面原廠提供的晶片型號檢查程式會將我的傳輸線誤判為 PL2303XA/PL2303HXA
害我誤以為自己真的買到 PL2303HX 晶片,一直往錯誤的方向 google。後來完全解決不了,改用新版驅動再測最後一次,想說不行就要放棄這條線了,才發現原來都是驅動搞的鬼。
這裡提醒一下接線的注意事項,傳輸線和樹梅派的 TX/RX 要反著接,也就是 線的 TX 要接到 Pi 的 RX,線的 RX 要接到 Pi 的 TX。GND 當然也要記得接。我這條線還有一個 5V 線,接上去後可以為 Pi 供電並開機,不過看其他人文章表示不一定要接這條線,而且我怕 GPIO 的供電不穩 (我用的是 pi 4, pi 4 在供電不足的情況下 wifi 會無法連線,就算能順利連上品質也不好,所以供電一定要足) 所以就沒接了。
解決完驅動問題接下來就剩連線設定了,這裡是第二個要注意的地方,所有參數都要設定正確不然就會連不上!像是 speed,網路上的教學大都多是教人設定為 115200,但我的這條線,在裝置管理員的預設值為 9600,所以連線時要設 9600;還有 flow control 不論是 putty 或是 MobaXterm 預設都會是 Xon/Xoff,同樣與這條線的預設值不符,要記得關掉。
OpenCV on Raspberry Pi 3
簡介
OpenCV 是由 intel 主導的一個電腦視覺的跨平台 library,可以用在許多應用上。yolo real-time detection ( 關於 yolo 的安裝與使用可以看我之前寫的文章: Yolo on Raspberry Pi 3 ) 就有用到 OpenCV。這篇文章就是要教如何在樹梅派上自行編譯、安裝 OpenCV 函式庫。雖然是強調在樹梅派上安裝 OpenCV,不過都是流程都是按照官方文件的 Linux 平台安裝教學走,所以只要是 Linux 平台都可以理論上都可以照著本篇文章來安裝 OpenCV!(當然裡面有些指令可能會不太一樣,例如 apt-get
是 debian 流派,如果是 redhat 就要換成 yum
)
要提醒的是 OpenCV 還有很多安裝的參數可以調整(例如對更多 Python / Java 的支援等)但是這篇文章目的是基本的 OpenCV 安裝,所以會略過那些非必要的步驟,需要更多自訂設定的人可以點上面的官方教學自行研究。
安裝教學
- 首先安裝套件
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev # 這行的套件非必要,可裝可不裝
- 從 Github 上把原始碼 clone 下來,並進入 opencv 資料夾
cd ~/ # 可自行選擇 clone 的位置
git clone https://github.com/opencv/opencv.git
cd ~/opencv
整個 repo 有快 500 MB,clone 需要花一點時間
Yolo on Raspberry Pi 3
簡介
Yolo 是一開放原始碼的影像辨識工具,可以進行圖片、影片、即時影像辨識。因為我的專題需要一個偵測人物走進一個空間的功能,因此認識了這套工具。但我對影像辨識實在不熟,因此接下來不會討論有關 yolo 的技術或是他的演算法等。有興趣的人可以自行去找它的論文慢慢看。
Yolo 官方網站 : https://pjreddie.com/darknet/yolo/ Yolo 目前最新版為第 3 版
這篇文章會教你如何在樹梅派 (使用 raspberry pi model 3b) 上安裝及使用 yolo,由於在樹梅派跑 v3 會有問題(下面會提到 ),所以這篇文章的示範會以 yolov2 為主。
安裝 Yolo
Yolo的安裝相當簡單,僅需將 repo clone 下來 make 即可
git clone https://github.com/pjreddie/darknet
cd darknet
make
下載 weights 檔
wget https://pjreddie.com/media/files/yolov2.weights
如果要下載不同的權重檔,請參考 cfg/
資料夾內的 .cfg 的檔名,將檔名複製下來,附檔名改成 .weights 即可用 wgets 下載
來試試 yolo 吧
./darknet detect cfg/yolov2.cfg yolov2.weights data/dog.jpg
以上指令會辨識一張範例圖片,並生成 prediction.png
檔,這個檔案是經過辨識後 yolo 將他辨識出來的物件加上外框而成 ( 實際效果可參考官網 ),如果執行指令都沒問題就表示安裝成功 !
在執行上述指令後,你可能會發現一個問題: 辨識速度也太慢了吧 ! 但因為樹梅派的運算能力有限,所以這個問題無解。不過 yolo 也有很多 model 可以選,我們可以用 tiny yolo,這個比較輕量的 model 來跑我們的辨識,但缺點就是辨識率沒有這麼高了。而且我看了一下 cfg/
資料夾,tiny yolo 似乎只有到 v2,第 3 版還沒出來的樣子。另外使用v3 會被 kill 掉 process,個人猜測是樹梅派的記憶體不足導致。