發表文章

目前顯示的是 二月, 2013的文章

圖表製作課程

圖片
每年在科展季節時看到學生們展出的看板,或是看科展群傑廳裡的得獎報告時,心裡常會有些惋惜。惋惜的是為什麼不把辛苦做出的實驗結果好好的呈現出來呢?
我自己也指導學生作科展,所以我可以料想背後的原因有兩種,一個是來不及,另一個則是根本沒發現自己圖表有什麼問題。
以往我的作法是,在我這組作專題的學生,我會在他們作圖的時候,才跟他們說要注意些什麼。但是其他組的學生我就沒辦法常常這樣做了,他們的圖表都是到了交件,沒時間可以改的時候我才看到。那時候再跟他們說,你們這個圖不行喔,我得到的回應往往是「來不及了」或是「我看別人都這樣作」
作一張圖要多久?你可能想,資料放進Excel拉一拉,頂多五分鐘就出來了吧?錯,如果你是認真作實驗,一張圖會用上個把月的時間,想想看,你這個圖是不是要作很多次實驗才能做出來?作實驗之前要不要充足的實驗設計?從實驗設計、執行、測量到最後的製圖,整個研究不就是為了那個結果圖表嗎?
圖到底有多重要?思考一下吧,如果你要在短短數分鐘內報告完你的實驗,你會用什麼樣的視覺媒材?最好的就是實驗設計圖、結果圖吧。又或是,你在讀別人的報告時,你會看的又是什麼部份呢?
一張圖可是歷經數週或是數月的努力,隨隨便便作一張圖,對不起自己,也對不起自己的實驗。
坦白說,圖的好壞不一定能影響科展結果。報告裡弄了爛圖表並不會因此而被扣分,因為大家都一樣爛,但是圖表作得好就有加分的效果,兩個水準相同的科學報告放在一起,一個有用心作圖,一個則是預設值直接出圖,到底哪個比較好,可想而之。所以這篇並不是一個教你做出一個會得獎的圖,而是要告訴你怎樣的圖才是讓人看得順眼的圖。
以下的圖片多是來自我幾年前寫的圖表製作原則與技巧,另外我再補一些說明圖進去。內容是參考自 Mary H. Briscoe "preparing Scientific illustration " 1995 Springer,以及林榮耀教授於2010科展指導教師研習營中的授課內容。我有將那些圖放在這個簡報檔中 圖表製作原則與技巧.ppt
為了讓學生在正式進入研究前,對圖表資訊視覺化「有感」,所以我安排了三階段圖表製作的課程。
第一階段,講的是圖表製作的原則,並且讓學生就現有的專題或得獎科展中尋找有問題的圖進行評論與修改。
第二階段,講評學生修改後的圖片,再讓學生進行第二次修正,並且說明符合APA格式的圖…

你有多少列祖列宗

過年時候我們一家人坐在桌前,某個話題聊著聊著突然提起了我是族譜裡記載的簡家入閩始祖的第22代子孫,這數字看起來沒什麼,但我突然想起李筱峰教授寫的「族譜的問號」一文。簡家子孫的我,和那位入閩始祖有多少的遺傳相似度呢?

拿筆起來計算一下吧,我的前一代有2人(父、母),前二代有4人(爺爺、奶奶、外公、外婆),前三代有8人...,前n代有2的n次方個人,一路算到前21代,也就是我那第一世的祖先,其實不是只有他一人,而是有2的21次方個人,那是2097152個人(兩百零九萬七千一百五十二個人)。這也就是說在八百年前,我可是有兩百多萬個祖先呢!他們彼此通婚之後生下的小孩,各自結婚,一路生一路結,最後才會有我的出現。

如果把列祖列宗全部都算進去的話,那才夠嚇人的。第一代的兩百多萬人,加上第二代的一百多萬人,一路加到我前一代的兩人,那麼祖宗21代的總和是4194302(四百一十九萬四千三百零二人)。

如果每個祖先都給個30公分高的神主牌,這樣祖宗21代的神主牌總和可是將近2477個台北101之高呢!
4194302人 x 0.3 公尺 /508公尺 = 2476.95


如果每個祖先都給個兩坪(6.6平方公尺)的墓地安葬 ,那麼也要65910個籃球場的大小啊! 4194302人x 6.6平方公尺 /(28公尺 x15 公尺 )=65910.46

不過實際數字應該會比這個少一些,因為這個數字是假設通婚的人彼此之間沒有任何血緣關係,應該還是會有近親或遠房通婚的現象出現。除此之外,我這四百多萬人的祖先也不是只有我獨享,我和你應該有不少共享的祖先呢(什麼好康的都能共享,祖先也不例外)

這些數字讓我想起,常有新聞寫著「OOO是XXX的第幾世子孫,所以...」,以我而言,我和第一世的簡氏祖先居然也只有200萬分之一的相似度。我若是要沾那位祖先的光,說因為他怎樣怎樣,所以我才能怎樣怎樣,實際上是忽略了其他那另外兩百萬的祖先哪。
不過雖說如此,我和那第一世的男性祖先也還是有高於其他人的相似度啦,也就是那Y染色體(Y染色體只有父傳子)。不過這前提是從父親、祖父、曾祖父..一路上去都沒有人是入贅的,若是有的話,我這「簡」姓就不是跟著Y染色體的遺傳,而是習俗和文化上的遺傳囉。
註:入贅就是男子如同出嫁一般,嫁入女性的家庭,其生下的小孩是從母姓。

香蕉刺青

