資料介紹
描述
介紹
當我在我們的機器人俱樂部AeRobotix INSAT中發現一個舊機械臂時,這個項目的想法就開始了。它的情況不是很好,因為它已經閑置多年,被遺棄了。這個機器人的名字叫優比機器人。
該項目的主要思想是構建一個自動機械臂來分類彩色物體。它會將它們放置在每種顏色的預定義區域中。該手臂將基于實時操作系統FreeRTOS 運行。 在實際工業應用中,機械臂可用于焊接、物料搬運、熱噴涂、噴漆和鉆孔等多種用途。
機械 DIY
在項目開始時,一些部件損壞嚴重。這就是為什么我更換了一些部件,例如損壞的齒輪和阻塞的步進電機。然后,我引入了一些潤滑液,以改善一些傳動裝置和機械連接。不幸的是,效應器的狀況也很糟糕,不得不更換。
![poYBAGOIHpWAOU_FABD5oaVn6S0061.jpg](https://file.elecfans.com/web2/M00/7E/F8/poYBAGOIHpWAOU_FABD5oaVn6S0061.jpg)
?
電源和步進驅動器
為了給這個機械臂供電,我使用了 ATX 電源,因為它可以為步進電機產生 24V 直流電,為真空泵產生 12V 直流電,因此足以滿足此應用的需求。此外,它體積小,非常適合固定在手臂下。
![pYYBAGOIHpiAe_gHAABNvsLBBIc325.jpg](https://file.elecfans.com/web2/M00/7F/84/pYYBAGOIHpiAe_gHAABNvsLBBIc325.jpg)
同時,在我對合適的步進驅動器的研究中,A4988 步進驅動器考慮到它的小尺寸和便宜的價格是一個不錯的選擇。另外,為了減少電路的擁堵,我使用了CNC shield V3。
?控制電路
為了減少布線并使項目更有條理,我使用ISIS Proteus 設計了一個簡單的電路。 它包含一個為真空泵提供必要電流的繼電器驅動電路和一個檢查有色物體是否存在的紅外物體傳感器。此外,步進電機連接直接與 CNC shield V3 建立。
電路原理圖:
![pYYBAGOIHp2Aa9XpAAEn-IsT9ZI696.png](https://file.elecfans.com/web2/M00/7F/84/pYYBAGOIHp2Aa9XpAAEn-IsT9ZI696.png)
打印設計、焊接組件并測試全部功能后:
![poYBAGOIHqOAIz3-AAu5PfbxixY062.jpg](https://file.elecfans.com/web2/M00/7E/F8/poYBAGOIHqOAIz3-AAu5PfbxixY062.jpg)
效應器
不幸的是,原來的機器人效應器嚴重受損。因此,我決定使用Solidworks創建自己的效應器。它使用帶有真空泵和適當排氣裝置的氣動能量。
![pYYBAGOIMVGAGEtrAArl7aipRpM964.jpg](https://file.elecfans.com/web2/M00/7F/8C/pYYBAGOIMVGAGEtrAArl7aipRpM964.jpg)
圖像處理
在這部分項目中,我使用了計算機視覺庫 Open -CV來檢測彩色物體并確定它們的坐標。該程序將在我的電腦上運行,并從網絡攝像頭(攝像頭固定在手臂頂部)獲取數據幀。然后,它將分析這些幀并檢查定義半徑內的對象。優先順序是(從前到后):
![poYBAGOIMVOAfJtSAAARW5v2ds4635.png](https://file.elecfans.com/web2/M00/7F/00/poYBAGOIMVOAfJtSAAARW5v2ds4635.png)
當檢測到物體時,它只需將其坐標和顏色發送到 STM32 微控制器。然后,手臂的主程序會將這些坐標轉換到機器人的真實坐標系中。
您可以Object_Sorting.py
在下面的代碼部分或我的 GitHub 存儲庫中找到該程序:https ://github.com/AlaHammouda/Robotic-Arm-Project 。
我使用庫中的范圍檢測器腳本imutils
來修復 HSV 顏色空間中的下邊界和上邊界。
測試演示:
主要程序:
在金字塔的頂端,我使用STM32F410RB NUCLEO 板對手臂進行了編程。關于同時控制步進電機的必要性,我發現實時操作系統不僅效率更高,而且可以讓您將復雜的問題分解成更簡單的部分。因此,您可以專注于每個任務的開發,而不是在事情運行時進行調度。FreeRTOS是一個免費的實時嵌入式操作系統。它是專業開發的,嚴格的質量控制,強大和支持。它也可用于許多流行的微控制器,包括STM32 。
- 理論研究:
為了確定效應器任意(x,y,z)坐標的具體關節角度(θ1,θ2,θ3,θ4),因為它基本上是程序中必不可少的操作,所以我畫了一個簡化的方案:
![poYBAGOIMVaADYCsAABss4v-yuw89.jpeg](https://file.elecfans.com/web2/M00/7F/00/poYBAGOIMVaADYCsAABss4v-yuw89.jpeg)
這個方程組的求解非常復雜,會導致我們找到無數個解。因此,我決定通過固定角度 θ4= -π/2 rad 來簡化它們:
![poYBAGOIMViAc9dUAABm64XPECE94.jpeg](https://file.elecfans.com/web2/M00/7F/00/poYBAGOIMViAc9dUAABm64XPECE94.jpeg)
現在,系統的分辨率會給我們兩種解決方案。我選擇了其中 (θ2>θ3) 的那個,因為它更適合手臂,也更方便:
![poYBAGOIMVuAXFHSAAAzSeYaZ5A505.png](https://file.elecfans.com/web2/M00/7F/00/poYBAGOIMVuAXFHSAAAzSeYaZ5A505.png)
此解決方案僅通過以下方式確定和測試:
![pYYBAGOIMV2AYhdlAAAOunQEwPE603.png](https://file.elecfans.com/web2/M00/7F/8C/pYYBAGOIMV2AYhdlAAAOunQEwPE603.png)
- 代碼實現:
在STM32CubeMx中修復微控制器的配置并在Keil uVision IDE中生成設置代碼后,代碼的實現是唯一剩下的事情。
該程序的總體思路非常簡單,它只是在FreeRTOS 中運行四個任務:其中三個是管理步進電機,第四個是處理手臂每種狀態下的特定操作。
為了確保與對象的實時交互,與我的計算機的通信是使用 UART 中斷建立的。
包括庫和聲明變量: main.c(56)
![poYBAGOIMV-AcuC6AAClEewdPC8614.png](https://file.elecfans.com/web2/M00/7F/00/poYBAGOIMV-AcuC6AAClEewdPC8614.png)
![pYYBAGOIMWKAeYuqAADWFtZdUwE127.png](https://file.elecfans.com/web2/M00/7F/8C/pYYBAGOIMWKAeYuqAADWFtZdUwE127.png)
任務的定義和創建: main.c(208)
![pYYBAGOIMWSANV4iAAC2AhKVxQ8036.png](https://file.elecfans.com/web2/M00/7F/8C/pYYBAGOIMWSANV4iAAC2AhKVxQ8036.png)
啟動 RTOS 調度程序:main.c(233)
![poYBAGOIMWaAYUvyAAAL4rQhF2Y602.png](https://file.elecfans.com/web2/M00/7F/00/poYBAGOIMWaAYUvyAAAL4rQhF2Y602.png)
實施 Set_Joint_Angles():此函數會將 (x, y, z) 命令坐標轉換為 (θ1, θ2, θ3, θ4) 關節角度,正如我們在上一節中解釋的那樣:main.c(485)
![poYBAGOIMWmARcwBAACgtTQr9mg303.png](https://file.elecfans.com/web2/M00/7F/00/poYBAGOIMWmARcwBAACgtTQr9mg303.png)
實施 Stepper1_Task_function():此函數將處理 Joint1 的旋轉。Stepper2_Task_function( ) 和 Stepper3_Task_function( ) 中的代碼相同main.c(516)
![pYYBAGOIMWuAccSzAADdHDSByOc313.png](https://file.elecfans.com/web2/M00/7F/8C/pYYBAGOIMWuAccSzAADdHDSByOc313.png)
實施 Main_Arm_Task_function():此函數將處理手臂的狀態和每種情況下的適當操作:main.c(600)
![pYYBAGOIMW-AchuGAAE3jzNi6a8932.png](https://file.elecfans.com/web2/M00/7F/8C/pYYBAGOIMW-AchuGAAE3jzNi6a8932.png)
在中聲明變量stm32f4xx_it.c(41)
:
![pYYBAGOIMXGARnTOAABTuInslGA216.png](https://file.elecfans.com/web2/M00/7F/8C/pYYBAGOIMXGARnTOAABTuInslGA216.png)
接收和處理 UART 中斷的數據:stm32f4xx_it.c(104)
![poYBAGOIMXeARmnlAADvhaOf1rE285.png](https://file.elecfans.com/web2/M00/7F/00/poYBAGOIMXeARmnlAADvhaOf1rE285.png)
您可以在下面的代碼部分找到這些文件(main.c、stm32f4xx_it.c) 。完整的程序項目(Keil μVision + STM32cubeMX 文件)可在我的 GitHub 存儲庫中找到:https ://github.com/AlaHammouda/Robotic-Arm-Project 。
測試主程序:
最后
在完成我的工程研究之前,這個項目是一次很棒的經歷。我應用了我在學習期間或課外活動中獲得的大量知識。我還學到了很多新技能,尤其是在計算機視覺和嵌入式系統編程方面。
最后,我要感謝并感謝我的好家人AeRobotix INSAT ,感謝我從中學到的一切以及對這個項目的支持。
如果您需要更多信息,請隨時與我聯系:hammouda.alaaeddine@gmail.com
![poYBAGOIMX-AEtvXABTqKdH5YOg404.jpg](https://file.elecfans.com/web2/M00/7F/00/poYBAGOIMX-AEtvXABTqKdH5YOg404.jpg)
?
- Bracc.ino機械臂開源分享
- 開源硬件-警燈
- AirBits開源硬件
- Python控制的機械臂開源分享
- 閃爍的LED開源硬件
- 人臂控制機械臂開源
- 智能積木開源硬件
- 音箱開源硬件分享
- 無線機械臂開源硬件
- HBus開源硬件
- 門鈴開源硬件
- Arduino手表開源硬件
- 操縱桿控制的機械臂開源硬件
- 基于Arduino硬件光控燈制作資料 7次下載
- 主流的開源硬件有哪些詳細資料說明
- 使用myCobot 280機械臂結合ROS2系統搭建機械分揀站 89次閱讀
- 深度解析!RK3568 加持機械臂是如何實現顏色識別與抓取的? 67次閱讀
- 基于六維力傳感器的機械臂自動裝配應用 834次閱讀
- 【開源獲獎案例】四軸機械臂控制系統 1319次閱讀
- 用小安派開源硬件制作一個桌面天氣站 1007次閱讀
- 基于深度強化學習的視覺反饋機械臂抓取系統 2473次閱讀
- 尋找開源硬件成功的觸發器 755次閱讀
- dfrobotArduino開發實戰-遙控機械臂套裝簡介 2531次閱讀
- 源創通信BPI-M1+ 開源硬件開發板介紹 2811次閱讀
- MATLAB機械臂的兩種路徑規劃 9167次閱讀
- 全球首款輕量級機械臂已經出現了! 7535次閱讀
- 三大主流開源硬件對比:Arduino vs BeagleBone vs Raspberry Pi 6657次閱讀
- 工業機器人常用材料分析:機械臂材料與常用傳感器 2.6w次閱讀
- 基于MicroZed的五軸自動化機械臂Dexter 3443次閱讀
- 開源硬件究竟有多“Open”?看完這個你就清楚了 7124次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論