999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

讓呼吸燈的效果更加真實

2017-04-06 21:46:13謝作如李琦
中國信息技術教育 2017年5期
關鍵詞:效果

謝作如 李琦

呼吸燈,顧名思義,就是燈光在單片機的控制下完成由亮到暗的逐漸變化,感覺像是在呼吸。呼吸燈廣泛應用于手機上,并曾經成為各大品牌手機的賣點之一。如果你的手機里有未處理的通知,如未接來電、未查收的短信等,呼吸燈就會不斷由暗到亮變化,像呼吸一樣有節奏,起到提醒的作用。

學習Arduino,呼吸燈是一個典型的案例。筆者編寫的《Arduino創意機器人》(人民郵電出版社出版)一書中就有“呼吸燈”一課,位于第一章的LED專題。通過研究呼吸燈效果,來學習Arduino的PWM輸出,并且學習Arduino的循環語句和全局變量。但從效果看,這還未達到理想的效果,因為燈光強弱的過渡不夠柔和。

為什么呼吸燈的效果不夠真實

《Arduino創意機器人》中是使用兩個循環來實現0到255和255到0的數值變換。程序是用ArduBlock編寫,參考代碼如圖1所示。

在這兩個循環中,變量K的值是遞增到255,然后再降到0。如何讓呼吸接近自然、真實?單純看代碼自然看不出什么。我們可以試著用Excel輸出從0到255再到0的一組數字,再用圖表畫出變量K的變化,如圖2所示。

這時,我們就能明顯看出線條是筆直的,成尖峰狀。這樣的數據變化,當然很難體現出“呼吸”這一張一弛的自然變化。那么,如何引入一個數學表達式,讓圖2的線條變得圓滑起來呢?

正弦函數的作用分析

在初中數學中,三角函數是一個重要的知識點,而正弦曲線就是一條圓滑的波浪線。嵌入式系統中許多應用都是對正弦函數進行采樣,得到按正弦規則變化的數組。舉個比較簡單的例子,如呼吸燈、警報聲等。

關于正弦函數,其定義如下:在直角坐標系中,給定單位圓,對任意角α,使角α的頂點與原點重合,始邊與x軸非負半軸重合,終邊與單位圓交于點P(u,v),那么點P的縱坐標v叫作角α的正弦函數,記作v=sin(α)。通常,我們用x表示自變量,即x表示角的大小,用y表示函數值,這樣我們就定義了任意角的三角函數y=sin(x),它的定義域為全體實數,值域為[-1,1]。

這段文字看起來有些專業,其實我們只需要了解一句話:在y=sin(x)的表達式中,不管x的值是什么,y的值總在-1到1之間,而且是小數。那么如何生成這組數據,并且數據呈現的線條是怎樣的,我們還是用Excel軟件來研究一下。

筆者先在Excel中產生0~360的一組角度數字,然后用RADIANS函數轉換為弧度,再用Sin函數輸出數據。因為Arduino的PWM在0和255之間,就乘以255,這樣得到了-255到255之間的數字,如下頁表1所示。

同樣用圖表來繪制(如下頁圖3)。看起來是不是很平滑啊?

至于如何將-255到255之間的數轉化為0~255的數,有幾種方案:

①取絕對值法。直接取絕對值,即使用ABS函數。這樣一來,繪出來的線條就變成了有圓頂的山丘狀,如圖4所示。

②數據映射法。將-255到255之間的數映射為0~255之間。采用的辦法也不復雜,除以2后,加上128即可,生成的數值如圖5所示。Arduino編程就更簡單了,可以直接調用map函數。

代碼編寫和效果實現

研究了正弦函數后,接下來就是編寫代碼了。Arduino中提供了radians、sin、int、abs、map等函數,因此寫這個表達式非常容易。這些函數的簡介如下。

radians:使用范例為radians(value)。將度數value轉換為弧度,如果不太在乎誤差,可以用“乘以3.14159再除以180”來替代。

sin:使用范例為sin(value)。返回角度value(radians形式)的三角函數sine值,數據類型為double。

int:使用范例為int(value)。返回向下取整為最接近value的整數。

