0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【开源】基于迪文屏的智能眼

迪文智能屏 2023-06-22 10:17 1176次阅读

——来自迪文开发者论坛

本次为大家推荐的迪文开发者论坛开源项目是一个很有意思的模拟人眼跟随运动的例程。工程师使用几张人眼图片素材,实现了眼珠运动、眨眼、人脸识别和跟随等功能,让我们一睹为快:

01

方案简介

1. UI图片素材

编者注:迪文智能屏是基于图片来完成UI开发的,可以便捷的实现各类显示效果。

f5018964-10a2-11ee-a579-dac502259ad0.png

2.界面开发

通过DGUS软件开发界面比较简单,只需要两个图形控件即可。在该例程中,工程师选择了一款2.1寸圆形智能屏。f52095d4-10a2-11ee-a579-dac502259ad0.png

3.实现眨眼

隔一段时间让眼皮的图片轮流显示一下://眨眼动画

void blink_animat(void)

{

if(blink_flag == 0)

{

blink_cnt++;

if(blink_cnt >= 4)

{

blink_flag = 1;

}

}

else

{

blink_cnt--;

if(blink_cnt <= 0)

{

blink_flag = 0;

} }

write_dgus_vp(0x3000, (u8 *)&blink_cnt, 2);

}

void blink_run()

{

static u32 run_timer_cnt = 0;

run_timer_cnt++;

if(run_timer_cnt >= 2000000)

{

run_timer_cnt = 0;

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

}

}

4.实现眼珠自然左右看

这里和眨眼类似,但是需要比较晶振的控制眼球运动的时间,这里经过多次调试,工程师设计出了下面这套代码。//眼珠动画
void eyeball_animat(void)

{

eyeball_timer_cnt++;

if(eyeball_timer_cnt < 50)

{

eyeball_cnt = 20;

}

else if(eyeball_timer_cnt < 51)

{

eyeball_cnt = 50;

}

else if(eyeball_timer_cnt < 52)

{

eyeball_cnt = 80;

}

else if(eyeball_timer_cnt < 53)

{

eyeball_cnt = 94;

}

else if(eyeball_timer_cnt < 103)

{

eyeball_cnt = 94;

}

else if(eyeball_timer_cnt < 104)

{

eyeball_cnt = 80;

}

else if(eyeball_timer_cnt < 105)

{

eyeball_cnt = 50;

}

else if(eyeball_timer_cnt < 106)

{

eyeball_cnt = 20;

}

else if(eyeball_timer_cnt < 107)

{

eyeball_cnt = -10;

}

else if(eyeball_timer_cnt < 108)

{

eyeball_cnt = -40;

}

else if(eyeball_timer_cnt < 158)

{

eyeball_cnt = -54;

}

else if(eyeball_timer_cnt < 159)

{

eyeball_cnt = -40;

}

else if(eyeball_timer_cnt < 160)

{

eyeball_cnt = -10;

}

else if(eyeball_timer_cnt < 161)

{

eyeball_cnt = 20;

eyeball_timer_cnt = 0;

}

//左右移动

// if(eyeball_flag == 0)

// {

// eyeball_cnt++;

// if(eyeball_cnt >= 94)

// {

// eyeball_flag = 1;

// }

// }

// else

// {

// eyeball_cnt--;

// if(eyeball_cnt <= -54)

// {

// eyeball_flag = 0;

// }

// }

if(eyeball_cnt >= 0)

{

eyeball_pos[0] = 0x00;

eyeball_pos[1] = eyeball_cnt;

}

else

{

eyeball_pos[0] = 0xFF;

eyeball_pos[1] = (eyeball_cnt & 0xFF);

}

write_dgus_vp(0x3111, (u8 *)&eyeball_pos, 2);

}

void eyeball_run()

{

static u32 run_timer_cnt = 0;

run_timer_cnt++;

if(run_timer_cnt >= 20000)

{

run_timer_cnt = 0;

eyeball_animat();

}

}

5.加入ESP32人脸识别,实现眼珠跟随人脸运动

这里的处理方式是,检测到人脸的时候眼睛自己不运动了,定义一个变量在while循环中自增,当自增到一定数值时,眼珠就自己运动。当串口收到数据时,这个变量就清零,然后只根据人脸的位置进行眼睛的移动。主要代码如下:if(rec_data_timer_cnt < 1000000)

{

rec_data_timer_cnt++;

}

else

{

eyeball_run();

}

extern u32 rec_data_timer_cnt;

extern u16 eyeball_timer_cnt;

void Communication_CMD(u8 st)

