六轴机器手臂运动控制——直流伺服反馈系统设计(比赛项目计划书+设计总结+硬件+源代码+上位机等)

TW的硬件一直很强,这是难得的硬件创新比赛的优秀作品,资料非常完整理。

硬件设计,源码,项目计划书,甚至包含了事后的复盘总结文档。

是不可多得的好资料。

项目系统框架图

1. 硬件系统框架图 (请以方块图形式呈现)

2. 软件系统框架图 (以文字或方块图表示算法流程)

  • 项目设计预计效果
  • 六軸機械手臂運動控制
  • 需使用六塊 Servo Motion controller

    方塊圖如下:

  • 使用PC 做為主控台, 在PC端產生各軸的位置透過RS-485 下達命令做多軸運動控制

    PC 人機介面規劃如下:

  • VT100  terminal 報文輸出
    系統會由COM1 (115200,n,8,1) 輸出 VT100 格式化文字如下畫面

  • 多軸接線圖
部份代码:
#include <stdio.h>
#include <string.h>
#include "define.h"
#include "MultiTask.h"
#include "M451Series.h"
#include "sysclk.h"
#include "uart0.h"
#include "uart1.h"
#include "pwm.h"
#include "adc.h"
#include "eint.h"
#include "flash.h"
#include "adc_ctrl.h"
#include "TemFunction.h"
#include "VT100.H"enum {COLOR_RED, COLOR_GREEN, COLOR_BLUE, COLOR_YELLOW, COLOR_CYAN,COLOR_MAGENTA, COLOR_GRAY, COLOR_WHITE, COLOR_BLACK, COLOR_DGRAY,COLOR_DYELLOW, COLOR_DGREEN, COLOR_DRED,BCOLOR_YELLOW, BCOLOR_GREEN, BCOLOR_RED, COLOR_DBLUE};
typedef unsigned char*  Uptr;
extern  unsigned long g_ulFlags ;
//"FAULT   xLINK   oLINK   SERVO_o CAN_o   UART_o  VCOMP_m CURRENTm SPEED_m POSITIONm";
// SP_ENC  SP_iENC SP_qENC POS_ENC POS_POT POWERsts HALTED";
#define STATE_WAIT_FOR_LINK     0
#define STATE_RUN               1
#define STATE_FAULT             2
extern unsigned long g_ulControllerState;
//extern unsigned long g_ulMessageState;
extern long g_usEncoderCount; // encoder counter
extern unsigned long g_ulEncoderLines;  
extern unsigned long MsgIdxNum;
//----------------------------------------------------------
extern void UART0IntHandler(void);
extern void CAN0IntHandler(void);
extern void ControllerIntHandler(void);
extern void TaskCanDataReceive(void);
extern unsigned long g_ulFlags;typedef struct
{	uint32_t	id;uint8_t		t1;uint8_t		t2;uint8_t		t3;uint8_t		t4;
} STR_FLASH_T;STR_FLASH_T test;
void DiaplayInitial(void);
void DebugReport(void);
extern long g_lHBridgeV ;
int PwmCounter ;
void Initial_IoPort(void)
{// SETUP UARTUART0_Init(COM_485_BAUD);UART1_Init(COM_232_BAUD);  // debug port // SETUP PWMPWM_Init_PA3_PWM1CH2();PF->bMODE.MODE2 = 1;  // PF2 Output Mode Mode  LED_GPF->bMODE.MODE1 = 1;  // PF1 Output Mode Mode  LED_RPB->bMODE.MODE6 = 1;  // PB6 Output Mode Motor_CW   PB->bMODE.MODE7 = 1;  // PB7 Output Mode Motor_CCW PB->bMODE.MODE3 = 0;  // PB3 input mode Limit switchPB->bMODE.MODE4 = 0;  // PB4 input mode Limit switchPB->bMODE.MODE5 = 0;  // PB5 input mode Config SwitchPC->bMODE.MODE1 = 0;  // PC1 input mode Home switchPC->bMODE.MODE9 = 3;  // Quasi-bidirectional Mode // SETUP ADCADC_Init_PB0PB1PB2();// SETUP EINTEINT_Init_PC0PF0();	pwm_out(0);
}
//-----------------------------------------------------------------------------------
void CallBootloader(void)
{}//-----------------------------------------------------------
//software Watch dog simulation
//-----------------------------------------------------------//-----------------------------------------------------------------------
//software watchdog for reset the linking status 
//------------------------------------------------------------------------
unsigned int WatchDogCnt;
void WatchdogIntHandler(void)
{WatchDogCnt++;if (WatchDogCnt > 200)  // for 100mS{WatchDogCnt = 0;ControllerLinkLost(LINK_TYPE_NONE);}
}

