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成像在顱內動脈瘤早期診斷中的應用效果比較
主站蜘蛛池模板: 亚洲AV人人澡人人双人| 伊人AV天堂| 92午夜福利影院一区二区三区| 国产美女无遮挡免费视频| 欧美一区福利| 久久毛片免费基地| 色播五月婷婷| 欧美日韩在线成人| 一级爱做片免费观看久久| 亚洲欧美国产五月天综合| 亚洲男人的天堂在线| 国产精品制服| 91九色国产porny| 国产成人午夜福利免费无码r| 成年看免费观看视频拍拍| 久久久黄色片| 成人日韩视频| 国产成人高清精品免费软件| 亚洲va精品中文字幕| 黄色一级视频欧美| 久久久精品国产亚洲AV日韩| 青青草原国产免费av观看| 精品一区二区三区自慰喷水| 幺女国产一级毛片| 99精品高清在线播放| 久久综合伊人77777| 91精品国产自产在线老师啪l| 青青草国产免费国产| 99精品国产电影| 伊人色天堂| 国产午夜人做人免费视频| 久久午夜夜伦鲁鲁片不卡| 亚洲第一页在线观看| 88av在线播放| 欧美黄网在线| 欧美中文字幕无线码视频| 女人18一级毛片免费观看| 精品少妇人妻一区二区| 91啪在线| 宅男噜噜噜66国产在线观看| 高清久久精品亚洲日韩Av| 亚洲最大看欧美片网站地址| 国产成人精品亚洲77美色| 综合亚洲色图| 91在线精品麻豆欧美在线| 中文成人在线| 亚洲一区第一页| 亚洲中字无码AV电影在线观看| 在线日本国产成人免费的| 亚洲精品国产日韩无码AV永久免费网| 伊人91在线| 青青青亚洲精品国产| 国产黄色片在线看| 男人天堂伊人网| 啪啪永久免费av| 国产日本一线在线观看免费| 午夜欧美在线| 8090成人午夜精品| 热久久综合这里只有精品电影| 国产jizz| 国产真实二区一区在线亚洲| 欧美日韩免费观看| 啪啪免费视频一区二区| 东京热av无码电影一区二区| 国产乱子伦精品视频| vvvv98国产成人综合青青| 婷婷午夜天| 欧美国产菊爆免费观看| 亚洲精品国产成人7777| 精品久久高清| 丝袜美女被出水视频一区| 欧美黄色网站在线看| 精品无码一区二区三区电影| 少妇极品熟妇人妻专区视频| 国产色偷丝袜婷婷无码麻豆制服| 99精品国产电影| 国产激爽爽爽大片在线观看| 精品国产成人a在线观看| 福利片91| 国产精品精品视频| 国产偷国产偷在线高清| 国产91色|