2009年7月9日 星期四

再思作品的概念


+ 基於Game of life而來的三項規則,使用LED所產生的光暗效果,做出豐富的圖案。

+ 用「實物」去表現,加強觀眾對“活”的感覺。




Game of Life 的規則


Source: http://www.math.com/students/wonders/life/life.html

用Arduino寫成的Game of Life程式如下:

void  gameOfLife()
{
  for(int i=0; i<49;>
  {
    int thisLED = markLED[1][i];
    
    int y = i / 7;
    int x = i - y * 7;     

    int up = i - 7;
    int down = i + 7;   
    int left = i - 1;
    int right = i + 1;
    int n1 = markLED[1][up];
    int n2 = markLED[1][down];
    int n3 = markLED[1][left];
    int n4 = markLED[1][right];

    int leftUpCorner = i - 7 - 1;
    int rightUpCorner = i - 7 + 1;
    int leftDownCorner = i + 7 - 1;
    int rightDownCorner = i + 7 + 1;
    int n5 = markLED[1][leftUpCorner];
    int n6 = markLED[1][rightUpCorner];
    int n7 = markLED[1][leftDownCorner];
    int n8 = markLED[1][rightDownCorner];

    if (y == 0) n1 = n5 = n6 = 0;
    if (y == 6) n2 = n7 = n8 = 0;
    if (x == 0) n3 = n5 = n7 = 0;
    if (x == 6) n4 = n6 = n8 = 0;
 
    int numNeibr = n1 + n2 + n3 + n4 + n5 + n6 + n7 + n8;

    if (thisLED == 0)  // Check Dead Cell
    {
      if (numNeibr == 3)
      {
        lc.setLed(0, y, x, true);
        markLED[0][x + y * 7] = 1;
      }
    }

    if (thisLED == 1)  // Check Live Cell
    {
      if (numNeibr <> 3) // die
      {
        lc.setLed(0, y, x, false);
        markLED[0][x + y * 7] = 0;
      } 
      if (numNeibr == 2 || numNeibr == 3) // live
      {
        lc.setLed(0, y, x, true);
        markLED[0][x + y * 7] = 1;
      }
    }
  }
}

(以上只是程式的一部分)

將這個程式upload到Arduino Board,可以使LED產生如同Game of Life的效果。

2009年6月12日 星期五

四號機

加上無線的功能,令觀眾可以遙控LED的亮或熄。



圖1:用Processing寫成的程式,以設定LED的位置,即X與Y的座標。

圖2:通過Processing控制Arduino,Arduino再連接無線遙控的發射組件,去控制四號機的LED。

圖3:無線遙控的發射組件。

圖4:在四號機內,加入無線遙控的接收組件。

圖5:無線遙控的接收組件。

2009年5月28日 星期四

如何製作兩組獨立的電源

在製作過程時,遇上一個難題,就是不能長期使用乾電池,因而要使用火牛(變壓器)提供電力。但當初的設計,Arduino的電源要與Motor的電源獨立分開供應,才能正常運作。所以,要為該作品設計一個電壓分配的電路,由一個火牛,分配出兩個完全獨立的電源(兩個電源的地線不能直接連接,兩個正極也是不能直接連接



經過多次試驗後,得出以下的電路,能成功使用在作品上

2009年4月24日 星期五

三號機


在之前的機身上再加上7x7的LED Matrix
(未來的完成品會改用8x8個的LED



LED Matrix是由兩粒4051去控制


2009年4月12日 星期日

原型二號


因之前的設計錯誤,下圖是經改正後重新製作的原型二號。



下圖是除去頂板後,內部的結構。同一樣也是用Arduino及L293D去控制摩打



今次,使用了坦克車車輪的設計。因它可以前後移動之外,還能夠原地自轉,解決了一般車輪會互相阻礙的問題。

2009年3月21日 星期六

原型一號


實驗作品的正面


這是我的試驗作,嘗試使用四個摩打,去推動圖中的方塊,分別作前後左右的移動。



作品的背面
使用Arduino去控制摩打的轉動。但這個試驗作品並不成功!未能達到預期的效果!

其原因是,使方塊左右移動的車輪組,與前後移動的車輪組成了90度角,當左右移動時,會被前後車輪組阻礙,以致不能運作!