{

if((uart[st].Rx_F==1 )&&(uart[st].Rx_T==0))

{

rec_data_timer_cnt = 0;

eyeball_timer_cnt = 0;

#if(Type_Communication==1)

Describe_8283(st);

#elif(Type_Communication==2)

Describe_Modbus(st);

#endif

uart[st].Rx_F=0;

uart[st].Rx_Num=0;

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人脸识别
    +关注

    关注

    76

    文章

    4056

    浏览量

    83467
  • 迪文屏
    +关注

    关注

    3

    文章

    82

    浏览量

    5690
收藏 人收藏
    相关推荐
    热点推荐

    开源获奖案例】基于T5L智能的音乐播放与歌词显示方案

    ——来自开发者论坛本期为大家推送开发者论坛获奖开源案例——基于T5L智能
    的头像 发表于 05-08 09:52 39次阅读
    【<b class='flag-5'>开源</b>获奖案例】基于T5L<b class='flag-5'>智能</b><b class='flag-5'>屏</b>的音乐播放与歌词显示方案

    开源获奖案例】基于T5L智能的零食机

    ——来自开发者论坛本期为大家推送开发者论坛获奖开源案例——基于T5L智能
    的头像 发表于 04-30 18:20 39次阅读
    【<b class='flag-5'>开源</b>获奖案例】基于T5L<b class='flag-5'>智能</b><b class='flag-5'>屏</b>的零食机

    百度地图与雅推出组合智能导航解决方案

    近日,百度地图与雅正式达成合作,共同推出组合智能导航解决方案,重新定义出行体验,实现“所见即所达”。
    的头像 发表于 04-08 15:22 311次阅读

    开源获奖案例】基于T5L智能的FM收音机

    ——来自开发者论坛本期为大家推送开发者论坛获奖开源案例——基于T5L智能
    的头像 发表于 03-28 15:39 263次阅读
    【<b class='flag-5'>开源</b>获奖案例】基于T5L<b class='flag-5'>智能</b><b class='flag-5'>屏</b>的FM收音机

    COF产线二期扩产圆满成功,首款高性价比COF正式发布!

    湖南科技园新扩产的COF结构智能专用自动化产线正式投产。该产线将COF相关的盖板印刷、LCM生产、CTP贴合、整机测试等生产环节集中
    的头像 发表于 03-14 18:15 322次阅读
    <b class='flag-5'>迪</b><b class='flag-5'>文</b>COF<b class='flag-5'>屏</b>产线二期扩产圆满成功,首款高性价比COF<b class='flag-5'>屏</b>正式发布!

    开源获奖案例】基于T5L智能的EQ均衡效果器

    ——来自开发者论坛本期为大家推送开发者论坛获奖开源案例——基于T5L智能
    的头像 发表于 02-14 11:27 346次阅读
    【<b class='flag-5'>开源</b>获奖案例】基于T5L<b class='flag-5'>智能</b><b class='flag-5'>屏</b>的EQ均衡效果器

    文科技邀您共赴上海国际压缩机及设备展览会

    2024上海国际压缩机及设备展览会于2024年11月5日-8日在上海新国际博览中心举办,文科技携显控一体产品方案、DGUS智能及多媒体显示方案等亮相展会现场。敬邀广大客户莅临
    的头像 发表于 11-06 08:01 468次阅读
    <b class='flag-5'>迪</b>文科技邀您共赴上海国际压缩机及设备展览会

    开源获奖案例】基于T5L智能的汽车抬头显示器方案

    ——来自开发者论坛本期为大家推送开发者论坛获奖开源案例——基于T5L智能
    的头像 发表于 09-24 08:03 581次阅读
    【<b class='flag-5'>开源</b>获奖案例】基于T5L<b class='flag-5'>智能</b><b class='flag-5'>屏</b>的汽车抬头显示器方案

    高校暑期实践活动圆满结束

    产线车间,详细了解智能从设计到生产全流程,了解自主设计研发的人机交互专用ASIC在工业自动化、医疗器械、美容保健、智慧家居及家电、新能源等行业领域的应用案例
    的头像 发表于 09-03 08:02 523次阅读
    <b class='flag-5'>迪</b><b class='flag-5'>文</b>高校暑期实践活动圆满结束

    串口如何与电脑连接

    效果好、稳定性高、易于集成等特点。串口广泛应用于工业自动化、医疗设备、智能家居等领域。
    的头像 发表于 08-01 15:10 2046次阅读

    开源获奖案例】基于T5L智能的便携功率计解决方案

    ——来自开发者论坛本期为大家推送开发者论坛获奖开源案例——基于T5L智能
    的头像 发表于 08-01 08:13 575次阅读
    【<b class='flag-5'>开源</b>获奖案例】基于T5L<b class='flag-5'>智能</b><b class='flag-5'>屏</b>的便携功率计解决方案

    串口ModBus开发流程

    这里接前一章节,继续的开发,前章主要讲解基础开发流程,此章节开始讲解ModBus协议栈的使用方法。前文指路:《
    的头像 发表于 07-19 08:21 924次阅读
    <b class='flag-5'>迪</b><b class='flag-5'>文</b>串口<b class='flag-5'>屏</b>ModBus开发流程

    开源获奖案例】基于T5L智能的指纹识别解决方案

    ——来自开发者论坛本期为大家推送开发者论坛获奖开源案例——基于T5L智能
    的头像 发表于 07-06 08:13 574次阅读
    【<b class='flag-5'>开源</b>获奖案例】基于T5L<b class='flag-5'>智能</b><b class='flag-5'>屏</b>的指纹识别解决方案

    串口基础GUI开发流程

    和UART4是RS232接口的,UART2也作为系统默认的调试串口,UART5是RS485接口的,但UART4和UART5都需要对系统的OS核做修改才能使用。的资料较为
    的头像 发表于 07-05 08:21 1224次阅读
    <b class='flag-5'>迪</b><b class='flag-5'>文</b>串口<b class='flag-5'>屏</b>基础GUI开发流程

    基于T5L智能的万能红外控制器

    ——来自开发者论坛本期为大家推送开发者论坛获奖开源案例——基于T5L智能
    的头像 发表于 06-22 08:13 573次阅读
    基于T5L<b class='flag-5'>智能</b><b class='flag-5'>屏</b>的万能红外控制器