在這次Maker Faire 北京2017創客展上,我們展示了我們自己DIY的機械臂小車作品,受到了很多人的關注。現場由於人手不足,我們的小車並不是一直上電工作的,以至於很多人只能看個外形不能親自來體驗。 這裡來詳細介紹一下製作過程。
作品構思
先來看一下完成後的演示視頻:
這個機械臂小車的想法一直存在於鄔樂的腦海裡,整個作品在今年暑假開始動手,耗時1周左右完成初步編程工作。 整個作品的構思比較簡單,就是希望在移動的小車上配備一個機械臂,可以移動的抓取物品,同時可以支持通過手機App來控制。
材料清單
KittenBot 機器人套件。 我們使用了KittenBot套件的底盤,2個步進電機,電池盒和主控板。 套件提供很很好的外觀和接口,使得作品整體成型度大大的提高了。 需要的朋友淘寶一搜KittenBot就有了
MeArm V0.3亞克力列印件。 這裡需要吐槽一下,應該買V0.4版本,V0.3還是不容易安裝舵機。
我們的測試手機,用於App Inventor開發手機App.
MeArm相關文檔
http://www.guokr.com/post/627075/國內文章
https://github.com/yorkhackspace/meArmmeArm Arduino庫文件,見附件
https://github.com/mimeindustries/MeArmMeArm 3D列印文件
http://www.instructables.com/id/MeArm-Build-a-Small-Hackable-Robot-Arm/0.3 版本
http://www.instructables.com/id/Pocket-Sized-Robot-Arm-meArm-V04/0.4版本,改進了舵機安裝方式
製作過程- MeArm機械臂組裝
當我們收到MeArm的亞克力件的時候,內心還是有點小奔潰的。賣家沒有給任何資料,就幾塊板子一包螺絲螺母。還好我們招到了相應的一個30分鐘的視頻。 那就開始吧~
整個組裝過程是鄔樂一個人完成的,中間幾近奔潰的時候我趕緊用酸奶奶茶之類的供著。
功夫不負有心人,終於成型後,鄔樂還是相當高興的!
製作過程- MeArm庫和機械臂控制
MeArm主要有4個舵機控制:Base,Shoulder,Elbow和Gripper。 這裡可以找到MeArm 的Arduino庫 https://github.com/yorkhackspace/meArm , 最大的好處是提供了(X,Y,Z)空間移動的直接函數調用。其實使用起來相當的方便。
測試代碼跑起來毫不費力
製作過程- 小車運動控制
鄔樂暑假正好在做KittenBot開箱測試和報告,所以很容易的我們就把控制代碼移植到了新的項目中來。
製作過程 - 交互協議
我們用手機App來做機械臂小車的控制,所以我們從一開始就討論好了上位機和下位機交互的協議格式: MX:45,MY:100,AX:75,AY:100,AZ:0,AG:0. 其中,MX和MY表示小車運動控制信息。AX/AY/AX表示機械臂爪子XYZ信息,AG表示爪子開關狀態。
數據統一由上位機通過藍牙連接發送,每隔300MS一次。下位機負責解析和直行相應指令。
製作過程 - App開發
在設計App的時候,鄔樂和我爭論最多的是如何進行控制。我們需要控制小車的移動,同時要在一個二維平面內對一個三維機械臂進行控制。 如何能夠讓用戶便捷易懂的進行控制?我們嘗試了不同的方式,最後選用了下面的方式。 我們橫向布局了2個畫布和球形精靈。 左邊的球形精靈讓用戶直接拖拽來控制機械臂的XY方向運動。 中間的球形精靈通過手機的重力感應來控制車輛的前進後退拐彎等動作,並且在手機APP上有直觀的顯示。 右側的上下控制機械臂的Z軸移動,抓放是控制Gripper爪子的動作。
製作過程 - 更換更換的舵機
在我們製作完之後,我們發覺機械臂的控制不是很靈。終於我們發現舵機已經打滑了。這時候離創客展已經不足一周了,原因是我們的sg90塑料舵機質量太差。忍痛緊急下單了一批金屬9g舵機,進行了替換。
下圖是塑料舵機,不推薦使用:
完工
最終效果如下,我們還拆除了MeArm的底座,直接把base舵機安裝到了KittenBot小車底座上,整體效果更佳~
總結
這次和鄔樂的分工配合越來越嫻熟了,鄔樂完成了:
KittenBot小車組裝和運動代碼
MeArm機械臂組裝
手機App開發
一起參與了設計、協議討論及後期改進
我完成了:
MeArm控制代碼
下位機協議解析與執行
一起參與了設計、協議討論及後期改進
需要源碼的可以後臺給我們留言。