專利名稱:一種帶呼吸效果的觸控式旋轉流水燈的制作方法
技術領域:
本發(fā)明涉及電子產(chǎn)品領域,尤其涉及一種手機上帶呼吸效果的觸控式旋轉流水 燈。
背景技術:
傳統(tǒng)的手機燈光多半是跑馬燈一類的開關控制,單個燈的狀態(tài)非關即開,狀態(tài)很 是單一,整個燈光系統(tǒng)的控制流程也比較單一。呼吸燈芯片是最近才在手機上應用的控制燈光效果的器件,有了它,燈的狀態(tài)將 再也不是單一的開關亮滅,而是從熄滅到全亮或從全亮到熄滅的線性變化過程。真正實現(xiàn) 了呼吸效果,它使整個燈光系統(tǒng)的播放顯得更加平緩流暢,例如在MP3音樂播放的時候,當 音樂節(jié)奏較慢的時候,可以把呼吸燈控制成均勻的呼吸效果,當音樂節(jié)奏較快的時候,可以 把呼吸燈控制成急促的呼吸效果。所以有了呼吸燈,燈光的顯示效果將大大改善。觸摸屏是大家司空見慣的電子設備,以前常常和液晶顯示聯(lián)系在一起,作為人機 輸入設備。這里第一次把它和燈光特效聯(lián)系在一起,作為燈光特效非常重要的控制輸入設 備,它的優(yōu)點顯而易見。首先它是很多消費類電子產(chǎn)品的標配,無須添加其他任何元器件, 大大節(jié)省了成本;其次它大大擴大了輸入方式的靈活性與多樣性,iPhone就是一個很好的 例子,觸屏幾乎無所不能,畫圈,畫線,畫點等等只要算法合理就能構造出意想不到的效果。 這里僅僅涉及到畫圈的算法。
發(fā)明內(nèi)容
針對已有技術的不足,本發(fā)明的目的在于提供一種帶呼吸效果的觸控式旋轉流水 燈,采用呼吸燈光芯片與觸摸屏輸入的組合,給燈光顯示帶來意想不到的效果,大大推進了 手機以往傳統(tǒng)的燈光效果。本發(fā)明的發(fā)明目的是通過如下技術方案實現(xiàn)的一種帶呼吸效果的觸控式旋轉流水燈,包括手機面板和流水燈,在手機面板上設 有22顆led燈,上下各三顆,左右各八顆,由該22顆燈構成一個矩形聯(lián)通管。八路可單獨 控制的呼吸燈芯片SC620 —片,M0SFET管4片,平臺自帶觸控芯片MT6301 —片。所述的0 號燈到7號燈這八顆燈由SC620控制,同時11號燈到18號燈這八顆燈也由SC620控制,從 0號到7號燈設置總開關M0SFET0,從11到18號燈設置總開關M0SFET2,這樣就可以分開控 制了,M0SFET0和M0SFET2不能同時打開,只能開其中一個。同理8號到10號燈由PMU的 RGB 口控制,19號到21號燈也由該RGB 口控制,同時8號到10號燈由M0SFET1總開關控制, 19號到21號燈由M0SFET3總開關控制。所述的帶有尾巴的流星從矩形管一邊流到鄰邊的過程中,拐角處兩邊燈光無縫連接。當手指在觸摸屏上任意觸動時,都會帶動面板上相應的四顆燈進行流行式運動, 其中最頭一顆是“彗核”(頭燈),后面三顆是“彗尾”(尾燈),就猶如流星劃過夜空時拖拽出慧尾一樣的效果,而當該燈靜止不動的時候,該尾巴又要慢慢地縮短并消失。單看每顆燈 都要有呼吸燈中呼的效果,即從最亮漸漸變暗,直至熄滅的過程。
圖1為本發(fā)明的結構示意圖;圖2為本發(fā)明流水燈的狀態(tài)效果圖;圖3為本發(fā)明直角坐標系劃分成四個象限示意圖;圖4為本發(fā)明另一種坐標系示意圖。1-手機面板 2-燈
具體實施例方式下面結合附圖進一步說明本發(fā)明是如何實現(xiàn)的實施例如圖1所示,本發(fā)明包括手機面板1和流水燈2,形參” drip_site”是這22顆燈 的ID號,我們給每顆燈都分配了一個ID號,分別從0到21,代表了這22顆燈。例如drip_ site傳進來是”3”,那么就代表現(xiàn)在流星位于三號燈的位置,這樣流星的任意位置就可以用 drip_site 來描述了。再看形參” drip_dir”,這個參數(shù)描述了現(xiàn)在流星的運動方向或流星靜止前的運動 方向。如圖2所示,我們規(guī)定順時針方向為負(0),逆時針方向為正(1),這個”drip_dir”其 實是為了描述尾巴而設計的,舉例來說當流星處于”3”號位時,他如果正從上往下運動(此 時逆時針,drip_dir等于1),那么這條尾巴就應該緊跟在流星上方,如果正從下往上運動 (此時順時針,drip_dir等于0),那么這條尾巴就應該緊跟在流星下方。最后看一下” drip_State”,該參數(shù)描述了流星是處于運動狀態(tài)還是漸漸熄滅的狀 態(tài),我們規(guī)定當流星處于運動狀態(tài)時,尾巴最長,后面拖三顆尾燈(尾燈亮度依次變暗),此 時”drip_State”為0 ;當流星剛剛由運動轉為靜止時,尾巴縮短一點,后面拖兩顆尾燈(尾 燈亮度依次變暗,更暗了),此時” drip_State”為1 ;再接著尾巴繼續(xù)縮短,后面拖一顆尾 燈(尾燈亮度最暗了),此時” drip_State”為2 ;最后完全靜止,后面一顆尾燈都沒了,此 時,,drip_state” 為 3。至于參數(shù)” drip_dim”,在為每顆燈產(chǎn)生呼吸效果的時候,發(fā)揮了非常重要的作用, 將在后面描述。由此可見”drip_site”,”drip_dir”,”drip_state”這三個參數(shù)就可以把“水滴式 流水燈“的每一種狀態(tài)效果都描述出來。我們知道驅(qū)動是和硬件密切相關的,所以下面我們來看看這22盞燈的硬件是如 何連接的,以便下面著手寫驅(qū)動。大家可能有疑問了 呼吸燈芯片SC620不是只有獨立的八路控制嗎,現(xiàn)在要獨立 控制22盞燈只用一塊SC620,是怎么做到的?為了節(jié)約成本,硬件上引入了 PMU上的RGB燈,該三顆燈是由PMU內(nèi)部的PWM控制 的。這樣SC620的八顆燈加上三顆RGB燈也才11顆燈,怎么才能達到22顆等呢?此時我 們硬件上又引入了 M0SFET對稱控制。
如圖2所示0號燈到7號燈這八顆燈由SC620控制,同時11號燈到18號燈這八顆 燈也由SC620控制,這樣不是會有沖突嗎?不會,我們給0到7號燈加個總開關M0SFET0,給 11到18號燈也加一個總開關M0SFET2,這樣就可以分開控制了,缺點是M0SFET0和M0SFET2 不能同時打開,只能開其中一個。同理8到10號燈由PMU的RGB 口控制,19到21也由該 RGB 口控制,同時8到10號燈由M0SFET1總開關控制,19到21號燈由M0SFET3總開關控制。這一硬件布局解決了“難點1”:帶有尾巴的流星從矩形管一邊流到鄰邊的過程中, 拐角處兩邊燈光無縫連接問題。比如當流星正從左向右運動至9號燈位置時,分別要把9, 8,7,6這四顆燈點亮,其中9號是流星,8,7,6尾燈。此時只要把M0SFET0和M0SFET1打開, 分別控制相應的SC620和PMU即可。(1)代碼編寫1)首先構建一個22維的數(shù)組” pipe_array[22] ”,依次對應22顆燈,根據(jù)四個行 參” drip_site”,“drip_dir”,“drip_state”,“drip_dim” 的要求把對應要點亮的燈的亮度 填寫進去。于是我們得到數(shù)組元素為0的表示熄滅,元素不為0的表示點亮,并且數(shù)值的大 小反映了燈的亮度。這其實就是一個編碼器。2)有了編好的碼(22維數(shù)組),下面就好辦多了,首先檢測a,b,c, d四邊是否有 亮燈(因為每邊的驅(qū)動控制方法不一樣)。3)沒亮燈的邊,直接M0SFET關掉,有亮燈的邊,打開M0SFET,把該邊在pipe_ array [22]中對應的一段數(shù)據(jù)寫入SC620或PMU的寄存器。(2)其他這里我們再次提到第四個行參” drip_dim”,看他在呼吸效果中發(fā)揮的作用。假設 有一條強度為{30,12,6,2}的流星及其拖起的尾巴從3號燈由上往下流過,那么3號燈的 亮度會由30降至12再降至6再降至2,最后降至0熄滅,可見由最亮至最暗也就四個等級, 不是很連貫,呼的效果不明顯,但如果再插入四個等級,形成八個等級的細分{30,12,8,6, 4,2,1},呼的效果將好的多,于是我們把插入的數(shù)提取出來另成數(shù)組{30,8,4,1}由” drip_ dim”控制,當drip_dim等于0的時候給對應的燈打入{30,12,6,2},當drip_dim等于1的 時候,給對應的燈打入{30,8,4,1},兩者交替進行,八個等級的細分亮度便出來了。(3)控制模塊(動作引擎)動作引擎主要是參考流星上次的燈位,根據(jù)這次采樣到觸碰點的位置,依據(jù)一定 算法得出流星目的燈位,來推算出流星這次的物理狀態(tài)參數(shù)(落點位置,運動方向,運動速 度,以及尾燈狀態(tài))。由此我們需要如下工作條件1)流星上次的燈位??梢杂靡粋€全局變量tpled_run_Site來記錄和獲取。2)根據(jù)這次采樣到觸碰點的位置,依據(jù)一定算法得出流星目的燈位,這是本項目 的難點,涉及到一些算法,下面具體分析QVGA 240*320 觸摸液晶,由函數(shù) touch_panel_read_adc(&tpx,&tpy);獲得坐標 (X,Y),左上角(0,0),右下腳(240,320).由于功能需求手指圍繞觸屏中心點畫圓,流水燈 旋轉流動。因此需要把以X,Y表示的直角坐系標轉換為以0-360度表示的極坐標系。轉換 過程如下首先把直角坐標系劃分成四個象限Ql,Q2,Q3,Q4,如圖3所示。這四個區(qū)域有各自的一個基準原點。Q1象限原點a (120,159),Q2象限原點b (119,159),Q3象限原點c (119, 160),Q4 象限原點 d(120,160)。檢測到的任何一個觸摸點,首先把他分分類,看他落在哪個象限內(nèi),這個應該很簡 單Ql :120 < = X< = 239,0 <= Y<= 159 ;Q2 :0 < = X < = 119,0 < = Y < = 159 ;Q3 0 < = X < = 119,160 < = Y < = 319 ;Q4 120 < = X < = 239,160 < = Y < = 319。然后 取該點相對應于自身原點的x,y絕對值,例如圖中的D點|x| = x-120, y = 159_y。再看另一種坐標系,如圖4所示我們把一個圓分成22份,每一份都是一塊扇形 區(qū),都代表PCB板上的一顆燈。其中9號燈和20號燈占30度,其余燈各占15度等份。當 觸碰點落到1號扇形區(qū)時,則一號燈點亮,當落到9號扇形區(qū)時,則九號燈點亮,依次類推。前面講了一大堆坐標系的東西,而且我們明顯發(fā)現(xiàn)用角座標來表示每一顆燈的落 點要來得簡單的多。那么我們怎么把由觸摸工C得到的直角坐標系轉換成簡單明了的角 坐標系呢。這里引入了正切三角函數(shù)(tan Q = y/x),我們把0°,15°,30°,45°,60°, 75°,90°這些角度的正切值先用計算器算出來0,0.268,0.577,1,1.732,3. 732,①。那我 們只要把某點在直角坐標系中的縱坐標除以橫坐標,得到的值就是該點的正切值,用查表 的方式看這個值落在上面哪個數(shù)值區(qū)間內(nèi),也即得出了觸碰點落在哪個扇形區(qū)內(nèi),完成了 直角坐標轉換。大體思想便是這樣,但在具體的算法和數(shù)據(jù)處理上還有一些注意的地方。比如說 (1)把第一象限的查表情況分析好后,其他三個象限就無須具體分析,只需互相做鏡象就好 了,因為互相對稱的。(2)正切值從0度到45度都是小于一的,因為從觸摸IC讀到的坐標 值都是整數(shù),y/x以后得到的值絕不會是零點幾,而是會全部被取整為零,這樣就和要求不 符了。解決辦法是這樣的,把縱坐標的值左移八位再除以橫坐標,即經(jīng)數(shù)據(jù)處理后的正切值 統(tǒng)統(tǒng)乘以256倍系數(shù)。這樣小于45度的角也將被一一放大提取出來,但是正切表也將放大 為0,68,147,256,443,995,⑴。(3)在這張正切表中有一個數(shù)值非常特殊“⑴”,即90度,觸 碰點全落在Y軸上,x為零,y/x當然無窮大,但在計算機上無法用數(shù)值表示,所以這種極值 角需拉出來分類討論,區(qū)別對待。MTK平臺已提供如下兩個函數(shù)touch_panel_read_adc(&tpx,&tpy);touch_panel_adc_to_coordinate(&tpx,&tpy);第一個函數(shù)讀取由觸摸IC采樣的最原始模擬量信號,第二個函數(shù)把剛才的模擬 量轉化為真正有用的直角坐標,左上角(0,0),右下角(239,319)。當以上條件都滿足時,我們可以構造出如下接口函數(shù)kal_uint8 tp_coord_to_block (kal_uint 16 tp_x, kal_uint 16 tp_y) ;fiiA^f 參是由touch_panel_adc_to_coordinate(&tpx,&tpy)得到的觸碰點坐標,返回的結果是0 到21之間的任一整數(shù),猜也能猜到指的就是手機面板上的22顆燈。3)根據(jù)上面兩個條件推算出流星這次的物理狀態(tài)參數(shù)(落點位置,運動方向,運 動速度,以及尾燈狀態(tài))運動方向的確定首先建立一個由22顆燈圍成的矩形模型,如圖1所示。舉一個 例子大家就明白了,假設流星上次燈位是0,而由觸碰點推出的目的燈位是3,那么很容易 推出方向是順時針,因為要經(jīng)過0- > 1- > 2- > 3。那有人問為什么不這樣走0- > 21- >
620- > 19- > 18—> 17- > 16- > 15- > 14- > 13- > 12- > 11- > 10- > 9- > 8- > 7- > 6- > 5- > 4- > 3,這樣走肯定是逆時針。但這樣走肯定是饒遠路了,所以我設計成就 近原則,22點平分11點一份,分不出遠近,那就犧牲一點10點。目的燈位與起始燈位的絕 對差值小于等于10點的走順時針方向,目的燈位與起始燈位的絕對差值大于等于12點的 走逆時針方向。有疑問哪里冒出來的“大于等于12點”,這是由于模型中0到21組成環(huán)行 聯(lián)通,“大于等于12點”是0到21的首尾銜接問題,它實際的燈位差也是10點。而真正燈 位差12的點不存在,最多也就差11點,11點為平分點不討論,屬于死區(qū),所以你的手指如果 按在這點將沒仍何反映,應為它是22份中的一份,再加上手一直在動,所以影響不是很大。落點位置的確定運動方向一旦確定,落點位置就好辦多了。舉個例子上次燈位 0,運動方向逆時針,在圖1很容易推出,這次的落點在1號燈位。若運動方向順時針,則這 次的落點在21號燈位。即無非是加一還是減一的問題。尾燈狀態(tài)的確定定義規(guī)定流星在運動三顆尾燈常亮(tplecLstate = 0),當流星 在原地不動,尾燈會慢慢減少熄滅(tplecLstate會經(jīng)歷1,2,3)。只要把上次燈位tpled_ run_site和目標燈位tpled_des_site做比較,若不相等tpled_state = 0表示流星在運 動,若相等則tpled_State++直至為3,表示尾燈慢慢減少熄滅過程。運動速度的確定這里定時器定時間隔為常量10mS,對于手指的機械運動來說已 經(jīng)是足夠了,手指運動快燈就運動快,手指運動慢燈就運動慢,所以燈的運動速度完全有手 指運動快慢決定。到目前為止,顯示接口函數(shù)所需的參數(shù)drip_site,drip_dir, drip_state全部到 齊,動作引擎得出的這三個參數(shù)做為行參對號入座傳遞給顯示接口函數(shù)。這樣,一套帶呼吸 效果的觸控式旋轉流水燈便大功告成了。呼吸燈光芯片與觸摸屏輸入的組合,往往可以給燈光顯示帶來意想不到的效果, 大大推進了手機以往傳統(tǒng)的燈光效果。設計者根據(jù)不同的應用場合,建立不同的算法模型和顯示機制。可以構造出很多 創(chuàng)意十足的燈光效果。單就觸摸屏自身的輸入手法可以說無窮無盡,不同的輸入指法背后 都是不同的算法,再加上燈光效果自身就是千變?nèi)f化絢麗十足,兩者結合往往可以碰撞出 意想不到的火花,帶呼吸效果的觸控式旋轉流水燈就是一個很好的模型。這些個性十足的動作類燈光效果不光可以作為單一的功能性演示,還可以融入進 開機,關機,待機進入,待機推出,屏保前奏,鈴聲,短信,音樂播放等與日常應用密切相關的 場合。最大發(fā)揮出呼吸燈光芯片與加速度傳感器的價值,使你每天都離不開它。
權利要求
一種帶呼吸效果的觸控式旋轉流水燈,包括手機面板和流水燈,其特征在于所述的在手機面板上設有22顆led燈,上下各三顆,左右各八顆,由22顆燈構成一個矩形聯(lián)通管。
2.根據(jù)權利要求1所述的一種帶呼吸效果的觸控式旋轉流水燈,其特征在于所述的 在手機面板還設有八路可單獨控制的呼吸燈芯片SC620 —片,MOSFET管4片,平臺自帶觸 控芯片MT6301 —片。
3.根據(jù)權利要求1所述的一種帶呼吸效果的觸控式旋轉流水燈,其特征在于所述的0 號燈到7號燈由SC620控制,11號燈到18號燈由SC620控制,從0號到7號燈設置總開關 M0SFET0,從11號到18號燈設置總開關M0SFET2,M0SFET0和M0SFET2不能同時打開,只能 開其中一個。
4.根據(jù)權利要求1所述的一種帶呼吸效果的觸控式旋轉流水燈,其特征在于所述的8 號燈到10號燈由PMU的RGB 口控制,19號到21號燈由RGB 口控制,8號到10號燈由M0SFET1 總開關控制,19號到21號燈由M0SFET3總開關控制。
5.根據(jù)權利要求1所述的一種帶呼吸效果的觸控式旋轉流水燈,其特征在于所述的 帶有尾巴的流星從矩形管一邊流到鄰邊的過程中,拐角處兩邊燈光無縫連接。
全文摘要
本發(fā)明公開了一種帶呼吸效果的觸控式旋轉流水燈,包括手機面板和流水燈,在手機面板上設有22顆LED燈,上下各三顆,左右各八顆,由該22顆燈構成一個矩形聯(lián)通管。八路可單獨控制的呼吸燈芯片SC620一片,MOSFET管4片,平臺自帶觸控芯片MT6301一片。所述的0號燈到7號燈由SC620控制,11號燈到18號燈也由SC620控制,從0號到7號燈設置總開關MOSFET0,從11到18號燈設置總開關MOSFET2,分別分開控制,MOSFET0和MOSFET2不能同時打開,只能開其中一個。同理8號到10號燈由PMU的RGB口控制,19號到21號由RGB口控制,同時8號到10號燈由MOSFET1總開關控制,19號到21號燈由MOSFET3總開關控制。本發(fā)明具有結構簡單、成本低等優(yōu)點。
文檔編號H05B37/02GK101813286SQ200910046328
公開日2010年8月25日 申請日期2009年2月19日 優(yōu)先權日2009年2月19日
發(fā)明者薛佳元 申請人:龍旗科技(上海)有限公司