abs:使用范例為abs(value)。返回value的絕對值,可以將負數轉正數。

map:使用范例為map(value, fromLow、fromHigh、toLow、 toHigh)。按照fromLow與fromHigh范圍,對等轉換value至toLow與toHigh范圍。

具體的參考代碼如圖6所示。

經過比較,直接采用絕對值形式的效果不如第二種數據映射的方式,在變暗的時候有跳動感。而方式2和方式3的表達式基本上是等價的,如表2所示。

需要強調的是,調試程序要善于利用串口輸出功能,即Serial.print。這樣可以幫助我們了解變量的數據變化,如圖7所示。

應用了正弦函數后,Arduino做出來的呼吸燈就很有“呼吸”的感覺了。當然,實現呼吸效果除了用單片機編程來實現外,也可以用模擬電路來實現。希望這個案例能讓大家更加深入了解數學知識在編程中的應用。

猜你喜歡
效果
按摩效果確有理論依據
保濕噴霧大測評!效果最驚艷的才20塊!
好日子(2021年8期)2021-11-04 09:02:46
笑吧
迅速制造慢門虛化效果
創造逼真的長曝光虛化效果
四種去色效果超越傳統黑白照
抓住“瞬間性”效果
中華詩詞(2018年11期)2018-03-26 06:41:34
期末怎樣復習效果好
模擬百種唇妝效果
Coco薇(2016年8期)2016-10-09 02:11:50
3D—DSA與3D—CTA成像在顱內動脈瘤早期診斷中的應用效果比較
主站蜘蛛池模板: 亚洲成aⅴ人片在线影院八| 精品欧美一区二区三区久久久| 中文字幕第4页| 精品第一国产综合精品Aⅴ| 香蕉网久久| 亚洲色图欧美| 女人一级毛片| 欧美性天天| 亚洲人成成无码网WWW| 在线综合亚洲欧美网站| 日本草草视频在线观看| 手机看片1024久久精品你懂的| 亚洲一道AV无码午夜福利| 国产美女主播一级成人毛片| 色悠久久久久久久综合网伊人| 午夜老司机永久免费看片| 欧美午夜在线视频| AV不卡国产在线观看| 国产美女91呻吟求| 亚洲男人天堂网址| 国语少妇高潮| 国产成人亚洲精品无码电影| 国产在线观看人成激情视频| 日韩中文字幕亚洲无线码| 成人蜜桃网| 精品久久人人爽人人玩人人妻| 国产喷水视频| 国产一区二区三区免费| 午夜高清国产拍精品| a色毛片免费视频| 欧美午夜一区| 久草视频精品| 亚洲精品国产精品乱码不卞 | 日韩欧美国产成人| 中文字幕亚洲精品2页| 国产成年无码AⅤ片在线 | 国产精品免费福利久久播放| 视频一本大道香蕉久在线播放 | 婷婷亚洲最大| 亚洲电影天堂在线国语对白| 亚洲欧美成人影院| 午夜福利视频一区| 思思热精品在线8| 国产福利在线免费观看| 午夜国产小视频| 欧美在线黄| 国产精品三级专区| AV天堂资源福利在线观看| 日韩中文无码av超清| 久久中文无码精品| 久久精品无码中文字幕| 91福利国产成人精品导航| 四虎免费视频网站| 日韩毛片免费| 亚洲国产日韩视频观看| 国产小视频在线高清播放| 免费福利视频网站| 啊嗯不日本网站| 亚洲伦理一区二区| 亚洲美女一区| 久久精品电影| 97人人做人人爽香蕉精品| 五月激情综合网| 狠狠做深爱婷婷综合一区| 久久久亚洲色| 亚洲精品图区| 丁香婷婷激情综合激情| 粗大猛烈进出高潮视频无码| 美女裸体18禁网站| 日韩在线永久免费播放| 中文字幕不卡免费高清视频| 午夜欧美在线| 亚洲国产欧美国产综合久久 | 丰满人妻中出白浆| 亚洲美女一区二区三区| 日韩在线欧美在线| 狠狠色综合网| 亚洲精品不卡午夜精品| 免费国产高清视频| 91九色最新地址| 国产va视频| 亚洲第一福利视频导航|