六軸機器手臂運動控制——直流伺服反饋系統設計(比賽項目計劃書+設計總結+硬件+源代碼+上位機等)

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.pswp.cn/web/23053.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23053.shtml
英文地址,請注明出處:http://en.pswp.cn/web/23053.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#.net MassTransit和DotNetCore.CAP區別

MassTransit和DotNetCore.CAP對比 https://github.com/MassTransit/MassTransit https://github.com/dotnetcore/CAP MassTransit和DotNetCore.CAP是兩種不同的.NET庫&#xff0c;它們在核心概念、設計目的和技術實現等方面存在差異。具體分析如下&#xff1a; 核心概念 Mas…

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.根據一棵樹的中序…

vite相關配置

1、vite開發環境和生產環境的環境變量配置 1、環境變量配置 vite本身會直接讀取為什么會讀取&#xff0c;因為含有dotenv第三方庫 &#xff0c;會直接讀取 .env文件&#xff0c; 2、css模塊化簡單處理 css:{modules:{localsConvention: "camselCaseOnly" // 打包配…

機器學習_決策樹與隨機森林

決策樹是一種常用的監督學習算法&#xff0c;既可以用于分類任務也可以用于回歸任務。決策樹通過遞歸地將數據集劃分成更小的子集&#xff0c;逐步建立樹結構。每個節點對應一個特征&#xff0c;樹的葉子節點表示最終的預測結果。構建決策樹的關鍵是選擇最佳的特征來分割數據&a…

圖文型LED顯示屏的結構與安裝

隨著科技的不斷進步&#xff0c;LED顯示屏已成為商業廣告、公共信息顯示等領域不可或缺的一部分。圖文型LED顯示屏以其獨特的優勢和多樣化的應用場景&#xff0c;受到了市場的廣泛歡迎。本文將詳細介紹圖文型LED顯示屏的結構特點、工作原理以及安裝指南。 1、圖文型LED顯示屏的…

Python項目開發實戰:看圖猜成語小程序(案例教程)

一、項目背景與概述 在現代社會,隨著智能手機的普及和移動互聯網的快速發展,移動應用(App)已經成為人們日常生活中不可或缺的一部分。看圖猜成語作為一種集知識性和娛樂性于一體的游戲,深受大眾喜愛。本項目旨在開發一個基于Python的看圖猜成語小程序,讓用戶能夠通過簡單…

跨境電商|Facebook Marketplace怎么做?

2016 年&#xff0c;Facebook打造了同名平臺 Facebook Marketplace。通過利用 Facebook 現有的龐大客戶群&#xff0c;該平臺取得了立竿見影的成功&#xff0c;每月訪問量將超過 10 億。對于個人賣家和小企業來說&#xff0c;Facebook Marketplace是一個不錯的銷貨渠道&#xf…

Java內部類、枚舉類、注解類

Java 是一種面向對象的編程語言&#xff0c;它支持多種類型的類&#xff0c;包括內部類、枚舉類和注解類 一、內部類&#xff08;Inner Class&#xff09;&#xff1a; 內部類是定義在另一個類內部的類。它可以訪問外部類的成員&#xff08;包括私有成員&#xff09;&#xff…

AIGC在移動APP開發中的應用及未來前景

隨著科技的不斷進步&#xff0c;人工智能生成內容&#xff08;AIGC&#xff0c;Artificial Intelligence Generated Content&#xff09;在移動應用開發中的應用越來越廣泛。AIGC不僅能提高開發效率&#xff0c;還能帶來更好的用戶體驗。本文將探討AIGC在移動APP開發中的應用及…

通過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;但可能…