Category Archives: 機器人專題實作計畫

[Arduino專題好用] 自己製作Arduino擴充板,使用Multism Blue

 

設計/撰寫者

皓云/鈺莨

時間

三小時

難度

***

材料表

今日要跟大家分享的作品是Arduino馬達擴充板,我們在作馬達控制的專題,尤其要接兩顆馬達的時候(例如:自走車),如果直接接Arduino,可能會因為Arduino的電流太小而推不動馬達,或是馬達電流太大把Arduino燒壞的風險,所以必須要外接馬達驅動晶片L298N。

當我們在做專題時,都會先用杜邦線接,但是馬達驅動晶片的腳位很多,接好之後如果要帶去展示時,在運送過程中難免會有杜邦線脫落的現象,造成要查線路的問題,畫擴充板便可以解決這個問題。

那麼作成擴充板的形式還有何麼好處呢?

  • 馬達驅動晶片接線複雜,可以減少電路斷路的風險
  • 將常用的元件焊在一起,具有獨特功能性
  • 利用擴充板形式可以節省空間,好收納
  • 可以小型量產

在繪製之前必須要先下載Arduino的所需檔案

本文是用Multism Blue的電路軟體來繪製,下載軟體及安裝步驟請參閱:

[不錯用的電路設計軟體Multisim Blue]手把手安裝教學

我們的目標就是要畫出下列的接線示意圖:

圖2

Arduino接腳對應馬達驅動晶片

ArduinoL293D
D3P15
D5P10
D6P7
D9P2
5VP1、9、16
GNDP4、5、12、13

 

 

繪製Arduino擴充板電路圖

1.先開啟舊檔,先匯入 『arduino_uno.ms14』的檔案

圖3

 

2.開啟之後會是Arduino 的電路圖,和l293d馬達驅動晶片底座,為什麼說是馬達驅動晶片底座呢?

因為實際上是鑽16個孔再把馬達驅動晶片底座焊在擴充板上,另外再把l293d嵌入在底座上面,如果l293d燒壞,還可以鑷子更換l293d。

 

圖4

 

3.新增電路的電壓Vcc元件,也就是Arduino所提供的5V

「Source 」→「POWER_SOURCES」→「VCC」 → 點選「OK」

圖5

 

  1. 新增兩個Vcc 元件連接在l293d的1、9、16號腳位

圖6

 

5.再新增接地線共地,以保持電位為零。

「Source」 →「GROUND」 → 點選「OK」

 

圖7

 

6.一樣也是新增兩個接地線接到L293D的4、5、12、13號腳位

圖8

 

 

7.新增當頁接頭,這功能是Multism Blue特點之一

  • 可以取代了從l293d的腳位直接拉線到Arduino腳位的線路複雜度
  • 畫面較為簡潔,能快速了解線路

 

在選項欄位的「Place」→「Connect」→「On-page  connector」

圖9

 

圖10

 

8.選擇IO3,即是代表Arduino的腳位

圖11

 

圖12

 

 

  1. 重複7、8的步驟,另外在新增接頭IO5、 IO6、 IO9

圖13

 

 

10.將IO3、IO5、 IO6、 IO9分別接到l293d的15、10、7、2腳位

11.繪製輸出三個端子台來外接電池和2顆馬達,這種端子台上方有螺絲孔,可用一字起子轉鬆,將馬達或電池的單芯線插入孔內,再利用一字起子轉緊即可完成線路連接。

 

到「Mouser Database」→「Connectors」 →

「CONN_SCREW_TERM_Phoenix_Contact」→「1715721」

圖15

 

  1. 查詢元件相關資料
    有些電路符號都長得很類似,如果想知道實體元件長得如何,可以在上圖第5個步驟有元件的網路連結提供查閱相關資訊

圖16

 

  1. 一個接l293d的3號和5號腳位;一個接l293d的14號和11號腳位;另一個則是接l293d的8號腳位及接地。

圖17

 


將電路圖轉成PCB

 

14.在MultisimBlue電路圖繪製完成之後,再來就是將電路圖轉換成PCB繪圖軟體檔案

欄位上的「Transfer」→「Transfer to Ultiboard」→「Transfer to Ultiboard 14.0」

 

圖18

 

15.轉換完畢之後,MultisimBlue會開啟另一個PCB繪圖軟體,在電路圖中電子元件的接線,會在PCB軟體轉換成預拉線。

圖19
16. 刪除長方形黃色外板框

在左邊PCB欄位,點選兩下Board Outline,Board Outline即是外板框的意思,就是板子的外型,可以任意改變形狀。

[ 電路設計軟體Multisim Blue ] 花朵、小雞、金魚造型LED燈設計 外板框就是設計成圓形。

 

圖20

 

點選黃色外板框之後會變成虛線,之後按下鍵盤的「Delete」,即可刪除。

圖21

 

 

17.匯入Arduino 外板框

「File」→ 「Import」→「DXF」

圖22

 

