2025年12月26日

內灣線一線九驛路線求解程式

新竹縣政府幾年前打造了一個「一線九驛」的活動,將台鐵內灣線沿線的九個車站用許多文創的元素串在一起。這些車站包括竹中、上員、榮華、竹東、橫山、九讚頭、合興、富貴、內灣等。

在搭乘這條路線時,我想到怎樣的規劃路線才可以每站都去走走呢?於是我就下載了時刻表,寫了一個程式來規劃行程。

你可以輸入起站和終站(例如設定成同一站,就是回到原來的地方),再設定幾點開始幾點結束,以及每站至少停留多少分鐘,程式的目的是在此要求下搜尋能到達最多站點的路線規劃。

還可以設定一定要去哪些站,或是不需要去哪些站。在使用上時要注意,有些班次週末和週間會有差異,停開或增開,但我程式並未處理這部分。

有興趣可以點選 一線九驛求解器




以程式的預設值來規劃,至少可以到達六站


如果想要達到一線九驛都下車的話,結束時間就要稍微晚一點,例如像這樣






2025年12月23日

神經系統單元的互動程式2025

 現在用AI寫程式或是做輔助教學實在太容易了,幾乎是想到什麼就可以做出來。所以好一陣子都在用AI做東西,倒是比較少在blogger紀錄了。

目前來整理一些今年在神經系統做的一些教學輔助程式,有些是用來上課,有些則是用來遊戲的。其他在神經單元但沒有介紹到的,都是以前做出來的。

所有的程式都可以在這裡連到,但我還是個別介紹一下。

音調產生器

可以用在說明聽覺的時候,不同頻率產感覺的音量不同,也可以發現每一個人所能聽到的頻率不相同。

https://chihhsiangchien.github.io/tone-generator/index.html



絕對音感

https://chihhsiangchien.github.io/absolute-pitch-game/index.html

顧名思義就是聽聲音,然後指出是哪個琴鍵產生的聲音


瞬間記憶數字

https://chihhsiangchien.github.io/instant-memory-game/index.html

幾年前做過scratch版本的,現在直接用js來實作


記憶數字長度的遊戲

https://chihhsiangchien.github.io/magic-number-game/index.html

畫面左邊會出現一串數字,等到消失之後,在右邊鍵盤重新打一次數字


色彩排序遊戲

https://chihhsiangchien.github.io/color-sorting-game/index.html

顏色會改變色相或彩度,玩家要排成正確的順序

https://chihhsiangchien.github.io/color-sorting-game/index.html


專注力遊戲

https://chihhsiangchien.github.io/concentration-grid/index.html

按照順序點選數字


史托普效應遊戲

先看出題目是用什麼顏色的字(不要被字義干擾),然後在底下選項選出正確的字義(不要被選項的顏色干擾)

數感挑戰

搭配斑龜的數感研究影片來使用。在方塊消失後,選擇數字較大的那部分。在數字小的情況(如4個和5個比),甚至只要0.01秒就能辨識出來,根本來不及數,但你就是能看出,那就是數感。

神經傳導路徑排序

就是點選動作後,把正確的路徑排出來



2025年11月11日

養分、酵素、光合作用、小魚等實驗的小技巧

 紀錄一下今年進行養分與酵素的實驗的一些技巧

測定食物養分的實驗

因為實驗室剛好衝堂,所以我就安排在教室進行。準備一個塑膠盆,再切一片珍珠板。盆子裝熱水用來提供本氏液的反應,帶洞的珍珠板設計的尺寸比盆底大一點,讓板子可以卡在盆子裡,然後固定一段距離用原子筆戳洞。

實驗的容器就用微量離心管,測試的食物、本氏液都只裝一兩滴,裝好就塞進珍珠板的洞裡,因為微量,所以反應很快,一到兩分鐘就會有反應了。但要注意離心管不需要蓋蓋子,不然可能會泡著泡著就爆開,如果會常常需要這樣使用,也可以乾脆把蓋子剪斷。



酵素實驗

上述的離心管,可以繼續用在額外的酵素實驗,例如雙氧水加上一些金針菇,然後就可以做成不定時炸彈,但是會噴出雙氧水,要小心就是。

課內實驗的部分,今年收集唾液的方式改成使用紗布,因為剛好有一批。本來都是叫學生把整片紗布放嘴裡咬,不過好幾個學生咬得嘔聲連連,後來就改成「手拿著一端,另外一端放入嘴裡咬20-30下」,然後大家把自己咬過的紗布放入小紙杯中,再加一點水進去杯子裡讓紗布浸潤,最後把水倒出到試管就可以用了。

光合作用

