色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何用鴻蒙開發板輕松做一個報警器(內附教程)

OpenHarmony技術社區 ? 來源:鴻蒙技術社區 ? 作者:唐佐林 ? 2021-10-11 14:36 ? 次閱讀

通過前面兩篇貼子的介紹,相信大家已經掌握如何使用 Python 操作 GPIO 和 I2C 了。

那么今天我們可以更進一步,通過 Python 中的 GPIO 和 PWM 接口使蜂鳴器發聲。

當然,如果只是實現這個功能就太無聊了,所以我們可以擴展一下,做個稍微有意思一些的東西。

嗯。。。想想做點啥呢?!翻箱倒柜一番之后,我找到了下面這塊擴展板。

這是小熊派鴻蒙開發套件中的“智慧安防”擴展板,板子上搭配了一個紅外傳感器和一個蜂鳴器。

基于這個板子,可以開發一個簡單的安防案例:當紅外傳感器有感應(有人靠近)時,觸發蜂鳴器發出警告(發聲)。

在開始之前需要先介紹一個新概念:脈沖寬度調制(Pulse Width Modulation),即:PWM。

這是一個屬于硬件電路層面的概念,對于物聯網開發來說不需要特別深入的對它進行研究,只需要掌握基本原理后應用到開發中即可。

簡單的說,PWM 就是利用數字信號輸出模擬信號的一種技術。眾所周知,現代計算機系統是數字驅動的,即:所有計算機部件在高低電平的交替驅動下工作。

如果所有的外設都是數字的,那么事情就很簡單了,直接 GPIO 連接就可以通信。

然而,有些外設就不是數字的,而是模擬的,需要接收模擬信號(如:正弦波信號),所以需要借助處理器使用 PWM 技術實現模擬信號。

基本原理如下:

8caba956-2a46-11ec-82a8-dac502259ad0.png

根據電工電子學老師的說法,如果需要產生這樣的一個正弦波,可以用多個方波代替,其效果是相同的。

8d2b9652-2a46-11ec-82a8-dac502259ad0.png

圖 a) 中的正弦波可以用一個個幅值相同但是寬度不同的方波代替,如圖 b) ,只要這些方波與 t 軸圍起來的面積和原始正弦波與 t 軸圍起來的面積相同即可。

有了上面的原理之后,接下來需要討論的就是:如何調節出等效的方波?

為了解決這個問題,需要了解占空比的概念!占空比指在一個周期內,信號處于高電平的時間占據整個信號周期的百分比。

8dae4ee4-2a46-11ec-82a8-dac502259ad0.jpg

在上圖中一個周期是 4ms ,而高電平在一個周期中的持續時間是 1ms,所以占空比為 25% 。

掌握了這些理論性的東西之后,就可以考慮如何實操的問題了:怎么實現 PWM 信號(方波信號)輸出?

很幸運,Hi3861中自帶了 PWM 模塊,所以在代碼層面只需要調用相關 API 接口向 PWM 模塊設置必要參數,就可以輸出需要的連續 PWM 信號(方波信號)。

8e23649a-2a46-11ec-82a8-dac502259ad0.jpg

上面表格中的接口功能可謂一目了然,幾乎可以做到“開箱即用”,唯一需要做解釋的就是 start(port,duty,freq)這個函數。

port 表示 PWM 信號的輸出通道編號,freq 用于控制 PWM 信號的輸出頻率,duty 用于指定占空比,占空比的值為 duty 和 freq 的比值。

Ok!有了這些鋪墊,可以上代碼了!

8ea15076-2a46-11ec-82a8-dac502259ad0.png

Snippet 1部分的代碼先對 GPIO_7 進行初始化和功能設置,目的是接收 is1 也就是紅外傳感器的感應信號,當 Hi3861 接收到這個紅外感應信號就會觸發回調 is1_callback() 。

Snippet 2 部分的代碼復用 GPIO_8 使其連接 PWM 模塊,目的是對 PWM 進行參數設置。

這里可以更進一步的給大家科普一下 GPIO 和 PWM 的關系:在理論上可以直接用 GPIO 產生需要的方波信號,但現實中并不會這么做!

原因很簡單,這么做會耗費大量的處理器資源,并且產生的方波信號頻率有限。

所以,一般都會引入獨立的 PWM 模塊,處理器通過 GPIO 與這個模塊連接在一起,從而能夠對其進行參數設置。之后,具體產生方波的工作就由 PWM 模塊完成了。

接下來,看看回調函數 is1_callback() 的實現。