然後選取『arduino_un.DXF』檔案

圖23

 

在「Ultiboad layer 」裡,有下拉式選單選擇「Board Outline」,再將把所有的單位改成mm(重要)。

圖24

 

18.匯入後需將Arduino外板框回歸到原點(就是白色的十字),要把所有的外框線設為群組,這樣所有的外框線就會一起移動。

 

首先將全選外框線

圖25

 

在外框線上按滑鼠右鍵選擇「Group selection」,再按「Properties」

圖26

 

 

 

會進到 「Group Properties」 裡 ,在分頁的「Position」的X、Y欄位分別都填上0,單位記得也要改成mm。

圖27

 

19.解除群組,一樣也是先框住所有的外框線,按右鍵選擇「Ungroup selection」,這樣的作法是為了要把元件放進外板框裡,如果沒有解除群組,元件就會把外板框擠掉而放不進去。

圖28

 

 

20.將Arduino的腳位和其他電子元件排列,先排列Arduino腳位,之後再放其他元件。

 

網路上有網友繪製出Arduino的尺寸圖,原點一樣也是在左下角,但是圖中所有尺寸皆是mil,必須換成mm(1mil = 0.0254mm ),也就是所有尺寸皆乘上0.0254。

 

圖29

 

(圖片來源: https://blog.arduino.cc/2011/01/05/nice-drawings-of-the-arduino-uno-and-mega-2560/)

 

 

將上述的尺寸轉換成座標,便可以定義出Arduino 腳位配置圖,這邊單位一律為mm。

圖30

 

現在座標已經定義出來了,這邊在畫上圖中J1、J2、J4、IOL時,我要怎麼知道位置是對的呢?以J4為例,在其中一個腳位(就是藍色圈圈)中按下滑鼠右鍵,點選「Properties」,會跑出「Through Hole Pin Properties」的視窗,分頁選「General」,欄位上有「Net」,就知道這個腳位是Arduino的8號腳位了,其他以此類推。

圖31

圖32

 

知道了大概的位置之後接下來要輸入座標,繼續以J4座標(30.22,50.8)為例,點選整個J4元件(注意圖33中虛線),在按一下滑鼠右鍵,點選「Properties」,會跑出「 Group Properties」的視窗,分頁選「Position」,在X欄位輸入30.22,Y欄位輸入50.8,單位選mm,其他腳位以此類推。

圖33

圖34

 

排列好Arduino腳位後,再依序把其他元件排至適當位置

圖35

 

21.點選 ,可以快速佈線。

圖36

22.調整線徑的寬度

[ 電路設計軟體Multisim Blue ] 花朵、小雞、金魚造型LED燈設計的內文有提到: 『設計電路板時,線徑的大小與電磁干擾成反比,線的長度與電磁干擾成正比為了降低不必要的電磁干擾,將線徑加寬。』,在此我們設定0.5mm。

 

我們如果只要選線路,單單對線路做改變的話,只需要打開,再把其他選項關閉,便可以只選線,而不會選到其他元件。

圖37

 

選取所有線路之後按右鍵,一樣點選「Properties」,會出現「Trace  Properties」 視窗 ,「General」分頁欄位有「Width」,填入0.5。

圖38

 

之後會出現會有紅色圈圈的出現,左下角的「DRC」也開始變紅色為警示效果,是因為線和線之間太靠近,還需要做一些調整。

圖39

 

將線路整理

 

圖40

 

23.調整好之後可以按下,做3D預覽查看元件排列位置,焊錫走線是否一致。

 

圖41

 

[ DIY人型機器人 ] DeAGOSTINI-Robi機器人組裝分享

View post on imgur.com

作者/攝影  葉哲志
時間  二~三天
成本
  • 約42,000
難度  * * *
材料表
  • Robi機器人第一至七十期

View post on imgur.com

Robi是由日本機械人創作者高橋智隆所設計的機器人,並在DeAGOSTINI出版的「洛比」週刊活耀於2014年,「洛比」除了會在每一期介紹各式各樣與機器人相關的內容,每篇雜誌都會伴隨Robi機器人的部件,讓訂閱者能享受了解、組裝機器人的樂趣。

View post on imgur.com

組裝Robi機器人的契機在我個人參訪CAVEDU教育團隊時,意外得知了這個小傢伙,半個身體與整箱的零件堆放在一個大紙箱裡頭,不過! Robi與所有的零件就堆放在眼前了,機會難得,就由我接手讓Robi動起來!

View post on imgur.com

View post on imgur.com

Robi已經有些部分完成了,除了Robi的頭部外殼與擺放用的支撐架(圖中的不是實際運作的上半身噢),其餘還包含了一部分的上肢,可惜的是有銜接Robi左手的部分似乎遺失了某塊零件,看來在搞定之前只能擱置了。

View post on imgur.com

那麼就先把所有尚未組裝的零件來張合照,這些就是將要攻克的目標!

View post on imgur.com

什麼?你說怎麼有隻腳剛剛都沒提到?其實那是我剛開始組Robi時太興奮而忘記記錄的,所以確實有一隻腳已經被我給完成了,但別擔心看不到怎麼組裝的,機器人也是兩隻腳,當然能帶各位體驗一次組裝Robi的過程啦~

 

首先以我開始組裝的27號期刊為例,薄薄的一本乍看之下根本只剩一張紙了阿…

View post on imgur.com

View post on imgur.com

其實每篇期刊介紹機器人的內容都很獨特,位於內頁左半邊的目錄依序介紹「洛比的機器人見聞錄」、「機器人巨星檔案」、「機器人技術的世界」及「組裝導覽」,見聞錄裡主要介紹現行實際運作的機器人,諸如保全、相聲、送貨……等等所涉獵的機器人,巨星檔案則是像原子小金鋼或鋼鐵人這類位於科幻中存在的機器人,機器人技術則時常介紹一些機器人所運用的科技,機器人繪製自身所見的3D地圖從沒聽過對吧!但內容還是要請各位訂購後在閱讀了,所以現在就先翻到「組裝導覽」。

View post on imgur.com

內容先是介紹當期所給的零件與組裝時需配合的已組裝好零件,再來就是手把手的圖例教學啦,基本上照著做十分的容易,所以後續就接著左腳的實際組裝吧!

View post on imgur.com

Robi機器人其中的核心角色—「伺服馬達」,可以跟旁邊的實際腳部大小做比較,能利用的空間被十足的精簡了呢。

View post on imgur.com

雖然使用了工具來拆裝,但這把螺絲起子也是期刊所給的,它也是整個組裝中唯一的工具噢。把伺服馬達拆開是為了要接線,這樣才能控制Robi靈活的作動。

View post on imgur.com

View post on imgur.com

電線銜接馬達控制面板的部分必須使用貼紙保護,在很早以前就先把貼紙給了玩家們,還好之前的組裝者好好的保留了下來。

 

View post on imgur.com

View post on imgur.com

接完線就能配合其餘零件按圖索驥了。

View post on imgur.com

馬達與零件是有防呆措施的,只要不刻意用力按壓,裝錯了一定能知道。

View post on imgur.com

馬達與零件是有防呆措施的,只要不刻意用力按壓,裝錯了一定能知道。

View post on imgur.com

View post on imgur.com

用螺絲固定腳踝零件至底板,之後讓馬達之間互相串接,這樣就不會有一堆亂七八糟的線暴露在外了。要留意線路的走法,避免被錯誤的壓迫到,而此時增加的第二顆伺服馬達有額外貼了白色貼紙,這樣能讓Robi的腳踝看起來一致。

View post on imgur.com

View post on imgur.com

要注意螺絲分做圓頭與平頭,鎖個圓頭螺絲在腳底害Robi每一步像在踩積木,他一定氣到摔給你看。

View post on imgur.com

View post on imgur.com

依序鎖零件,串接第三顆馬達,鎖零件,串接第四顆馬達,Robi的腳便迅速的成型了!

View post on imgur.com

 

View post on imgur.com

準備下半身合體!期刊很有趣的附贈了顆足球,Robi再等等就有靈活的雙腳啦。

View post on imgur.com

 

 

 

 

 

雖然小腿的部分還需要收線處理,但基本上已經把Robi組完一半了!截至目前為止是到達54號期刊,剩下其他特殊的零件。

View post on imgur.com

剩餘的零件就是用於線路的排線、揚聲器、人體感測器、貼紙……等等,但礙於上半身缺乏關鍵的零件而無法將東西安裝於身體內部,因為是需要不斷組裝後測試有沒有損壞的部件,先跳過組裝後半段要拆開再試,。

View post on imgur.com

那麼Robi的組裝就先暫且告一段落,其時實際的去接觸機器人十分有趣之外,在組裝的過程你能發現機器人的結構富含諸多的巧思,如果有機會的話,不妨多多參與機器人相關的事物吧,他真的值得你去體驗,那麼有關於Robi機器人的分享到此,謝謝觀看!

 

相關文章:

 

 

 

 

 

 

 

[DIY人形機器人] 日本Kondo人型機器人(22軸馬達)組裝篇

上回[[DIY人形機器人] 日本Kondo公司機器人<零組件分享KHR-3HV Ver.2>],我們完成了災損KONDO開箱,清點所有零件,這次我們要正式開始組裝,重建之路始動!

作者/攝影  高稚然
時間 備嘗艱辛的一年
成本
  •   17軸-新台幣63,000元(商城連結
  • 無盡的愛心與耐心
  • 優秀的夾線技術
難度 
材料表
  • KHR-3HV Ver.2一套
  • +五軸擴充套組或KHR-3HV Ver.2兩套
  • +JP24150端子(母接頭及3pin公座)
  • +杜邦母頭、3pin杜邦座
  • +端子鉗

有關詳細的硬體規格、型號及官網說明,請參考上篇:KONDO機器人KHR-3HV Ver.2開箱文([DIY人形機器人] 日本Kondo公司機器人<零組件分享KHR-3HV Ver.2>)。

 

上回我們辛苦地把零件清點完了(抹汗),但可別興沖沖地直接開始組,必須先確認零件功能一切正常並且校正才行,若貪快待組裝完畢才察覺問題,可是偷雞不成蝕把米呢。

KHR-3HV Ver.2的馬達是KONDO自家開發的串接模式,可以大幅減少接線的凌亂程度,但必須設定彼此間的串接關係。除了以專用軟體設定ID外,每顆馬達上都還有張貼紙標示區別。下圖1為17軸機器人各馬達的位置及ID編號:

圖1(圖片取自17軸的組裝說明書

 

這裡使用光碟內附的:ICS3.5 Serial Manager來檢測、校正、修改馬達狀態。依說明書指示組裝線路、開啟軟體並連線如下:

圖2

 

使用下拉式選單或直接按「取得」連上對應的ID,之後便可使用「動作」欄的拖曳桿操控馬達位置,數值範圍3500-11500,對應-135度到135度,結束前務必將馬達歸零(數值7500)。如果想改變馬達組裝部位,需使用該軟體更動編號並寫入(書込),但請於硬體標示清楚避免搞混。ICS3.5 Serial Manager尚可讀取馬達的溫度、電流值,並且調整保護閾值。

經過檢測後,有幾顆馬達宣告陣亡,面對眼前1點多套KHR-3HV Ver.2的我,一時鬼迷心竅,決定直接挑戰KONDO機器人最豪華的22軸版本!(關於KHR-3HV Ver.2各種擴充套件的說明,可以參考[KONDO KHR3-HV Ver. 2 硬體配備])

增加一個腰或頭的可動度、兩個胯的自由度,一隻手再加一個可動度,可以扭腰、轉腳、護住中線,聽起來多麼的吸引人啊!立刻比對了17軸的組裝說明書以及擴充5軸的組裝說明書,發現除了馬達數量、螺絲多了幾顆、接線長度改變外並無差異,完全沒有問題!帶著KODON的線材到光華尋找近似的規格,除了沒有現成的3 pin排線以及防呆杜邦頭外其餘都找著了。圖3為採買的耗材種類,由左上瞬時針依序為:螺絲膠、杜邦母頭、3pin杜邦座、JP24150端子座、JP24150端子,另外還有五彩繽紛的排線。

圖3

那麼就開始夾線囉!目前為止看似一切順利──才怪,1.5 mm的端子加上纖細的排線,用端子鉗DIY的良率不到五成啊,更別提實際組裝時又拉斷好幾條。圖4就是鐵錚錚地失敗紀錄,奉勸大家若想組裝擴充套件,還是找專人製作好的線材才是。

圖4

 

但在此時我並沒有預料到之後可能會有的慘烈,也忘了先檢查測試控制版,就這麼一股腦地往前衝了。

硬體的組裝並不難,但要注意的是由於22軸為擴充套件,KONDO預設使用者先組好了17軸機器人,所以它最開始的步驟──是拆解。為了避免裝裝拆拆作虛功,先將擴充5軸說明書掃過一遍,記下要改裝的位置,以便在兩份說明書切換。在組裝上半身、腰時看22軸的說明書,其他部分則以17軸為主,組到最後要接線整線時在跳回22軸。歷時近一年(其間我報名了兩次研究所,落榜了兩次),終於完成所有的組裝過程了,真是備嘗艱辛啊!如果大家想早點完機器人的話,建議還是先組17軸基礎版就好,後續Debug的問題也會比較少。

鎖螺絲、上伺服臂相對簡單,麻煩的是接線,務必仔細、再三確認正確與否,而自製的接線五彩繽紛且乏於防呆,更增加了挑戰性。套件中附有貼紙,以顏色及號碼區別接在控制版上的各條接線。成品如圖5。

圖5

KONDO也提供了整線的設計,利用塑膠塊及束線帶,將接線們整理地服服貼貼,相當地細膩,附上左腳及後腰的整線成果。

圖6

圖7

 

最後附上完成照,結束今天的文章,感謝一路讀到這邊的你/妳!

圖8

 

下回預告:慘烈慘烈再慘烈◢▆▅▄▃-崩╰(〒皿〒)╯潰-▃▄▅▆◣,除錯與通訊篇。

 

相關文章:

[DIY人形機器人] 日本Kondo公司機器人<零組件分享KHR-3HV Ver.2>

日本近藤科學KONDO KHR3-HV Ver. 2 機器人相關介紹可以先看這篇文章

這個故事得從2015年的蘇迪勒颱風說起:還記得當時慘烈的災情嗎?在風雨肆虐的夜裡,CAVEDU不幸地──淹水了。我們將受災的KONDO KHR-3HV Ver.2機器人,拿起來邊重建邊開始玩。

作者/攝影  高稚然
時間  打開盒子拿出來排的時間
成本  17軸-新台幣63,000元(商城連結
難度 
材料表
  • KHR-3HV Ver.2一套

首先是在濕軟的紙箱中掏出所有零件,一整套包含:

  1. KRS-2552RHV ICS伺服馬達*17顆

KONDO出品的KRS-2552RHV ICS伺服馬達作動範圍達270度,除了傳統的PWM控制外,還可使用KODNO特別研發的串接模式(Serial、シリアル),大幅減少接線的複雜度及痛苦程度。此外,該馬達內建電流與溫度的偵測及過保護機能,11.1V時最大扭力為14.0kgf・cm。

將馬達們依組裝位置排列如圖1,各部位可動度如下:頸部或腰部一軸(二擇一)、一手三軸、一腳五軸。馬達上的ID編號不僅是為了組裝方便,也與串接模式的控制有關,如果要換位置還需用軟體改編號,顏色則是單純區分部位。

2.控制板RCB-4HV及其他選配模組(加速規、無線通訊模組等)

3.鋁件

主要做為馬達之間的固定結構,部份有攻牙以搭配機械牙螺絲。

4.塑膠件

此類為強化型樹脂,主要為伺服臂,搭配自攻螺絲。

5.塑膠件

其餘為KONDO的外殼等裝飾件,同樣搭配自攻螺絲。

6.各式螺絲

KHR-3HV Ver.2套件中足足有「10種」規格的螺絲,總共有四百多顆(深呼吸),強烈建議找個分類盒,依序放好後撕下包裝上的貼紙貼於盒上,方便操作。下圖6可看到暴雨的痕跡,不過我後來用的是災情較小的那套,沒有生鏽的問題。

7.電池與充電器

由九個鎳氫電池串接而成,10.8V-800mAh。接頭是臺灣比較少見的規格,有防呆及卡榫。日規電壓為100V,此外,由於鎳氫電池有記憶效應的問題,充電時務必按下按鈕先行放電。

8.各式接線

讓機器人動起來,連接各個組件、傳達訊號的重要角色就是它們了,規格同樣多的讓人眼花撩亂。

讓我們依資料類型及接頭將其分為三類:

  • 與RCB-4HV版溝通的杜邦頭3 pin(圖9)

端子頭在號線側有凸起便於識別,並且搭配防呆座。

  • 連接伺服馬達的JP24150端子3 pin(圖10下)

1.5mm的端子十分纖細,三條接線依序為:信號(灰)、正電(黑)、地(黑)。母座上有防呆設計。

  • 電源用接頭(圖10上)

電原用接頭是臺灣比較少見的型號,有卡準及防呆設計。

講了這麼多次防呆,就是要特別提醒大家,千萬別接錯線,或者是靠蠻力硬來啊!

剩下的是內含軟體及多份說明書的光碟、可切換兩種通訊模式的USB連接器、貼紙等等。到這裡我們終於把零件清點完了(抹汗),那麼請期待下回:22軸組裝篇!

 

相關文章:

[TJBOT紙板機器人]CAVEDU 組裝設計升級 2.0

您如果還沒看過我們上一篇TJBot組裝心得發表文,趕快去看不用擔心,這不會影響您的閱讀順序,但是可能會少一些閱讀樂趣。

如果您是在【機器人王國商城】shop.robotkingdom.com.tw購買TJBot的套件,請以本篇敘述的方式來組裝。

購買TjBot傳送門:http://shop.robotkingdom.com.tw/humanoid-robot/tjbot01.html

作者/攝影  鄭建彥
時間  15分鐘
成本  總共約新台幣3,675 元 (想買TJBOT材料包可點選 商城連結 )
難度  * * *
材料表
  • TJBot的雷切紙模板
  • Raspberry Pi B+(或是更新的版本、ASUS Tinker也可以)與相關配件(micro SD卡與5V3A變壓器)
  • USB麥克風
  • 小喇叭
  • 5mmLED
  • SG90伺服機
  • 170孔麵包板
  • Raspberry Pi 攝影機(非必須)。

我們的TJBot的雷切圖檔與手臂的3D設計檔:http://www.thingiverse.com/thing:2191961

 

建議工具:

  • 寬度6mm雙面膠。
  • 直尺(金屬製為佳),協助折線用,不用太長。
  • 小隻的十字螺絲起子。
  • 美工刀。

注意事項:

  1. 手還是會弄的髒髒的:因為是雷切紙板,紙板的邊緣會有燒焦的痕跡,組裝時不可避免的會弄到手,愛乾淨的朋友可以帶個手套再來組。
  2. 組裝說明請多看幾次:雖然不是什麼很難的模型,在你動手前,還是請多多參考相關影片https://www.youtube.com/watch?v=bLt3Cf2Ui3o、https://youtu.be/MpL4BeQ3Nqc,或是其他人的組裝分享文(如本篇跟1.0 版之組裝教學),減少不必要的悲劇或是意外。
  3. 紙板折錯方向是會斷掉的:雖然本次的版本已經減少部分容易損壞的部分,部分固定方式改成以雙面膠固定。但雷切出來的折線,不適合反覆彎折,會 斷 掉!請先確定方向再折。若不幸真的斷了,不須覺得世界末日,拿膠帶來黏就好。如果不喜歡膠帶黏過的感覺,沒關係,我們很樂意再賣你一套材料包。
  4. 妥善運用直尺:金屬製15公分直尺會是你組裝的好幫手,除了可以幫你順利的折出完美的轉角,在榫接時也很好用。
  5. 不要硬拔:在取下零件時,請用美工刀將連接處劃開。
  6. 找一個小盒子,把小零件都先放在裡面。
  7. 建議先不要把雙面膠撕開,先確定各部分都在對的地方,確定無誤後,再黏起來。
  8. 注意方向:我是沒有發生啦,但有些朋友會把TJBot的手組到另一邊去。
  9. 錯了就錯了,斷了就斷了,不完美才是特色,最糟不過再來買一套。

這是基於本團隊組裝好幾台TJBot後的心得,在挫折與沮喪之中,跑到河邊看魚逆流而上,由衷讚嘆師父的偉大,有感而發,才開發出來的。

部分組裝方式跟之前的版本相同,如果在本篇看不清楚,可以參考上一篇(點閱數入手)-[TJBOT紙板機器人] 第一次製作機器人就上手-組裝篇

 

STEP 1  組裝底座

在寫有Fold Down的地方貼上雙面膠,正反面都要貼喔。

STEP 2  組裝頭部

方法同STEP 1。

STEP 3 組合下半身

STEP 4. 裝上Raspberry Pi攝影機(選配,但我裝了),沒要裝攝影機的朋友請看STEP 5

STEP 5 放入控制板

上次已經裝過Raspberry Pi,這次我們裝的是剛剛上市的ASUS Tinker,Tinker的外型跟Raspberry Pi完全相容,裝進TJBot完全沒問題。

 

STEP 6裝喇叭與麥克風

喇叭上的電源開關先撥到ON,否則裝好之後不太容易摸到電源開關。

PART 7 裝手臂

之前紙板的手臂不容易順利摺好,經過幾次不愉快的經驗之後,我們決定改用3D印表機製作。如果你想要自己印,歡迎使用我們的設計檔案。

伺服機先歸到中心點:先將伺服機轉到適當的位置,手臂朝上時是中點,往前後都各有90度的動作範圍。

PART 8 組裝固定板

黏上麵包板:我們有預留固定麵包板的位置,把麵包板背面的雙面膠撕開,對準刻痕,黏上去。

 

PART 9 把臉裝上去。

來個完成照!

裝飾一下你的TJBot。(下圖是我家公子們的真跡)

參考資料:

相關文章:

 

[TJBOT紙板機器人] 第一次製作機器人就上手-程式進階篇_語音控制LED

本文將介紹如何在 Raspberry Pi 上設定 TJBot 所需之硬體與軟體環境,並結合 IBM Bluemix 的 Sppech to text 服務打造一台能以語音指令控制LED的機器人。

機器人外殼組裝請參考:http://wp.me/p3T9Qk-5B1

作者/攝影  曾吉弘
時間  6小時(組裝、環境設定與編寫程式等)
成本
難度 * * * * * * *
材料表
  • TjBot紙板模型(未組裝) X1
  • 樹莓派 Raspberry Pi 3 Model B X1
  • 5V3A USB交換式電源供應器 X1
  • Class 10 16G micro SD卡 X1
  • 小喇叭 X1
  • USB 迷你麥克風 X1
  • LED 5mm 白發紅光 X1
  • SG90小型伺服機 X1
  • EIC 170孔麵包板 X1
  • 電阻 220歐姆 X1
  • 線材 X1

1.Raspberry Pi設定

請燒錄最新的 Raspbian 作業系統讓 Raspberry Pi 開機,本文使用 Raspberry Pi 3,但經測試,Raspberry Pi 2 也可正常使用。

2.安裝所需套件

Raspberry Pi 連上網路之後,請依序在 Raspberry Pi 的 terminal 中執行以下指令:

  • sudo apt-get update   (更新可用軟體)
  • sudo apt-get dist-upgrade   (升級軟體)
  • curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash –
  • sudo apt-get install -y nodejs   (安裝js)
  • sudo apt-get install alsa-base alsa-utils (安裝alsa聲音程式)
  • git clone https://github.com/ibmtjbot/tjbot.git (取得本專案之github source)
  • cd tjbot/recipes/speech_to_text (切換到指定資料夾)
  • npm install   (安裝所需之npm套件與檔案)
  • npm install onoff

安裝完之後您的資料夾應該長這樣,有一個 /node_modules 資料夾,裡面是必要的函式庫:

3. Bluemix 設定

本段將介紹如何在 IBM Bluemix 上建立一個 Speech to text 服務。這個服務可以把我們對麥克風說的話轉成文字,讓Raspberry Pi 來辨識並執行對應動作

請註冊一個免費的 IBM bluemix 帳號

 

完成之後完成之後可於畫面左上角點選 [服務]/ [Watson] 即可看到我們所建立的 my-stt-service 服務。

4. 所需零件

所需硬體

   5. 硬體設定

請如下圖連接硬體,GND接到 Pi 的GND,LED則分別將正極接到Raspberry Pi 3 的GPIO14腳位(下圖右排,第4隻),負極則接到Raspberry Pi 3 的GND腳位(下圖右排,第3隻)

 

stt.js

程式大致上分成以下步驟:

  1. 設定Bluemix
    在此須正確輸入您的 Bluemix 帳號密碼
  2. 設定麥克風
    設定麥克風來取得您說話時的語音輸入檔。更多資訊請參考https://www.npmjs.com/package/mic
  3. 把語音指令轉成文字
    本步驟會把麥克風所錄製的聲音檔送到 “Watson Speech to Text”服務,並以”textStream” 回傳轉譯後的文字。可用的語系有以下,請由程式碼中的 var recognizeparams = {
    content_type: ‘audio/l16; rate=44100; channels=2’,
    model: ‘en-US_BroadbandModel’
    };

來設定:

  • zh-CN_NarrowbandModel
  • zh-CN_BroadbandModel
  • pt-BR_NarrowbandModel
  • pt-BR_BroadbandModel
  • ja-JP_NarrowbandModel
  • ja-JP_BroadbandModel
  • fr-FR_BroadbandModel
  • es-ES_NarrowbandModel
  • es-ES_BroadbandModel
  • en-US_NarrowbandModel
  • en-US_BroadbandModel (預設)
  • en-UK_NarrowbandModel
  • en-UK_BroadbandModel
  • ar-AR_BroadbandModel

4.解析文字

在此會在解析後文字中找尋有沒有我們所設定的關鍵字,例如”on”、”off”與”light”。您可以說各種組合,例如”lights on”、”turn the lights on”或”turn on the lights”等等,在此我們使用的文字解析服務而非單純的字串辨識。您可由 parseText 函式中可看到定義關鍵字的方式,您可以根據這樣的架構加入更多關鍵字以及配對,一步步讓您的TJbot 更聰明。

/************************************************************************
* Copyright 2016 IBM Corp. All Rights Reserved.
*
* Watson Maker Kits
*
* This project is licensed under the Apache License 2.0, see LICENSE.*
*
************************************************************************
*
* Control a NeoPixel LED unit connected to a Raspberry Pi pin through voice commands
* Must run with root-level protection
* sudo node stt.js

 Based on example NeoPixel code by Jeremy Garff (jer@jers.net)

 Follow the instructions in http://www.instructables.com/id/Use-Your-Voice-to-Control-a-Light-With-Watson/ to
 get the system ready to run this code.
*/

//modified to single LED version, no NeoPixel needed, CAVEDU, Feb 2017

//STEP1
var watson = require('watson-developer-cloud');
var config = require('./config');  // gets our username and passwords from the config.js files
var speech_to_text = watson.speech_to_text({
    username: config.username,
    password: config.password,
    version: config.version
});

//STEP2
// Initiate Microphone Instance to Get audio samples
var mic = require('mic');
var micInstance = mic({ 'rate': '44100', 'channels': '2', 'debug': false, 'exitOnSilence': 6 });
var micInputStream = micInstance.getAudioStream();

micInputStream.on('data', function(data) {
    //console.log("Recieved Input Stream: " + data.length);
});

micInputStream.on('error', function(err) {
    console.log("Error in Input Stream: " + err);
});

micInputStream.on('silence', function() {
    // detect silence.
});
micInstance.start();
console.log("TJBot is listening, you may speak now.");

//設定GPIO來控制LED亮滅
var Gpio = require('onoff').Gpio;
var led = new Gpio(14, 'out');

//STEP3
var recognizeparams = {
  content_type: 'audio/l16; rate=44100; channels=2',
  model: 'en-US_BroadbandModel'  //請由此設定語系
};
var textStream = micInputStream.pipe(
    speech_to_text.createRecognizeStream(recognizeparams)
);

//STEP4
textStream.setEncoding('utf8');
textStream.on('data', function(str) {
    console.log(' ===== Speech to Text ===== : ' + str); // print each text we receive
    parseText(str);
});

textStream.on('error', function(err) {
  console.log(' === Watson Speech to Text : An Error has occurred =====') ; // handle errors
  console.log(err) ;
  console.log("Press <ctrl>+C to exit.") ;
});

function parseText(str) {
    if (containsText(str, "light") && containsText(str, "on")) {
        console.log("Turn ON");
        led.writeSync(1)
    } else if (containsText(str, "light") && containsText(str, "off")) {
        console.log("Turn OFF");
        led.writeSync(0)
    } else {
        console.log("Please say something like turn on/off the light");
    }
}

function containsText(str, keyword) {
    return str.indexOf(keyword) >= 0;
}

7. 測試與執行

請回到您的Pi,把上述程式碼中的 username 與 password 改成您個人的 Bluemix 帳號密碼即可。請在 terminal 中輸入以下指令即可執行本程式:

 

sudo node stt.js

 

請對您的 TJBot 說話吧,只要一句話中包含了關鍵字”on”與”light”,就會亮燈,如果包含關鍵字”off”與”light”則會熄燈。因此您可以說 “light on” 或是 “turn on the light” 都是可以的。

 

如果無法辨識關鍵字會提示您相關的關鍵字。從 parseText 函式中可看到定義關鍵字的方式,您可以根據這樣的架構加入更多關鍵字以及配對,讓您的TJBot 更聰明喔!

 

參考資料:

http://www.instructables.com/id/Use-Your-Voice-to-Control-a-Light-With-Watson/

 

相關文章:

[TJBOT紙板機器人] 第一次製作機器人就上手-組裝篇

[TJBOT紙板機器人] 第一次製作機器人就上手-組裝篇

雲端應用服務跟你我生活到底有什麼關係?現在好像跟科技有關的主題沒講到【雲端】就弱掉了,但是真的說要拿來用,一時我還真的想不出可以用在哪裡。

其實,這個問題,雲端服務商比我們還緊張。

IBM®的雲端平台Bluemix® 團隊,推出了TJBot這個有趣的小機器人專題。而且,TJBot是open source 的,你也可以自己來做一台喔。

作者/攝影  鄭建彥
時間  10分鐘
成本  總共約新台幣 3,675元

(想買TJBOT材料包可點選 商城連結 )

難度  * * *
材料表
    • TJBot的雷切紙模板
    • Raspberry Pi B+(或是更新的版本)與相關配件(micro SD卡與5V3A變壓器)
    • USB麥克風
    • 小喇叭
    • RGB 5mmLED
    • SG90伺服機
    • Raspberry Pi 攝影機(非必須)

TJBot是以IBM首位CEO Thomas J. Watson命名的,TJBOT的3D模型檔、雷切圖檔與組裝說明,就請參閱TJBot自己的網站https://ibmtjbot.github.io/

相關程式碼也放在Github上了,https://github.com/ibmtjbot/tjbot

我是看在youtube的影片組裝的,Instrutables上也有詳細的英文說明 http://www.instructables.com/member/TJBot/

 

建議工具:

  • 直尺(金屬製為佳),協助折線用,不用太長。
  • 小隻的十字螺絲起子。
  • 美工刀。

 

建議事項:

在你動手之前,先告訴你我的組裝心得。

  1. 手會弄的髒髒的:因為是雷切紙板,紙板的邊緣會有燒焦的痕跡,組裝時不可避免的會弄到手。
  2. 組裝說明請多看幾次:雖然不是什麼很難的模型,在你動手前,還是請多多參考相關影片https://www.youtube.com/watch?v=bLt3Cf2Ui3o或是其他人的組裝分享文(如本篇優質文),減少不必要的悲劇或是意外。
  3. 紙板折錯方向是會斷掉的:雷切出來的折線,不適合反覆彎折,會 斷 掉!請先確定方向再折。若不幸真的斷了,不須覺得世界末日,拿膠帶來黏就好。
  4. 妥善運用直尺:金屬製15公分直尺會是你組裝的好幫手,除了可以幫你順利的折出完美的轉角,在榫接時也很好用。
  5. 不要硬拔:在取下零件時,請用美工刀將連接處劃開。
  6. 注意方向:我是沒有發生啦,但有些朋友會把TJBot的手組到另一邊去。

 

以下是我的組裝過程(完整影片如下):

 

PART 1 先把該折的都折好

我是看影片做一動就先暫停影片,等完成動作後,再繼續播下一動。你也可以參考我的照片,補充影片不清楚的地方。

PART 2 先來組合下半身

注意方向。

PART 3 放入SG90伺服機。

PART 4指揮艇組合!放入Raspberry Pi。

PART 5 組合Raspberry Pi攝影機(還沒要放攝影機的可以跳過)

PART 6 組裝固定板

上面有個一字型的孔,是用來放LED的。

PART 7 裝上手臂(這邊最難)

先將伺服機轉到適當的位置,手臂朝上時是中點,往前後都各有90度的動作範圍。

依說明把手臂組好,這個部分要折的地方很多,零件又不大,請多看幾次說明再動手。

將舵片放入手臂中。通常SG90會附三種不同形狀的舵片,我用的是這種。

拿出十字螺絲起子,確定動作區域無誤之後,再鎖上螺絲。

PART 8 把臉裝上去。

LED要從頭頂的洞口露出來喔。

來個完成照

裝飾一下你的TJBot。

下一篇我們會介紹接線與系統的相關設定。

 

參考資料: