1504|2

280

帖子

7

TA的资源

一粒金砂(高级)

楼主
 

【平头哥RVB2601创意应用开发】环境监测终端01-开箱及设计炫彩呼吸灯 [复制链接]

 

RVB2601开发板收到有一段时间了,一直在抓空研究其电路和程序,这两天趁着假期把学习成果发一下。

一、开箱

拿到开发板第一件事就是开箱拍照。如图1所示,整个开发板看上去以黑色为主,固定在两片亚克力之间。正面CH2601主芯片和OLED显示屏最是显眼,背面则是被一个圆圆的扬声器吸引眼球,整体看上去酷酷的样子。配备2根microUSB数据线,一个用于USB串口交互信息,另一个用于下载、调试程序。

图1、开箱照

平头哥RVB2601是基于平头哥生态芯片CH2601的开发板,板载JTAG调试器,WiFi&BLE芯片W800,音频ADCES7210,音频DACES8156,128x64 OLED屏幕,RGB三色指示灯,用户按键,及兼容Arduino的扩展接口CH2601是基于玄铁E906的RISC-V生态芯片,最高主频220MHz,支持AliOS Things物联网操作系统、平头哥YoC软件平台及平头哥剑池开发工具(CDK)。主要资源如下图所示。

图2、开发板资源

二、集成开发工具

剑池CDK是基于wxWidgets图形库构建的跨平台集成开发环境,全称(C-SKY development kit)。剑池CDK内置了工程管理单元,集成了CSKY的二进制开发工具,向用户提供了图形化的嵌入式开发环境,降低了嵌入式开发的学习曲线。

剑池CDK下载地址:

https://occ.t-head.cn/development/series/index?spm=a2c6h.12873639.0.0.1ee118a2NX72Fy&id=3864775351511420928&type=kind&softPlatformType=4&key=download#sticky

我下载的是官方推荐的V2.12.1版本,在三台WIN10笔记本电脑上都顺利安装,没有遇到网友的那些问题。整个安装过程基本上就是傻瓜式,按照提示一直下一步就行,相对于IAR或Keil耗时还要短一些。整体界面如下,跟其他的集成开发环境基本相似,上手比较容易。

图3、CDK界面

三、上电测试

两个USB接口插上任意一个都可以给开发板供电。第一次上电,开发板默认程序带的那个语音嗷的一嗓子,把我吓一跳,主要是夜半人静的时候弄的,当真小心脏突突了一下。上电后,会在串口输出一些板卡信息,支持命令行操作,如下图所示。

图4、上电

接下来按照教程实际操作一下。从主页搜索“led”会出现一个现成的跑马灯程序,如下图,创建工程下载进去看效果。

图5、搜索实例创建工程

程序运行后只有绿灯和蓝灯闪烁,红灯不亮,想到例程应该不会错,那就有可能是板子配置的不对,按照电路图和布局图查找,如下图,果然发现是红灯的跳线块没接上,插上去红灯就跟着闪烁起来了。

图6、三色灯电路

四、改造程序,实现炫彩呼吸灯

从《app_config.h》代码中可以看到,当前三色灯驱动配置的为PWM模式,但是三个灯闪烁效果跟IO口直接控制没啥区别吗,这也没体现出PWM控制的优越性啊,这个不能忍,得改成带效果的。

图7、实例程序三色灯效果

《app_config.h》代码如下:
 

#ifndef __APP_CONFIG_H__
#define __APP_CONFIG_H__

/* 控制APP中是否输出LOGD的打印内容 */
#ifndef CONFIG_DEBUG
#define CONFIG_DEBUG 0
//#undef CONFIG_DEBUG
#endif

/* You can add user configuration items here. */
#define CONFIG_PWM_MODE  //PWM模式
//#define CONFIG_GPIO_MODE
#define CONSOLE_UART_IDX 0

#endif

分析实例代码,发现PWM控制只是在《led.c》里面初始化了一下,后续闪灯就没有改变占空比,而且每次只有一个灯使能,所以出现的就是单纯的三色轮流闪烁。我参照led_pinmux_init()这个初始化函数将led_refresh()进行了一下改造,每次调用时都改变三个灯的占空比,就可以是实现每个灯都在不停变化,组合出多种颜色。

代码如下:

