2016年7月31日

SciBrick作全景相機的腳架

上週,有朋友在說要拿LG360全景相機作直播,需要把相機接上USB線,但又要立在腳架上,偏偏相機的USB插孔蓋設計,會讓蓋子卡住,所以就想要找有延長的螺絲。

我手邊有SciBrick的H板,就拿來試試看,再加上1/4"x1"的螺絲,剛好可以讓鎖相機,又可以讓USB線順利連接。
IMAG2219

作法是這樣,外加的螺絲是鎖在H板的凹槽,然後腳架的螺絲是旋入H板的螺絲孔,然後USB線可以剛好從凹槽通過。

這部份其實沒有辦法完全鎖入,因為腳架螺絲是1/4吋,可是H板的螺絲孔是6mm,兩個差了一咪咪,但是還是可以鎖進去部份。
IMAG2220

IMAG2221IMAG2222

Arudino的光電閘計時裝置

前陣子突然很想用Arduino來作一些物理實驗的量測,一想到就來作個光電閘計時裝置吧。拼拼湊湊,一下子就完成了。

整個裝置運作的過程是這樣的。

按下按鈕之後,立架上的電磁鐵會釋放鐵球,鐵球通過光電閘的同時,液晶螢幕會顯示從釋放鐵球到鐵球通過光電閘的時間,單位是微秒。


IMAG2180

電磁鐵的部份,就是去書店買那種給小學生玩的電磁鐵勞作,一包裡頭有一根鐵釘和漆包線,這要自己繞成電磁鐵。一開始我還老老實實的用手繞,但是繞了幾圈就想偷懶,乾脆把鐵釘裝在電鑽上面,一秒鐘直接繞好線。
IMAG2243


立架是用4分的PVC水管組成的,而光電閘則是用了6片Scibrick的H板,兩片用來夾住垂直立柱,另外四片就是延伸閘口,而H板中的螺絲孔,剛好可以塞IR的發射與接收器,用這樣來作光電閘。
IMAG2182

IMAG2183

接線的方式,我參考了Photoduino的一些接線,像是連接電磁鐵或是光電閘的,因為剛好都是Photoduino有用過得。
IMAG2245

連接電磁鐵,用了另外一顆9V電池,還有以下零件
IRL 520
1N4004
10k電阻
IMAG2253


按鈕用了10k電阻
IMAG2254


光電閘的紅外發射和接收,用了100歐姆和10k歐姆的電阻,另外IR接收的接法要注意
IMAG2255


程式碼如下,比較特別的是用了中斷(interrupt),Arduino的D3會一直偵測是否有電壓下降,如果有就會立刻計算釋放到通過的時間,然後loop的迴圈會讓時間呈現在LCD上。

在9V電池上電之後,電磁鐵會立刻有磁性,所以可以把鐵球吸附上去(或是使用迴紋針包覆黏土成球),按下按鈕之後,會立刻斷電磁鐵的電,所以球就會掉下。

這個量測裝置目前有些問題
1.我覺得電磁鐵可能很耗電,平常不要讓9V電池一直上電
2.調整落下到通過的鉛直線有點耗時,可能可以用水滴或是什麼東西來協助定位。
3.時間量測不太穩定,理論上裝置固定,應該量出來的通過時間都一致,但實際上量測時,數據沒有那麼漂亮。


------------------------------------------------------------------------------------------
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);


unsigned long startTime;
unsigned long duration;                  // 持續時間

const int ledPin =  13;      // the number of the LED pin
const int EMPin = 7;

const byte buttonPin = 2;
const byte barrierPin = 3;

volatile byte state = LOW;


// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
  pinMode(EMPin, OUTPUT);

  pinMode(barrierPin, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(barrierPin), showTime, FALLING);


  Serial.begin(9600);                    // 開啟 Serial port, 通訊速率為 9600 bps

  lcd.begin();
  lcd.backlight();
  lcd.clear();


}

void loop() {
  buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {
    lcd.clear();
    duration = 0;
    startTime = micros();

    digitalWrite(ledPin, HIGH);
    digitalWrite(EMPin, LOW);
  } else {
    digitalWrite(ledPin, LOW);
    digitalWrite(EMPin, HIGH);
  }
  Serial.println(duration);
  lcd.setCursor(0, 0);
  lcd.print(duration);
}


void showTime() {
  duration = micros() - startTime;
}