要做這個實驗的時候,北部連日陰雨,根本沒辦法使用室外植物,還好幾年前實驗室有買生長箱,反正加水就放進去養就對了。如果沒有生長箱的,其實準備多個檯燈加上定時器,效果也是一樣。

芹菜實驗

每年都會泡到有些芹菜爛爛的,其實泡爛的芹菜很棒,可以從裏頭撈出一堆絲狀物,裏頭也有一些漂浮物。

絲狀物就是芹菜的維管束,就是一些分離的導管,細節可以看這篇多年前的文章,至於一些霧霧的漂浮物多是薄壁細胞。

小魚尾鰭觀察

多年前改成把小魚放進封口袋來觀察了,效果原比幫小魚蓋棉花被子好很多,我以為大家都已經這樣做了,結果最近才知道朋友還是用棉花蓋住來觀察。只用棉花蓋住的最大缺點是魚在活動時,會把水噴到物鏡上,然後物鏡就會發霉損壞。

問了他為什麼還是用棉花,他說他覺得把魚放進封口袋還要手拿魚做這件事,有點阿雜。ㄟ,其實完全不需要沾手啊,就是準備一個L夾,底下剪開一個口,差不多魚大小,這個就是漏斗,底下請一個學生協助套上小封口袋,你把魚撈起後放進這個塑膠漏斗就好囉。


2025年10月14日

人體血液循環的視覺化互動程式

講全身血液循環時,我需要一個互動的介面可以讓我用來解說,要能呈現全身血液流動的過程。先講結論,我做出來了。底下是截圖


這是操作過程的影片,預設有幾百個血球在血管內流動,擺著不動一陣子會看到經過組織微血管(上下三區)的血球會變成暗紅色,並且釋放出代表氧氣的藍色圓形。而這些暗紅色的血球經過左右兩邊的肺部微血管時,會從外而內進入獲得氧氣,使暗紅色的血球變成鮮紅色。

你可以按下[血球淡化]的開關,使所有血球都變淡,然後點畫面很多血球的位置,例如心房心室,每次點擊都會在點擊處附近隨機標註一顆血球,你就可以追蹤它的流動。

此外,也可以將心房心室的動畫關閉或打開。
目前實作是做了全身血液循環,未來有時間會完成肺部和組織細胞之間的交換