void led_refresh()
{
    g_ctr++;
    if (g_ctr > 29) {
            g_ctr = 0;
    }
   csi_pwm_out_config(&r, 2 / 2, 30, g_ctr, PWM_POLARITY_LOW);
   csi_pwm_out_config(&r, 4 / 2, 30, 30 - g_ctr, PWM_POLARITY_LOW);
   csi_pwm_out_config(&r, 7 / 2, 30, 30 % g_ctr, PWM_POLARITY_HIGH);

//    if (g_ctr == 0)
//    {
//        csi_pwm_out_start(&r, 7 / 2);
//        csi_pwm_out_stop(&r, 2 / 2);
//        csi_pwm_out_stop(&r, 4 / 2);
//
//    }
//    else if (g_ctr == 1)
//    {       
//        csi_pwm_out_start(&r, 2 / 2);
//        csi_pwm_out_stop(&r, 7 / 2);
//        csi_pwm_out_stop(&r, 4 / 2);
//
//    }
//    else //2
//    {
//        csi_pwm_out_start(&r, 4 / 2);
//        csi_pwm_out_stop(&r, 7 / 2);
//        csi_pwm_out_stop(&r, 2 / 2);
//
//    }
}

实际运行后发现变化很慢,效果不理想,然后把demo_task()主循环加速,将其中的延时改小了,代码如下:

static void demo_task(void *arg)
{
    lv_init();
    oled_init();
    lable_test();
    led_pinmux_init();

    while (1)
    {
        lv_task_handler();
        udelay(1000 * 100);
        lv_tick_inc(1);
        led_refresh();
    }
}

    最终基本实现了炫彩呼吸灯的效果,如下图。

图8、炫彩效果

我这个实例中,三个LED只是用最简单的算式按照不同的规律驱动,实现的效果比较单一,如果想要更炫的效果,可以修改led_refresh()函数中三个灯的PWM驱动规则,可以实现各个各样的幻彩效果。

最新回复

呼吸灯最好是0-max-0这样来   详情 回复 发表于 2022-4-30 11:43
点赞(1) 关注(1)
 
 

回复
举报

6788

帖子

2

TA的资源

版主

沙发
 

看来平时电脑环境比较好,所以都没有碰到啥问题。

 
 
 

回复

108

帖子

0

TA的资源

一粒金砂(高级)

板凳
 

呼吸灯最好是0-max-0这样来

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
lpc2148使用问题探讨:“新版主chenzhufly LPC2000 PCB 大放送”成果研究专用贴

刚完成的lpc2148的焊接板,加硬件识别成功图片:https://home.eeworld.com.cn/my/attachment/201002/2/189673_1265115189dvWg.jpg ...

模拟集成电路三本圣经(书及答案)

模拟三本经典著作及答案,另外附送拉扎维的射频微电子(中文版) 这么经典的东西不用详细介绍了吧 拉扎维的《Design of Analog ...

我也来玩玩多线程

看着chenzhufly把多线程Photothreads在LPC1343上玩的有声有色,有贴为证https://bbs.eeworld.com.cn/viewthread.php?tid=103789, ...

EEWORLD网友南山小聚,有图有真相!

相聚的时间总是那么短暂,感谢大家能抽出时间过来聚会,不知道都吃饱没?我同事说菜好像少了:Sweat:刚刚才想起来,好像 ...

F7-老人紧急呼救组-进度规划

本帖最后由 arthasarthas 于 2015-12-24 16:19 编辑 项目英雄帖: https://bbs.eeworld.com.cn/thread-471640-1-1.html 项目 ...

获奖名单|是德科技HDMI/DP2.0线上实测研讨会

直播详情: 是德科技HDMI/DP2.0线上实测研讨会 领奖方式 请获奖网友在2020年9月20日前微信扫描下方二维码(关注电子 ...

2000元门票免费领! EEWorld网友专属福利

想参观行业领先公司的展览和技术会议吗? 想聆听技术报告、研习会和主旨演讲吗? 想免费领取价值2000元的门票吗? 欢迎持EEW ...

CC+forCC软件仿真如何调出来,新手还没入门还请大佬指点

CC+forCC软件仿真如何调出来,新手还没入门还请大佬指点

寄生电容与什么因素有关

再研究TLC555构成的振荡电路过程中,发现在频率较高的时候芯片的寄生电容似乎不能忽略,于是做了如下实验 682749 阴影部分 ...

【中科昊芯HXS320F28025C】系统初始化函数学习和熟悉库函数风格

本帖最后由 jixulifu2 于 2024-7-14 16:39 编辑 上一章点灯调试串口的过程中,跳过了系统初始化部分。今天就来一起过一下吧。 ...

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表