Skip to main content

因為自動飲料機而延畢的那一年(18)

事情如果太順利代表絕對有問題,而問題永遠會從意想不到的地方冒出來。

我們發現冰塊有一定的機率一落下就彈到外面,於是我們在前方加了一塊擋板。但加了擋板冰塊就倒不出來了,因此需要能夠控制擋板的方向,我們加了一顆Servo(一種可以旋轉的迷你馬達),把擋板鎖在servo上,當加冰塊的時候擋住,排出冰塊時打開,做了幾次實驗確認可以work後,終於可以開始量測電訊號和冰塊重量的關係。

我把冰塊加進蹺蹺板秤裡面,測量輸出的電訊號值,做了幾次我又懵了。

理論上冰塊越重,秤的訊號就該越大,而且應該要成正比,但這實驗結果的正比關係真的非常薄弱,看起來一點規律也沒有。

發生什麼事了?

  • 是荷重元問題嗎?有可能,要是荷重元本身產出的訊號就是有問題的,會有這樣的結果一點都不意外
  • 是機構的問題嗎?有可能,因為蹺蹺板的結構讓越靠近支點的冰塊產生的力矩越小。如果我們不能保證冰塊一定會落在尾端的話,那這樣會帶來一些誤差。
  • 是訊號問題嗎?有可能,因為荷重元感應器產生的電壓差實在是太小了,是毫伏(mV)等級的微小,我們將他放大到0~5V,可能會產生失真。而且環境周圍可能會有電磁波、雜訊。
  • 是冰塊的問題嗎?有可能,冰塊本身的溫度可能影響荷重元,讓訊號產生偏離值跑掉。

這一連串的問題都是可能的變因,第一眼看到時會覺得頭腦超級混亂,但現實世界就是這麼一回事,解決問題的唯一方法就是冷靜下來分析,做實驗把變因排除掉。

我們先做第一項實驗,在荷重元上放上不同重量的砝碼,確保輸出的電訊號會正比於重量。這裡抓到第一個問題,我們自己設計的訊號放大器會受到雜訊的干擾,因為荷重元輸出的訊號實在是太過微小,要將其放大500倍才能在控制板上量測到,但雜訊也會一起被放大500倍,一點風吹草動都會產生海嘯般的影響。

為此我們考慮是否要購買抗雜訊的訊號放大器,但因成本和需求否決了,一台好的訊號放大器要上萬元,而我們需要的精確度並不高,冰塊重量並不是連續的而是離散的,每顆冰塊大約是15~25g之間,實務上差兩三顆冰塊都是可以忍受的範圍內,因此並不需要精密到每公克,只需要能夠給出大略正比的數值即可,但現有電路的抗雜訊能力太低,於是紘銘修改了電路設計,使其更不易受雜訊影響。

第二個實驗是檢查是否為機構的問題。我們將荷重元裝上翹翹板機構,檢查不同位置的冰塊,訊號輸出的差別,發現這個因素影響非常大,越接近支點的冰塊重量直接逼近0,本有考量是否要修改機構,但短期內提不出更有效率,能同時測量重量又能夠倒出冰塊的機構設計,於是決定先保留原本設計,但改用統計的方式解決這問題。

我們將秤冰塊的機構固定好後,將其傾斜,希望落入的冰塊會從尾端開始堆積。另外擋板可以避免冰塊超出支點,接下來,由我負責檢驗該設計下冰塊和荷重元產生的訊號是否有正比關係,誤差是否在可接受的範圍內。

於是我便重複「加冰塊、倒冰塊、測量訊號、紀錄」,做了超過480次,很無聊想看實驗紀錄的人可以點這裡

最後得出了一張漂亮的分佈圖,X軸是訊號大小,Y軸是落入秤上的冰塊實際重量,用最小平方法找出回歸直線之後,就可以給定訊號,預測最有可能的冰塊重量,而95%的冰塊誤差會落在30g之內,大約是不到兩顆冰塊的誤差,在可接受的範圍內。

太感人了,這應該是可以work的。