2013年12月29日 星期日

[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









2013年12月14日 星期六

[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













主要重點程式內容

  • 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

參考&來源















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

DataSheet


功能描述:利用掃瞄方式呈現好像同時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);


2013年12月4日 星期三

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

datasheet


功能

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


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

Scaling

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




OE端(outut enable)

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


黑暗中與溫度的關係

  • 可見黑暗中越熱,閃越快



Supply Voltage

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





輸入光頻率

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




別人作品:選色球



demo


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


結論

  • 好臭