<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何創建FPGA控制的機器人手臂?

冬至子 ? 來源:OpenFPGA ? 作者:碎碎思 ? 2023-10-24 17:26 ? 次閱讀

機器人技術處于工業 4.0、人工智能和邊緣革命的前沿。讓我們看看如何創建 FPGA 控制的機器人手臂。

介紹

機器人技術與人工智能和機器學習一起處于工業 4.0 和邊緣革命的最前沿。

因此,我認為創建一個基礎機器人手臂項目會很有趣,我們可以回過頭來添加幾個功能,例如:

  • 逆運動學 - 確定末端執行器的位置。
  • AI / ML - 操作期間的對象分類。
  • 網絡控制——實現邊緣遠程控制。

此示例將使用一個機器人手臂,該機器人手臂在 Zynq SoC 的控制六個伺服系統??梢允褂煤唵蔚能浖缑婊蚴褂脙蓚€操縱桿進行直接控制。

伺服控制

我們需要做的第一件事是弄清楚如何控制伺服位置。伺服電機是最簡單的驅動電機之一,也是機器人技術的理想選擇,因為只要我們保持相同的驅動信號,它們就能保持相對位置。

那么伺服的驅動信號是什么呢?我們使用的同類伺服系統中的大多數都使用 60Hz PWM 波形。在 60Hz 波形的 16.66 ms 周期中,信號將在 0.5 ms 到 2.5 ms 之間為高電平。信號的持續時間將驅動伺服器在 0 到 180 度之間運動。

0.5 ms 脈沖驅動 0 度位置,而 2.5 ms 脈沖將驅動 180 度位置。因此,可以通過將信號驅動為 1.5 ms 脈沖來維持 90 度。

因此,增加或減少脈沖13.9 us寬度會使舵機移動 1 度。

接下來要解決的是如何生成驅動信號,PWM 擴展板(上圖)使用四個 8 位寄存器來驅動每個 PWM 信號。

on 寄存器定義信號變高的計數,off 寄存器定義信號變低的計數。

因此,我們可以將開啟時間設置為 0,然后定義關閉信號的計數,以獲得所需的信號寬度。

Vivado 構建

image.png

  • Zynq PS - 這是 Zynq 處理系統
  • AXI IIC - 在 PL 中實現的 I2C 接口

一旦完成了PL設計,我們就可以構建設計并將其導出到軟件。

軟件設計

我們將在軟件中開發大部分應用程序。由于我們希望在多種模式下使用它,并在將來進行升級時使用它,因此我們需要一種模塊化方法。

因此,為每個關節開發了一個可以根據需要調用和使用的函數。每個關節都能夠接收無符號的 8 位值,然后將該 8 位值與 90 度 (1.5 ms) 脈沖寬度相加或相減,以獲得所需的角度。

我這樣做有幾個原因:

  • 單個 RS232 字節可以包含所需的電機位置。
  • 從操縱桿讀取的值也是 8 位。

因此,我們需要確保操縱桿和手臂之間的運動對齊。

兩個操縱桿中,第一個連接到 JA,第二個連接到 JB(JA和JB是PMOD接口,就是普通的GPIO)。

JA 當沿 X 方向移動時,將向前或向后移動手臂;當沿 Y 方向移動時,它將上下移動手臂。

JB 在 X 方向移動時會旋轉手腕,在 Y 方向移動時會上下移動手腕。

每個移動函數的代碼都非常相似,并且可以在后面提供的代碼找到,但是,下面提供了向上向下函數以供參考

void up_dwn(u8 YData){  
 SendBuffer[0] = 0x0A;  
 SendBuffer[1] = 0x00;  
 XIic_Send(iic.BaseAddress,IIC_SLAVE_ADDR,(u8 *)&SendBuffer, sizeof(SendBuffer),XIIC_STOP);  
 SendBuffer[0] = 0x0B;  
 SendBuffer[1] = 0x00;  
 XIic_Send(iic.BaseAddress,IIC_SLAVE_ADDR,(u8 *)&SendBuffer, sizeof(SendBuffer),XIIC_STOP);  
 SendBuffer[0] = 0x0C;  
 u16 signal;  
 if( YData < 128 ){  
  signal = 122 + (YData * 1.91);  
 }  
 else if (YData == 128){  
  signal = 369;  
 }  
 else{  
  signal = 369 + ((YData - 128) * 1.91);  
 }  
 u8 cent_l_off, cent_h_off;  
 cent_l_off = (u8)signal;  
 cent_h_off = (u8) (signal >>8);  
 SendBuffer[1] = cent_l_off;  
 XIic_Send(iic.BaseAddress,IIC_SLAVE_ADDR,(u8 *)&SendBuffer, sizeof(SendBuffer),XIIC_STOP);  
 SendBuffer[0] = 0x0D;  
 SendBuffer[1] = cent_h_off;  
 XIic_Send(iic.BaseAddress,IIC_SLAVE_ADDR,(u8 *)&SendBuffer, sizeof(SendBuffer),XIIC_STOP);  
 }

軟件應用程序結構的其余部分是:

  • 初始化 PWM 擴展板和 Pmod 操縱桿。
  • 對手臂進行自檢并將所有伺服系統定位在 90 度。
  • 通過 RS232 接收命令或來自操縱桿的命令。

當然,如果我們希望在命令中進行硬編碼來執行重復任務,我們也可以。

初步測試

一旦 Vivado 構建和初始軟件可用,下一步就是確保軟件能夠正確移動伺服系統。

當移動操縱桿時,可以使用示波器測量 PWM 信號。

隨著操縱桿的移動,脈沖寬度逐漸從 0.5 ms 變為 2.5 ms。

