【平头哥RVB2601创意应用开发】农田灭害虫装置的设计
[复制链接]
本帖最后由 梦溪开物 于 2022-5-12 17:09 编辑
农田灭害虫装置的设计
一、项目背景
该项目为农田灭虫装置的设计。农田害虫影响作物的产量,很多害虫平常匍匐在作物的茎秆上,靠吸食汁液为生,对作物危害极大,其在夜间尤为活跃,具有一定的趋光性和趋声性(尤其在繁殖季节),可以利用该种特性,并结合RISC-V生态开发板RVB2601进行灭虫装置的研制。
稻田害虫的图片
二、作品简介
通过RISC-V生态开发板研制一种专门捕捉并消灭农田害虫的装置,增加稻田作物的亩产量,减少农药的喷洒。该系统由主控模块(RISC-V生态开发板)、通信模块(4G通信协议)、电源模块(5V)、和倍压模块共四部分组成。作品图片如下所示:
作品图片
三、系统框图
RVB2601内存中决策模型计算出农田害虫在夜间某一时刻最佳的趋光光色和频闪周期,并将该参数转化成电信号给驱动模块,驱动模块驱动RGB灯和喇叭开始工作,达到声光耦合的效果,从而对害虫进行引诱,功率模块通过高压放电将将引诱过来的农田害虫杀死,并将杀死的害虫释放到农田中,作为肥料使用。系统框图如下所示:
系统框图
四、各部分功能说明和解析
4.1 主控模块
主控模块是以CH340单片机为核心的RVB2601开发板,该开发板上有一个功放模块用于驱动喇叭,其上的电源电路能将5V电压转换成3.3V供MCU使用,将5V转换成12V供功放模块使用,所以只需要向其提供5V电压即可。
该项目的全部软件程序都集中在在该主控模块上,包括驱动RGB变色与频闪的程序、喇叭的音频驱动程序和倍压电路间歇性工作的控制程序三部分,该项目程序在平头哥生态例程ch2601_player_demo和ch2601_rgb_marquee_demo进行再次开发。其中RGB变色和频闪程序主要通过led_refresh()程序来实现,通过PWM波实现变色控制和呼吸效果;喇叭的音频驱动程序主要由cli_reg_cmd_player()来实现,通过外部导入音频文件到内存进行循环播放;倍压电路间歇性工作通过GPIO控制MOS通断实现。主控模块的实物图如下所示:
主控模块实物图
4.2 光能转换电路
光能转换电路将不稳定的太阳能稳压到3.7V给锂电池充电,以保证农田灭虫装置能够在野外长久稳定地运行。该电路在充电时,上面的红灯会亮。光能转换电路实物图如下所示:
光能转换电路实物图
4.3 电源模块
电源模块将3.7V转换成5V给RVB2601开发板供电。5V电源模块实物图如下所示:
5V电源模块实物图
4.4 倍压电路
倍压电路将3.7V倍压到3000V高压并传递到电网上,用于消灭引诱过来的害虫。该模块会间歇性工作,主要是为了省点,当害虫聚集到一定程度后,CH340会通过GPIO口控制MOS管驱使倍压电路工作。该电路进行了两次升压方式,第一次是通过变压器升压到750V左右,第二次是通过二极管升压到3000V高压,变压器同时也起到了一个隔离的左右。倍压电路实物图如下所示:
倍压电路实物图
五、作品源码
#include <app_config.h>
#include <aos/aos.h>
#include <aos/cli.h>
#include <aos/kernel.h>
#include "app_main.h"
#include "app_init.h"
#include "board.h"
#include "player_demo.h"
#include "oled.h"
#include "led.c"
#define TAG "app"
#define TAG "player_demo"
extern void cxx_system_init(void);
static player_t *g_player;
static uint32_t g_ctr = 0;
static csi_pwm_t r;
static void _player_event(player_t *player, uint8_t type, const void *data, uint32_t len)
{
int rc;
UNUSED(len);
UNUSED(data);
UNUSED(handle);
LOGD(TAG, "=====%s, %d, type = %d", __FUNCTION__, __LINE__, type);
switch (type) {
case PLAYER_EVENT_ERROR:
rc = player_stop(player);
break;
case PLAYER_EVENT_START: {
media_info_t minfo;
memset(&minfo, 0, sizeof(media_info_t));
rc = player_get_media_info(player, &minfo);
LOGD(TAG, "=====rc = %d, duration = %llums, bps = %llu, size = %u", rc, minfo.duration, minfo.bps, minfo.size);
break;
}
case PLAYER_EVENT_FINISH:
player_stop(player);
break;
default:
break;
}
}
static void cmd_ipc_func(char *wbuf, int wbuf_len, int argc, char **argv)
{
char url[128];
snprintf(url, sizeof(url), "mem://addr=%u&size=%u", (uint32_t)&_welcome_mp3, _welcome_mp3_len);
player_play(get_player_demo(), url, 0);
}
player_t *get_player_demo()
{
if (!g_player) {
ply_conf_t ply_cnf;
player_conf_init(&ply_cnf);
ply_cnf.vol_en = 1;
ply_cnf.vol_index = 128; // 0~255增益强度
ply_cnf.event_cb = _player_event;
ply_cnf.period_num =12; //播放时长 12 * 5 period_ms = 60ms
g_player = player_new(&ply_cnf);
}
return g_player;
}
int cli_reg_cmd_player(void)
{
char url[128];
static const struct cli_command cmd_info = {
"player",
"player example",
cmd_ipc_func,
};
snprintf(url,sizeof(url)," mem://addr=%u&size=%u", (uint32_t)&_welcome_mp3, _welcome_mp3_len);
player_play(get_player_demo(), url, 0);
return 0;
}
void led_pinmux_init()
{
csi_error_t ret;
csi_pin_set_mux(PA7, PA7_PWM_CH7);
csi_pin_set_mux(PA25, PA25_PWM_CH2);
csi_pin_set_mux(PA4, PA4_PWM_CH4);
csi_pwm_init(&r, 0);
}
void led_refresh()
{
if (g_ctr == 0)
{
while(g_ctr<300)
{
csi_pwm_out_config(&r, 4/ 2, 600-g_ctr, g_ctr++, PWM_POLARITY_HIGH);
csi_pwm_out_stop(&r, 7 / 2);
csi_pwm_out_stop(&r, 2 / 2);
csi_pwm_out_start(&r, 4 / 2);
udelay(1000 * 5);
}
}
csi_pwm_out_stop(&r, 4 / 2);
udelay(1000 * 200);
if (g_ctr==300)
{
while(g_ctr>0)
{
csi_pwm_out_config(&r, 4 / 2, 600-g_ctr, g_ctr--, PWM_POLARITY_HIGH);
csi_pwm_out_stop(&r, 7 / 2);
csi_pwm_out_stop(&r, 2 / 2);
csi_pwm_out_start(&r, 4 / 2);
udelay(1000 * 5);
}
}
}
int main(void)
{
cxx_system_init();
board_yoc_init();
oled_init();
player_init();
led_pinmux_init();
while(1)
{
led_refresh();
cli_reg_cmd_player();
udelay(200 * 1000);
}
return 0;
}
六、视频演示
6.1 视频简介
该项目的演示视频展示了系统整体工作情况以及各局部模块详细工作情况,视频从头至尾都有文字标注进行解释。首先,RVB2601单片机根据内部导入的虫鸣音频文件控制驱动模块驱动喇叭发声,同时驱动RGB灯间歇性呼吸闪烁,模拟声光耦合吸引雌雄稻田害虫进入诱虫装置,高压电网将害虫杀灭,该系统平常主要依赖太阳能板给锂电池充电维持系统整体运行
6.2 视频链接
七、项目总结
7.1 项目总结
本文讲解了利用声光耦合诱捕并消灭稻飞虱灭虫装置的基本原理,基于RVB2601开发板进行了自上而下的软硬件的设计,利用已有的电子元器件制作了实物,通过视频展示系统总体运行情况和给个模块详细工作情况。
7.2 帖子分享链接
【RVB2601开发板试用】扬声器实验
GRB呼吸灯
八、致谢
非常感谢平头哥和EEWORLD提供了一次测评RVB2601开发板的机会,在这个测评的过程遇到了一次开发板不能下载程序的问题,通过提交工单进行了请教,最后给我重新寄了开发板,也找出了原因,就是ICE clk不能太高。同时也祝望平头哥的生态越做越好。
|