棘山蟻的蟻后培育

7/19的時候,國偉老師說他晚上在學校抓到了兩隻蟻后,可能是棘山蟻屬(Polyrhachis sp.)的,問我有沒有興趣飼養,不過不知道有沒有受精就是了。

其實我不太養生物的,因為太容易分心做其他事情以致於沒養好。不過想到如果可以養成一個族群,好像照顧上就可以比較簡單。

國偉給了我一些飼養工具,是他在研究所養螞蟻所用的,不過現在因為要養蟻后,我就先用試管養看看。

飼養的資料是從螞蟻帝國看來的
試管飼養的培育方式
圖解新后或新群培育試管巢/


拿個試管(我是用瓶胚),底部裝水到1/3,再塞入棉花。棉花會吸收水分,提供巢內濕度,螞蟻也會自己去取水來喝。(其中有一隻螞蟻,晚上都會趴在那團棉花上睡覺)

另外瓶口也再塞一團棉花。一開始的餵食我是用棉花棒剪斷一頭後,塞入瓶內,由外面滴糖水到棉花棒的小管子裡,讓螞蟻自己去吃。
IMAG2249


後來在螞蟻帝國的臉書留言串裡,看到有另外一種餵食方式,是吸管剪成一小段之後,塞入棉花滴糖水在裡頭,再放入管內讓螞蟻取用,我覺得不錯,就用這種方式了。

另外為了讓管子不會滾來滾去,我就用OpenSCAD設計了一個客製化的試管架,專門用來放管子的,還讓管口傾斜向上3度,想說這樣比較不會滑出來。
IMAG2252

IMAG2251

因為是OpenSCAD作的,所以之後要調整給其他尺寸的試管,也是非常方便的。
檔案就放在Thingiverse
http://www.thingiverse.com/thing:1697394

2016年7月29日

高鐵上的氣壓變化-新竹至台北

從新竹搭高鐵到台北的時候,常常都會有耳膜不舒服的感覺。這種感覺就像是開車上合歡山,或是開車從林口台地下平地的感覺。因為這種不舒服,所以我覺得這段高鐵行程中,一定有氣壓變化。

可是要怎麼去偵測呢?剛好我手邊的小米2手機就有氣壓計的功能,然後我找了一個很棒的App來作紀錄,叫做Sensor Recording。
https://play.google.com/store/apps/details?id=net.braun_home.sensorrecording.lite
https://play.google.com/store/apps/details?id=net.braun_home.sensorrecording.pro

這個App,可以同時偵測多個感測器的數值,然後加上時間戳記後,把數值存成CSV檔,剛好就是我需要的。

我同時紀錄了光照感測值和氣壓感測值,因為光照可以用來辨識是否進入隧道。

在上台北的時候,選定靠窗座位,把手機放在靠窗的位置,藉此感測外界光線。
IMAG2223


先來看看亮度跟時間的變化關係圖。紅線是亮度,當數值低下時,代表列車進入隧道。為了清楚呈現,所以我把隧道段用灰色底色表示。

根據此表,從新竹到台北,會經過這些隧道:犁頭山隧道、湖口隧道、桃園站地下化隧道、桃園三號隧道、桃園二乙隧道、桃園二甲隧道、桃園二號隧道、桃園一號隧道、林口(龜山)隧道、迴龍隧道。

其中桃園X號隧道因為長度短,所以在下圖裡頭,都是很短的線段。除了隧道的光線變暗外,在新竹往桃園,過了湖口隧道之後,也有幾個地點,外頭的光線會變暗。看圖想不出來那裡是哪裡?怎麼會變暗?

rect5038


了解隧道和光照的關係之後,接下來再加上一個氣壓變化線(藍線),就看到好玩的事情了,似乎只要是進「山洞」的隧道,氣壓就會明顯降低,而在出隧道後氣壓升高。
但是在桃園地下化隧道和板橋站地下化隧道,這種應該是明挖覆蓋式的隧道,氣壓就反而是升高。

這種變化有沒有可能是各地天氣系統不同所致呢?我下午回程時也做了一樣的偵測,也是產生一樣的變化,所以可以排除是不同地點的天氣系統影響。


presure


林口隧道中段到板橋站之間,氣壓變化很大,大約是25個百帕,所以這段氣壓變化,有點像是在5分鐘之內,改變高度200多公尺。我印象中也是搭乘高鐵時,耳膜也是這段特別不舒服。(氣壓與高度的變化關係是每上升9 公尺氣壓下降1個百帕; )


