期末專題報告書
3D 列印仿生魚製作
指 導 老 師:魏嘉延
專題製作學生:四技電子三甲 林冠篁 BQ105034
四技電子三甲 洪至賢 BQ105027
四技電子三甲 羅子欽 BQ105019
四技電子三甲 陳柏均 BQ105019
修 平 科 技 大 學
電 子 工 程 系
DEPARTMENT OF ELECTRONIC ENGINEERING
1
中華民國 一百零八年 六月五日
摘要
人們的創造力與聯想,使現代社會不斷的進步。這些理念大多是由身 旁所接觸的事物產生聯想、研究、創新、加以改造設計,這個過程即是 「仿生」。在生活周遭有許多東西的創造,都是由仿生演變而來,藉由學 習行為或系統,改善人們品質或效率,故此探討仿生學在生活中應用的範 例,藉此了解仿生學對社會的影響與重要性。本專題研究用 3D 列印的方 式製作仿生魚的各個部件,做成一隻魚外型的探測機器,本機器能探測的 舉如能夠無線地與外界通信,並將數據(例如記錄的溫度和壓力傳感器 值)等等。2
目錄
摘要---P.1 目錄---P.2 圖目錄---P.4 第一章 緒論---P.6 1-1 前言---P.6 1-2 研究動機---P.6 1-3 BionicFinWave 仿生魚介紹---P.7 第二章 硬體設備簡介---P.9 2-1 Arduino 基本介紹---P.9 2-2Arduino 的特色---P.10 2-3Arduino 開發環境---P.11 2-4 Arduino 具備哪些東西---P.11 2-5 專題材料表---P.12 2-5.1 3D 列印機---P.13 2-5.2 直流減速馬達---P.15 2-5.3 MG-90 馬達--- P.163
2-5.3 藍芽 HC-06---P.17 2-5.4 Arduino Uno 板---P.18 2-5.5 繼電器---P.19 第三章 仿生魚製作過程 3-1 3D 仿生魚骨架---P.20 3-1.1 橫桿--- P.21 3-1.2 萬象街頭--- P.22 3-2 仿生魚尾部---P.23 3-3 仿生魚頭部---P.24 3-4 ARDUINO 板裝設---P.25 3-5 伺服馬達、直流減速馬達裝設 ---P.25 3-6 HC-06 藍芽設定 ---P.26 第四章 成品展示---P.27 第五章 結論---P.28 參考文獻---P.29 附錄---P.28 電路板程式---P.30 手機程式---P.344
圖目錄
圖 2-1 3D 列印機本體---P.13 圖 2-2 3D 列印線材---P.14 圖 2-3 直流減速馬達---P.15 圖 2-4 伺服馬達 MG-90---P.16 圖 2-5 藍芽 HC-06---P.17 圖 2-6 Arduino Uno 板---P.18 圖 2-7 繼電器---P.19 圖 3-1 魚骨架---P.20 (A)魚骨架 3D 圖 (B)魚骨架實體 圖 3-1-1 橫桿--- P.21 (A)橫桿 3D 圖 (B)橫桿實體 (C)轉軸實體 圖 3-1-2 萬向街頭--- P.22 (A)萬向街頭 3D 圖 (B)萬向街頭實體 圖 3-2 仿生魚尾部---P.23 (A) 尾部 3D 圖 (B) 尾部 3D 圖 圖 3-3 仿生魚頭部 ---P.24 (A)頭部 3D 圖 (B)頭部實體 圖 3-4 Arduino 板裝設---P255
圖 3-5 伺服馬達與直流減速馬達裝設---P.25 (A)魚尾直流馬達 (B)伺服馬達裝在頭部和身體的連接處 圖 3-6 藍芽設定---P.26 圖 4-1 成品展示---P.27 (A)仿生魚頂式圖 (B)仿生魚側視圖 附錄 手機程式---P.35 (A)手機 APP 程式 (B)手機控制介面6
第一章 緒論
1-1 前言
仿生學這個名詞來源於希臘文「Bio」,意思是「生命」。仿生科 技是一種仿效生物 38 億年演化經驗的科技,舉凡型態、過程、以及生態 系統都是模擬的基礎,具有突破現今世界的「自然卻原始」及「科技卻污 染」兩大矛盾方向的潛力。運用此種科技,人類可以使用更少的能源與資 源、產生更少的污染與廢料,卻獲得更佳的產量與效能,例如蓮葉的自淨 效果、鯊魚皮的阻絕能力、研究蝙蝠海豚而成的雷達聲納、受光合作用啟 發的太陽能應用、研究蝴蝶的翅膀顏色能降低全球 80%的照明費等等,皆 是兼顧改善生活與環境永續的最佳案例。1-2 研究動機
我們正在決定專題要做什麼時,看到一部影片 BionicFinWave ,影片 中角色模型上的鰭從頭到尾延伸,位於背部,胃部或身體兩側。魚鰭的波 浪形運動允許魚將水推到它們後面,從而產生向前的推力。相反,這些生 物也可以這種方式向後游動,並且根據波浪模式,可以產生隆起,下壓力 甚至橫向推力,讓他在一根環形管狀的密閉空間裡游動。我們想模仿影片 的魚,讓他在水裡既能由動並兼具實用效果。7
1-3 BionicFinWave 仿生魚介紹
BionicFinWave 是具有獨特翅片驅動的水下機器人 。BionicFinWave 的概念是用海洋渦蟲,墨魚和尼羅河鱸魚。它們有一個共同點:為了推進 自己,它們會使用鰭產生連續波,沿著整個長度前進。通過這種所謂的波 浪形翅片運動,BionicFinWave 還可以通過丙烯酸玻璃製成的管道系統進 行操縱。同時,自主式水下機器人能夠無線地與外界通信,並將數據(例 如記錄的溫度和壓力傳感器值)傳輸到平板電腦。 角色模型上的鰭從頭到尾延伸,位於背部,胃部或身體兩側。魚鰭的 波浪形運動將水推到後面,從而產生向前的推力。相反,這些生物也可以 這種方式向後游動,並且根據波浪模式,可以產生隆起,下壓力甚至橫向 推力。 靈活的矽膠鰭片,適合自然游泳操作 BionicFinWave 使用它兩個側翼來移動。它們完全由矽樹脂鑄造而 成,沒有支柱或其他支撐元件。這使得它們非常靈活,因此能夠實現其真 實自然的生物學模型的流體波動。 為此,左右兩個翅片分別固定在九個小槓桿臂上。這些又由位於水下 機器人主體中的兩個伺服電機驅動。兩個附接的曲軸將力傳遞到槓桿,使 得兩個翅片可以單獨移動。因此,它們可以產生不同的波紋圖案,其特別8
適合緩慢和精確的運動並且比傳統的螺旋驅動器更省力。 為了以曲線游泳,外部翅片比內部翅片移動得更快,類似於挖掘機上 的鏈條。BionicFinWave 頭部的第三個伺服電機控制著身體的彎曲,這有 助於它上下游動。為了使曲軸具有適當的柔韌性,在每個槓桿段之間安裝 萬向節。為此目的,包括接頭和連桿的曲軸由 3D 打印方法由單件塑料製 成。 各種組件的智能交互 BionicFinWave 機身中的其餘元素也是 3D 打印的。它們的空腔,充當 浮選單元。同時,整個控制和調節技術系統在最小的空間內安全,緊密地 安裝和協調。因此,除了具有處理器和遠程模塊的電路板之外,主體的前 部還容納有壓力傳感器和超聲波傳感器。它們不斷測量到牆壁的距離以及 水中的深度,從而防止與管道系統的碰撞。 流程工業的新動力和方法 借助仿生技術平台,我們的仿生學習網絡再次為自動機器人和液體媒 體中使用的新驅動技術為未來工作創造了動力。可以想像,對於諸如檢 查,測量序列或數據收集等任務,進一步開發 BionicFinWave 等概念,能 運用的地方很多,例如用於水和污水處理技術或工業中的其他領域。此 外,項目期間獲得的知識可用於軟機器人組件的製造方法。9
第二章
硬體設備簡介
2-1 Arduino 基本介紹
這是個智慧型手機流行的年代,大家一定都聽過 Android,但對於 Arduino 卻充滿了陌生感。和 Android 相同的地方在於,兩者皆是使用開 放原始碼的軟硬體平台。不同的是,Arduino 提供了簡單好用的 I/O 介 面,並具可使用類似於 Java、C 語言等高階語言的開發環境。 Arduino 是一種開放授權的互動環境開發技術,互動裝置其實無所不 在,像是冷氣的恆溫裝置,便是使用感測器偵測環境溫度,進行室內溫度 的自動調節;還有汽車使用的倒車雷達,過於靠近物體便會發出聲音警告 駕駛者。這些裝置為生活增加不少安全及便利,互動能帶給使用者驚喜, 有時會以藝術品的方式呈現在生活當中。 以往要處理相關的電子設備時,需要透過工程師,逐一由單一小元件 拼湊出整個電路。大多數的設計工具都是為了工程師設計,除了電路外還 需要廣泛的知識,才有辦法完成電路。還好微處理器有了長足的進步,除 了在使用上變得更為容易,價格上的減少更降低了學習的門檻。10
2-2 Arduino 的特色
開放源碼(open-source)。不僅軟體是開放源碼,硬體也是開放的。 軟體的開發環境可在網上免費下載,而 Arduino 的電路設計圖也可從官方 網站自行下載,依據自身之需求進行修,但須要符合創用 CC 授權條款(創 用 CC 授權條款)。 開發簡單,參考資料多。在以往的硬體環境中,要開發微控制器的程 式,開發者需要具備電子、電機及相關科系的背景,一般人需花費大量時 間能有機會進入這個開發環境中。Arduino 學習門檻較為簡單,不需要電 子電機相關科系的背景,也可以很容易學會 Arduino 相關互動裝置的開 發。由於 Arduino 以公開共享為基礎,多數人都樂於分享自己的產品, 網路上能找的創作案子非常豐富。以此會基礎,有時只需要參考分享者的 作品,依據自身的需求行調整,就可以在短時間內完成自己的創作。11
2-3 Arduino 開發環境
Arduino 的軟體開發環境是開放源碼,可以在 Arduino 官網免費下 載,它所用的程式語言語法類似於 C/C++,具備文字編輯介面、常用工具 欄、圖形化控制介面及錯誤編輯器,運用這個工具進行程式的上傳,及各 項感應器的溝通。2-4 Arduino 具備哪些東西
主要可區分為三大類,分別是 Arduino 硬體、Arduino 軟體及 Arduino 擴充原件。硬體部分可購買現成的板子或是依據網路下載的電路 途自行組裝,出學者建議購買現成的,根據 Arduino 官方網站所寫,台灣 地區具有官方合法授權的代理商為藝科資訊 Aroboto Studio、PlayRobot 飆機器人/普特企業有限公司、iCshop (台灣)電子零件,電子材料,當 然,還有別的商家,到網路上搜尋一下可找到不少,拍賣網站上也有,甚 至也可以到國外網站去買。目前官方網站提供了許多不同的板子供開發者 購買。12
2-5 專題材料表
表2-1 仿生魚元件表 1. 3D 列印機 1 台 2. 伺服MG-90 馬達 2 顆 3. 強扭力直流減速馬達 1 顆 4. 藍芽模組 HC-06 1 顆 5. Arduino Uno 板 1 塊 6. Arduino 繼電器模組 1 塊 7. 單芯線(100cm) 10 綑 8. 鋁線 1 綑 9 電池座 3 組 10 塑膠薄膜 兩片 11 9V 電池 3 顆 12 熱熔膠 6 條 13 防水膠帶 6 條 14 防水快乾膠 5 瓶13
2-5.1 3D 列印機
3D 列印技術又稱為「加法製造」或是「積層製造」技術,目的是將 您所持有的 3D 圖檔,以高精度的堆疊方式呈現出原始模型的細節與特 徵。3D 列印的技術很多,例如採用粉末為基礎的全彩 3D 列印技術、透 過雷射加工而成的金屬 3D 列印技術…等,馬路科技具備多種 3D 列印技 術,能夠滿足不同的客戶需求。 圖2-1 3D 列印軟體與實體14
原理: 1.透過電腦輔助設計或電腦動畫建模軟體建模 2.再將建成的三維模型「分割」成逐層的截面,從而指導印表機逐層列 印。 3.接著印表機讀取檔案中的橫截面訊息。 4.再利用液體狀、粉狀或片狀的材料將這些截面逐層地列印出來。 5.最後將各層截面以各種方式粘合起來從而製造出一個實體。 圖 2-2 3D 列印線材15
2-5.2
直流減速
馬達
產品名稱: 強扭力直流減速馬達 產品編號: 2090000000504 型號:HN 35GBE-1640Y 產品淨重: 0.14KGS 產品尺寸: (直徑)37 x (H)61 mm 電壓:DC5→12V 電流:20→32mA 轉速:25~60rpm 圖2-3 DC9V 直流減速馬達
16
2-5.3 MG-90 馬達
產品尺寸:22.8*12.2*28.5mm; 產品重量:13.6g; 工作扭矩:2KG/cm ; 反應轉速:0.11 秒/60 度(4.8V) ; 使用溫度:0℃-55℃; 死區設定:5 微秒 ; 插頭類型: JR、FUTABA 通用; 轉動角度:最大 180 度 舵機類型:數字舵機; 使用電壓:4.8V; 結構材質:金屬銅齒、空心杯電機、雙滾珠軸承 圖 2-4 MG-90 馬達17
2-5.3 藍芽 HC-06
藍牙晶片:CSR BC04 供電電壓:3.3 ~ 3.6V 發射功率:3 dBm 可調輸出功率:-4 ~ 6dBm 藍牙 2.0 帶 EDR, 2Mbps ~ 3Mbps 調制度 內置 2.4GHz 天線, 用戶無需調整天線 外置 8Mbit FLASH可選 PIO 控制、標準 HCI 端口(UART or USB) 、具有跳頻技術 USB 協議:Full Speed USB1.1, Compliant With 2.0
工作電流:配對中 : 30 ~ 40mA、配對完畢未通信 : 2 ~ 8Ma 通訊距離:空曠條件下 10M,正常使用環境 8M 左右
適用:GPS 導航系統、水電煤氣抄表系統、工業現場採控系統、可以與 藍牙筆電,電腦加藍牙適配器、PDA
18
2-5.4 Arduino Uno 板
表 2-2 Arduino uno 板規格 圖 2-6 ARDUINO NUO 板 微控制器 ATMEGA328 工作電壓 5V 輸入電壓(推薦) 7-12V 輸入電壓(限制) 6-20V 數字 I / O 接腳 14(6 個提供 PWM 輸出) 模擬輸入接腳 6 支 EEPROM 1 KB(ATMEGA328) 震盪速度 16 MHz19
2-5.5 繼電器
1、模塊採用正品優質繼電器,常開接口最大負載:交流 250V/10A,直流 30V/10A。 2、採用貼片光耦隔離,驅動能力強,性能穩定;觸發電流 5mA。 3、模塊工作電壓有 5V。 4、模塊可以通過跳線設置高電平或低電平觸發。 5、容錯設計,即使控制線斷,繼電器也不會動作。 6、電源指示燈(綠色),繼電器狀態指示燈(紅色)。 7、接口設計人性化,接口均可通過接線端子直接連線引出,非常方便。 8、模塊尺寸:50mm * 26mm* 18.5mm(長*寬*高) 9、設有 4 個固定螺栓孔,孔 3.1mm,間距 44.5mm*20.5mm 圖2-7 繼電器20
第三章 仿生魚製作過程
3-1 3D 列印仿生魚骨架
魚身體我們參照了仿生科技 bionicfinwave 的身體架構來稍加修改, 在製作的過程中我們使用了 3D 列印來繪製圖形並列印出來。外型上我們 採用中空的方式讓水可以輕易灌入身體增加穩定性,並在左右邊設計 1 公 分固定的軸心準備和魚鰭的衡桿結合再一起,以達到油梁式抽油運動原理 讓身體可以運行。而中心軸我們設計的尺寸約半徑 1.5 公分用來當作馬達 動力的軸心。 (A)骨架 3D 圖 (B)骨架實體21
3-1-1 橫桿
魚衡桿我們參考了油梁式抽油動作原理,它的原理是用中心軸的旋轉 來上下拉動衡桿讓它達到上下起伏的目的。而這裡為了更佳節省空間和動 力源我們採用單馬達帶動雙衡桿。先在其中一支橫桿上多加上一根小的中 心軸,再來將另一根的衡桿尾部拉長,讓它兩邊都可以做上下起伏活動。 (A)橫桿 3D 圖(B)橫桿實體 (C)轉軸實體
22
3-1-2 萬向街頭
把仿生魚的骨架做出來後,下一步我們在思考怎麼把四個骨架相連, 又能維持骨架的可動性和靈活性。我們在網路上搜尋相關的可動接頭後選 擇了萬向街頭。萬向接頭又稱萬向節,是連接兩根剛杆的接頭,接頭由一 對相對方位為 90° 的普通鉸鏈組成,使街頭能轉向往任何方向,現在仍 廣泛應用於車輛的傳動裝中。藉由此街頭能讓魚更加靈活。 (A)萬向街頭 3D 圖 (B)萬向街頭實體23
3-2 仿生魚尾部
我們設計魚尾是用來安置馬達和繼電器的地方,因此我們需要考慮防 水功能,以防水的滲入把馬達和電池損壞。因此我們在設計上使用了油水 分離,用油環和防水接頭來讓馬達達到不會進水的效果,而在我們的測試 過程中效果也如我們想的一樣不但轉動的更加順暢在防水上也是沒有問 題。再來是馬達的固定,我們在魚尾的內部多加上支架讓支架和馬達貼黏 在一起,所以不用擔心馬達會跑掉。 (A)尾部 3D 圖 (B)尾部實體24
3-3 仿生魚頭部
為了達到降低阻力同時要能容納電路板的面積,所以利用鯨魚的身體 結構為原型。下腹部空間可容納電路板,上面採用流線形降低阻力。接著 為了讓脖子轉動更順暢同時還要防水,我們採用油環跟防水街頭的設計。 因為怕單一軸承怕負擔太大,所以加裝兩旁的支架加強。最後在左右分別 各裝一顆馬達控制上下、左右。兩側則加上像機翼一樣的構造來達到控制 方向的作用。 (A)頭部 3D 圖 (B)頭部實體25
3-4 Arduino 板裝設
圖3-4 Arduino 連接繼電器和馬達3-5 伺服馬達、直流減速馬達裝設
(A)魚尾直流馬達 (B)伺服馬達裝在頭部和身體的連接處26
3-6 HC-06 藍芽設定
HC-06 模組在與其他裝置連線之前,都處於 AT 模式狀態;換句話說,只 要通電,HC-06 模組自動進入 AT 模式。HC-06 的 AT 命令,採用 9600bps 的速率傳送。 HC-06 VCC → USB/TTL 5V HC-06 GND → USB/TTL GND HC-06 TXD → USB/TTL RXD HC-06 RXD → USB/TTL TXD 圖3-6 藍芽設定27
第四章
成品展示
(A)仿生魚側式圖
28
第五章
結論
在這次專題中,我們需要改進的地方有很多,像是美觀的不足、軸心 製作的過於粗糙導致在行進中會出現磨損和行動不變。又或者是在選擇材 料上花費過多金錢種種問題,凸顯我們在初期的規劃中沒有細想到這些問 題,這些都是我們需要改進的地方。 最後在完成了這份作品後,其實還有蠻多我們應該要想到卻沒做的 東西。像是在魚頭腹部下加裝探測用鏡頭可以讓我們用來觀察生態,或是 用來測試水質有沒有問題之類的功能,但我們卻礙於經費問題沒有達到我 們理想的目標。這問題可能出在剛開始的預算規劃不善才造成現在的情 況。這讓我們學習到在開始做專題之前就要做好縝密的規劃,並在製作過 程當中持續去調整,能預想到會有問題的地方要盡快提前做出改善,才能 提升效率和減少失敗的次數。29
參考文獻
[1]詳全文_Arduino 基本介紹 - 中央研究院 http://newsletter.ascc.sinica.edu.tw/news/read_news.php?nid=2782 [2]仿生學應用於生活之探討 作者: 曾昱穎。私立中山工商。美容三甲 https://www.shs.edu.tw/works/essay/2017/11/2017111712483109.pdf [3]何謂仿生 weblizar http://www.biomimicrytaiwan.org/what-is-biomimicry/ [4]DC5-12V 60RPM 中型強扭力直流減速馬達 http://www.jin-hua.com.tw/webc/html/products/06.aspx?num=10240 [5]BionicFinWave 官網https://www.festo.com/group/en/cms/13252.htm
[6]萬象街頭 維基百科 https://zh.wikipedia.org/wiki/%E4%B8%87%E5%90%91%E6%8E%A5%E5% A4%B4 [7]超圖解 Arduino 互動設計入門 第 2 版 作者:趙英傑 發行人:施威銘 發行所:旗標出版股份有限公司 ISBN:978-986-312-195-4 [8]微電腦原理與應用 Arduino 第 2 版 作者:黃新賢 劉建源 林宜賢 黃志峰 發行人:陳本源 出版社:全華圖書股份有限公司 ISBN:978-957-21-9862-9[6] [7]3D 列印的原理與應用範疇 https://www.ratc.com.tw/%E5%B7%A5%E7%A8%8B%E6%9C%8D%E5%8B %99%E9%83%A8%E9%96%80%E4%BB%8B%E7%B4%B9/3d%E5%88%97 %E5%8D%B0%E7%9A%84%E5%8E%9F%E7%90%86%E8%88%87%E6%8 7%89%E7%94%A8%E7%AF%84%E7%96%87/
30
附錄
7-1 電路板程式
電路板程式 #include <SoftwareSerial.h> // 引用程式庫 #include <Servo.h> SoftwareSerial BT(8, 9); // 接收腳, 傳送腳 int RELAYpin = 7;//定義計電器腳位 char val; // 儲存接收資料的變數 Servo myservo1;//定義舵機變數 Servo myservo2;//定義舵機變數 void setup(){ Serial.begin(9600); // 與電腦序列埠連線 Serial.println("BT is ready!"); BT.begin(9600);// 設定藍牙模組的連線速率 myservo1.attach(11);//定義舵機接口 myservo2.attach(10);//定義舵機接口 } void loop(){ pinMode(RELAYpin, OUTPUT); digitalWrite(RELAYpin, LOW); byte cmmd[20]; int insize;31
// 若收到藍牙模組的資料,則送到「序列埠監控視窗」 if ((insize=(BT.available()))>0){
for (int i=0; i<insize; i++){
Serial.println(cmmd[i]=char(BT.read())); } switch (cmmd[0]) {//讀取第一個字元 case 1: myservo1.write(45);//設置舵機旋轉的角度 myservo2.write(45); delay(1000); break; case 2: myservo1.write(90); myservo2.write(45);//設置舵機旋轉的角度 delay(1000); break; case 3: myservo1.write(125);//設置舵機旋轉的角度 myservo2.write(45); delay(1000); break; case 4: myservo1.write(180); myservo2.write(45);//設置舵機旋轉的角度 delay(1000); break;
32
case 5: myservo1.write(45); myservo2.write(125);//設置舵機旋轉的角度 delay(1000); break; case 6: myservo1.write(90); myservo2.write(125);//設置舵機旋轉的角度 delay(1000); break; case 7: myservo1.write(125); myservo2.write(125);//設置舵機旋轉的角度 delay(1000); break; case 8: myservo1.write(0); myservo2.write(45);//設置舵機旋轉的角度 delay(1000); break; case 9: myservo1.write(90); myservo2.write(90);//設置舵機旋轉的角度 delay(1000); break;33
case 65: digitalWrite(RELAYpin, HIGH); break; case 66: digitalWrite(RELAYpin, LOW); break; } } if (isnan(insize)){//如果沒收到資料 myservo1.write(90);//設置舵機旋轉的角度 myservo2.write(90);//設置舵機旋轉的角度 } }34
手機程式
(A)手機 APP 程式