顯示具有 maker 標籤的文章。 顯示所有文章
顯示具有 maker 標籤的文章。 顯示所有文章

2018年6月14日 星期四

仿生獸電機改造續集

        這一篇是「風力仿生獸及電機改造」的續集,所以對於風力仿生獸的來源部份就不再多介紹…但會有使用Tinyplan來當主控板的想法,主要是我覺得使用micro:bit那隻的作法走得沒那麼順暢,分析一下原因是因為micro:bit加上robot:bit擴充板再加上二顆TT馬達實在有點重,走起來的負擔比較大,尤其是左右轉的時候~
        使用的塑膠料一樣是網購買的,靠風力的架構,沒有電機的設計,零件已算是很精美了,小朋友若直接組裝也會非常有趣,以小朋友的角度來說,我覺得可以先組起風力的版本玩一玩,領會齒輪軸帶動黃金比例的支架運動的樣子,接下來拆了它,學一點電機的知識(至少知道馬達怎麼轉動)、學個Arduino、Micro:bit或其他小單板,然後思考如何結合進去,利用電機取代原來的風力帶動…
小朋友自己看說明獨力完成也是一種很好的練習
※插播一個相關的題外話:我還買到另一種兩仿生機器人,運動原理是一樣的但像有二隻腳走路…重點是它被設計成風力電力雙用,這也是我們可以納入學習的想法!
樣子比較像機器人
上面這段影片中,朝風車吹風,機器人便迎風前進…
同樣一個裝置,改用二顆小電池帶動,單純的電機,沒有控制機制,給電就向前走就是了!
        回到這篇的正題,我們先來認識一下Tinyplan板,這是一塊台灣在地的MiniPlan機器人團隊所開發的all-in-1伺服馬達控制器,可以搭配小型伺服馬達(Servo)之操控,內建WiFi晶片,可以同時控制8個Servo,而且自帶可充電電源,與Arduino IDE 相容(意思是可以利用Arduino IDE環境來編輯程式

Tinyplan功能強大,使用原廠ESP-WROOM-02晶片 
編寫程式的方法和使用Arduino板類似


        這次的電機動力就不使用減速馬達了,改用二顆360度的伺服馬達來帶動中軸轉動,使用便宜又大碗的輝盛TowerPro SG90就對了 。
Tinyplan只用來接二顆Servo是有點大材小用
        這時先想著如何讓Servo的旋轉軸能跟仿生獸的曲軸連動的方法我的作法是直接利用模型內原本零件,用螺絲將舵柄鎖上。

就自己想辦法做做手工,用膠水黏應該也可以
接上主板測試一下…,Tinyplan的連接方法與Micro:bit使用藍芽是不一樣的,它的方式是走WIFI,它自己會是一個無線AP,用電腦或手機平板連上AP後,利用瀏覽器就可以操控,當然得先把寫好程式的程式Upload進去。
兩個伺服機分別當左右軸,所以旋轉方向相反,反正接上去如果發現錯了再反接就好了,測試沒問題後,我利用長螺絲將兩顆伺服馬達固定…並且鎖上仿生獸上頭去!
想了這招
        值得一提的是,我這次的Tinyplan並沒有黏死在上頭而是用「掛的」,考慮到之後如果要拆解重裝的方便,就去電子材料行東找西找,自己發揮一下想像力,看看小零件怎麼湊和可以達到自己想要的目的,我覺得蠻好玩的是這一塊…
花了一點時間思考怎麼結合
        最後當然就是做好囉!拿來玩玩看,有影片有真相~
        走起來的樣子,我覺得比上一版的好上許多,靈活度大增,只不過寫程式的方法就不像Micro:bit那種Blockly積木拖拉式友善,不過如果有人帶及解釋的話倒也不至於難到小朋友不能理解~
※在一般課堂上,有一點是我覺得更困難的是錢錢的問題,零件和電機都需要額外的錢購買,這也是難以在小朋友身上普及的最大原因,有人會說老師操作給小朋友看的方式教學也可以,我個人覺得那是沒什麼用的,千知萬知都比不上用自己手動手來一次的好!
※給吳秉涎帥哥看一下這隻仿生獸,他說狗頭掛在上面看起來有點可怕,就改一下,弄上個超音波眼睛~
這就不可怕了吧!
※後記:
一開始只是想改造一下風力仿生獸的動力來源,使用Tinyplan當主板後,覺得只用來驅動二個Servo會不會太浪費了,這塊板子被設計來驅動8個Servo,也就是8個有pwm,電路方面就是能供應足夠的電流,加上個Ultrasonic吧!讓它長眼~再放個Buzzer可以發出聲音,最後再頭頂上加個8x8的Led,可說是閃閃動人,也把板上的pin給插滿,才不顯得浪費了!
最後的樣子
在程式方面,主要是SETUP段的初始化及LOOP段的迴圈偵測
void setup(void) {
//8x8 LED及Buzzer初始
  myBEAST.initLEDMatrix(BEAST_PIN_LED_DIN, BEAST_PIN_LED_CS_PIN, BEAST_PIN_LED_CLK_PIN, MATRIX_DIR_270);

  myBEAST.initBuzzer(BEAST_PIN_BUZ);
............
//開機時唱一句,閃幾個圖
  myBEAST.sing(12);
  myBEAST.putMouth(20);
  delay(100);
  myBEAST.putMouth(21);
  delay(100);
  myBEAST.putMouth(22);
  delay(100);
  myBEAST.putMouth(23);
  delay(100);
  myBEAST.sing(0);
  delay(100);
  myBEAST.putMouth(0);
}
迴圈
void loop(void) {
//偵測是否進入使用超音波的模式
if (Ultrasonic_OnOff == 1) {
  myBEAST.putMouth(1);
  delay(100);
    if (ultrasonic.distanceRead() > 11 && ultrasonic.distanceRead() <= 20)
    {
      // 如果前方有障礙物在20公分到11公分之間→右轉動作
      右轉的程式碼
    }
  else if (ultrasonic.distanceRead() > 20)
   {
前進的程式碼
   }
else if (ultrasonic.distanceRead() <= 11)
    {
      // 倒退的程式碼
    }
}
上頭並不是完整的程式,只是表達出程式邏輯而已~最後,這仿生獸就活靈活現的…

2018年5月25日 星期五

實作風力仿生獸及電機改造

        在這篇文章中,老師將向大家介紹國際有名的「風力仿生獸」,並且組裝它的縮小版,更進一步改造它成為電機設備,結合目前世界上當紅正夯的BBC Micro:bit,成為一部可程式控制的仿生獸。
        仿生獸這個話題起源於荷蘭藝術家楊森(Theo Jansen)利用簡單材料創作的無生命物體──仿生獸(Strandbeast),可藉由風力的推動和力學的原理,做出走路等一些仿生物的動作,甚至可以自行躲避障礙物。
圖片取自Theo Jansen臉書
        泰奧.揚森被歐洲媒體譽為「現代達文西」的荷蘭籍動力藝術家,1990年,他在幫荷蘭報紙寫專欄的時候想到一個主意,他想打造一個用風能走路的機器,可以邊走邊清掃沙子,把沙子堆放到灘台,藉此保護荷蘭免於遭受海平面上升的危害。這幾年,他都遵守當年立下的承諾:他會花一年的時間致力於仿生獸。泰奧.揚森並不藏私,他將他的這項發明設計公諸於世,讓大家共享,從那時候開始,全世界各地的Maker改造、模仿仿生獸的設計,這個計畫漸漸開始展現成各種型態。
※關於他的詳細介紹,你可以自行google就能找到很多的相關資料。
大人的科學第30期附贈了小型的仿生獸模型可以實作
        仿生獸(Strandbeest)完全只靠風力所驅動。風力帶動中間的輪軸,再巧妙的使每一隻腳動起來。其構造看起來很簡單,但整體的設計卻非常巧妙,沒有多餘的複雜裝置,卻能變成如此驚人的作品。我們可以發揮一下Maker的精神,動手做一隻仿生獸來了解它的原理奧妙之處,為什麼單靠風力一吹便可以帶動整個機械如同動物一般行走?
※可以看一下https://life.tw/?app=view&no=606732這一篇的說明,就大約可以知道了,真是巧妙的設計。
零件包是設計好的

先做出可以轉動的12隻腳

開始組合
風扇帶動齒輪帶動中軸旋轉
        真的很神奇,小型的仿生獸就在眼前走了起來,感覺十分療癒~做好之後先在電風扇前測試,每隻腳被中軸帶動而像生物的腳在行走一般!
接下來就是讓它在平地上走,因為很輕,所以只要風力到達一定的強度,扇葉遊旋轉起來,機械就走動了
※這種設計只能向前走,因為動力來源只有一個,風反方向吹就倒著走…這時動了一個想法:如果把它改造成機械的,不靠風力而靠電力,也是一種樂趣!
有了這樣的想法之後就準備材料:我打算用Micro:bit來控制它,需要一塊擴充板來驅動馬達電機,就使用kittenbot的robot:bit吧!
Micro:bit+Robot:bit(圖取自小喵科技)

買二顆便宜的TT馬達來做為動力
        我打算把原來的仿生獸設計拆成二邊,讓控制板固定在中間,驅動馬達來帶動中心軸旋轉,仿生獸自然就會動了。為了不讓機械走得太快,我還刻意在中軸上黏了大小齒輪來減速,這樣才有Fu
利用大小齒輪組合來減速
        其實仿生獸行走的原理並沒有改變,這項改造只是要好好固定電子零件的位置才能順利地運作,還好我的手工藝算是及格…
組好囉
        因為我使用Micro:bit來當控制主板,接下來便是撰寫Micro:bit的程式來操緃馬達的運轉,最好的程式編輯環境是Makecode,這是微軟新推出的一種程式設計環境,它像Scratch一樣,是一種圖形化程式設計語言。網址:https://makecode.microbit.org/
透過拖放式介面來堆疊指令,寫出應用程式
        在未來的世代裡,程式設計毫無疑問是現在世界上最重要的技能之一,生活的周遭隨處都是科技,而程式設計的能力讓你能駕馭它們。學習寫程式已經不像以前那麼艱難而複雜,沒有基礎的人也可以嘗試。用BBC micro:bit加上MakeCode來練習可說是天作之合…
以這個例子來說,要寫二個程式,一個給固定在仿生獸那塊,另一個寫給拿在手上控制的這塊,以下就來說明一下程式,你會發現是蠻容易的!
仿生獸端的程式

控制端的程式
        依照micro:bit寫程式的方法把程式下載,micro:bit板用usb線接上電腦變成隨身碟,把程式複製進去就可以了!以下是這二段程式的效果。
有趣又不難吧!有興趣的人可以試試…