一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用鴻蒙開發(fā)板輕松做一個(gè)報(bào)警器(內(nèi)附教程)

OpenHarmony技術(shù)社區(qū) ? 來(lái)源:鴻蒙技術(shù)社區(qū) ? 作者:唐佐林 ? 2021-10-11 14:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

當(dāng)然,如果只是實(shí)現(xiàn)這個(gè)功能就太無(wú)聊了,所以我們可以擴(kuò)展一下,做個(gè)稍微有意思一些的東西。

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

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

基于這個(gè)板子,可以開發(fā)一個(gè)簡(jiǎn)單的安防案例:當(dāng)紅外傳感器有感應(yīng)(有人靠近)時(shí),觸發(fā)蜂鳴器發(fā)出警告(發(fā)聲)。

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

這是一個(gè)屬于硬件電路層面的概念,對(duì)于物聯(lián)網(wǎng)開發(fā)來(lái)說不需要特別深入的對(duì)它進(jìn)行研究,只需要掌握基本原理后應(yīng)用到開發(fā)中即可。

簡(jiǎn)單的說,PWM 就是利用數(shù)字信號(hào)輸出模擬信號(hào)的一種技術(shù)。眾所周知,現(xiàn)代計(jì)算機(jī)系統(tǒng)是數(shù)字驅(qū)動(dòng)的,即:所有計(jì)算機(jī)部件在高低電平的交替驅(qū)動(dòng)下工作。

如果所有的外設(shè)都是數(shù)字的,那么事情就很簡(jiǎn)單了,直接 GPIO 連接就可以通信。

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

基本原理如下:

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

根據(jù)電工電子學(xué)老師的說法,如果需要產(chǎn)生這樣的一個(gè)正弦波,可以用多個(gè)方波代替,其效果是相同的。

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

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

有了上面的原理之后,接下來(lái)需要討論的就是:如何調(diào)節(jié)出等效的方波?

為了解決這個(gè)問題,需要了解占空比的概念!占空比指在一個(gè)周期內(nèi),信號(hào)處于高電平的時(shí)間占據(jù)整個(gè)信號(hào)周期的百分比。

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

在上圖中一個(gè)周期是 4ms ,而高電平在一個(gè)周期中的持續(xù)時(shí)間是 1ms,所以占空比為 25% 。

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

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

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

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

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

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

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

Snippet 1部分的代碼先對(duì) GPIO_7 進(jìn)行初始化和功能設(shè)置,目的是接收 is1 也就是紅外傳感器的感應(yīng)信號(hào),當(dāng) Hi3861 接收到這個(gè)紅外感應(yīng)信號(hào)就會(huì)觸發(fā)回調(diào) is1_callback() 。

Snippet 2 部分的代碼復(fù)用 GPIO_8 使其連接 PWM 模塊,目的是對(duì) PWM 進(jìn)行參數(shù)設(shè)置。

這里可以更進(jìn)一步的給大家科普一下 GPIO 和 PWM 的關(guān)系:在理論上可以直接用 GPIO 產(chǎn)生需要的方波信號(hào),但現(xiàn)實(shí)中并不會(huì)這么做!

原因很簡(jiǎn)單,這么做會(huì)耗費(fèi)大量的處理器資源,并且產(chǎn)生的方波信號(hào)頻率有限。

所以,一般都會(huì)引入獨(dú)立的 PWM 模塊,處理器通過 GPIO 與這個(gè)模塊連接在一起,從而能夠?qū)ζ溥M(jìn)行參數(shù)設(shè)置。之后,具體產(chǎn)生方波的工作就由 PWM 模塊完成了。

接下來(lái),看看回調(diào)函數(shù) is1_callback() 的實(shí)現(xiàn)。

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

代碼很簡(jiǎn)單,核心部分就是對(duì)變量 pwm_on 進(jìn)行標(biāo)記,即:當(dāng)接收到紅外感應(yīng)信號(hào)的時(shí)候?qū)?pwm_on 賦值為 True。

然后呢?然后在別處進(jìn)行處理!

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

腳本文件的最后,可以看到處理 pwm_on 為 True 的代碼,即:當(dāng) pwm_on 為 True 時(shí),調(diào)用 start() 函數(shù)促使 1 號(hào) PWM 通道產(chǎn)生方波信號(hào)。

而 1 號(hào) PWM 通道連接的是一個(gè)蜂鳴器,產(chǎn)生方波信號(hào)的最終結(jié)果就是使得蜂鳴器發(fā)聲。

整體流程如下:

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

最終效果如下:

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

可以看到,當(dāng)我靠近開發(fā)板時(shí),紅外感應(yīng)器立即發(fā)送感應(yīng)信號(hào),進(jìn)而觸發(fā)蜂鳴器發(fā)聲。

WOW!一個(gè)簡(jiǎn)單的安防系統(tǒng)就這么完成了!

PS:最新版 Python 引擎庫(kù)能夠支持幾乎所有鴻蒙的外設(shè)接口,以及基礎(chǔ)浮點(diǎn)運(yùn)算。

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

Enjoy It!

代碼開源地址:

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

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5661

    瀏覽量

    104451
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1280

    瀏覽量

    54023
  • 紅外感應(yīng)器
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    8559

原文標(biāo)題:用鴻蒙開發(fā)板做一個(gè)報(bào)警器,超簡(jiǎn)單

