Keyes micro:bit 綠能智慧小屋 學習套件組-程式編寫【第一集】第一集之程式說明有以下專案
Project 1:LED閃爍
Project 2:LED亮度調節
Project 3:6812 2x2 全彩 RGB燈
Project 4:人體紅外熱釋電感測器
Project 5:感應燈
簡介
前面我們組裝好了microbit V2 綠能智慧小屋。
接下來的項目我們就要由簡單到複雜,一步一步探索micro:bit的世界了!
Keyes microbit V2 綠能智慧小屋學習套件組是以microbit V2為主控板,其中包含14個感測器和模組(由1602 LCD,DHT11 溫溼度感測器,MQ_2 模擬氣體感測器,人體紅外線釋熱感測器,黃色LED模組,6812 RGB燈,伺服馬達,水蒸氣感測器, microbit藍芽等模組)組成。
小屋也具備USB充電孔和太陽能充電,並藉由感測器及模組來分別檢測和控制家庭環境的溫度、濕度、可燃氣體濃度、門窗開關,並能把各類環境訊息顯示於1602 LCD 螢幕。也可以透過手機或 iPad 的 APP做為操作端,來查看任何環境資訊。 micro:bit 程式範例課程:
【一】感應器/模組位置對照圖
【二】課前準備
【三】Makecode 程式
【四】完成品影片
Project 1:LED閃爍
Project 2:LED亮度調節
Project 3:6812 2x2 全彩 RGB燈
Project 4:人體紅外熱釋電感測器
Project 5:感應燈
Project 6:伺服馬達角度調節
Project 7:小風扇轉動
Project 8:太陽能與USB充電鋰電池電源模組
Project 9:1602 LCD 螢幕
Project 10:水滴水蒸氣感測器
Project 11:下雨警報
Project 12:模擬氣體(MQ-2)感測器
Project 13:氣體洩露檢測儀
Project 14:DHT11溫濕度感測器
Project 15:環境溫濕度表
Project 16:多功能智能小屋
Project 17:手機藍牙控制LED燈
Project 18:手機藍牙操控智能小屋
一. 感測器/模組位置對應圖
注意:專案中的各感測器/模組上標示:
(G)表示負極,是連接到控制板或感測器擴展板上的G或-或GND
(V)表示正極,是連接到控制板或感測器擴展板上的V或VCC或+或5V
在燒入程式後需要接通外接電源,否則可能供電不足導致無效。
二.課前準備
在程式課程開始前,我們需要在Makecode平台擴充綠能智慧小屋需要使用的積木,才能進一步進入編寫程式,可以藉由以下方法添加microbit綠能智慧小屋的擴充積木。需要下載擴充的積木【IoT_keyestudio】
1. 於MakeCode平台的程式選單中點擊Extensions (擴充)。2. 輸入"https://github.com/keyestudio2019/ks_IoT"為此套件下載額外的擴充程式。如果您遇到提示說明:由於擴充程式不相容,將刪除某些擴充程式,此時您可以按照提示繼續操作或再創建一個新的程式專案。
3. 安裝完成後,你可以在左側找到DHT11/DHT22和I2C_LCD1602的擴充積木,同時也下載安裝了Neopixel擴充積木。
三. Makecode 程式課程
Project 1:LED 閃爍
一. 實驗介紹
首先我們要來完成經典的“micro:bit點亮LED”項目。micro:bit點亮LED對於學習micro:bit的愛好者而言,是最基礎的項目,也是新手必須經歷的一個練習。※LED知識補給站:
LED,即發光二極體的簡稱。由含鎵(Ga)、砷(As)、磷(P)、氮(N)等的化合物製成。當電子與空穴複合時能輻射出可見光,因而可以用來製成發光二極體。在電路及儀器中作為指示燈,或者組成文字或數字顯示。
砷化鎵二極體發紅光,磷化鎵二極體發綠光,碳化矽二極體發黃光,氮化鎵二極體發藍光。因化學性質又分有機發光二極體OLED和無機發光二極體LED。
為了實驗的方便,我們將LED發光二極體做成了一個LED模組,在這個專案中,我們用一個最基本的測試代碼來控制LED,亮一秒鐘,滅一秒鐘,來實現閃爍的效果。你可以改變代碼中LED燈亮滅的時間,實現不同的閃爍效果。LED模組信號端S為高電平時LED亮起,S為低電平時LED熄滅。二.程式設計
三. 實驗結果
上傳程式到micro:bit主機板,上傳成功後,外接電源供電,將擴充板上的開關撥到ON端,再將船型開關上的“1”端按下,micro:bit主機板上的LED點陣顯示“笑臉”圖案,同時黃色LED亮1000毫秒,滅1000毫秒,迴圈交替。
四. 完成品
Project 2:LED 亮度調節
1.實驗介紹:
前面課程中,我們詳細的介紹了通過測試代碼控制LED亮滅,實現閃爍的效果。這節課我們使用PWM來控制LED亮度不斷地變化,模擬我們呼吸的效果。小知識補給站: PWM是使用數位手段來控制類比輸出的一種手段。使用數位控制產生占空比不同的方波(一個不停在高電平與低電平之間切換的信號)來控制類比輸出。
一般來說埠的輸出電壓只有兩個0V與3V。如果想要改變燈的亮度怎麼辦呢個?
有同學說串聯電阻。對,這個方法是正確的。但是如果想要得到不同的亮度,且在不同亮度之間來回變動怎麼辦呢?不可能不停地切換電阻吧。
這種情況下就需要使用PWM了,那它是怎麼控制的呢?
對於micro:bit的數位埠電壓輸出只有LOW與HIGH兩個,對應的就是0V與3V的電壓輸出,可以把LOW定義為0、HIGH定義為1
1秒內讓micro:bit輸出500個0或者1的信號。
如果這500個全部為1,那就是完整的3V,如果全部為0,那就是0V。
如果010101010101這樣輸出,剛好一半,埠輸出的平均電壓就為1.5V了。
這個和放映電影是一個道理,咱們所看的電影並不是完全連續的,它其實是每秒輸出25張圖片。
在這種情況下,人的肉眼是分辨不出來的,看上去就是連續的了。PWM也是同樣的道理,如果想要不同的電壓,就控制0與1的輸出比例控制就可以了。
當然這和真實的連續輸出還是有差別的,單位時間內輸出的0,1信號越多,控制的就越精確。(輸出電壓=(開啟時間/脈衝時間)*最大電壓值)
在下圖中,綠線之間代表一個週期,其值也是PWM頻率的倒數。換句話說,如果micro:bit的PWM頻率是500Hz,那麼兩綠線之間的週期就是2毫秒。 analogWrite() 命令中可以操控的範圍為0-255,analogWrite(255)表示100%占空比(常開),analogWrite(127)占空比大約為50%(一半的時間)。
脈衝寬度調製(PWM)有多種應用:燈亮度調節、電機調速、發聲等。 以下是PMW的四個基本參數:
(1)脈衝寬度的振幅(最小/最大)
(2)脈衝週期(1秒內脈衝頻率的倒數)
(3)電壓水準(如:0V-3V)
(4)micro:bit主機板上有6個常用的PMW介面,即P0、P1、P2、P3、P4和P10。還有13個不常用的PMW介面,即P5、P6、P7、P8、P9、P11、P12、P13、P14、P15、P16、P19和P20。
實驗中,我們將黃色LED模組的信號端S接到microbit擴展板上的S(16),從micro:bit主機板引腳說明我們知道P16還可以當做PWM介面。我們通過P16引腳控制外接LED亮度,先是逐漸變亮,然後是逐漸變暗,迴圈交替,模擬人體呼吸現象。
2.黃色LED模組的規格參數:
工作電壓: DC 3.3-5V
工作電流: < 20mA
最大功率: 0.1W
控制介面: 數位口(數位輸入)
工作溫度: -10°C ~ +50°C
LED顯示顏色: 黃色二.程式設計
組合指令方塊:Microbit擴展板 | 黃色LED模組 |
GND | G |
5V | V |
S(16) | S |
三.實驗結果
上傳程式到micro:bit主機板,上傳成功後,外接電源供電,將擴充板上的撥碼開關撥到ON端,再將船型開關上的“1”端按下,micro:bit主機板上的LED點陣顯示“笑臉”圖案,同時可以看到黃色LED會有個逐漸由亮到滅的一個緩慢過程,而不是直接的亮滅,如同呼吸一般,均勻變化。迴圈交替。
四.完成品
Project 3:6812 2x2 全彩 RGB燈
一.實驗介紹:
6812 2x2 全彩RGB模組是一個集控制電路與發光電路於一體的智慧外控LED光源。每個LED原件其外型與一個5050LED燈珠相同,每個元件即為一個圖元點。
圖元點內部包含了智慧數位介面資料鎖存信號整形放大驅動電路,還包含有高精度的內部振盪器和12V高壓可程式設計定電流控制部分,有效保證了圖元點光的顏色高度一致。
資料協定採用單線歸零碼的通訊方式,圖元點在上電重定以後,S端接受從控制器傳輸過來的資料,首先送過來的24bit資料被第一個圖元點提取後,送到圖元點內部的資料鎖存器。LED具有低電壓驅動、環保節能、亮度高、散射角度大、一致性好、超低功率、超長壽命等優點。
2.6812 2x2全彩RGB的規格參數: 工作電壓: | DC 3.3-5V | 最大工作電流: | 200mA | 最大功率: | 1W |
工作溫度: | -10℃~+50℃ | 光源: | SMD 5050 RGB | IC型號: | 4顆/WS2811 |
灰度等級: | 256級 | 發光角度: | 180° | 發光顏色: | 可以通過控制器調為紅,黃,藍,綠,白等 |
二. 程式設計 3-1 6812 2x2 全彩 RGB :
三. 實驗結果3-1
上傳程式到micro:bit主機板,上傳成功後,外接電源供電,將擴展板上的撥碼開關撥到ON端,再將船型開關上的“1”端按下,可以看到6812 2x2 全彩RGB模組上的4個WS2812RGB燈全亮,且顏色依次紅、橙、黃、綠、藍、靛藍、紫羅蘭、紫、白,迴圈進行。
三. 完成品3-1
二. 程式設計 3-2 6812 2x2 全彩RGB 流水燈:
三. 實驗現象 3-2:
檔案上傳到micro:bit主板,上傳成功後,外接電源供電,將擴充板上的撥碼開關撥到ON端,再將船型開關上的“1”端按下,可以看到6812 2x2 全彩RGB模組上的4個WS2812RGB燈以流水燈的形式點亮,一圈一種顏色,迴圈。
四. 完成品 3-2:
二.程式設計3-3 6812 2x2 全彩RGB 隨機霓虹燈
三.實驗現象 3-3:
檔案上傳到micro:bit主機板,上傳成功後,外接電源供電,將擴充板上的撥碼開關撥到ON端,再將船型開關上的“1”端按下,可以看到6812 2x2 全彩RGB模組上的5個WS2812RGB燈以流水燈的形式點亮,每個燈亮起都是一種隨機顏色,迴圈。四. 完成品3-3:
Project 4:人體紅外熱釋電感測器一.實驗介紹:
人體紅外熱釋電感測器是一款基於熱釋電效應的人體熱釋電紅外運動感測器,能檢測運動的人體或動物身上發出的紅外信號,配合菲涅爾透鏡能使感測器探測範圍更遠更廣。
主要採用RE200B-P感測器元件,當附近有人或動物運動時,人體紅外熱釋電感測器能根據檢測到的紅外線,將紅外線信號轉化為數位信號並輸出一個高電平。
它可以應用於多種場合來檢測人體的運動。
傳統的熱釋電紅外感測器體積大,電路複雜,可靠性低。
現在我們推出這款一款新的熱釋電紅外運動感測器,該感測器集成了數位熱釋電紅外感測器和連接管腳。
具有靈敏度高、可靠性強、超低功耗,體積小、重量輕,超低電壓工作模式和週邊電路簡單等特點。
2.人體紅外熱釋電感測器的規格參數: 工作電壓 | DC 4.5-6.5V |
|
最大工作電流 | 50MA |
靜態電流 | <50uA |
控制介面 | 數位輸出(高電平為3.3V ,低電平0V) |
控制信號 | 數位信號1/0 |
工作溫度 | -10 ~ 50 ℃ |
最大探測距離 | 4米 |
感應角度 | <100°錐角 |
觸發方式 | L 不可重複觸發/H 重複觸發 |
測驗注意事項:
(1)測試過程中最大距離為4米。
(2)測試前,首先打開白色鏡頭,可以看到矩形感應部分。當矩形傳感部分的長線與地面平行時,距離最好。
(3)測試時,感測器需要覆蓋白色鏡片,否則會影響距離。 (4)在25℃時檢測距離最好,超過30℃時檢測距離縮短。
(5)啟動並上傳完代碼後,您需要等待5~10秒,然後開始測試,否則不靈敏。
二.程式設計
組合指令方塊: Microbit擴展板 | 人體紅外熱釋電感測器 |
GND | G |
5V | V |
S(15) | S |
三.實驗結果
先將micro:bit與Make Code平台連接:按照之前的方式將示例代碼下載到micro:bit主機板,利用micro USB資料線上電,並且外接電源供電,將擴展板上的撥碼開關撥到ON端,再將船型開關上的“1”端按下。microbit主板上的LED點陣屏顯示“笑臉”圖案,同時點擊“顯示控制台(設備)”按鈕:顯示串口輸出資料:
當人體紅外熱釋電感測器檢測到附近有人運動時,串口輸出數位信號1(高電平),且模組上的指示燈不亮
當人體紅外熱釋電感測器未檢測到附近有人運動時,串口輸出數位信號0(低電平),且模組上的指示燈點亮。
如下圖所示:如果你的電腦系統是Windows7/8而不是Windows 10,則在Google Chrome中是無法進行設備配對,這裡需要使用CoolTerm軟體來讀取串口數位的。
打開CoolTerm,點擊Options,選擇SerialPort,設置COM口和串列傳輸速率,串列傳輸速率設置為115200(經過測試,micro:bit主機板的USB串口通訊串列傳輸速率是115200),點擊OK後,最後點擊Connect。當人體紅外熱釋電感測器檢測到附近有人運動時,串口輸出數位信號1(高電平),且模組上的指示燈不亮;否則,當人體紅外熱釋電感測器未檢測到附近有人運動時,串口輸出數位信號0(低電平),且模組上的指示燈點亮。可得資料變化如下圖:四.完成品
電腦監控畫面:
Project 5:感應燈
一.實驗介紹:
在前面的專案實驗中,我們已經瞭解了人體紅外熱釋電感測器的工作原理及其控制方法。在本專案實驗中,我們結合人體紅外熱釋電感測器和黃色LED,通過人體紅外熱釋電感測器來控制LED的亮、滅,模擬生活中的感應燈。
二.程式設計
組合指令方塊:Microbit擴展板 | 人體紅外熱釋電感測器 | | Microbit擴展板 | 黃色LED模組 |
GND | G | GND | G |
5V | V | 5V | V |
S(15) | S | S(16) | S |
三.實驗現象:
檔案下載到micro:bit 主機板,外接電源供電,並將擴充板上的撥碼開關撥到ON端,再將船型開關上的“1”端按下。microbit主板上的LED點陣屏顯示“笑臉”圖案。當人體紅外熱釋電感測器檢測到附近有人運動時,黃色LED燈點亮;否則,當人體紅外熱釋電感測器未檢測到附近有人運動時,黃色LED燈熄滅。四.完成品:
Keyes 綠能智慧小屋程式篇 第二集
Keyes 綠能智慧小屋程式篇 第三集