圖片
有天在Instructables看到一個很有趣的Project-如何作香蕉刺青,循著文章還看到了作者的網站 http://www.philinthewhaaat.com/及影片,看著我都忍不住手刀去買了一串香蕉回來作藝術了。



香蕉的果皮細胞被破壞時,細胞內部的酵素( 多酚氧化酶,polyphenol oxidase )的作用,會使果皮產生黑斑,本來是個會令人皺眉頭的反應,在藝術家的創意之下,變成了可以在香蕉上刺青的方法。

這個Project非常簡單,只要一根香蕉和針就行了!




要產生深淺不同顏色可以用不同密度的點,也可以用線條交叉來表現。




為了顯示我也是有藝術天份的,所以除了寫字以外,我也畫了個人頭。隨手放在雜誌廣告上,突然覺得很相稱,不知道為什麼?





不過我覺得最能表現真善美的手法,莫過於此了。這可以讓初上市場的人們免於慌張,你瞧這香蕉多麼善良,直接就告訴你了「我是香蕉」。

從科學魔法車改來的網球拍自動揮拍裝置

圖片
雖然自己帶的科展專題是生物組的,不過偶爾我也會跑去其組去看看他們作些什麼,有沒有需要協助的。去年我們有個學生王政傑自己發展了一個作品是研究網球擊球的甜蜜點,他自己做了一個網球擊球器,把網球拍和一些機械裝置結合,球拍一放開就會自動揮拍。

實驗的基本設備要能作到球從斜坡滾下來時,球拍能剛好揮拍擊中球,原本他的想法是A負責放球,B負責放開球拍,但是B要能準確判斷何時該放開球拍,這是個大問題。

後來我想起了以前玩過的洛奇機器人DIY科學魔法車,裡面有個電路改一改,應該可以解決這樣的問題。所以我就把第3課 光影及溫度的電路圖和和零件丟給學生自己去組,跟他說一下應該怎麼改,他自己摸了一兩個禮拜,居然也成功組好了。

這個自動控制的電路是這樣的,首先是用電磁鐵通電吸住綁住球拍的金屬架,電磁鐵通電的時候,球拍處於待命狀態,等到電磁鐵一斷電,球拍就會自動揮動。而什麼時候要斷電呢?就靠球滾落的斜坡上架設一個光敏電阻和雷射筆組成的閥門。

光敏電阻持續被雷射光照射的時候,電阻降低,所以電壓高於2.25V(4.5/2),透過反向器4069就會送出0的訊號,使電晶體C1815和繼電器都沒辦法通電。而電磁鐵接在NC上,就會一直被通電,吸住球拍。

當球滾落斜坡時,阻擋雷射光照射光敏電阻,因此電阻會升高,電壓就會降到低於2.25V,透過反向器,就會送出1的訊號,最後會使得繼電器通電,讓電磁鐵斷電,這樣就可以讓球拍揮拍了。



能做到這個自動控制的裝置,真是要感謝發明科學魔法車的曹齊平老師,使用的電子零件簡單易取得的,不像樂高機器人那樣得花上大筆金錢。最棒的是那些講義說明的淺顯易懂,我和學生動點腦筋就能夠讀懂,甚至國小學生也會作。誠心推薦,如果想要入門這塊的,不妨去買來玩玩看,花點巧思也可以想出其他利用。

RS232初體驗--二氧化碳濃度計

圖片
去年年底學校採購了一個CO2濃度計,翻使用說明書的時候發現這個機器有RS232的輸出功能。


在此之前沒摸過RS232的什麼東西,只是約略知道這可以讓訊號送進電腦。要說類似的東西,大概就是像Arduino把訊號送進電腦那樣。如果可以把CO2計接上電腦,那之後的應用面就蠻多的了,因為可以長時間的紀錄。

不過面臨到第一個問題就是沒有連接線,得要自己作,還好說明書寫的很清楚,只要一個3.5mm的公接頭插進機器,中間的pin接到RS232  9pin接頭的pin 4 ,Ground接到  pin 2,然後pin 2和pin 5之間串聯一個2.2K電阻。這個不算太難,後來我買了一個公對母的連接線,把公頭拆了照著上面的作法來接就成了。

這要特別紀錄一下,剪下接頭之後,哪條線屬於哪個pin,一時還搞不清楚,因為9條線就有9種顏色,但是忽然間想起了電阻的顏色代碼,黑棕紅橙黃綠藍紫灰白,該不會就跟這有關係吧。用三用電表一測,啊!果然有關。pin 2是棕色、pin 4是橙色、pin5是黃色。

接好了線之後,下一步就是電腦要跟它連線了。

因為平常我用Linux,但是以後給學生用的話,可能還得用windows,所以兩個系統都得找軟體來相連。


Linux
linux下最簡單的方式就是用cat ,直接下指令   cat /dev/ttyS0 
如果還要設baud rate 為9600 ,那就用   stty -F /dev/ttyS0 9600 ,不過預設就是9600,所以不需要設。要看設定值,就用 stty -F /dev/ttyS0 

但是這樣有點麻煩,於是找了Serial port的軟體 cutecom來玩,設定還蠻簡單的,也很容易就從機器裡得到數值,但是有另外的問題出現了,那就是沒有時間戳記。對一個Date Logger 來說,沒有時間戳記就像是少了手腳一樣。
後來從這個論壇文章中找了一些指令來下,此外,這篇文件也寫了一些方法。
cat /dev/ttyACM1 | awk '{print strftime("%Y-%m-%d %H:%M:%S "), $0; }'>>com.txt
cat /dev/ttyACM1 | awk '{print strftime("%T"), substr($1,12,8); }'…