资源分享:

六轴机器手臂运动控制-直流伺服反馈系统设计(比赛项目计划书+设计总结+硬件+源代码+上位机等)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/23053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea的代码没有提交到仓库怎么撤回到本地?

代码已经提交到变更列表但是还没有push推送到仓库上&#xff0c;可以用这个方法 点击日志-右键要撤回的记录-选择撤销提交 撤销的又回到本地变更 当然你只能撤销自己提交的&#xff0c;别人的你撤销不了

python-题库篇-为什么数组下标从0 开始而不是 1

为什么很多编程语言要把 0 作为第一个下标索引&#xff0c;而不是直观的 1 呢&#xff1f; 这个问题 Dijkstra 已经解答过了&#xff0c;没错&#xff0c;就是你知道的 Dijkstra&#xff0c;Dijkstra 最短路径算法&#xff0c;荷兰语全名是 Edsger Wybe Dijkstra&#xff0c;于…

定制高温隧道炉,如何判断质量好坏

在现代工业生产中&#xff0c;高温隧道炉扮演着不可或缺的角色。对于特定工艺要求&#xff0c;如陶瓷烧制、金属热处理等&#xff0c;定制化的高温隧道炉更是不可或缺。然而&#xff0c;面对市场上琳琅满目的产品&#xff0c;如何判断高温隧道炉的质量好坏成为了企业决策者面临…

js终止递归

终止递归 1. 实现目标&#xff1a;js 编写递归方法 查找指定节点&#xff1b; 2. 需解决问题&#xff1a;找到所需节点后&#xff0c;递归不会终止&#xff0c;直到所有节点遍历完成后才会停止&#xff0c;会消耗性能 3. 解决方案&#xff1a;优化递归方法&#xff0c;在找到…

解决vscode终端不显示conda环境变量名称问题【详细步骤!实测可行!!】

最近在使用Visual Studio Code (VSCode) 时候&#xff0c;发现终端没有正确显示激活的conda环境名称&#xff0c;搜了一下&#xff0c;找到原因&#xff0c;记录一下&#xff0c;如果有人也遇到同样的问题&#xff0c;可以收藏一下。   分别两种情况&#xff0c;一是windows系…

一周学会Django5 Python Web开发 - Django5内置Auth认证系统-用户登录实现

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计57条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

JVM学习-内存泄漏

内存泄漏的理解和分类 可达性分析算法来判断对象是否是不再使用的对象&#xff0c;本质都是判断一上对象是否还被引用&#xff0c;对于这种情况下&#xff0c;由于代码的实现不同就会出现很多内存泄漏问题(让JVM误以为此对象还在引用&#xff0c;无法回收&#xff0c;造成内存泄…

旭日X3与英伟达Orin NX通过TCP传输图片

观前提醒&#xff1a;本文主要内容为使用Python在局域网内建立TCP连接并传输图片信息&#xff0c;计算机为一块旭日X3和一块英伟达Orin NX。 一、什么是TCP TCP&#xff08;传输控制协议&#xff09;是一种可靠的、面向连接的协议&#xff0c;它确保数据包的顺序传输和完整性…

关于教务排课的那些事

在办学过程中&#xff0c;你是否被如下问题困扰&#xff1f; 1、排课功率低&#xff1a; 为了确保师资资源得到充分利用&#xff0c;教务教师排课要求了解每一个全职和兼职教师&#xff0c;了解每一个人的时刻组织和带班状况&#xff0c;因而在排课的时分需求处理很多的信息&a…

