查看: 51975|回復: 568

[教程] 【原創】 drawbot平面關節scara機械臂寫字機 畫畫機器人直播...

  [復制鏈接]
  • TA的每日心情
    開心
    2018-9-21 15:12
  • 簽到天數: 8 天

    [LV.3]偶爾看看II

    發表于 2018-9-12 15:57 | 顯示全部樓層 |閱讀模式
    本帖最后由 明娃子 于 2019-6-29 00:08 編輯

    這個項目上個月就在做了,結構和代碼反反復復改了多次,加上自己又太忙,一直沒來得及發帖分享。所以先立這個帖子吧,這兩天先打點零件出個組裝教程。
    打印件已全部放在
    thingiverse上 :
    游客,如果您要查看本帖隱藏內容請回復


    2018.9.29插樓更新
    新款筆夾測試,stl已更新,新增4mm*40mm光軸2根,8*4*10銅套2個。


    部分定制件不好購買,這里提供部分零件
    https://item.taobao.com/item.htm ... ibT&id=596224282726
    2018.11.27插樓更新
    Thingiverse上第6版固件已更新,新增自動調試功能,解決畫線不直問題。1.確保大小臂長度為200mm
    2.大臂與電機座側邊平行
    3.小臂與大臂呈45度角
    4.發送M700自動開始自動標定,數秒后自動標定完成
    drawbot calibration.jpg 2019.5.31插樓更新
    更新最新版上位機【機械臂大師】,后面附有連接,更多功能大家先自行摸索
    QQ截圖20190531172720.jpg
    插樓結束


    大家可以先打,有什么建議可以提出,圖紙不斷更新中。
    暫時取名叫做drawbot吧,也想不出啥名字了。
    arduino中文論壇和貼吧同步直播,歡迎關注。
    簡介:
    桌面級scara機械臂,運動機構為兩個42步進電機和一個9g舵機,控制板為mega 2560 和ramps 1.4,其他部件主要為3D打印件,工作范圍為A4紙,使用國標G代碼,目前可以實現寫字畫畫功能。
    交流q群 791947714
    mmexport1531729597713.jpg

    18.9.13 更新
    ---------------------機械安裝教程-------------------

    drawbot 所用零件除打印件和鋁管外均為標件,tb上都能買到。  打印件tb上也有代打的,當然也可以找我打。
    bom 表已整理完成,見下表。螺釘螺母數量可能不準確,建議多備幾顆。舵機線長度需要80cm,長度不夠的,需要自己接延長線。M8*55六角螺釘可用Φ8*40*M8 塞打螺釘代替,提高兩個驅動輪同軸度。
    鋁管長度為178mm  200mm(老款筆夾)  178mm 197mm(新款筆夾),bom中長度有誤,請注意。
    步進電機和限位開關線長度為40cm。 QQ截圖20180919115015.jpg

    18.9.17更新

    零件差不多齊了,忽略圖中的鉗子,開搞了
    092057q6al42sv1ahqhfqf.png
    092152ojsvsvb9blvhh6s7.jpg

    舵機線不夠長的,先將線加長到80cm,在較長的一根鋁管一端裝上舵機支架,將舵機線穿入管內
    092244vu4silofediiidzu.png

    裝上舵機和筆夾,之前bom表漏掉了一個2mm*12mm光軸,可用鋼絲代替 092258a25ky2sst92vn9yg.png
    092300vhjh2cpjq5qp6cet.png

    安裝連接件,M4*35螺釘需要兩個M4墊片,圖中未畫出
    092452o8881dgf9z8ex8j1.png
    092444h8ffqzqqanxklzi8.png

    安裝皮帶輪,提前套入同步帶,不要漏了
    092536o3of6qjozrror6pr.png

    限位開關為常閉型,如果買的常開型,自己改下線,接觸片朝下。
    092545sl77j7fsvxz50d7x.png

    有個螺孔被擋住了,3顆勉強固定,網上底座圖紙孔位已更新
    092548vfayz4sjzwyw1w6b.png

    兩個M4螺釘反裝如圖,正裝轉動螺母會松
    092552suhyjguwuvh7y7yi.png

    插上電機線,裹上束線管,機械部分就算完成了
    092908dsapniz28czvfrzr.png

    附上全家福
    092920a8oorjo600q02rz4.jpg
    簡單測試下重復精度,晚點再更新電氣部分
    視頻如下
    https://tieba.baidu.com/p/5881812268?pid=122005283943&cid=0&red_tag=2023302554#122005283943
    https://gss3.baidu.com/6LZ0ej3k1Qd3ote6lo7D0j9wehsv/tieba-smallvideo-transcode/33_3724987122587fdcc04fb928eca2affe_1.mp4

    2018.9.19更新
    ---------------------調試教程-------------------
    4988驅動模塊安裝方向如圖所示,驅動模塊下方6個細分設置引腳全部短接。驅動模塊電流調節方法見
    http://www.diankeshequ.com/forum.php?mod=viewthread&tid=2003
    1b556c899e510fb3e37e988cd433c895d0430cdb.jpg
    2c50b086c9177f3ea59c13167dcf3bc79e3d569e.jpg


    18.9.22更新
    需要使用的軟件主要如下

    Xloader固件燒錄軟件
    https://pan.baidu.com/s/1QR_wpkzYAFThaMymp68Hgg

    機械臂大師上位機
    鏈接:https://pan.baidu.com/s/1mu_-qLm5Fbt2HIe0oHoI1A  提取碼:q3v3

    G代碼生成軟件1 inkscape及相關插件
    https://pan.baidu.com/s/1dC-QIEEeyjRYqdUHBHABpw插件由aelab提供,大家覺得好用,可以購買他們的正版上位機,付費的自然好用的多,可以手機錄入字體,支持填表功能等,傳送門http://www.aelab.net

    G代碼生成軟件2 奎享雕刻綠色版
    鏈接:https://pan.baidu.com/s/1LBNSbfco1w0OKND0DE3ZPQ 提取碼:s2fu

    G代碼生成軟件3  laserGRBL,支持中文
    https://pan.baidu.com/s/1yDEdDrPJ07wWkfhLtU5nOg

    將mega2560連接電腦,選擇對應的端口,用xloader燒錄hex固件。
    PU~Y)A7XV(GWS38U235MS@X.png

    打開機械臂大師,選擇對應端口連接
    QQ截圖20190531172333.jpg
    出現如下返回值則連接成功。
    QQ截圖20180922004237.jpg

    軟件界面介紹如下

    常用的控制指令如下。
    G1 X10 Y10   直線移動
    G28 回home點,每次開機后需要先回home點以確定機械臂位置
    G90 切換到絕對坐標系
    G91切換到相對坐標系
    G94切換到直角坐標系
    G95切換到到角度坐標系
    直角坐標系
    新建位圖圖像.jpg
    角度坐標系定義如下,紅線平行于電機座側邊
    QQ截圖20180922011318.jpg

    M3 舵機落筆  轉到默認落筆角度
    M3 S15 舵機轉到15度
    M4 L10 T40  設置默認落筆角度為10 默認抬筆角度為40
    M5舵機抬筆  轉到默認抬筆角度M92 X48.8 Y48.8 設置電機分辨率,如果電機步進角是1.8°,16細分直接用出廠設置就行
    M203 X2000 Y2000  設置電機最大運動速度
    M201 X1000 Y1000 設置電機運動加速度
    M205 X0.8 電機運動平滑度 (下面介紹)
    M503 查看機械臂設置參數
    M501 載入用戶參數(保存到EEPROM的參數)
    M502 恢復出廠設置
    M500 保存用戶參數(保存到EEPROM)
    M370 將當面位置定義為坐標原點
    M700 自動標定
    所有參數修改后需用M500保存,否則重啟后數據會丟失


    首次連接后需要先發送M502恢復出廠設置,然后將機器擺成圖示角度,點擊自動標定按鈕,數秒后標定完成,然后發送M500指令保存設置
    1.大臂與電機座側邊平行
    2.小臂與大臂呈45度角



    發送G28回到HOME點,導入G代碼生成軟件導出的G代碼,就可以開始愉快的寫字了。寫字測試,由于抬筆結構為旋轉式抬筆,速度太快寫字會飄,后續考慮改結構,做成直上直下結構。

    18.9.23 更新

    新版筆架以設計好,晚點試試效果,沒問題就就上傳thingiverse
    QQ截圖20180923223813.jpg

    新版筆夾已做好,新筆夾對打印機要求較高,光軸銅套不同心的話,滑動不順暢,準備再改善下,降低打印難度

    QQ截圖20180929133918.jpg

    2018-10-16更新
    ---------------------代碼簡介-------------------控制板作為下位機,他的作用是解釋上位機發過來的G代碼,G代碼包含運動坐標值和一些控制指令,對于運動控制,下位機就是將G代碼轉換成步進電機的脈沖控制步進電機。這里比較關鍵的就是坐標正解反解函數,已知末端坐標值求出機械臂的角度,或已知機械臂的角度求出末端坐標值。
    大多數工業scara機械臂副臂控制電機位于主臂和副臂上,電機控制的大臂小臂之間的角度,屬于“相對”角度scara。如下圖
    timg.jpg

    和drawbot一樣的平行四邊形結構,副臂電機控制的副臂相對于世界坐標系的角度,即“絕對角度”scara
    113334_G07F_3503462.jpg

    通過同步帶傳送,將電機移動到固定底座上,也為“絕對角度”scara
    5cb83fd0d5d2e34a79f212f6c299b857_preview_featured.jpg

    兩種結構運動算法稍微有點區別。marlin 自帶的scara算法屬于“相對角度”scara,這里容易被忽略。

    drawbot正解算法如下:

    kittenblock中小學創客名師推薦的圖形化編程軟件

    void calculate_SCARA_forward_Transform(float f_scara[3])
    {
        float x_sin, x_cos, y_sin, y_cos;
        x_sin = sin(f_scara[X_AXIS]/SCARA_RAD2DEG) * Linkage_1;
        x_cos = cos(f_scara[X_AXIS]/SCARA_RAD2DEG) * Linkage_1;
        y_sin = sin(f_scara[Y_AXIS]/SCARA_RAD2DEG) * Linkage_2;//當Y電機控制小臂相對于世界坐標系旋轉角度時使用此公式
        y_cos = cos(f_scara[Y_AXIS]/SCARA_RAD2DEG) * Linkage_2;//當Y電機控制小臂相對于世界坐標系旋轉角度時使用此公式
        delta[X_AXIS] = -x_cos - y_cos - SCARA_offset[X_AXIS];  //求得用戶坐標系下X值
        delta[Y_AXIS] = x_sin + y_sin - SCARA_offset[Y_AXIS];  //求得用戶坐標系下Y值
    }


    QQ截圖20181016103402.jpg

    SCARA_RAD2DEG弧度角度轉換常數,即180/π。三角函數計算是弧度計算,所以所有角度需先轉換成弧度。通過三角函數關系算出x_sin  x_cos  y_sin y_cos.
    則圖中黃色向量表示世界坐標系下的末端位置,(-x_cos - y_cos,x_sin + y_sin ) 。再減去用戶坐標偏移SCARA_offset,得到用戶坐標系下的末端坐標值。

    drawbot反解算法如下:

    kittenblock中小學創客名師推薦的圖形化編程軟件

    void calculate_delta(float cartesian[3]){
    
    
     float SCARA_pos[2];
      static float SCARA_C2, SCARA_S2, SCARA_K1, SCARA_K2, SCARA_theta, SCARA_psi; 
    
      SCARA_pos[X_AXIS] = -cartesian[X_AXIS] - SCARA_offset[X_AXIS];  //求世界坐標系下X值并取反
      SCARA_pos[Y_AXIS] = cartesian[Y_AXIS] + SCARA_offset[Y_AXIS];  //求世界坐標系下Y值
    
      SCARA_C2 =   ( sq(SCARA_pos[X_AXIS]) + sq(SCARA_pos[Y_AXIS]) - (float)L1_2 - (float)L2_2 ) /(2*Linkage_1*Linkage_2);
    
      SCARA_S2 = sqrt( 1 - sq(SCARA_C2) );
      SCARA_K1 = Linkage_1 + Linkage_2 * SCARA_C2;
      SCARA_K2 = Linkage_2 * SCARA_S2;
    
      SCARA_theta = ( atan2(SCARA_K1, SCARA_K2)-atan2(SCARA_pos[X_AXIS],SCARA_pos[Y_AXIS]) ) ;//大臂旋轉角度,即主臂與-X軸夾角
    
      SCARA_psi   =   atan2(SCARA_S2,SCARA_C2) + SCARA_theta;//小臂旋轉角度,當Y電機控制小臂相對于世界坐標系旋轉角度時使用此公式
    
      delta[X_AXIS] = SCARA_theta * SCARA_RAD2DEG; //大臂旋轉角度轉換為弧度
      delta[Y_AXIS] = SCARA_psi * SCARA_RAD2DEG;   //小臂旋轉角度轉換為弧度
    
    }
    }

    新建 Microsoft PowerPoint 演示文稿.png
    cartesian[X_AXIS][Y_AXIS]為用戶坐標系下坐標值,加上SCARA_offset得到世界坐標系下坐標值。
    其中SCARA_pos[X_AXIS]向量方向向右,與原坐標值X方向相反,故取反。
    #define L1_2 sq(Linkage_1)
    #define L2_2 sq(Linkage_2)
    L1_2   L2_2是預先定義好的臂長的平方
    則直線AB距離的平方為 sq(SCARA_pos[X_AXIS]) + sq(SCARA_pos[Y_AXIS]
    三角形ABC中,現已知三邊長度,由余弦定理推出 cosC=(a^2+b^2-c^2)/2ab
    α的補角為
    arccos  [  (  (float)L1_2 + (float)L2_2- sq(SCARA_pos[X_AXIS]) - sq(SCARA_pos[Y_AXIS]) ) /(2*Linkage_1*Linkage_2)  ]//這里是偽代碼,C語言沒有arccos函數
    SCARA_C2為補角的cos值得取反
    SCARA_C2 =   ( sq(SCARA_pos[X_AXIS]) + sq(SCARA_pos[Y_AXIS]) - (float)L1_2 - (float)L2_2 ) /(2*Linkage_1*Linkage_2);

    將α  cos值轉換為sin值
    SCARA_S2 = sqrt( 1 - sq(SCARA_C2) );

    根據三角函數關系求出  SCARA_K1   SCARA_K2
    由圖可知
    SCARA_theta +δ+β =π/2
    δ+γ =π/2

    SCARA_theta =γ-β = ( atan2(SCARA_K1, SCARA_K2)-atan2(SCARA_pos[X_AXIS],SCARA_pos[Y_AXIS]) )
    SCARA_psi = α+SCARA_theta = atan2(SCARA_S2,SCARA_C2) + SCARA_theta

    乘上弧度角度轉換因子得出大小臂角度值
    delta[X_AXIS] = SCARA_theta * SCARA_RAD2DEG
    delta[Y_AXIS] = SCARA_psi * SCARA_RAD2DEG
    2018.12.18更新
    運動平滑度參數設置補充說明,運動平滑度就是工業機器人中的CNT值,因為速度不可以瞬間改變,折線運動中,如果準確運動到折點,折點速度為0,速度為很慢,所有用一條弧線代替折線,兩條線的加速度梯形相交,設定值即為相交點的速度,設置越大,速度越快,路徑被倒成的圓角也就越大。
    圖片1.jpg
    UC截圖20181210092912.jpg


















    該用戶從未簽到

    發表于 2018-10-2 12:42 | 顯示全部樓層
    雖然裝慢不過總算完成架子,可以要固件去了。。  [email protected]
    IMG_20181002_123217.jpg
  • TA的每日心情
    奮斗
    2020-3-10 18:50
  • 簽到天數: 26 天

    [LV.4]偶爾看看III

    發表于 2018-10-6 12:16 | 顯示全部樓層
    [email protected]

    謝謝大佬

    1

    1

    2

    2

    該用戶從未簽到

    發表于 2018-10-15 18:58 | 顯示全部樓層
    感謝分享,好人一生平安
    [email protected]
    xiezishou.jpg
  • TA的每日心情
    無聊
    2017-1-6 13:37
  • 簽到天數: 1 天

    [LV.1]初來乍到

    發表于 2018-10-24 14:59 | 顯示全部樓層
    本帖最后由 傾音聽雪 于 2018-10-24 15:10 編輯

    458499109423737267.jpg 大佬求固件[email protected]

    該用戶從未簽到

    發表于 2018-10-24 15:04 | 顯示全部樓層

    該用戶從未簽到

    發表于 2018-10-24 20:40 來自手機 | 顯示全部樓層
    求大佬給固件~
    IMG_20181024_204018.jpg
  • TA的每日心情
    慵懶
    2018-8-31 10:36
  • 簽到天數: 36 天

    [LV.5]常住居民I

    發表于 2018-9-12 16:03 | 顯示全部樓層
    關注一下,能發打印件的圖紙嗎?
  • TA的每日心情
    開心
    2019-9-2 09:02
  • 簽到天數: 327 天

    [LV.8]以壇為家I

    發表于 2018-9-12 17:43 | 顯示全部樓層
    不錯哦!  居然是粉色。
  • TA的每日心情
    開心
    2018-9-21 15:12
  • 簽到天數: 8 天

    [LV.3]偶爾看看II

     樓主| 發表于 2018-9-12 23:02 | 顯示全部樓層
    歷史中的一粒塵埃 發表于 2018-9-12 16:03
    關注一下,能發打印件的圖紙嗎?

    上面有圖紙連接
  • TA的每日心情
    奮斗
    2019-4-1 17:25
  • 簽到天數: 7 天

    [LV.3]偶爾看看II

    發表于 2018-9-13 20:28 | 顯示全部樓層
    不錯,好東西,好好學習下!
  • TA的每日心情
    擦汗
    2019-1-26 16:31
  • 簽到天數: 446 天

    [LV.9]以壇為家II

    發表于 2018-9-13 22:10 | 顯示全部樓層
    可以開通下打賞功能哈
    http://www.875340.buzz/thread-31092-1-1.html
  • TA的每日心情
    開心
    2018-9-21 15:12
  • 簽到天數: 8 天

    [LV.3]偶爾看看II

     樓主| 發表于 2018-9-16 00:13 | 顯示全部樓層
    syl312 發表于 2018-9-13 22:10
    可以開通下打賞功能哈
    http://www.875340.buzz/thread-31092-1-1.html

    謝謝大佬
    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規則

    熱門推薦

    萌新第一次嘗試,想問下電動車按鈕的三根線怎么連。
    萌新第一次嘗試,想問下電
    這學期的興趣課程要求,我們小組是要做一個提示燈背心,實現類似電動車轉向燈的功能。
    又偷東西咯。dht11溫濕度+oled+小愛+blinker
    又偷東西咯。dht11溫濕度+
    不玩了,不建議和我一樣的新手進qq群。
    max30102問題
    max30102問題
    最近網上買了個max30102的心率血氧模塊,用賣家給的單個例程的時候數據還算準確,但是
    新手求解,怎么跳出死循環while(1)?
    新手求解,怎么跳出死循環
    如何解決,求大佬解答
    【Arduino】108種傳感器模塊系列實驗(32)---雨滴傳感器模塊
    【Arduino】108種傳感器模
    37款傳感器與模塊的提法,在網絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是
    Copyright   ©2015-2016  Arduino中文社區  Powered by©Discuz!   
    快速回復 返回頂部 返回列表
    财神捕鱼游戏手机版下载 2019车小将最新消息 三分彩规律 股票涨跌如何计算 四川金7乐开奖号码 北京期货股票配资公司 秒速赛车计划百分百 学生炒股用什么软件 河内五分彩选胆技巧 四川快乐12破解版 上海11选5五单最多多少期没开