在觀察桃園X號隧道、林口隧道、迴龍隧道的時候,看到氣壓有一些微小的起伏

林口與迴龍隧道



這部份是林口隧道的氣壓起伏。在這篇文章中《台灣高速鐵路林口隧道之施工探討(上)》,有林口隧道的豎井分佈,我覺得某方面這些起伏可能就反應了豎井的分佈處。

林口隧道


而這是迴龍隧道。迴龍隧道似乎就只有兩個豎井。
迴龍隧道





以上製作的圖,都是利用gnuplot所製作的,以下是命令稿。


set xdata time
set datafile separator ","
set timefmt "%H:%M:%S"
set format x "%H:%M"
set xrange ["08:23:00":"09:00:00"]
set xlabel "Time"
set ylabel "light"
set y2label "pressure"
set ytics nomirror
set y2tics
set term svg
set output "presure.svg"
plot "light" using 2:4 with lines title "light" axis x1y1,\
     "pressure" using 2:4 with lines title "pressure" lc rgbcolor "blue"  axis x1y2

pause -1

迷你細菌管柱

之前玩這種細菌管柱的時候,用的都是寶特瓶,主要原因是看到的資料都是用大管子。
難道都只能用大管嗎?我覺得未必,於是我拿了這種小型的管子(類似試管)做了測試,結果這樣的尺寸也是可以養菌的,長得也不錯。

IMAG2216

為了以後進行實驗,所以我用OpenSCAD設計了一個管柱放置架,下面連結可以下載到。因為是用OpenSCAD這種參數化設計的軟體,所以也可以作客製化的設計。像是把原有的五個管孔改成十個二十個都行。
http://www.thingiverse.com/thing:1695058
IMAG2241
架子設計好了以後,就把管子插進去,為了穩固,其實孔裡還塞了黏土。這樣的架子剛好可以用來進行實驗和展示。
IMAG2247





3mm球形透鏡的單式顯微鏡(含直徑與焦距對照表)

最近做了另外一種單式顯微鏡,是用3mm玻璃珠的球形透鏡做成的。很適合放在手機或平板的前鏡頭,作為倒立顯微鏡觀察之用,而且效果很不錯呢。

IMAG2210


這類型的顯微鏡,我在看日本的網路資料看到的。最早是看到Leye這種稱為「タブレット顕微鏡」的。然後偶然又看到有個日本的臉書社團「Life is small」,成員經常性的使用這種單式顯微鏡來觀察。

其實之前看到社團貼文的時候,一直很好奇3mm透鏡使用的基材是什麼?像我用2mm透鏡就是用卡紙和卡典西德。納悶很久之後,終於看到在YPC例会的貼文,原來是用珍珠板。

於是我就仿效來製作,以下來看看怎麼作。

所需要的材料包括:
1mm珍珠板:這個要去美術用品社買,一般文具店大概沒賣到這麼薄的
3mm的玻璃珠:玻璃工廠特別去買的,我是在學校附近的「明晟玻璃儀器有限公司」買的雙面膠帶
2mm的皮帶沖子:這工具我還蠻少用的,網拍找一下可找到,通常用來作皮件的,像是皮帶鑽孔。

這就是皮帶沖子,其實有很多種類型,找一下英文Screw Punch,可以看到其他類型的。
IMAG2232


先在珍珠板上貼上雙面膠帶,然後用皮帶沖子,搭配2mm的頭,在珍珠板上打洞。打洞的時候要注意,底部要有緩衝材料,例如切割墊。像這樣打洞的珍珠板,要準備兩片,其中一個可以不用貼雙面膠(當然你要貼也是可以,只是貼上雙面膠之後,會比較難打洞喔)
IMAG2233


撕開雙面膠之後,把3mm透鏡,放進這個2mm的洞。(下圖是沒有撕開雙面膠的示意圖喔)
IMAG2234

接下來把另外一片珍珠板蓋上去,這樣就完成了。把這個顯微鏡放在手機或平板的前鏡頭上面,再用黏土作簡單固定就可以使用了。
IMAG2236


雖然一買就是買一公斤的玻璃珠,但並非所有的都可以使用,有一些內部有氣泡的,會影響觀察,那就盡量避免。像本文頂部那張照片,黑點其實就是氣泡造成的。
IMAG2237