【Java数据结构】二叉树详解(四)

&#x1f512;文章目录&#xff1a; 1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; 2.给定一个二叉树, 找到该树中两个指定节点的最近公共祖先 2.1第一种思路 2.2第二种思路 3.根据一棵树的前序遍历与中序遍历构造二叉树 4.根据一棵树的中序…

图文型LED显示屏的结构与安装

随着科技的不断进步&#xff0c;LED显示屏已成为商业广告、公共信息显示等领域不可或缺的一部分。图文型LED显示屏以其独特的优势和多样化的应用场景&#xff0c;受到了市场的广泛欢迎。本文将详细介绍图文型LED显示屏的结构特点、工作原理以及安装指南。 1、图文型LED显示屏的…

跨境电商|Facebook Marketplace怎么做?

2016 年&#xff0c;Facebook打造了同名平台 Facebook Marketplace。通过利用 Facebook 现有的庞大客户群&#xff0c;该平台取得了立竿见影的成功&#xff0c;每月访问量将超过 10 亿。对于个人卖家和小企业来说&#xff0c;Facebook Marketplace是一个不错的销货渠道&#xf…

通过ssr-echarts,服务端生成echarts图

ssr-echarts &#xff1a;一个开源项目&#xff0c;它能够服务端渲染 ECharts 图表&#xff0c;并直接生成 PNG 图片返回。该项目提供了多种主题&#xff0c;并且支持 GET 和 POST 请求。如果参数较多&#xff0c;建议使用 POST 方法。用户可以自己部署这个服务。 1. 服务端安装…

Three.js-实现加载图片并旋转

1.实现效果 2. 实现步骤 2.1创建场景 const scene new THREE.Scene(); 2.2添加相机 说明&#xff1a; fov&#xff08;视场角&#xff09;&#xff1a;视场角决定了相机的视野范围&#xff0c;即相机可以看到的角度范围。较大的视场角表示更广阔的视野&#xff0c;但可能…

SBOM是如何帮助医疗器械制造商提高产品透明度的?

SBOM&#xff08;软件物料清单&#xff09;通过以下方式帮助医疗器械制造商提高产品透明度&#xff1a; 1. 详细记录软件组成 SBOM详细列出了医疗器械所使用的所有软件组件、版本、作者、许可证信息等。这使得制造商能够清晰地了解产品的软件组成&#xff0c;包括每个组件的来…

基于springboot实现民族婚纱预定系统项目【项目源码+论文说明】

基于springboot实现民族婚纱预定系统的设计演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本民族婚纱预定系统就是在这样的大环境下诞生&#xff0c;其可…

【Emgu CV教程】10.15、FillPoly()不规则形状填充颜色

文章目录 一、概念二、填充不规则图形1.原始素材2.代码3.运行结果 二、最大轮廓填充颜色1.原始素材2.代码3.运行结果 一、概念 图像的连通域是指图像中具有相同像素值并且位置相邻的像素组成的区域&#xff0c;连通域分析是指在图像中寻找出彼此互相独立的连通域并将其标记出来…

【最新鸿蒙应用开发】——Want信息载体

信息传递载体Want 1、概述 上一章节我们学习了UIAbility组件 【最新鸿蒙应用开发】——一篇搞懂什么是UIAbility-CSDN博客 &#xff0c;其中组件间的交互传递信息的媒介就是Want&#xff0c;本章节我们来更加深入学习Want的相关知识。 Want是一种对象&#xff0c;用于在应用组…

计算机毕业设计项目、管理系统、可视化大屏、大数据分析、协同过滤、推荐系统、SSM、SpringBoot、Spring、Mybatis、小程序项目编号1-500

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

桌面型激光雕刻机的发展前景及TMC应用优势

一、行业现状 近两年来&#xff0c;激光雕刻行业正处于快速发展阶段。随着人们生活水平的提高&#xff0c;对个性化、定制化产品的需求日益增加&#xff0c;激光雕刻以其独特的创意和精美的效果&#xff0c;满足了消费者对个性化产品的追求。同时&#xff0c;随着科技的不断进…