8f304812-2a46-11ec-82a8-dac502259ad0.png

代碼很簡單,核心部分就是對變量 pwm_on 進行標記,即:當接收到紅外感應信號的時候將 pwm_on 賦值為 True。

然后呢?然后在別處進行處理!

8fada208-2a46-11ec-82a8-dac502259ad0.png

腳本文件的最后,可以看到處理 pwm_on 為 True 的代碼,即:當 pwm_on 為 True 時,調用 start() 函數促使 1 號 PWM 通道產生方波信號。

而 1 號 PWM 通道連接的是一個蜂鳴器,產生方波信號的最終結果就是使得蜂鳴器發聲。

整體流程如下:

90185d00-2a46-11ec-82a8-dac502259ad0.png

最終效果如下:

90baf36c-2a46-11ec-82a8-dac502259ad0.gif

可以看到,當我靠近開發板時,紅外感應器立即發送感應信號,進而觸發蜂鳴器發聲。

WOW!一個簡單的安防系統就這么完成了!

PS:最新版 Python 引擎庫能夠支持幾乎所有鴻蒙的外設接口,以及基礎浮點運算。

感興趣的同學可下載附件中的代碼和文件自行編程嘗試。

Enjoy It!

代碼開源地址:

https://gitee.com/delphi-tang/python-for-hos

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開發板
    +關注

    關注

    25

    文章

    5075

    瀏覽量

    97663
  • GPIO
    +關注

    關注

    16

    文章

    1205

    瀏覽量

    52164
  • 紅外感應器
    +關注

    關注

    0

    文章

    11

    瀏覽量

    8406