以下附上一些換算資料,可以知道挑選不同直徑的玻璃珠,能夠達成怎樣的放大效果。直徑越小,倍率當然越高,但是操作上就會相對困難喔。
透鏡公式01


透鏡公式02


2016年7月17日

地震模型(2)-用QGIS作地震模型

還好我有寫紀錄的習慣啊,為了這個模型,我可是自己看了自己的影片呢

要作的東西其實就跟這差不多《QGIS作透明的立體等高線地形模型》,只是把等高線換成震央分佈罷了。

所以我就只要把前一篇做出來的earthquake.csv匯入QGIS當一個圖層就好。

匯入圖層的方式很簡單
圖層(L)/加入圖層/加入分隔文字圖層..
選擇好檔案之後,記得把X座標設成第三欄,Y座標設成第四欄

接著再按照這篇《QGIS製作行政區圖》,到政府開放平臺,找直轄市、縣市界線(TWD97經緯度)的SHP檔案,拿去匯入QGIS就可以了。

有縣市界線,又有地震資料,就可以做出像這樣的圖


TaiwanEarthquake03


可是還沒完啊,不是說要作立體模型嗎?那就依照前篇的觀察資料結果,每10公里的震源放一張圖,反正台灣地震大多數都在100公里以內的深度。

至於切的方法,就照著這篇的作法來弄就可以了《QGIS作透明的立體等高線地形模型》,要記得深度是第5個欄位就是了。

earthquake


製作好的PDF檔就在此,有分兩個,是把震源標示的點用不同大小來作的,就看看哪個比較清楚了。

https://drive.google.com/file/d/0Bzwhi7Oh9a5ZMFRNREh3TjloZzg/view?usp=sharing&resourcekey=0-SYTizUzhbhCOR2qLh4LVlA

https://drive.google.com/file/d/0Bzwhi7Oh9a5ZVHFCR0FXQ0FVdEE/view?usp=sharing&resourcekey=0-omPk0TR9CF_NaFqxwC9_mw

這個檔案呈現規模4以上的地震,並且把震央的點圖示調小,台灣的縣市邊線加粗
https://drive.google.com/file/d/0Bzwhi7Oh9a5ZVzZWckl0cmlBLTA/view?usp=sharing&resourcekey=0-1z9BUQw9p2_kZFBmyOQjfg

7/29補寫
為了將這個地震模型拿來作更多應用,我重新做了第四次。有三種不同的尺寸。都放在這個雲端硬碟裡頭

地震模型(1)-地震數據分析


前幾天看到yenwen貼了一個連結,是台灣地震活動分布立體模型

覺得很有意思,想到去年去車籠埔斷層保存園區看到的這個模型:
「1973-2012年台灣規模四以上地震震源及活動斷層分布」

我猜是壓克力作的,然後用雷射雕刻在不同深度,這樣就可以藉由震源看到板塊交界的位置呢!既然興趣來了,我就想來自作一下。








但是數據打哪來呢?在中央氣象局的「地震活動彙整」中,可以下載到歷年的資料

http://www.cwb.gov.tw/V7/earthquake/rtd_eq.htm

本來我想一口氣把所有資料都下載,不過那樣作,反而伺服器不給下載,後來我只好500筆500筆的抓,抓了19個csv檔案,再把這些檔案用cat 和資料流導向的>符號,把所有的檔案結合在一起
cat *.csv > all.csv

統計了一下從1995年1月到抓到資料的當下,合計9433個地震,顯著有感地震3063個, 小區域地震6370個。

然後,就是整理資料的部份了,首先是每個csv檔都有標題,所以我就直接用複製取代的方式把所有的標題都刪掉了。
編號,地震時間,經度,緯度,深度,規模,震央位置

再來是時間的部份,把預設的12時制轉換成24時制,這樣才能送給gnuplot去處理。
12時制實在有點難搞
上午12點是凌晨12點,也就是24時制的0時
下午12點就是中午12點,也就是24時制的12時

這部份一樣用複製取代的方式去作,得到的檔案就在這
earthquake.csv


先用gnuplot看看地震規模的直方圖和地震深度的直方圖吧,gnuplot用的命令稿我就寫在圖片底下。


這是地震深度和次數的比較圖,台灣的地震深度少數可以到300公里之下,多數都是在50公里以內的。
地震深度次數