文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    開鴻開發(fā)板深度體驗(yàn):從開源鴻蒙開發(fā)到AI場(chǎng)景實(shí)踐

    開鴻開發(fā)板KaihongBoard-3588S-SBCKaihongBoard-3576-SBC體驗(yàn)開源鴻蒙能力學(xué)習(xí)開源鴻蒙開發(fā)●●●搭載KaihongOS
    的頭像 發(fā)表于 07-03 17:03 ?276次閱讀
    開鴻<b class='flag-5'>開發(fā)板</b>深度體驗(yàn):從開源<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>到AI場(chǎng)景實(shí)踐

    聲光報(bào)警器電源線接線時(shí)如何確保安全

    聲光報(bào)警器工作原理是通過個(gè)電子電路來(lái)實(shí)現(xiàn)的。 當(dāng)報(bào)警器被觸發(fā)時(shí),電路會(huì)使個(gè)蜂鳴器發(fā)出聲音,
    的頭像 發(fā)表于 06-30 14:29 ?148次閱讀

    用芯嶺技術(shù)XL433接收發(fā)射芯片開發(fā)的火災(zāi)報(bào)警器

    門禁、傳感數(shù)據(jù)傳輸?shù)鹊凸膱?chǎng)景。 這是客戶用我們的射頻芯片開發(fā)的辰西科技火災(zāi)報(bào)警器規(guī)格如下: 、產(chǎn)品特點(diǎn) 1.兼容現(xiàn)有315M接收模塊 2.5V MICRO USB供電 3.煙感和熱感同時(shí)檢測(cè) 4.
    發(fā)表于 06-04 11:14

    貝啟BQ3568HM 開發(fā)板被選用為 OpenHarmony 明星開發(fā)板

    經(jīng)開放原子開源基金會(huì)OpenHarmony社區(qū)官方測(cè)評(píng)評(píng)選,貝啟科技BQ3568HM開源鴻蒙開發(fā)板被正式選用為OpenHarmony明星開發(fā)板。BQ3568HM開源鴻蒙
    的頭像 發(fā)表于 05-25 00:22 ?572次閱讀
    貝啟BQ3568HM <b class='flag-5'>開發(fā)板</b>被選用為 OpenHarmony 明星<b class='flag-5'>開發(fā)板</b>

    【北京迅為】iTOP-RK3568開發(fā)板鴻蒙OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開發(fā)實(shí)操-HDF驅(qū)動(dòng)配置UART

    【北京迅為】iTOP-RK3568開發(fā)板鴻蒙OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開發(fā)實(shí)操-HDF驅(qū)動(dòng)配置UART
    的頭像 發(fā)表于 03-25 11:02 ?703次閱讀
    【北京迅為】iTOP-RK3568<b class='flag-5'>開發(fā)板</b><b class='flag-5'>鴻蒙</b>OpenHarmony系統(tǒng)南向驅(qū)動(dòng)<b class='flag-5'>開發(fā)</b>實(shí)操-HDF驅(qū)動(dòng)配置UART

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

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

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

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

    OpenHarmony默認(rèn)30秒熄屏太麻煩?觸覺智能鴻蒙開發(fā)板教你輕松取消

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

    鴻蒙機(jī)器人與鴻蒙開發(fā)板聯(lián)動(dòng)演示

    鴻蒙機(jī)器人與鴻蒙開發(fā)板聯(lián)動(dòng)演示,機(jī)器人的角色為迎賓機(jī)器人,開發(fā)板負(fù)責(zé)人賓客出現(xiàn)監(jiān)聽
    發(fā)表于 12-02 14:55

    OpenHarmony屬性信息怎么修改?觸覺智能RK3566鴻蒙開發(fā)板來(lái)演示

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

    如何在Linux系統(tǒng)實(shí)現(xiàn)屏幕旋轉(zhuǎn)?觸覺智能RK3568鴻蒙開發(fā)板演示

    本文介紹Linux系統(tǒng)實(shí)現(xiàn)屏幕旋轉(zhuǎn)的方法,以解決產(chǎn)品形態(tài)的不同的展現(xiàn)方式,觸覺智能EVB3568鴻蒙開發(fā)板演示,現(xiàn)已發(fā)布全新OpenHarmony5.0 Release固件!
    的頭像 發(fā)表于 11-19 23:42 ?992次閱讀
    如何在Linux系統(tǒng)實(shí)現(xiàn)屏幕旋轉(zhuǎn)?觸覺智能RK3568<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)板</b>演示

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

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

    電子圍欄報(bào)警器報(bào)警常見問題

    電子圍欄報(bào)警器種安全防護(hù)設(shè)備,廣泛應(yīng)用于住宅、商業(yè)、工業(yè)等場(chǎng)所,用于防止非法入侵和盜竊。然而,在使用過程中,可能會(huì)遇到各種問題,導(dǎo)致報(bào)警器無(wú)法正常工作或誤報(bào)。 1. 系統(tǒng)安裝問題 1.1 圍欄
    的頭像 發(fā)表于 09-24 09:15 ?1464次閱讀

    光柵報(bào)警器報(bào)警是什么原因

    光柵報(bào)警器種安全防護(hù)設(shè)備,通常用于防止非法入侵或保護(hù)特定區(qū)域。當(dāng)光柵報(bào)警器報(bào)警時(shí),可能有幾個(gè)原因。 1. 硬件故障 傳感
    的頭像 發(fā)表于 09-24 09:12 ?2311次閱讀

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

    大家期待已久的迅為RK3568開發(fā)板終于迎來(lái)了鴻蒙4.1系統(tǒng)的強(qiáng)勢(shì)支持!想知道如何實(shí)現(xiàn)快速開發(fā)學(xué)習(xí)嗎?跟著我們起來(lái)探索吧! 迅為RK3568開發(fā)板
    發(fā)表于 07-23 10:44