社区导航

 

搜索
查看: 263|回复: 1

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

[复制链接]

469

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2019-5-26 18:39 | 显示全部楼层 |阅读模式
本帖最后由 传媒学子 于 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的金鱼自动投喂机器人设计》的主控处理器,负责读取光照数据,比对定时时间,执行自动或者手动投喂任务。
1.JPG
图2.1 基于GD32E231的金鱼自动投喂机器人架构图
2.1 硬件设计
硬件设计采用Arduino转接板,电源采用5V3A供电+电脑USB-串口供电,具体硬件电路如下:
2.JPG
图2.2部分硬件连接图
2.2软件设计
软件设计主要围绕ov5640的驱动来实施的,程序实施原理图如下
5.JPG
2.3程序框架图
程序流程图如下:
3.JPG
代码参看: 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日),项目完成了预期的所有内容,并额外扩展了光敏传感器和串口显示功能。
4.JPG
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公司提供开发板和样片,感谢各位坛友的帮助,让我们支持国产,奋发图强,砥砺前行!
此帖出自GD32 MCU论坛

Auto_Feed_Robot.rar

1.45 MB, 下载次数: 14

程序

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

590.85 KB, 下载次数: 4



回复

使用道具 举报

745

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2019-5-26 23:28 | 显示全部楼层
这个科技感强!


回复

使用道具 举报

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

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-6-17 11:10 , Processed in 0.143372 second(s), 22 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表