原文標題:用鴻蒙開發板做一個報警器,超簡單

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    OpenHarmony源碼編譯后燒錄鏡像教程,RK3566鴻蒙開發板演示

    本文介紹瑞芯微主板/開發板編譯OpenHarmony源碼后燒錄鏡像的教程,觸覺智能Purple Pi OH鴻蒙開發板演示。搭載了瑞芯微RK3566四核處理,樹莓派卡片電腦設計,支持開
    的頭像 發表于 12-30 10:08 ?105次閱讀
    OpenHarmony源碼編譯后燒錄鏡像教程,RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發板</b>演示

    OpenHarmony怎么修改DPI密度值?觸覺智能RK3566鴻蒙開發板演示

    開源鴻蒙OpenHarmony系統下,修改DPI密度值的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,搭載了瑞芯微RK3566四核處理,Laval
    的頭像 發表于 12-24 11:46 ?207次閱讀
    OpenHarmony怎么修改DPI密度值?觸覺智能RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發板</b>演示

    OpenHarmony默認30秒熄屏太麻煩?觸覺智能鴻蒙開發板教你輕松取消

    OpenHarmony系統開機后 30 秒會自動息屏,教大家兩招輕松取消自動息屏,觸覺智能Purple Pi OH鴻蒙開發板演示,已適配全新OpenHarmony5.0 Release系統!
    的頭像 發表于 12-09 11:45 ?225次閱讀
    OpenHarmony默認30秒熄屏太麻煩?觸覺智能<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發板</b>教你<b class='flag-5'>輕松</b>取消

    鴻蒙機器人與鴻蒙開發板聯動演示

    鴻蒙機器人與鴻蒙開發板聯動演示,機器人的角色為迎賓機器人,開發板負責人賓客出現監聽
    發表于 12-02 14:55

    OpenHarmony屬性信息怎么修改?觸覺智能RK3566鴻蒙開發板來演示

    本文介紹開源鴻蒙OpenHarmony系統下,修改產品屬性信息的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,已適配全新OpenHarmony5.0 Release系統!
    的頭像 發表于 11-27 09:31 ?191次閱讀
    OpenHarmony屬性信息怎么修改?觸覺智能RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發板</b>來演示

    如何在開源鴻蒙OpenHarmony開啟SELinux模式?RK3566鴻蒙開發板演示

    本文介紹開源鴻蒙OpenHarmony系統下,開啟/關閉SELinux權限的方法,觸覺智能Purple Pi OH鴻蒙開發板演示,已適配全新OpenHarmony5.0 Release系統!
    的頭像 發表于 11-18 19:03 ?359次閱讀
    如何在開源<b class='flag-5'>鴻蒙</b>OpenHarmony開啟SELinux模式?RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發板</b>演示

    光柵報警器報警是什么原因

    光柵報警器種安全防護設備,通常用于防止非法入侵或保護特定區域。當光柵報警器報警時,可能有幾個原因。 1. 硬件故障 傳感
    的頭像 發表于 09-24 09:12 ?978次閱讀

    鴻蒙OpenHarmony南向/北向快速開發教程-迅為RK3568開發板

    大家期待已久的迅為RK3568開發板終于迎來了鴻蒙4.1系統的強勢支持!想知道如何實現快速開發學習嗎?跟著我們起來探索吧! 迅為RK3568開發板
    發表于 07-23 10:44

    鴻蒙OpenHarmony開發板解析:【芯片解決方案】

    芯片解決方案是指基于某款開發板的完整解決方案,包含驅動、設備側接口適配、開發板sdk等。
    的頭像 發表于 05-10 15:42 ?1260次閱讀
    <b class='flag-5'>鴻蒙</b>OpenHarmony<b class='flag-5'>開發板</b>解析:【芯片解決方案】

    鴻蒙OpenHarmony南向:【Hi3861開發板介紹】

    Hi3861開發板片大約2cm*5cm大小的開發板,是款高度集成的2.4GHz WLAN SoC芯片,集成IEEE 802.11b/g/n基帶和RF(Radio Frequenc
    的頭像 發表于 05-06 17:19 ?1158次閱讀
    <b class='flag-5'>鴻蒙</b>OpenHarmony南向:【Hi3861<b class='flag-5'>開發板</b>介紹】

    門把手觸摸報警器分享

    報警器種用于防止或預防某事件發生所造成的后果的電子產品。它通過聲音、光、氣壓等形式來提醒或警示人們采取某種行動。報警器可以分為機械式報警器和電子
    的頭像 發表于 02-07 15:33 ?891次閱讀
    門把手觸摸<b class='flag-5'>報警器</b>分享

    防盜報警器電路圖分享

    防盜報警器種電子設備,通過物理方法或電子技術產生報警功能,用于預防搶劫、盜竊等意外事件的發生。它主要由防盜報警主機與防盜報警配件共同組成
    的頭像 發表于 02-02 14:07 ?3774次閱讀
    防盜<b class='flag-5'>報警器</b>電路圖分享

    盤點那些硬件+項目學習套件:Hi3861鴻蒙開發板及入門常見問題解答

    款用于鴻蒙設備開發鴻蒙物聯網開發學習的開發板。主控為華為海思Hi3861LV100芯片,內
    發表于 02-01 16:55

    何用小安派-Eyes-S1做一個電子木魚?

    2024年的第篇教程來了,本篇學習如何添加LVGL事件,并制作完成電子木魚(小美苦苦哀求,我略微出手而已)。祝大家2024積德累功,心想事成!接下來看看如何用小安派-Eyes-S
    的頭像 發表于 01-13 15:18 ?1047次閱讀
    如<b class='flag-5'>何用</b>小安派-Eyes-S1<b class='flag-5'>做一個</b>電子木魚?

    鴻蒙設備-開發板基礎學習(BearPi-HM Micro)

    theme: minimalism 每當學習門新的編程語言或者上手款新的開發板,在學習鴻蒙設備開發過程中,帶大家寫的第
    發表于 01-08 21:54
    主站蜘蛛池模板: 一品道门在线视频高清完整版| 日韩一区二区在线免费观看| 外女思春台湾三级| 艺术片 快播| 777久久人妻少妇嫩草AV蜜桃| 国产精品系列在线一区| 精品淑女少妇AV久久免费| 少妇性饥渴BBBBBBBBB| beeg日本老师按摩| 国产精品亚洲AV色欲在线观看| 日本电影免费久久精品| TUBE19UP老师学生| 日本红怡院亚洲红怡院最新| 亚洲午夜精品aaa级久久久久| 国产午夜福利100集发布| 偷偷要色偷偷| 国产亚洲精品AV片在线观看播放| 少妇高潮久久久久7777| 国产AV国产精品国产三级在线L| 日本午夜精品一区二区三区电影| 成年AV动漫| 手机毛片在线观看| 国产精品亚洲视频在线观看 | 一个吃奶两个添下面H| 九九色精品国偷自产视频| 欧美写真视频一区| www.狠狠色| 熟女理发厅| 国产一卡在线观看完整版| 亚洲人成7777| 两个客户一起吃我的奶| 99国产精品欲AV蜜桃臀麻豆| 妻中蜜在线播放| 国产AV精品一区二区三区漫画| 午夜福利电影| 久久精品18| caoporn免费视频在线| 四虎永久精品视频在线| 精品久久免费观看| 99视频在线免费| 无套内射在线观看THEPORN|