劉家寶
近些年來,隨著科技尤其是物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,家庭中的智能電器越來越多,它們能夠根據(jù)家中的實際狀況,自動開關(guān)或進行調(diào)整,使用起來非常方便。這些電器設(shè)備只是普普通通的硬件,怎么會這么聰明?怎么會有感知判斷的能力?它們是如何做到的呢?筆者將以“會聽話的風扇——聲控智能風扇”這個項目的實現(xiàn)為例,來回答這些問題。
聲控智能風扇,當對著它說“開”時,風扇開始轉(zhuǎn)動;再對它說“關(guān)”,風扇停止轉(zhuǎn)動。這是使用者操作后直觀的感受。
從聲控智能風扇角度來說,它能夠聽到外界的聲音,聽到后能控制自己的開和關(guān)。因此,要實現(xiàn)這個智能風扇,需要解決怎樣讓風扇聽到外界的聲音和風扇獲取指令決定開還是關(guān)這兩個問題。
怎樣讓風扇聽到外界的聲音?人是通過耳朵來獲取外界聲音的,在物聯(lián)網(wǎng)技術(shù)應用中,物體是通過各種傳感器來感知世界的,因此可以借助聲音傳感器來讓風扇獲取外界的聲音。
風扇獲取指令后如何做出開、關(guān)的命令?物體其實是沒有智能的,它的智能是人給予的,智能硬件設(shè)備是通過人編寫的程序作出決定的,因此智能的核心在于算法,在于編寫的程序。
1.明確聲控智能風扇工作的具體流程
明確了聲控智能風扇工作的整個流程,其實也就確定了聲控智能風扇的算法。
聲控智能風扇收集當前環(huán)境聲音音量值,據(jù)此來判斷開、關(guān),接著讓風扇轉(zhuǎn)動或者停止,這個過程一直在重復執(zhí)行著。
2.聲控智能風扇的輸入、輸出
聲控智能風扇獲取外界聲音后作出反應,因此聲控智能風扇的輸入是當前聲音音量值;作出的反應是風扇轉(zhuǎn)還是停,因此聲控智能風扇的輸出為風扇的轉(zhuǎn)速。以Python語言為例,使用input語句輸入聲音的具體數(shù)值,數(shù)值越大,聲音越強,使用print語句輸出風扇的轉(zhuǎn)速。
聲控智能風扇的工作過程中,一直在接收當前工作環(huán)境下的音量值,判斷后,輸出轉(zhuǎn)速值,重復執(zhí)行這個操作,沒有停止的時候,除非拔掉電源。因此,風扇的工作過程是一個沒有結(jié)束條件的循環(huán)。在Python語言中可以使用while條件循環(huán),且循環(huán)條件一直為真,用偽代碼表示如下:
3.判斷風扇的開和關(guān)
風扇什么時候開、什么時候關(guān),需要確定風扇的開、關(guān)條件。
聲控智能風扇打開的條件是獲取的當前聲音音量值高于標準值(無指令時環(huán)境的聲音音量值),聲控智能風扇關(guān)閉的條件也是獲取的當前音量值高于標準值的時候,用偽代碼表示如下:
為了便于后面閱讀和理解程序,統(tǒng)一變量名,當前音量值用變量x來存儲(x類型為整型),音量標準值為20,速度變量名為v(值為0表示不轉(zhuǎn),值為100表示轉(zhuǎn))。用Python語言描述風扇工作過程(本文代碼均用Python語言描述),參考程序代碼如下:
程序運行調(diào)試,驗證發(fā)現(xiàn)問題,轉(zhuǎn)速值一直為0沒有變化,問題出在哪里?
聲控智能風扇開和關(guān)的判斷條件是相同的,音量值高于標準值時,風扇開和關(guān)的條件都滿足,兩條給風扇速度的語句都執(zhí)行了,無法區(qū)分是轉(zhuǎn)還是停?;叵腼L扇工作過程,音量值第一次高于標準值時,風扇轉(zhuǎn),第二次停,第三次轉(zhuǎn),第四次停……我們可以發(fā)現(xiàn)這個規(guī)律:當音量值高于標準值的時候,奇數(shù)次轉(zhuǎn),偶數(shù)次停,需要記錄次數(shù)。
1.Python編程完成風扇的程序
至此,聲控智能風扇程序部分完成了,參考代碼如下(代碼不唯一):
2.實際產(chǎn)品中輸入、輸出
將程序代碼中input輸入當前聲音音量值的語句改為由聲音傳感器自動獲取,通過聲音傳感器獲取當前環(huán)境標準值,替換程序中設(shè)定的標準值20,再將print輸出風扇速度改為給電機一個電流,可以借助例如Arduino這類的開源硬件,將聲音傳感器、風扇電機與Arduino連接起來,將程序代碼灌入硬件中,就可以看到實際效果。
了解了聲控智能風扇智能的核心和實現(xiàn)過程,那么,溫控智能風扇、光控智能燈等智能設(shè)備是怎么做出來的、怎么會這么聰明、怎么會感知判斷等問題,也就能回答了。
對著聲控智能風扇說“開”,它真的能聽懂意思嗎?其實不然,根據(jù)編寫的代碼,它只是通過聲音傳感器獲取聲音,并沒有理解“開”這個語音的意思,第一次對著它說“關(guān)”,同樣也會轉(zhuǎn)起來。要想讓聲控風扇真正理解“開”這個語音,還得加上語音識別技術(shù)。
隨著人工智能時代的到來,生活中的智能設(shè)備會越來越聰明,功能會越來越強大,使用會越來越便捷??萍几淖兾磥?,讓我們一起期待更加美好的未來吧!
(責任編輯:白玉磊)