2014年1月21日 星期二

[unity]周圍碰撞反彈

Key

  • 確認入射方向與碰撞位置




Key Code




  • if(direction_x ==1 && direction_y==1 && lotusObj.transform.position.y>3)
  • {
    • direction_x =1; 
    • direction_y =-1;
  • }






  • if (lotusObj)
  • {
    • lotusObj.transform.Translate(Time.deltaTime*direction_x, Time.deltaTime*direction_y, 0);
  • }


程式碼


2014年1月17日 星期五

[作品賞析]霧詩

霧詩


Key:

  • 每天的相遇,卻如此地陌生
  • 互動設計與城市空間空存,未來人們日常生活中將存在更多互動科技,它們必­須被謹慎地編織進城市的脈絡,契合城市的日常實踐,而非強行覆蓋於城市之上。
  • 運用日常生活物與承擔性(affordance)作為­輸入(input)能減輕注意力負擔,讓人以自然的行為操作而毋需學習新的介面,具有­開創有意義之互動形式的潛力。
  • 遊玩(Play)讓人在愉悅的情境中探索,相較於­遊戲(Gameplay)更契合日常實踐;涉入(Involvement)的體驗比全­神貫注的投入(Engagement)更適合捷運車廂空間。
  • 表演性(Perfo­rmativity)是一種可操作的資源,受近期探索城市相關互動設計的學者支持,實­際上卻仍是相當模糊的概念;本研究主張應從知覺交錯(Perceptual crossing)的角度理解,當人們共享著空間情境,那些滲透在物理活動與知覺意識­之間「看不見的」感知交會與社交互動,比「看得見的」更具影響力。













2014年1月12日 星期日

2014年1月11日 星期六

[Arduino]Xbee Shield


兩種方法設定Xbee unit 參數

  • Xbee Explore USB




  • 用Arduino板子設定參數




1、拔掉Arduino上的ATmega晶片



2、將Xbee 模組的Jumper切到USB模式




用X-CTU軟體設定參數(5.2.8.6)

  • 下載
  • 先確認Xbee有連接上



















  • 讀進Xbee參數






















  • Modem:Xbee
    • XB24-ZB
  • ID-PAN ID
    • 0-1234
  • Baud rate
    • 9600


  • function set
    • Coordinator主控端(收集資料)-->ZIGBEE COORDINATOR AT
    • ROUTER 客從端(傳送資料) -->ZIGBEE END DEVICE AT 






用EasyTransfer Library 來做訊號傳輸

  • 下載EasyTransfer Library,放進Arduino library 資料夾
  •  #include <EasyTransfer.h>
  • 建立傳送物件
    • EasyTransfer ET;
  • 開始物件與資料的連結
    • ET.begin(details(mydata), &Serial);

主控端程式碼

  • 下載
  • 建立資料結構來統一打包存放要接收的資料
    • 定義資料結構
      • struct RECEIVE_DATA_STRUCTURES
      • {
      •      int blink;
      •      int pause;
      • };
    • 建立資料結構
      • RECEIVE_DATA_STRUCTURES mydata;
    • 存取資料結構數值
      • mydata.blink=10;
      • mydata.pause=100;
  • 判斷是否有資料結構傳過來
    • ET.receiveData()
      • true
      • false
客從端程式碼
  • 下載
  • 建立資料結構來統一打包存放要傳送的資料
    • 定義資料結構
      • struct SEND_DATA_STRUCTURES
      • {
      •      int blink;
      •      int pause;
      • };
    • 建立資料結構
      • SEND_DATA_STRUCTURES mydata;
  • 傳送資料結構
    • ET.sendData();


Reference







2014年1月9日 星期四

[Ad]Traffic accident - Mistake



The Mistake


將一悲傷(痛苦、快樂)事件先預前表現。
車禍中裡的元素有:

  • 親情生命的分離
  • 直走者的愧疚
  • 迴轉者的懊悔、懇求
  • 小孩子的無辜
  • 父親的不捨

裝置發想:
如果說要設計一公共藝術來宣導行車安全
國外案例:




The Speed Camera Lottery


元素:
以車速為出發點,利用懲罰超速的逆向操控,獎勵限速的方式達到宣導。


















2014年1月3日 星期五

[IC]TSL230 光訊號對頻率轉換IC

datasheet


  • http://ftp.k-team.com/pub/khepera/datasheets/TSL230.pdf


功能




  • 感受到的光越強,輸出高低電位頻率越高(就越亮頻率越高啦)




Sensitivity

  • 用越高的倍數,一樣的光源,轉出來的頻率越高




Scaling



照理來講...越高閃越快(時間軸倍縮短),但不解





OE端(outut enable)


  • active low ,所以不動他他就是low電位,會enable output , 給他一個高電位,會關閉輸出



黑暗中與溫度的關係



可見黑暗中越熱,閃越快




Supply Voltage


  • 供電大小也會影響輸出頻率








輸入光頻率


  • 不同光頻造成PHOTODIODE SPECTRAL RESPONSIVITY的不同,可用來偵測現在是什麼顏色!







