精品国产Av无码久久久蜜臀-免费看a级淫秽真实动作衫视频-人妻无码一区二区三区免费视频-奶好大 好长 好紧免费视频

logo

【開源獲獎案例】隔空手勢識別測試系統(tǒng)

                ——來自迪文開發(fā)者論壇

本期為大家推送迪文開發(fā)者論壇獲獎開源案例——隔空手勢識別測試系統(tǒng),工程師采用7英寸COF智能屏,通過T5L OS核與 PAJ7620U2手勢識別傳感器進行數(shù)據(jù)交互,不需要使用任何按鍵,只需將手貼近傳感器即可進入菜單系統(tǒng)控制屏幕,實現(xiàn)上、下、左、右、貼近、遠離、左旋轉(zhuǎn)、右旋轉(zhuǎn)、揮手9種手勢效果。不一樣的屏幕交互體驗,推薦大家前來觀看!

 

【演示視頻】


    完整開發(fā)資料含迪文屏DGUS工程資料與C51代碼,獲取方式:

1. 前往迪文開發(fā)者論壇獲取:http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=9911&extra=page%3D1

2. 微信公眾號中回復(fù)“隔空手勢識別”獲取。


UI素材展示


UI1

UI2


【UI開發(fā)示例


 UI開發(fā)示例

【C51工程設(shè)計】


T5L OS核與PAJ7620U2手勢識別傳感器進行數(shù)據(jù)交互,檢測當前的手勢,判斷當前顯示的圖片和翻頁顯示的圖片,實現(xiàn)利用手勢來切換頁面的功能。參考代碼如下:

 

void select_operate(uint16_t gesrure_value)

{

    if(gesrure_value == GES_UP) //上

    {

        if(select_value >= 2)

        {

            select_value -= 2;

        }

        dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);

    }

    else if(gesrure_value == GES_DOWN) //

    {

        if(select_value <= 1)

        {

            select_value += 2;

        }

        dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);

    }

    else if(gesrure_value == GES_LEFT) //左

    {

        if(select_value % 2 == 1)

        {

            select_value -= 1;

        }

        dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);

    }

    else if(gesrure_value == GES_RIGHT) //右

    {

        if(select_value % 2 == 0)

        {

            select_value += 1;

        }

        dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);

    }

}

 

void turning_operate(uint16_t gesrure_value)

    {

        uint16_t i = 0;

        uint8_t turning_mode = 0;       //翻頁模式,0上,1下,2左,3右

        uint16_t turning_count = 0;     //翻頁最終次數(shù)

        if(gesrure_value == GES_UP || gesrure_value == GES_DOWN || gesrure_value == GES_LEFT || gesrure_value == GES_RIGHT)

    {

        if(gesrure_value == GES_UP) //上

        {

            turning_mode = 0;

            turning_count = 48;

        }

        else if(gesrure_value == GES_DOWN) //下

        {

            turning_mode = 1;

            turning_count = 48;

        }

        else if(gesrure_value == GES_LEFT) //左

        {

            turning_mode = 2;

            turning_count = 80;

        }

        else if(gesrure_value == GES_RIGHT) //右

        {

            turning_mode = 3;

            turning_count = 80;

        }

        if(turning_current_image == 0 || turning_current_image == 2)

        {

            turning_current_image = 1;

        }

        else

        {

            turning_current_image = 2;

        }

        for(i = 0;i <= turning_count;i++)

        {

            switch(turning_mode)

            {

                case 0:

                    dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 0, 480 - i * 10);

                    t5l0_sys_delay_ms(20);

                    if(turning_last_image != 0)

                    {

                        dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0, 0 - i * 10);

                    }

                    break;

                case 1:

                    dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 0, -480 + i * 10);

                    t5l0_sys_delay_ms(20);

                    if(turning_last_image != 0)

                    {

                        dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0, 0 + i * 10);

                    }

                    break;

                case 2:

                    dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 800 - i * 10, 0);

                    t5l0_sys_delay_ms(20);

                    if(turning_last_image != 0)

                    {

                        dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0 - i * 10, 0);

                    }

                    break;

                case 3:

                    dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, -800 + i * 10, 0);

                    t5l0_sys_delay_ms(20);

                    if(turning_last_image != 0)

                    {

                        dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0 + i * 10, 0);

                    }

                    break;

             }

            t5l0_sys_delay_ms(20);

        }

        turning_last_image = turning_current_image;

    }

}