3636|4

530

帖子

4

TA的资源

一粒金砂(高级)

楼主
 

07. 基于GD32E231的金鱼自动投喂机器人设计 [复制链接]

本帖最后由 传媒学子 于 2019-5-26 19:36 编辑

基于GD32E231的金鱼自动投喂机器人设计
作品提交

一、项目背景
长时间出差不在家,家里的金鱼会挨饿。因此,为了让金鱼在主人不在家的时候不会挨饿,基于4自由度机械手臂和GD32E231设计一款基于自动投喂机器人。
GD32E231通过生成PWM来控制机械臂,同时按照预先设定的时间,从固定地方去取鱼食,放入鱼缸,通过多次人工训练,让机械臂根据人工训练的数据,实现自动计算投喂取食位置。
同时还可以增加一些辅助功能,通过串口或者板载ADC加上光敏电阻来大概获取GD32E231的内部温度和鱼缸周围光照情况,天黑暗时可以打开台灯等照明设备。
该系统采用了GD32E231的以下功能:
1. UART 高性能异步通信接口
2. GPIO 通用输入输出接口
3. 72MHz主频
4. RTC实时时钟
5. Timer0定时器触发DMA传输
6. DMA传输
7. Timer2 启动四通道PWM来连接机械臂
8. 外部中断ETI
9. ADC 内部模数转换
从实际测试效果和项目推进过程中所用的模块具体运行情况来看,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\
部分函数:
  1. void adc_rcu_config(void);
  2. void adc_gpio_config(void);
  3. void adc_dma_config(void);
  4. void adc_timer_config(void);
  5. void adc_config(void);
  6. void display_adc_value(void);
  7. void rtc_setup(void);
  8. void rtc_show_time(void);
  9. void rtc_pre_config(void);
  10. void rtc_comp_time(void);
  11. void led_config(void);
  12. void led_flash(int times);
  13. void exti_config(void);
  14. void gpio_config(void);
  15. void pwm_timer_clock_enable(void);
  16. void pwm_timer_config(uint32_t timer);
  17. void control_motor(uint8_t motor_tag, uint32_t pulse);
  18. 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公司提供开发板和样片,感谢各位坛友的帮助,让我们支持国产,奋发图强,砥砺前行!

Auto_Feed_Robot.rar

1.45 MB, 下载次数: 50

程序

传媒学子_兆易创新GD32E231结项报告书.pdf

590.85 KB, 下载次数: 14

此帖出自GD32 MCU论坛

最新回复

好哒  辛苦了 楼主   详情 回复 发表于 2019-6-24 14:54
点赞 关注(2)
 

回复
举报

821

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
这个科技感强!
此帖出自GD32 MCU论坛
 
 
 

回复

826

帖子

190

TA的资源

管理员

板凳
 

喜欢楼主视频的配曲,哈哈。我其实是来告诉楼主,方便的话,再上传一份作品的word版 *_*

此帖出自GD32 MCU论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名在路上……

EEworld 有你有我
 
 

回复

530

帖子

4

TA的资源

一粒金砂(高级)

4
 

word版本在此,主要word版本格式容易变乱,所以一般release都用pdf版本的

传媒学子_兆易创新GD32E231结项报告书.doc

1.96 MB, 下载次数: 31

此帖出自GD32 MCU论坛

点评

好哒  辛苦了 楼主  详情 回复 发表于 2019-6-24 14:54
 
 
 

回复

826

帖子

190

TA的资源

管理员

5
 
传媒学子 发表于 2019-6-23 10:10 word版本在此,主要word版本格式容易变乱,所以一般release都用pdf版本的

好哒  辛苦了 楼主

此帖出自GD32 MCU论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名在路上……

EEworld 有你有我
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 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
快速回复 返回顶部 返回列表