第十三章 蜂鳴器實驗
1)實驗平臺:正點原子DNK210開發板
2)章節摘自【正點原子】DNK210使用指南 - CanMV版 V1.0
3)購買連結:https://detail.tmall.com/item.htm?&id=782801398750
4)全套實驗原始碼+手冊+影片下載地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.html
5)正點原子官方B站:https://space.bilibili.com/394620890
6)正點原子K210技術交流企鵝群:605557868
本章實驗將介紹如何使用CanMV讓Kendryte K210控制板載的蜂鳴器發聲。透過本章的學習,讀者將學習到在CanMV下控制Kendryte K210的GPIO輸出高低電平。
本章分為如下幾個小節:
13.1 maix.GPIO模組介紹
13.2 硬體設計
13.3 程式設計
13.4 執行驗證
13.1 maix.GPIO模組介紹
有關maix.GPIO模組的介紹,請見第12.1小節《maix.GPIO模組介紹》。
13.2 硬體設計
13.2.1 例程功能
- 控制板載蜂鳴器間歇發生
13.2.2 硬體資源
- 蜂鳴器 - IO17
13.2.3 原理圖
本章實驗內容,需要控制板載蜂鳴器發聲,正點原子DNK210開發板上蜂鳴器的連線原理圖,如下圖所示:
圖13.2.3.1 蜂鳴器連線原理圖
透過以上原理圖可以看出,蜂鳴器的發聲與否由IO17控制,當IO17輸出低電平時,蜂鳴器不發聲,當IO17輸出高電平時,蜂鳴器發聲。
13.3 程式設計
13.3.1 maix.GPIO模組
有關maix.GPIO模組的介紹,請見第13.1小節《maix.GPIO模組介紹》。
13.3.2 程式流程圖
圖13.3.2.1 蜂鳴器實驗流程圖
13.3.3 main.py程式碼
main.py中的指令碼程式碼如下所示:
from board import board_info
from fpioa_manager import fm
from maix import GPIO
import time
# 為蜂鳴器連線的IO註冊GPIO功能
fm.register(board_info.BEEP, fm.fpioa.GPIO2)
# 構造GPIO物件
beep = GPIO(GPIO.GPIO2, GPIO.OUT)
while True:
# 設定GPIO物件輸出對應的高低電平
beep.value(0)
time.sleep_ms(1000)
beep.value(1)
time.sleep_ms(1000)
可以看到,首先透過fm.register()方法為控制蜂鳴器的IO分別分配了GPIO2的功能,然後透過GPIO建構函式構造了GPIO物件,並配置為輸出模式,最後在一個迴圈中設定這個GPIO物件輸出依次輸出高低電平並延時一段時間,從而應該能聽到板載的蜂鳴器間歇地發聲。
13.4 執行驗證
將DNK210開發板連線CanMV IDE,並點選CanMV IDE上的“開始(執行指令碼)”按鈕後,可以聽到板載的蜂鳴器間歇地發聲,這與理論推斷的結果一致。