3841|2

324

帖子

5

TA的资源

纯净的硅(中级)

楼主
 

【2022得捷创新设计大赛】二自由度云台机器人控制平台修订版 [复制链接]

  本帖最后由 HonestQiao 于 2022-11-2 16:20 编辑

 

下载附件  保存到相册

2022-11-2 13:15 上传

 

 

下载附件  保存到相册

2022-11-2 13:15 上传

 

 

2.2 硬件物料:

 

     在本作品中,使用到硬件如下:

  • 开发板: ESP32-E
  • 扩展板: ESP32-E专用扩展板
  • OLED显示屏:SSD1306 128x64显示屏,带支架
  • 运动传感器:DFRobot MPU6050,已经安装到手柄内部
  • 舵机控制:PCA9685 16路舵机控制器
  • 舵机:3120 20KG舵机2个
  • 云台支架:1套
  • 电源:正点原子数控电源


2.3 硬件连接规划:

 

 

     实物连接说明:

  1. 将扩展板平插到ESP32开发板上
  2. 将 PCA9685 连接到扩展板的I2C接口1
  3. 将OLED连接到扩展板的I2C接口2
  4. 将 MPU6050 连接到扩展板的I2C接口3
  5. 将舵机连接到PCA9685的14、15舵机接口
  6. 使用数控电源给PCA9685供电

 


2.4 软件逻辑设计:

 

 

下载附件  保存到相册

2022-11-2 13:16 上传

 

  1. 运动控制模块:使用DFRobot MPU6050,主控程序通过获取其数据,经过解码,生成纵轴和横轴控制数据,然后控制机器人运行。

 

 

  1. 动作执行模块:使用1个PCA9685舵机控制器和2个3120 20KG舵机,来进行机器人纵轴和横轴的动作控制。

   

 

  1. 显示模块:使用SSD1306 128x64的OLED显示屏,用于显示系统的当前状态,包括系统启动过程中的信息,启动后纵轴和横轴的状态,以及通过互联网对时的时钟。

 

     在上述模块中:

  • 舵机控制器PCA9685为I2C接口,供提供了16组舵机接口,编号为0-15,这里使用最后的两个接口,接入两个舵机分别用于机器人纵轴和横轴的控制
  • 所使用的运动传感器DFRobot MPU6050,同样为I2C接口
  • 所使用的SSD1306 128x64 OLED显示屏,也为I2C接口
  • 专用扩展板上刚好提供了3组I2C接口,正好用于接入上述3个I2C设备的接入

     另外:

  • 为了确保舵机能够稳定运行,使用了一个正点原子数控电源专门为舵机控制器PCA9685提供5V电源输入。
  • 为了方便使用MPU6050进行稳定的控制,使用了一个掏空内部的儿童牙刷来内置MPU6050,方便手持操作。

 

3.2 使用说明:

3.2.1 系统的使用步骤如下:

  1. 系统启动:
    • 确保各部分连接正确后,上电启动,初始化各部件
    • 启动过程中,显示屏将显示当前启动进度
    • 启动完成后,屏幕将显示操作界面
    • 启动后,默认情况下,处于机器人停止状态
  2. 按键操作:
    • ESP32开发板左则的RST按键,用于系统重启
    • ESP32开发板右则的Pin27按键,用于启停机器人舵机控制
    • Pin27按键奇数次按键,启动机器人舵机控制,偶数次按键,停止机器人舵机控制
  3. 手柄操作:
    • 系统启动过程中,应手持手柄保持垂直竖立状态,以便系统正确计算初始化状态;
    • 应根据自己所使用的MPU6050芯片,确定正确的芯片放置方向
    • 启动完成后,向前压手柄,或者向后压手柄,控制机器人横向舵机运动
    • 启动完成后,以手柄竖向中心线为中心旋转,控制机器人纵向舵机运动
  4. 显示屏状态:
    • 启动过程中,依次显示各部分初始化情况
    • 启动后,界面显示各状态图标,包括当前控制状态,以及当前的时钟
    • Pin27按键依次以后,将会显示纵轴和横轴舵机控制角度

 

 

3.2.2 具体操作:

     按下ESP32开发板的RST按键后,手持手柄,保持竖立状态,等待系统初始化启动完成。

     启动完成以后,按一下ESP32开发板右则的按键,使能手柄控制机器人,然后就可以进行操作控制了。

 

 
      运行过程中,OLED显示屏显示如下:

 

     在上图中,各区域信息如下:

  • 状态栏:分别为电源接入图标、运行状态图标(启动时默认暂停)、互联网对时时钟、WiFi图标
  • 内容区域:显示平台名称

 当按下ESP32开发板右则按键后,进行控制操作时,OLED显示屏显示如下:

 