image.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1604

    文章

    21340

    瀏覽量

    594053
  • 機器人
    +關注

    關注

    206

    文章

    27157

    瀏覽量

    201674
  • 人工智能
    +關注

    關注

    1778

    文章

    44244

    瀏覽量

    231112
  • 伺服系統
    +關注

    關注

    14

    文章

    516

    瀏覽量

    38869
  • 驅動電機
    +關注

    關注

    8

    文章

    380

    瀏覽量

    30440
收藏 人收藏

    評論

    相關推薦

    STM32的醫療康復機器人手臂控制系統

    器設計的醫療康復機器人手臂控制系統,具有杰出的功耗控制和電機控制的高級定時器,能產生3對可配置并互補輸出的PWM信號。通過在Simulink上建立雙閉環PID算法模型,得到合適的PID
    發表于 08-22 09:31

    以ARM為傳感器 自動跟蹤機器人手臂相機位置

    機器人手臂能夠到達一個狹小的空間或拾取一個精致的物體之前,機器人需要精確地知道它的手在哪里??▋然仿〈髮W機器人研究所的研究人員已經證明,連接到機器人手上的相機可以快速
    發表于 12-30 14:33 ?1866次閱讀

    機器人手臂5種不同的運動組合

    一般機器人手臂有3個自由度,即手臂的伸縮、左右回轉和升降 (或俯仰)運動。手臂回轉和升降運動是通過機座的立柱實現的,立柱的橫向移動即為手臂的橫移。
    的頭像 發表于 04-18 09:48 ?1.7w次閱讀
    <b class='flag-5'>機器人手臂</b>5種不同的運動組合

    關于藍牙控制Atmel制造的機器人手臂的介紹

    藍牙控制并且指導機器人手臂動作
    的頭像 發表于 07-09 03:22 ?3333次閱讀

    亞馬遜用機器人手臂來分揀投遞物品已獲專利

    據外媒消息,亞馬遜已經獲得了2015年首次申請的專利,該專利描述的是用機器人手臂來分揀投遞物品。
    發表于 09-13 09:10 ?1281次閱讀

    首款無創腦控機器人手臂誕生

    來自卡內基梅隆大學與明尼蘇達大學的研究人員日前利用無創的腦機接口(BCI)技術,成功開發出第一款由大腦控制機器人手臂,具有連續跟蹤計算機光標的能力。
    發表于 06-28 09:46 ?842次閱讀

    機器人手臂的典型機構有哪些

    機器人手臂的伸縮、橫向移動均屬于直線運動。
    發表于 07-08 11:42 ?6w次閱讀
    <b class='flag-5'>機器人手臂</b>的典型機構有哪些

    怎樣使用Android手機的藍牙控制機器人手臂

    在這個項目中,我將向您展示如何構建Arduino&amp; amp;使用Android手機的藍牙控制機器人手臂。該機器人手臂可以在手動模式下操作,也可以在全自動模式下進行編程。
    的頭像 發表于 07-29 09:11 ?7925次閱讀

    如何用手臂控制一個DOF機器人手臂

    我們使用PVC管和電線套管制作一個自由度(DOF)機器人手臂。用于彎頭聯合我們使用一個伺服電機。伺服連接到Pin-9的Arduino板。
    的頭像 發表于 08-22 16:48 ?2896次閱讀
    如何用<b class='flag-5'>手臂</b><b class='flag-5'>控制</b>一個DOF<b class='flag-5'>機器人手臂</b>

    Hibot機器人手臂Float Arm可用于哪些應用環境

    能代替“臟亂、危險、嚴重”的工作的機器人手臂“Float Arm”
    的頭像 發表于 04-20 16:06 ?5028次閱讀

    Arduino與樹莓派打造Chatbot語音控制機器人手臂

    在網上有許多關于制作機器人手臂的項目,但他們都有類似的控制方式,我感覺缺少了一些樂趣!所以我們決定制作一個可以使用聊天機器人控制機器人手臂
    發表于 03-16 11:47 ?30次下載
    Arduino與樹莓派打造Chatbot語音<b class='flag-5'>控制</b><b class='flag-5'>機器人手臂</b>

    機器人手臂使用哪種型號的泰和承比較合適

    機器人手臂的伸縮、橫向移動均屬于直線運動。實現手臂往復直線運動的機構形式比較多,常用的有活塞油(氣)缸、齒輪齒條機構、絲杠螺母機構以及連桿機構等。由于活塞油(氣)缸的體積小、重量輕,因而在機器人
    發表于 03-17 17:16 ?432次閱讀

    Arduino機器人手臂

    方案介紹MARK 1是可編程的Arduino機器人手臂。但是,還不止這些,該機械臂可以由手勢控制。硬件部件:Arduino UNO?? ?×?? ?1個?? ?伺服馬達MG996R×?? ?6?? ?5V電池組×?? ?1個?? ?PCA9685具有I2C接口的8通道8W
    發表于 12-30 14:42 ?3次下載

    用于Arduino Due的DIY Braccio機器人手臂護罩

    電子發燒友網站提供《用于Arduino Due的DIY Braccio機器人手臂護罩.zip》資料免費下載
    發表于 06-14 15:07 ?0次下載
    用于Arduino Due的DIY Braccio<b class='flag-5'>機器人手臂</b>護罩

    如何創建FPGA控制機器人手臂

    機器人技術處于工業 4.0、人工智能和邊緣革命的前沿。讓我們看看如何創建 FPGA 控制機器人手臂。
    的頭像 發表于 10-24 17:15 ?640次閱讀
    如何<b class='flag-5'>創建</b><b class='flag-5'>FPGA</b><b class='flag-5'>控制</b>的<b class='flag-5'>機器人手臂</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>