接下來要說的是如何完成這樣的程式,血球需要循著特定的路徑往前移動,不能逆向,在交叉口又必須隨機。`所以我需要一個有很多節點的「有向圖」,節點之間有方向性的「邊」相連,每一個節點有id,有xyt座標,而每一個邊的資料包括起點和終點的節點。因此對有些節點來說,可能是多個邊的起點,也可能是多個邊的終點。

我先在draw.io上放一張底圖,然後用circle當節點,Directional Connector當作邊,把完整的循環路徑畫出來。最後的結果export 出xml。檔案連結



有了xml之後,再用js parse這些資料,就可以做出一個有向圖。建立資料時,可以指定某些connector的寬度,這可以用來畫出血管的寬度,而circle內的文字可以標註目前所在的位置,例如肺靜脈、肺動脈等。

對於血球的行為,其實就是不斷地從一個節點移動到另一個節點,而下一個節點的決定就看這個節點有幾個出口,隨機選一個就是了。經過特殊節點如肺動脈時,就讓血球進入一個可接受氧氣的狀態,有一定的機率可以得到氧氣。而到了肺靜脈時,可接受氧氣的狀態就被關閉了。而進入組織微血管或離開,也是一樣的方法,所以這就是一個狀態機的變化。

此外,動靜脈的流速不同,是利用節點的數量來控制,在一個動畫週期中的固定長度內,如果有越多節點,那麼血球就會越慢,如微血管內的行為,而如果節點越少,就會產生移動速度很快的視覺效果。

雖然節點和節點之間是直線相連,但血球在血管內的移動則是會以邊寬度為基礎,做左右偏移累積的移動,所以就可以產生彷彿在血管內移動的視覺效果。

2025年9月25日

酵素作用的互動教學工具

最近做了「酵素模擬器」的網頁工具,可以互動操,產生即時圖表與自動化實驗。

https://chihhsiangchien.github.io/enzyme-tutorial/



主要功能

1. 拖曳與新增分子、酵素

使用者可以用拖曳或點擊的方式,將不同種類的酵素與分子加入主畫面。每種分子和酵素都以圖示呈現,並可一次新增多個或快速移除。

2. 模擬布朗運動

所有分子在畫面上會隨機移動,模擬布朗運動,進而觸發酵素反應。

3. 酵素-受質結合與產物生成

當受質分子靠近酵素的活化位時,若符合反應規則,會自動吸附並進行反應,產生對應的產物。反應過程中,分子會有動畫效果。

4. 溫度調整與酵素變性

可透過滑桿調整環境溫度。溫度會影響分子的運動速度與酵素的活性,並可模擬高溫導致酵素變性的情境,每種酵素有不同的變性溫度。

5. 即時濃度變化圖表

畫面右側提供即時的分子與酵素數量變化圖表。每秒自動更新,方便觀察反應進行過程中各物種的濃度變化。

6. 實驗模式與自動化實驗

除了自由操作外還有「實驗模式」可進行實驗。可選擇酵素種類、設定溫度與觀察時間,並自動重複多組實驗,繪製「溫度-反應速率」關係圖,協助分析酵素活性與環境的關聯。



2025年9月19日

課堂教學工具:排序、配對、表格

這是課堂上用來做教學的幾個工具,分別是用來做排序、表格和配對的工具,可以當教學用,也可用來做形成性評量。因為特別作了模組化,所以後續我要新增資料也是容易很多,有興趣可以使用。

https://chihhsiangchien.github.io/sorting/index.html

https://chihhsiangchien.github.io/table/index.html?mode=teach

https://chihhsiangchien.github.io/matching/index.html?data=cells.json












【哪個機器人最快?】互動式科學實驗教學工具

最近做了用來做實驗設計的互動程式,有四種機器人零件可以組成機器人,目的是要找出哪種組合可以跑得最快。

程式:https://chihhsiangchien.github.io/fast-robot/index.html

速度裏頭有加上系統的不確定性,所以就用同樣條件一直跑同一個機器人,也會得到些許的不同,所以就是要重複實驗。

實驗底下會有歷史紀錄,呈現每次使用的變因和結果。明年再上科學方法會拿來用,這個需要團隊合作,然後進行筆記才能得到答案。 

操作過程如下

  1. 認識變因卡片:左側有各種「變因卡片」,每張卡片代表一種機器人比賽的條件(如:機器人型號、輪胎種類、包裹重量等)。
  2. 拖曳卡片到實驗槽:將每一種變因卡片拖曳到「第一組」和「第二組」的實驗槽中。每個槽都要放滿所有類型的卡片,才能開始實驗。
  3. 開始實驗:當兩組都配置好後,「開始實驗」按鈕會亮起。點擊後,兩台機器人會開始比賽,並顯示各自完成任務所需的時間。
  4. 觀察與比較:實驗結果下方會顯示每組的完成時間,並自動記錄到下方的「實驗歷史記錄」中,方便學生比較不同組合的結果。
  5. 重設實驗:點擊「重設實驗」可以清空所有配置,重新開始設計新的實驗。


教學應用建議單一變因控制教學:請學生設計兩組只差一個變因的實驗,觀察結果差異,體會「只有改變一個變因,才能確定因果關係」的道理。


討論與推理

  1. 利用「實驗歷史記錄」功能,讓學生比較多組實驗,討論哪些變因影響最大,哪些沒有影響。
  2. 小組合作:學生可以分組設計不同的實驗,輪流操作,並在全班分享各組的發現。
  3. 老師可以引導學生思考:如果同時改變多個變因,會遇到什麼困難?如何設計更嚴謹的實驗?

其他

  • 點擊已放入實驗槽的卡片,可以將其移除,方便調整組合。
  • 支援電腦滑鼠拖曳,也支援平板觸控操作。




Gemini的圖像生成測試經驗

Gemini的圖像生成模型nano banana廣受注目,我也測試了一些使用情境。透過圖像理解轉換上,可以做出非常強的應用。

我做了很多圖片生成的測試,對於那些古籍插畫,像是天工開物或是番社采風圖的圖片,如果想要產生立體的渲染圖片,但沒有辦法直接做出的話,我會繞點路來完成。

以下建議不是必要,但可以試試。

先增加圖片的脈絡,就是那張圖到底是畫什麼,你可以先試試讓AI讀圖解釋再來修正,或是自己就先輸入詳細說明。

增加描述之後如果還是不行,就再做去脈絡的事,就是生成黑白線稿,如果是建築就是平面設計圖,如果是立體物件就是wireframe 。

在前幾天的分享圖片中,我都會經過中間這個圖。

如果成功產生線稿之後,就可以做各種轉型,像是填色上色、3D渲染或render,真實場景...等具體描述。

剩下就是角度或方向描述而已,像是side view, bird's eye view, worm's eye view, wide angle....

以下就是大量圖片,目前提供的prompt都非常簡單,像是:

  • 說明這張圖的細節
  • 轉黑白線稿
  • 轉三視圖
  • 做3
  • 3D渲染
  • 移除導引線
  • 移除標記文字
  • ...