***謙受益、滿招損!***

**2018石光科研**
**2015成功科研:I:問題、II:回饋,III:撰寫、IV:55屆心得**
**2014成功科研:I:問題、II:回饋,III:撰寫、IV:54屆心得**2014國展在宜蘭2014台灣國際科展
**2013成功科研I:問題II:回饋,III:撰寫IV53屆心得**2013國展在新竹
**2012成功科研I:問題、II:想法、III:感想、IV:52屆心得**2012國展在彰化
**2011成功科研I:問題、II:想法、III:心得、IV:51屆心得**

2011年3月7日 星期一

arduino--Sound sensor測試聲音電壓

上篇中利用arduino的sound sensor收音後,經arduino擷取到聲音電壓(arduino擷取語法




利用serial port輸出電壓數據,並進一步在網路上搜尋方法可以利用電腦直接擷取訊號。

其一是Gobetwino直接下載,詳細說明可參考這篇,但因程式尚在調整中,對於windows Vista或Win7或XP SP3可能都會有點問題,故轉而尋找另一個方式。

第二看了這篇介紹後,利用Log程式經修改後進行擷取,

請先點這裏下載 Log 程式與 tclkit 的壓縮檔,並解壓縮檔案。
Log 程式的操作辦法如下,開一個 DOS 視窗,然後輸入指令,像這樣:

1tclkitsh Log.tcl > data.txt


底下就是這支 Log 程式(Log.tcl):


# 定義 Serial Port 以及通訊設定
set serialPort COM4:
set iomode "9600,n,8,1"

# 從 Serial Port 收資料
proc GetData {channel} {
    if {[gets $channel line] > 0} {
        # 取得一個時間戳記
        set now [clock seconds]
        set timestamp [clock format $now -format {%Y/%m/%d,%H:%M:%S}]
      
        # 在收到的資料行(line)前面加上時間戳記後印出
        puts $timestamp,$line
    }
}

# 開啟 Serial Port
set channel [open $serialPort RDWR]

# 設定 Serial Port 
# 預設 9600bps, no parity, 8-bit data, 1 stop bit
fconfigure $channel -mode $iomode -blocking 0 -buffering line

# 當 Serial Port 有資料可讀時,自動呼叫 GetData 收資料
fileevent $channel readable [list GetData $channel]

# 進入 Event-Loop 處理 file events
vwait forever
 

因serial port會與Log程式互衝,所以必須將serial port關閉
待其數據寫入txt檔後
利用EXCEL匯入後
即可編輯出圖形!

沒有留言:

張貼留言