我曾在MakerConf 2016,到台灣樹莓派sosorry開設的【寵物小車】工作坊幫忙擔任助教,底下摘要紀錄從零件材料到成品的製作過程。
此工作坊需花費8小時,課程內容包含Raspberry Pi環境設定、序列埠連接與無線網路設定、GPIO初步入門、H橋電路與馬達驅動、輪子與車體組裝、相機模組與OpenCV影像辨識、Linux開機流程。
若對此工作坊有興趣,想要請台灣樹莓派sosorry開課,或有任何合作機會,請到台灣樹莓派sosorry的網站留言。
最終目標是建構具有眼睛(相機)的二輪電動車,搭配OpenCV程式進行影像辨識,讓牠能追逐某顏色的物體,如紅色小球,看看展示影片吧。
所需材料如下圖:
- 車體底板,兩個直流馬達與兩個輪子,一個萬向輪,螺絲螺帽與其他組裝零件。
- L298N直流馬達控制板。
- 相機模組。
- 麵包板。
- 1KΩ 電阻(1/4W)。
- 1N4004 二極體。
- 10KΩ可變電阻。
- TIP120 電晶體。
- LED。
- 架高螺絲組(螺絲母x4 + 塑膠架高螺絲 x4 + 圓頭螺絲 x4)。
- 公對母跳線(20cm)x2、母對母跳線(20cm)x4。
教學投影片可到slideshare觀看。範例程式可到GitHub下載。
首先下載Raspbian( 我下載的是Raspbian Jessie with PIXEL 2016-09-23),大小約1.52 GB,解壓縮後得到約4.35 GB的映像檔,燒錄到記憶卡,然後開機,進行第一次啟動的相關設定(此處不詳細介紹)。
然後更新既有套件:
$ sudo apt-get update
$ sudo apt-get upgrade -y
安裝寵物小車所需套件:
$ sudo apt-get install -y python-dev python-opencv python-pip
$ sudo pip install readchar bottle
因為之後要撰寫Python程式,所以需要python-dev,以及透過python-opencv使用OpenCV,至於python-pip則是Python自己的套件管理系統,以之安裝readchar與bottle,後者是輕量型Python網站開發框架,之後可經由網頁介面監控寵物小車。
工作坊內容還包括電子零件簡單介紹(LED、電阻、可變電阻、麵包板、電晶體等)、PWM概念、Raspberry Pi的GPIO腳位、Python程式語言初步入門(控制GPIO)、馬達驅動概念與H橋電路等等,底下直接跳到車體組裝。
組裝時,我用了底下的工具,十字螺絲起子,斜嘴鉗。有時要用斜嘴鉗夾住螺絲或螺帽,才能鎖緊。
電路圖如下,此時只需要看馬達與驅動模組之間的線路。
程式pi-follower-car/02-motor/02_4-move_car,可測試馬達線路,執行後,w代表前進、s後退、a左轉、d右轉。
執行raspi-config,到「5 Enable Camera」啟動相機模組;並到7 Advanced Options - A3 Memory Split」設定分配給GPU的記憶體,應大於128以上,建議256或512。
試著使用指令raspistill指令拍照,把圖檔傳回電腦觀看;可使用WinSCP來傳輸。
若對此工作坊有興趣,想要請台灣樹莓派sosorry開課,或有任何合作機會,請到台灣樹莓派sosorry的網站留言。
請問葉大 我執行4-4的color_tracking.py 與4-5的follower_car.py
ReplyDelete會跳出以下的錯誤訊息
Traceback(most recent call last):
File "color_tracking.py" line 56, in
hsv = cv2.cvtColor(frame. cv2 COLOR_BGRHSV)
cv2.error :/home/pi/opencv-2.4.9/modules/imgproc/src/color.cpp:3959: error:(-215)
(scn ==3 || scn ==4)&&(depth == CV_8U || depth == CV_32F) in function cvt color
請問是哪兒出問題? 有稍微google一下,但是看不太懂意思。
應該是因為沒有載入 V4L2 driver,
ReplyDelete細節您可以參考投影片 p156-p168
https://www.slideshare.net/raspberrypi-tw/raspberry-pi-65881533
謝謝葉大 原來每次都需要載入 才能使用
ReplyDelete想再請教一個問題 我在執行4-5範例 我有將範例稍微修改一下讓他同時辨識兩個顏色
在辨識顏色的時候 背景用隨便單一顏色的紙張 如果前面只有單一顏色的物品
這時候 好像都不會辨識出來 換了其他顏色也一樣 為什麼會這樣呢?
情形截圖 http://ppt.cc/mGST5
建議你直接問講師。:D
Delete不好意思想請問一下這個問題,我按照您的過程中使用的這些範例
ReplyDelete我更新了套件以及pip等東西,但是在執行 02_4-move_car 過程中 一直顯示
Traceback (most recent call last):
File "/home/pi/pi-follower-car-master/pi-follower-car-master/02-motor/02_4-move_car/move_car1.py", line 19, in
import readchar
File "/home/pi/pi-follower-car-master/pi-follower-car-master/02-motor/02_4-move_car/readchar.py", line 9, in
from .readchar_linux import readchar
SystemError: Parent module '' not loaded, cannot perform relative import
想請問一下是什麼地方做錯了呢??
詢問台灣樹莓派sosorry後,回答如下:
Delete我猜他是使用 python3 執行,那第一個套件可能就沒裝到,或是套件的使用方法略有不同。
建議:
1. 先更新
$ sudo apt-get update
2. 確認套件是否安裝成功
$ sudo pip install readchar bottle
3. 使用 python 2 執行
$ cd ~/pi-follower-car
$ cd 02-motor/02_4-move_car/
$ python move_car.py
原來,我是用python3 去執行,套件我都確定有安裝過
Delete我使用python2之後就直接可以執行了,
謝謝!真的非常感謝!我還跑去用別人不同的寫法才成功
Harrah's Cherokee Casino Hotel - JamBase
ReplyDeleteHarrah's Cherokee Casino Hotel 과천 출장안마 in Cherokee, 구리 출장안마 NC, offers 익산 출장안마 gambling, luxury hotel accommodations, entertainment, and fine dining. 남원 출장샵 Book 영주 출장마사지 online or call the