文前碎碎念
這篇筆記的出現,源自於一組無意間看到的扭蛋系列,以及實際拿到後所開的腦洞,於是乎,一個不明意義所在的改造行動,就此展開!
正文開始
好啦,經過一段不明所以的文前碎念後,就直接來進入正題吧,從點進來前的封面圖片以及前文的敘述,應該大略可以猜到今天的主題,那就事不宜遲,就嚷我們直接邀請今天的主角出場囉~
【最初的扭蛋】
這次要改造的對象,就是下面這款蘑菇造型燈扭蛋
扭蛋外表就是一株被關在鐘型罩裡的小蘑菇,而他的使用方式也簡單,白天看了可愛的蘑菇可以療癒身心,晚上則是用它自帶的強力發光咒伴你入眠(?
其實一直以來都還蠻喜歡這種微型造景的系列,擺在桌上也可以作為一個不錯的裝飾。
不過雖然看起來療癒,但缺乏可以互動的要素,有些時候就會讓人覺得好像少了些什麼一樣。
剛好最近因為一些因素,讓我又回頭去玩單晶片控制相關的項目,於是就藉這個機會,來試試看可以玩出什麼花樣來吧。
【改造計畫】
首先來說明一下這次大略的改造計畫,由於這次扭蛋是以會發光的蘑菇造景為主題,因此我想要試著賦予它一些可以與環境互動的「生命元素」進去,而最直覺的方案,就是讓它能夠隨著環境數值變化而進行週期性的「成長」,並且外觀也能因為生長進度而產生不同的表現。
而在互動方面,既然有所謂的生長週期,當然也就意味著當長成以後,需要有一個外在的介入作爲重置的觸發點,因此我打算讓使用者,可以透過某種方式進行「採收」。
【改造準備】
有了計劃之後,接著就來觀察一下我們這次改造對象。
一般來說,這種扭蛋玩具的電子構造通常很簡單,沒意外的話,應該就是一個附帶開關機構的LED燈粒跟水銀電池而已,其他的部分應該就只是支撐這些元減的塑膠構造跟本體,而要說最麻煩的地方...
...是他底座上的螺絲,居然給我使用這種三角形的,一般的螺絲起子根本無法拆卸,只好為了這次專案再破費一筆了。
拆開後可以看到裡面的構造確實跟猜想的相似,十分簡單,因此我打算沿用他的既有的LED,作為此次改造的主要輸出之一。
而排除掉這些零件跟支撐機構後,這個底座裡應該還有空間,可以將控制板跟相關感應器塞進去。
【零件選擇】
接著就來選擇移植的零件,由於這次要改造的本體空間本來就不大,因此小尺寸的開發板系列就成為我們的首選清單。
另外,考慮到要在不改變太多外觀的前提下,要讓使用者能與我們的小菇菇溝通,目前看來最佳的方案就是使用手機連線來互動,因此我們的開發板還必須具有一定的無線通訊能力。
篩選上述幾個條件後,我最終選擇了 Wemos D1 Mini 這塊基於 ESP8266 為核心,並且具有Wifi通訊能力的開發板做為我們這次的主要架構。
其他額外零件部分如下:
- 220Ω電阻,為了避免LED燒壞
- SHT30溫濕度感應器
- 震動馬達(最後未使用,看下文)
備妥零件後,先來稍微與底座內的可用空間比對一下。
嘛...只能說差強人意,由於開發板尺寸關係,三顆螺絲柱中,勢必得犧牲掉一顆,而底座蓋上原本作為電池盒的構造也要去除,不過大致上應該還是可行。
【開始執行】
好啦,一切就緒,接著就來著手改造囉~
想到也有一段時間沒碰焊接工具了,希望自己還記得怎麼操作...
嗯,看來還可以XDD
通電後用簡單程式測試,LED有成功過電,感應器的數值也正常,倒是震動馬達怎麼樣也不肯動,最後只好先移除。
底座蓋部分,為了能容納額外零件,因此將原本的電池倉移除,底座本體也削了一個孔出來作為USB傳輸線連接之用。
【軟硬兼具】
硬體搞定後,接著是軟體,由於還不算完善,因此原始碼暫時不放上來,這裡只先分享一下介面。
首先是在通電之後,去手機的Wifi設定中,就可以看到自己建立的熱點,連上後再用瀏覽器輸入IP,就能順利看到我們成長中的小菇菇了~
這裡我也依照不同的成長階段,設計了四個不同的型態,而為了節省記憶體,這些菇菇都是純文字組成的。
在成長期間,LED會以呼吸燈的形式閃爍,亮度則是會隨著成長逐漸增加,而由溫濕度感應器所回傳的數值,則是會影響成長的速度。
當菇菇長成之後,LED會變為恆亮狀態,網頁中的姑姑下方也會出現一個採收按鈕,按下後就能進行採收囉,同時成長數值也會重置,進入到新的一輪生長週期。
【檢討回顧】
最後來檢討一下這次專案吧,首先最大的問題,就是在於感應器。
由於底座空間有限,再加上額外的電線,感應器的位置,其實已經被壓到與開與發版本體很近的距離,也因此回傳的溫度會受到處理器發熱影響升高,進而造成無法順利反映出現實環境溫度。
再來就是工具缺乏,雖然因為之前的專案關係,所以焊接的部分並沒有太大問題,反倒是因為這次的改造有對本體的部分進行加工,但又沒有對應的器具,因此包含切割挖孔等動作,都只能使用美工刀,造成最終的結果都不盡理想。
好啦,以上就是這次扭蛋改造的過程紀錄,是不是很沒有意義呢XD(遭毆
不過呢,人生總是要靠無數旁人認為沒意義之事的堆砌,最終才能產出真正意涵的,您說是吧~
《全文。終了》
參考資料
- Arduino呼吸燈,運用PWM(模擬類比輸出)控制LED明亮
- Interfacing SHT3x Temperature and Humidity sensor with Arduino
- Pin numbering for WeMos D1 Mini (ESP8266)
- ESP8266 Arduino WiFi Web Server LED on off control
- Arduino筆記(31):NodeMCU建立 Web server控制 LED燈
- LED與電阻