別人作品:選色球


  • https://www.youtube.com/watch?v=ubv-GcSw85A



demo



  • https://www.youtube.com/watch?v=Um5IrdtMD9E
  • https://www.youtube.com/watch?v=sbtAoAllRtI



結論


  • 好臭

[IC]16-Channel Analog Multiplexer/Demultiplexer-CD74HC4067E

DataSheet


  • http://www.ti.com/lit/ds/schs209c/schs209c.pdf
  • https://drive.google.com/file/d/0B3iLa8F71LQwdDlHdHU3dDdfSkE/edit?usp=sharing


功能描述:利用掃瞄方式呈現好像同時16個資料同時輸入到一個analogInput達到擴充效果






  • 有16(I0~I15)個人要同時走出一個門,用4(S0~S3)+1(Enable)個bit控制誰可以出去
  • 一個人要進房子同時有16個入口,用4+1(enable)個bit控制該從哪個入口


IC腳位圖

Function Diagram






程式碼:測試兩個可變電阻的值同時傳給一個analogPin來接收

  • https://drive.google.com/file/d/0B3iLa8F71LQwTF9FVTF6Sk9DR3M/edit?usp=sharing

注意:狀態切換後最好延遲一下再讀取值(切換速度不夠快)

  •   digitalWrite(S0,HIGH);
  •   digitalWrite(S1,LOW);
  •   digitalWrite(S2,LOW);
  •   digitalWrite(S3,LOW);
  •   delay(50);    //切換得沒這麼快
  •   int input_1 = analogRead(AR01);


[arduino]adafruit wave shield

格式化SD卡

  • 先格式化再放入wav音樂檔,格式化時檔案系統選擇FAT或FAT32


























音樂檔案


  • 轉檔程式Audacity software轉成wav檔
  • Convert to 16 bits
  • Convert 22 K Hz or less 
  • 大小長度不限
  • 檔名:格式8.3:8.3格式是DOS下的一種命名方式這主要是因為當初的文件系統是FAT16,只能夠支持檔案名最多為8個英文字串、副檔名最多3個字串的文件,所以DOS也只能夠支持檔案名最多為8個英文字串、副檔名最多3個字串的文件。現在Windows下的文件系統一般為FAT32,最多可支持255個英文字串的檔案名,所以一般人會把名字命名得很長,豈不知DOS下只能夠看到8個字串的檔案名,其餘部分用數字替代,如:Windows下的檔案名為:smallfrogs.txt,在DOS下只能夠看出smallf~1.txt。




waveHC Library create by Ladyada



  • download:https://code.google.com/p/wavehc/
  • 放進arduino libraries
















主要重點程式內容


  • FatReader file  :此物件表示一個WAV檔
  • WaveHC wave:一次只播放一個檔案
  • wave.isplaying:判斷是否正在播放
  • wave.stop():停止播放
  • wave.play():開始播放
  • file.open(root,fileName):搜尋根目錄,並打開檔案
  • wave.create(file):將檔案轉成wav物件


程式碼


  • https://drive.google.com/file/d/0B3iLa8F71LQwcWFmbmlZcUZBU3M/edit?usp=sharing


參考&來源


  • http://www.adafruit.com/products/94#Learn
  • http://learn.adafruit.com/adafruit-wave-shield-audio-shield-for-arduino/wavehc-library
  • http://vmixclub.pixnet.net/blog/post/501715-%E4%BB%80%E9%BA%BC%E6%98%AF8.3%E6%A0%BC%E5%BC%8F



[Servo]伺服馬達S03T

Key

  • 透過訊號線傳送PWM脈波來控制軸柄的停止位置旋轉角度,這個訊號脈波必須每秒重複50次(也就是50Hz),而脈衝持續時間長短便代表了馬達該將軸柄轉到什麼位置,範圍從1.0ms到2.0ms(millisecond,毫秒,千分之一秒),若想置中則是1.5ms;也可將1.0ms當做角度0度,那麼1.5ms會是90度,2.0ms則是轉到底180度。注意,也有可能反過來。
  • 不過每個廠牌型號的伺服馬達可允許旋轉的角度各不相同,也就是說可接受的訊號脈衝範圍也不相同,必須查閱產品資料規格書,若超出範圍可能會損害伺服馬達。
  • 死頻帶寬度(dead band width):10µs。脈衝變化調整之間若小於10µs,太快,訊號不穩,馬達不會有動作。


引用馬達標頭檔

  • #include <Servo.h>

宣告建立馬達物件

  • Servo myServo;

設定由哪個digitalPin(PWM)來控制馬達

  • myServo.attach(9);

設定馬達角度

  • myServo.write(pos);   pos:0~179度
  • Servo預設的脈衝寬度範圍是544到2400µs,可依規格書修正至500~2400us
  • myservo.attach(9, 500, 2400); 

直接以脈衝寬度控制,較精準控制

  • myservo.writeMicroseconds(i); 
  • 要注意的是,必須查詢伺服馬達的規格表,查知正確的脈衝寬度範圍,使用writeMicroseconds時也要小心,不可傳入超出範圍的值,否則會損壞伺服馬達。


Reference