亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Python的車燈動畫效果數(shù)據(jù)化技術(shù)

        2022-08-03 06:51:12孫瑜
        汽車零部件 2022年7期
        關(guān)鍵詞:燈組數(shù)據(jù)類型車燈

        孫瑜

        常州星宇車燈股份有限公司,江蘇常州 213000

        0 引言

        LED憑借著亮度高、顏色飽和度高、低功耗、壽命長的特點逐漸取代鹵素?zé)舫蔀檐嚐粜袠I(yè)的主流。同時隨著車燈開始朝著智能化、個性化和人性化的方向發(fā)展,車燈上LED使用數(shù)量越來越多,對LED的控制要求也越來越高,這也無疑增加了軟件的工作量以及工作難度。因此,本文設(shè)計了一種基于Python的車燈動畫效果數(shù)據(jù)化技術(shù),結(jié)合Excel及Python的特點,將車燈動畫效果數(shù)據(jù)化。從而實現(xiàn)車燈效果可視化配置以及快速修改更新,大大減小了軟件的工作量以及工作難度,適用于以后更加設(shè)計復(fù)雜、難度更高的LED車燈項目。

        1 Excel動畫效果時序圖設(shè)計

        1.1 燈組分布簡圖制作

        根據(jù)結(jié)構(gòu)設(shè)計將燈組簡圖通過Excel進(jìn)行繪制,并進(jìn)行編號。圖1為燈組分布簡圖。

        圖1 燈組分布簡圖

        如圖1所示,灰色部分為后組合1燈組,黑色為后組合燈2燈組,淺灰色為后組合2的側(cè)標(biāo)部分。其中,1~36號燈組只需要點亮熄滅功能,37~51號燈組帶呼吸效果,因此需要使用PWM進(jìn)行控制。本文示例后組合燈共包含51組LED燈,將詳細(xì)呈現(xiàn)該后組合燈動畫效果數(shù)據(jù)化的過程。

        1.2 動畫效果時序圖制作

        動畫效果時序圖如圖2所示,按照燈組分布簡圖編號制作動畫效果時序圖,縱坐標(biāo)為燈組編號及燈名,橫坐標(biāo)為下一幀動畫的時間。圖中數(shù)字0表示燈組關(guān)燈,100表示完全點亮,1~99則用于需要控制燈組。此外可附上不同的顏色用于更直觀體現(xiàn)開關(guān)燈效果,使用顏色深淺表示值。此方案燈名命名規(guī)則如圖3所示。

        圖2 動畫效果時序圖

        圖3 燈名命名規(guī)則

        圖3中,字符為燈具功能名稱(此方案為位置燈,故命名為tail),數(shù)字1為該燈組所在后組合燈位置(后組合燈1用數(shù)字1表示,后組合2用數(shù)字2表示),數(shù)字2為該燈組所在IC驅(qū)動地址,處于相同IC地址使用同一數(shù)字表示,數(shù)字3在32位數(shù)據(jù)類型無法滿足數(shù)據(jù)存儲時進(jìn)行補充。

        2 Excel動畫效果時序表參數(shù)導(dǎo)入

        Jupyter Notebook是基于網(wǎng)頁的用于交互計算的應(yīng)用程序,可被應(yīng)用于全過程計算,包括開發(fā)、文檔編寫、運行代碼和展示結(jié)果等。Jupyter Notebook是以網(wǎng)頁的形式打開,可以在網(wǎng)頁頁面中直接編寫代碼和運行代碼,代碼的運行結(jié)果也會直接在代碼塊下顯示。如在編程過程中需要編寫說明文檔,可在同一個頁面中直接編寫,便于作及時的說明和解釋。

        文中將通過Jupyter Notebook工具演示車燈動畫效果數(shù)據(jù)化過程。

        如圖4所示,首先調(diào)用Openpyxl庫和NumPy庫,再通過Openpyxl庫導(dǎo)入Excel中數(shù)據(jù)存儲于Js_sheet中。

        圖4 庫導(dǎo)入

        之后通過Np.dtype定義數(shù)據(jù)類型,即Open_Type表示后組合燈動畫效果類型;Tail2_Type表示后組合燈2動畫效果類型;Tail1_Type表示后組合燈1動畫效果類型。其中“Name”為數(shù)據(jù)名,“Formates”為對應(yīng)數(shù)據(jù)類型。燈組1~36號只有開關(guān)狀態(tài),故每個燈組使用0.125 B;37~51號燈組為控制,故每個燈組需要0.875 B。數(shù)據(jù)“Time”表示下一幀動畫開始時間。初始化配置如圖5所示。

        圖5 初始化配置

        根據(jù)Excel中動畫效果時序圖,設(shè)置動畫效果總幀數(shù)(Frames_number),時間軸所在行(Time_row),動畫效果起始行(Time_start_col)以及每個數(shù)據(jù)起始行及行數(shù)。并通過Np.array創(chuàng)建后組合燈動畫效果矩陣(Open_Data),填充值為0。如下所示:

        Open_Data=np.array([0]*frames_number,dtype=Open_Type)

        3 動畫效果數(shù)據(jù)處理

        按照數(shù)據(jù)名及數(shù)據(jù)類型定義各個數(shù)據(jù)緩存值并初始化,如圖6所示。

        圖6 緩存數(shù)據(jù)初始化

        利用For語句遍歷每幀動畫效果,同時將數(shù)據(jù)賦值相應(yīng)數(shù)據(jù)中。

        (1)“Time”值可以直接讀取Js_sheet中第Time_row行數(shù)值。

        Open_Data[i][’time’]=js_sheet.cell(time_row,time_start_col+i).value

        (2)燈組1~36號通過判斷讀取值是否為0,根據(jù)燈組在該數(shù)據(jù)中位號進(jìn)行賦值并做相應(yīng)位移。例如Tail21賦值方式如下:

        #tail21數(shù)據(jù)獲取

        for j in range(tail21_row_number):

        if js_sheet.cell(tail21_row_start+j,time_start_col+i).value==0:

        u16Tail21=u16Tail21&(~(0x01<

        else:

        u16Tail21=u16Tail21|(0x01<

        Open_Data[i][tail21]=u16Tail21

        (3)燈組37~51號直接將讀取數(shù)據(jù)賦值,因值占0.875 B,為方便讀取故每次讀取之后位移8位。例如Tail51賦值方式如下:

        #tail151數(shù)據(jù)獲取

        for j in range(tail151_row_number):

        u8value=js_sheet.cell(tail151_row_seq[j],time_start_col+i).value

        if u8value<=100:

        u32Tail151=u32Tail151&(~(0xff<<(j*8)))

        u32Tail151=u32Tail151|(u8value<<(j*8))

        Open_Data[i][tail151]=u32Tail151

        按照上述步驟,即可將Excel中數(shù)據(jù)全部導(dǎo)入Open_Data矩陣中。

        4 動畫效果數(shù)據(jù)表生成

        動畫效果數(shù)據(jù)表生成步驟為:

        (1)定義后組合燈1(Tail1_Data)和后組合燈2(Tail2_Data)數(shù)據(jù)矩陣以及用于存放后組合1和后組合2的重復(fù)數(shù)據(jù)的數(shù)組(list_tail1_del,list_tail2_del)。

        Tail1_Data=np.array([0]*frames_number,dtype=Tail1_Type)

        Tail2_Data=np.array([0]*frames_number,dtype=Tail2_Type)

        list_tail2_del=[]

        list_tail1_del=[]

        (2)從Open_Data數(shù)據(jù)矩陣中后組合1和后組合2數(shù)據(jù)分別存儲在Tail1_Data和Tail2_Data中。

        (3)通過遍歷方式將Tail1_Data和Tail2_Data中重復(fù)數(shù)組序號分別存放在list_tail1_del和list_tail2_del中。

        (4)刪除Tail1_Data和Tail2_Data重復(fù)數(shù)組,生成后組合燈1最終數(shù)據(jù)矩陣(Tail1)和后組合燈2最終數(shù)據(jù)矩陣(Tail1)。

        Tail2=np.delete(Tail2_Data,list_tail2_del,0)

        Tail1=np.delete(Tail1_Data,list_tail1_del,0)

        (5)將最終生成的動畫效果數(shù)據(jù)打印出,并將燈組數(shù)據(jù)轉(zhuǎn)換為十六進(jìn)制便于燈具軟件調(diào)用生成數(shù)據(jù)表。

        后組合2動畫效果數(shù)據(jù)打印方式如下:

        tail2_num=Tail2.size

        print(’尾二動畫數(shù)據(jù)量:%i%tail2_num)

        print(*************尾二動畫數(shù)據(jù)表*************)

        for cell in Tail2:

        print({%i%(cell[time]-offset_time),end=,)

        print(0x%04x%cell[tail21],end=,)

        print(0x%02x%cell[tail22],end=,)

        print(0x%08x%cell[tail231],end=,)

        print(0x%02x%cell[tail232],end=)

        print(},)

        后組合1動畫效果數(shù)據(jù)打印方式如下:

        tail1_num=Tail1.size

        print(尾一動畫數(shù)據(jù)量:%i%tail1_num)

        print(*************尾一動畫數(shù)據(jù)表*************)

        for cell in Tail1:

        print({%i%(cell[time]-offset_time),end=,)

        print(0x%02x%cell[tail11],end=,)

        print(0x%02x%cell[tail12],end=,)

        print(0x%02x%cell[tail13],end=,)

        print(0x%02x%cell[tail14],end=,)

        print(0x%08x%cell[tail151],end=,)

        print(0x%08x%cell[tail152],end=,)

        print(0x%04x%cell[tail153],end=)

        print(},)

        最終生成動畫效果數(shù)據(jù)表如圖7和圖8所示。

        圖7 后組合2動畫效果數(shù)據(jù)表

        圖8 后組合1動畫效果數(shù)據(jù)表

        將生成數(shù)據(jù)導(dǎo)入相應(yīng)燈具軟件之中,并根據(jù)Tail1和Tail2數(shù)據(jù)類型編寫對應(yīng)解析代碼,即可直接使用動畫效果數(shù)據(jù)表。

        5 結(jié)束語

        本文基于Python和Excel設(shè)計了一種可以將車燈動畫效果數(shù)據(jù)化的技術(shù),利用Excel可以更加直觀地設(shè)計修改動畫效果,之后生成的數(shù)據(jù)也能確保正確性和有效性。后期動畫效果更新或者維護(hù),僅需調(diào)整Excel中動畫效果圖以及相應(yīng)配置參數(shù),即可實時生成最新動畫效果參數(shù)表,直接導(dǎo)入燈具軟件中編譯即可,這大大節(jié)省軟件工程師的工作量及項目時間。對于目前越來越復(fù)雜的LED車燈設(shè)計,該技術(shù)也有極大的優(yōu)勢。該技術(shù)方案已應(yīng)用于實際車燈項目,測試及使用表現(xiàn)良好,表明了該設(shè)計具有實用性和可靠性。

        猜你喜歡
        燈組數(shù)據(jù)類型車燈
        詳談Java中的基本數(shù)據(jù)類型與引用數(shù)據(jù)類型
        如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
        南非的車燈會說話
        華人時刊(2019年13期)2019-11-26 00:54:38
        燈會廟市嘉年華 歡樂共享中國年
        單定時器控制智能彩燈系統(tǒng)
        電子世界(2018年21期)2018-11-22 02:24:04
        形式美與自貢彩燈設(shè)計
        建材與裝飾(2018年6期)2018-02-14 01:01:31
        車燈
        云中仙鶴燈組
        STP與無線調(diào)車燈顯設(shè)備結(jié)合技術(shù)探討
        車燈:“明眸”方能“善睞”
        汽車科技(2014年6期)2014-03-11 17:46:25
        综合网在线视频| 国产午夜精品av一区二区麻豆 | 亚洲狠狠婷婷综合久久| 国产精品一区二区三区精品| 久久亚洲精品中文字幕蜜潮| 久久久国产精品| ā片在线观看免费观看| 日韩av在线毛片| 国产av一区麻豆精品久久| 中文字幕无码乱人伦| 国语自产偷拍精品视频偷| 国产精品偷伦免费观看的| 饥渴少妇一区二区三区| 久久精品网站免费观看| 亚洲精品乱码久久久久久蜜桃图片| 亚洲第一无码精品久久| 亚洲av成人无网码天堂 | 狠狠躁夜夜躁人人躁婷婷视频| 成人无码午夜在线观看| 中文字幕在线人妻视频| 女同视频一区二区在线观看| 国产激情久久久久影院老熟女| 亚洲日韩一区二区一无码| 丁香婷婷激情俺也去俺来也| 亚洲av精二区三区日韩| 丰满岳妇乱一区二区三区| 久久男人av资源网站无码| 91国内偷拍精品对白| 成人做爰69片免费看网站野花| 乌克兰少妇xxxx做受6| 国产精品一区二区三密桃| 亚洲成人av在线第一页| 日本道精品一区二区三区| 狠狠丁香激情久久综合| 天堂网av在线免费看| 无码人妻精品一区二区三区9厂| 少妇高潮喷水正在播放| 国产女主播福利一区在线观看| 亚洲综合网国产精品一区| 无码av免费精品一区二区三区 | 一区二区二区三区亚洲|