在上图中,各区域的信息如下:

  • 状态栏:分别为电源接入图标、运行状态图标(当前为使用运行)、互联网对时时钟、WiFi图标
  • 内容区域:显示纵轴和横轴舵机对应的角度值

 

四、作品源码

     源码地址:https://download.eeworld.com.cn/detail/HonestQiao/625355

     码云地址:

链接已隐藏,如需查看请登录或者注册

 

     在代码中,有几个关键点,需要详细说明:

     首先是显示的图标和字体:

 

 

   

 

     在OLED显示屏操作界面中,使用到了4个图标,分别为电源、启/停、WiFi,使用了U8g2中的特殊字体来显示的。

     其中,电源和WiFi图标,为u8g2_font_siji_t_6x10字体的0x0e200、0x0e21a,启动图标为 0x0e058,停止图标为0x0e059

     在启动控制后,控制界面中,纵轴圆圈指向图标,为u8g2_font_unifont_t_86字体的0x02b6f,横轴上下箭头图标为0x02b65

     其他显示使用的字体,均为u8g2_font_unifont_t_chinese2

 

     然后,在获取到MPU6050数据解码后,对纵轴的数据,应用了卡尔曼滤波进行优化处理,得到更为准确的数据。

     该卡尔曼滤波的Kalman_Filter函数,来自于网上公开的代码,向提供该函数的作者表示感谢。

 

     最后,互联网时间同步部分,使用了第三方的Time时间库,用于与公开的ntp服务器进行对时。该部分的代码,可以提取出来,做成互联网时钟。

 

 

五、作品功能演示视频

     视频介绍专辑地址:https://training.eeworld.com.cn/course/67867

     介绍视频一共分为两个部分,分别为平台结构的介绍、详细使用的展示。

     结构介绍视频地址:https://training.eeworld.com.cn/video/34839

     使用展示视频地址:https://training.eeworld.com.cn/video/34840

 

六、项目总结

     在该二自由度云台机器人控制平台设计制作开发的过程中,进行了多项研究尝试,最终选择了Arduino IDE进行开发。

     在开发过程中,详细了解到了ESP32、MPU6050、PCA9685舵机控制器、DS 3120 20KG舵机、SSD 1306 OLED等的具体使用。Arduino平台强大的包容和扩展性,使得开发过程中可以方便的应用第三方开发库,大大加快了开发的速度。

     非常感谢EEWrold和得捷提供这次机会,得以把以前一直想做但没有做的事情,给好好的完成。今后也希望有更多的机会,进行交流学习和研究。

 

     帖子分享汇总:

 

链接已隐藏,如需查看请登录或者注册
  • Timezone:时区处理,
    链接已隐藏,如需查看请登录或者注册
  • MPU6050_tockn:MPU6050驱动库,
    链接已隐藏,如需查看请登录或者注册
  • Adafruit_PWMServoDriver:舵机驱动库,
    链接已隐藏,如需查看请登录或者注册
  • Adafruit_SSD1306:OLED驱动库,
    链接已隐藏,如需查看请登录或者注册
  • Adafruit-GFX:显示图形处理, 
    链接已隐藏,如需查看请登录或者注册
  • U8g2_for_Adafruit_GFX:支持Adafruit_GFX的U8g2库,用于Unicode字符串显示,
    链接已隐藏,如需查看请登录或者注册

  •  

    7.3 参考资料

         在本作品设计开发的过程中,查阅学习了上百篇文档资料,对于提供这些资料的作者表示万分的感谢。

         这些文档资料,包括但不限于如下链接:

     

    二自由度云台机器人控制平台文档修订版.docx

    7.55 MB, 下载次数: 1

    售价: 5 分芯积分  [记录]  [购买]

    最新回复

    好好学习,天天向上,加油,每一个人,加油自己。加油!!!   详情 回复 发表于 2024-10-30 20:06
    点赞(1) 关注
     
     

    回复
    举报

    980

    帖子

    0

    TA的资源

    纯净的硅(高级)

    沙发
     

    可以说是很用心了,标记一下,有空学习起来

    个人签名

    没有特别的幸运,就要特别的努力

     
     
     

    回复

    419

    帖子

    0

    TA的资源

    纯净的硅(中级)

    板凳
     

    好好学习,天天向上,加油,每一个人,加油自己。加油!!!

     
     
     

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

    随便看看
    查找数据手册?

    EEWorld Datasheet 技术支持

    相关文章 更多>>
    关闭
    站长推荐上一条 1/9 下一条

     
    EEWorld订阅号

     
    EEWorld服务号

     
    汽车开发圈

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

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

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

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