在這個項目中,咱們將使用Python來構建一個由Micro:bit觸發樹莓派Raspberry Pi和相機模塊的自拍器。這是開始使用硬件和簡單文本編程的好方法。git
咱們將學習:web
如何設置Raspberry Pi相機 編程
如何在Micro:bit和Raspberry Pi上使用輸入和輸出引腳app
用Python代碼控制GPIO引腳學習
用Python代碼控制相機模塊測試
材料:網站
帶有SD卡和常規外圍設備的Raspberry Pispa
Raspberry Pi camera moduleorm
Micro:bitblog
USB A to micro USB-B cable
雙頭鱷魚夾線3條
軟件安裝:
更新的Raspbian並安裝Mu。
安裝配件Pi camera, 驅動及庫文件請從Raspberry Pi官方網站下載。
將Micro:bit和Pi camera module鏈接到Raspberry Pi主板上
1.將公母對跳線鏈接到Raspberry Pi上的GPIO引腳4。
2.拿一條鱷魚夾電纜,將一端鏈接到您的micro:位標記爲0的焊盤,另外一端鏈接到標有GND或地線的引腳。
3.將另外一根電纜鏈接到針腳1,將另外一端鏈接到您的RaspberryPi上使用的跳線的陽端,以下圖所示:
這樣就建立好觸發電路。接下來啓動Raspberry Pi並加載Mu。
1.打開mu,而後單擊New打開一個空白的未命名的文件。
2.單擊保存,將文件命名爲microbit-trigger.py,而後按鍵盤上的Enter鍵。
3.您的文件中的第一行應該已經輸入,而且顯示爲:
from microbit import *
該行導入了MicroPython的Python庫模塊供您使用。
4.接下來,鍵入如下命令建立一個循環:
while True:
注意:大寫字母和小寫字母在輸入Python代碼時很是重要。請注意,True最後有大寫T和冒號。在這一行以後寫的全部內容都應該縮進四個空格。
5.如今咱們須要設置一個條件,以便當鏈接到micro:bit上的引腳0的電纜被觸摸時,它會在LED矩陣上顯示一條消息並觸發相機。咱們在Python中使用這個詞來作到這一點:
1. while True:
2. if pin0.is_touched():
3. display.scroll("saycheese!")
4. sleep(500)
5. pin1.write_digital(1)
6. sleep(5000)
pin1.write_digital(0)
6. 每次繞這個循環,計算器詢問鏈接到引腳0的電纜是否被觸摸。若是是,那麼消息「說奶酪!」應該出現並告訴銷1變高或打開。這是鏈接到Raspberry Pi的針。咱們將在下一步中使用該引腳來觸發相機拍攝照片並進行存儲。
7. 保存文件,而後點擊Flash將代碼發送到你的micro:bit。您必須執行此步驟來測試您的觸發器是否正常工做。一旦micro:bit背面的黃色燈中止閃爍,按下它旁邊的復位按鈕,而後觸摸地面並插入0個鱷魚夾電纜。這應該致使文本滾動播放在micro:bit上的LED矩陣。
如今開始編輯Pi camera.
1.點擊編程,從主菜單中找到並打開Python3(IDLE)。這是您將爲您的相機編寫您的Python代碼的地方。
2.建立一個新文件並將其保存爲microbit-camera.py。
3.首先經過輸入如下內容導入此程序中所需的全部庫和模塊:
from picamera import PiCamera
from gpiozero import Button
from time import sleep
接下來,您須要告訴計算器哪一個引腳將用於觸發相機拍攝照片。您將microbit鏈接到GPIO引腳4.在導入下方,鍵入:
button = Button(4, pull_up = False)
而後寫入指令序列,以在觸摸微位置電纜的人觸發時拍攝照片。首先,從相機顯示預覽,鍵入如下內容:
with PiCamera() as camera:
camera.start_preview()
sleep(5)
雖然顯示的是預覽,您能夠抓到到自拍器的位置中。
在下面,鍵入等待the micro:bit觸發的指令:
button.wait_for_press()
camera.capture('selfie.jpg`)
camera.stop_preview()
該程序將等待micro:bit的觸發器,而後拍攝照片並將其存儲在名爲selfie.jpg的文件中,而後中止相機預覽。
保存文件。檢查您的micro:bit觸發器是否正常工做,而後單擊運行和運行模塊以啓動攝像頭代碼,一個自拍器就成功了。
原文參考
https://mp.weixin.qq.com/s?__biz=MzU0MTg0ODIzNA==&mid=2247483907&idx=1&sn=de57f662ad04ea75f64ababe9f5e3c5e&chksm=fb22e5c6cc556cd0bdf07ea24bb1c1f9fd6a9b5e2e24218198b7f66e3eb4eec59fbe8d1bc873#rd