07. 基于GD32E231的金鱼自动投喂机器人设计
[复制链接]
本帖最后由 传媒学子 于 2019-5-26 19:36 编辑
基于GD32E231的金鱼自动投喂机器人设计 作品提交
一、项目背景 长时间出差不在家,家里的金鱼会挨饿。因此,为了让金鱼在主人不在家的时候不会挨饿,基于4自由度机械手臂和GD32E231设计一款基于自动投喂机器人。
GD32E231通过生成PWM来控制机械臂,同时按照预先设定的时间,从固定地方去取鱼食,放入鱼缸,通过多次人工训练,让机械臂根据人工训练的数据,实现自动计算投喂取食位置。
同时还可以增加一些辅助功能,通过串口或者板载ADC加上光敏电阻来大概获取GD32E231的内部温度和鱼缸周围光照情况,天黑暗时可以打开台灯等照明设备。
该系统采用了GD32E231的以下功能:
从实际测试效果和项目推进过程中所用的模块具体运行情况来看,GD32E231这款处理器,定时器功能强大,定时器2可以输出4路PWM,而且ADC功能也很实用,可用于普通的机器人应用。
二、系统设计 本项目基于兆易创新公司生产的GD32E231arm处理器,作为《基于GD32E231的金鱼自动投喂机器人设计》的主控处理器,负责读取光照数据,比对定时时间,执行自动或者手动投喂任务。 图2.1 基于GD32E231的金鱼自动投喂机器人架构图 2.1 硬件设计
硬件设计采用Arduino转接板,电源采用5V3A供电+电脑USB-串口供电,具体硬件电路如下: 图2.2部分硬件连接图 2.2软件设计
软件设计主要围绕ov5640的驱动来实施的,程序实施原理图如下 图2.3程序框架图
程序流程图如下:
代码参看: EEWORLD论坛_作品提交贴附件,
代码工程路径:Auto_Feed_Robot\auto_feed_robot\Projects\auto_feed_robot\MDK-ARM\
部分函数: - void adc_rcu_config(void);
- void adc_gpio_config(void);
- void adc_dma_config(void);
- void adc_timer_config(void);
- void adc_config(void);
- void display_adc_value(void);
-
- void rtc_setup(void);
- void rtc_show_time(void);
- void rtc_pre_config(void);
- void rtc_comp_time(void);
- void led_config(void);
- void led_flash(int times);
- void exti_config(void);
- void gpio_config(void);
- void pwm_timer_clock_enable(void);
- void pwm_timer_config(uint32_t timer);
- void control_motor(uint8_t motor_tag, uint32_t pulse);
- void auto_feed_fish(void);
复制代码
三、项目完成情况
项目历时30天(2019年4月27日到2019年5月26日),项目完成了预期的所有内容,并额外扩展了光敏传感器和串口显示功能。
图3.1实物图
实现的功能主要有: 1. 定时器0触发ADC,并通过DMA传输数据 2. 定时器2配置四通道PWM,实现对机械臂的控制 3. 通过人工训练,得到较好的抓取位置和释放位置 4. 通过不断尝试,克服了电源峰值功率不能满足机械臂快速调整的弊端,通过平滑调整,实现对机械臂的控制 5. 成功实现RTC模块,通过RTC模块,实现定时启动投喂,每次投喂次数可设定,默认为3次,可设定每天投喂几次,何时投喂 6. 串口显示系统信息,方便调试和人工交互
四、项目总结与展望
4.1 项目总结
(1) 项目实现了对机械臂的控制,并且能够实现抓取鱼食进行投喂。
(2) 项目实现了对鱼缸所处光照情况的采集,用于打开灯或者关闭等,项目中以LED4模拟实现。
(3) 同时,增加了常用的串口模块,方便用于扩展和交互。
4.2 未来的优化搭建web服务器,实现远程控制机械臂。
4.3 论坛发帖情况
[GD32E231 DIY大赛] 01. GD32E231-start以及创意内容介绍 (出处: 电子工程世界-论坛)
[GD32E231 DIY大赛] 02. 为何PWM的占空比不能在外部中断服务函数中更改? (出处: 电子工程世界-论坛)
[GD32E231 DIY大赛] 03. 忽视运放设置会导致PB1输出电压不正确 (出处: 电子工程世界-论坛)
[GD32E231 DIY大赛] 04. 机械臂艰难的组装过程 (出处: 电子工程世界-论坛)
[GD32E231 DIY大赛] 05. 自动喂鱼机器人之PWM篇 (出处: 电子工程世界-论坛)
[GD32E231 DIY大赛] 06. 自动喂鱼机器人之ADC/DMA/TIMER0/串口篇 (出处: 电子工程世界-论坛)
07. 基于GD32E231的金鱼自动投喂机器人设计 (出处: 电子工程世界-论坛)
五、致谢
感谢论坛一如既往的支持,感谢GD公司提供开发板和样片,感谢各位坛友的帮助,让我们支持国产,奋发图强,砥砺前行!
|