set datafile separator ","
plot "earthquake.csv" using 5:(1) smooth frequency with boxes




這個是特別把10公里之內的深度放大來看

地震深度次數10公里




地震規模大約是3到5之間是最多的
地震規模次數

set datafile separator ","
plot "earthquake.csv" using 6:(1) smooth frequency with boxes




這是把深度和規模放在一起看,深度深的,地震規模都蠻大的。淺源地震的規模有大有小

地震規模深度

 plot "earthquake.csv" using 5:6 with dots



既然有了一些資料,就想來看看很多年前有學生問的問題,他問地震是不是都在晚上。我認為不會和時間有關係,不過那時候沒證據,現在就拿已有的數據來分析。圖在此。
地震和時間

set datafile separator ","
gnuplot> set timefmt "%Y/%m/%d %H:%M:%S"
plot "earthquake.csv" using (tm_hour(timecolumn(2))):(1) smooth frequency with boxes fill solid 0.25




「那麼哪一天地震多呢?」既然資料都有了,就分析一下囉。如預期一般,31號果然很少(廢話),但有幾天的次數看得出來低些(但不一定有顯著差異)
地震和day

set datafile separator ","
gnuplot> set timefmt "%Y/%m/%d %H:%M:%S"
gnuplot> plot "all-cuttitle-adjustdate.csv" using (tm_mday(timecolumn(2))):(1) smooth frequency with boxes fill solid 0.25



哪一年地震多呢?這答案不一定能從數據中得到,也許測站變多,或是精密度提高,都會讓地震的數據增加。不過單就圖上來看,1999年之後,數據是比較多了
地震和year

set datafile separator ","
gnuplot> set timefmt "%Y/%m/%d %H:%M:%S"
gnuplot> plot "all-cuttitle-adjustdate.csv" using (tm_year(timecolumn(2))):(1) smooth frequency with boxes fill solid 0.25


ㄟ...不是說好要作地震模型嗎?哎呦,總是得把數據收集好,先分析觀察一下囉。下一篇就來講怎麼製作成模型

2016年7月13日

修復看片箱

幾年前,一位獸醫朋友送我一個壞掉的看片箱,我高高興興拿回家之後,就放進櫃子裡,過了好幾年才想起「啊,有這個東西啊」

其實當初是有拆開來看哪裡有問題,不過當時年紀小,什麼都看不懂。阿現在懂得多一些了,看一看之後,交叉檢驗就發現是燈管出問題了。
DSC05649


這麼細的燈管叫做冷陰極螢光燈管(CCFL),以前真的不知道這個東西,是後來逛電子材料行才知道有這個的。這種管子常用在電腦螢幕裡頭,不過現在很多都是改用LED了。知道材料之後,要修復就簡單了,上網拍找一下,看到尺寸合適的買回來換上去,就成功了。
DSC05652


前面幾篇文章裡,拍照的背景亮亮的就釋放在這看片箱上拍照的,像是以下幾張照片。拍照的時候,EV值要再調高一點。


IMAG2173


DSC05654


DIY玻片放置架-第二版

六年前寫這篇「DIY玻片放置架」之後,其實沒有怎麼常使用,還是都讓學生把載玻片洗乾淨插在講桌前面的架子。

不過早上我在整理東西的時候,看到之前這些隔板,突然想到另一種的組合方式。試了一下,覺得非常好用,好拿好放,底部還能通風滴水。這種尺寸的隔板剛好可以拆成7格的兩片和12格的兩片,組合成這樣,就可以放9片玻片了。算一算手邊的隔板,每小組放個兩組放置架是足夠的呢。
DSC05654

間隔有長的和短的,我建議是插在短的那邊,這樣才好放置和取出。玻片有沒有缺少,有沒有洗乾淨,都可以一目了然。俯看可以算玻片,側看可以看有沒有洗乾淨,有洗乾淨,9片玻片就可以透過去。
DSC05655

還有另外一種放置方式,跟之前那種類似,也是用插的,不過比起上面那種,其實不是太穩固
DSC05657


拿掉玻片的樣子就是這樣
DSC05658

DSC05659

這個高是6公分左右
DSC05661

每塊方格,大約是1公分寬。不過也不用拘泥於尺寸,反正就買小型的隔板回來試一試,應該都能組合出這種玻片放置架。
DSC05662