2022年8月2日 星期二

小貓藍芽音箱

 

        網購平台上有一家店在我家附近,我本來都跟他們訂「風力仿生獸」(很便宜,陸製產品的格實在很有競爭力…),上次去看到這個小貓藍芽音箱,看了一下內容零件和價格,也是很便宜的選擇,所以買了一堆,想說可以給今年畢業的資訊小組小朋友一個小禮物…誰知!突然又停課,打亂了原本的計畫,直到畢業都沒能再遇到那些小孩~

        這個套件的好在於要自己組裝,且也算是時下的科技→藍芽音響,年輕人也會喜歡,我不喜歡送人家直接的禮物,尤其是對小朋友,我希望給小朋友的東西都能有點教育意義,最好能動手做…我把製作過程記錄一下:
1.鎖定二個單體

2.把電池盒鎖定在背板上,可看出要用四顆三號電池(6v的電)
3.焊接電源開關線路(不焊就是用轉的但容易接觸不良)

這個部份需要使用電烙鐵和熱風槍(吹熱縮套),是可以調整的課程內容,如果小孩子還算精明、手腳俐落,我會選擇指導他們在我的眼下學會焊接,否則這部份就由老師代勞學生旁邊看著~
4.把所有零件依組合狀態擺盤,有一塊很小的藍芽主板要用螺絲鎖上底板
5.開始組合音箱


其實這個套件的板子都也預做好了接合的卡榫,只要不是太手殘應該都能順利組起來,只不過便宜的東西用料還是有差,這種組合板是薄又脆弱沒錯!

組好了!這東西還是又電源設計,中間0為OFF,切到Ⅰ使用電池開機,切到Ⅱ使用USB電源(接電腦或行充)開機,開機後提示藍芽等待連接,手機或平板→藍芽→LuckyCat Bluetooth→配對。



※說這東西對小朋友到底有什麼教育意義呢?我覺得就是「動手」及「簡易的電工原理」,外國人對小孩子的教育不分男女,都希望他們動手去做自己的玩具,很小就讓他們學一點器具的使用及關於電流的知識,我覺得這是值得我們這邊學習的


2021年5月11日 星期二

做一個逐格動畫播放機


         在教小朋友影像動畫原理時,我經常用一些youtube上的影片來說明視覺暫留的原理,雖然小孩能接受這樣的道理,但其實蠻抽像的,前陣子偶然的機會去逛一下W先生的店(主要是去補一下風力仿生獸的貨),看到了一台動畫播放器…就買回來玩玩(要千元大洋),立馬組裝起來~



※是印度人的創意呢?我就想著來仿做一個,純樂趣沒有侵犯人家版權的意思,因為我覺得買來的用料是聚合板,很容易就壞掉的感覺…

就畫設計圖囉

再來就是雷切零件
        參考了原版的概念(並不是完全仿製),重新繪圖再用雷切把零切弄出來,我用的是壓克力,自覺得質感升級了…其中的轉盤將一個圓分成36等分,要不是用電腦來作圖我想是很困難的,更不用說切割的部份了~

一種自造的樂趣
        在這個設計中,轉軸的部份我加入了培林來增加順暢度及耐用度,效果很不錯


        以上只是硬體的部份,這個話題最核心的部份應該是動畫圖卡的設計,常見最標準的教材就是火柴人動畫囉!隨著手動的轉盤開始轉動,本來靜態的圖卡中的小人跑起來了,感覺十分療癒,又可以明確地了解這動畫的原理

        這一個簡單的動畫需要由36張慢慢變化的圖卡接力完成,大家一定會想:自己的美術不好不太可能畫出這些小卡片的,其實不會畫畫有不會畫畫的方法,我上網去GOOGLE一下動畫GIF可以找到一些正夯的卡通動畫,利用一個名為GifSplitter的程式可以將GIF檔反解成分解圖

將這些分解圖排列一下,再編輯成圖卡的規格後印出來裁剪就OK了,我是使用InkScape來製作這些圖卡的…,做一點手工還是必要的~


再來就可以欣賞作品了





2020年11月8日 星期日

寫一些關於數學練習的程式(2)


         應該是太容易就把分數類型及轉換的程式給寫好,加料的壞習慣又來了,想說應該要有分數計算的部份才對吧!想不到這個念頭又讓自己陷入很損耗腦細胞的程式碼漩渦中…想起來很簡單自然的事情,在實現面常常都是複雜的…※不是艱難而是複雜!

趁此機會讓畫面有點樂趣
        我在這支程式的畫面中,用了許多「憤怒鳥」的圖,它是我女兒小時候很喜歡的卡通人物,※這組Angry bird的圖是取自https://snap2objects.com/ (https://creativecommons.org/licenses/by/3.0/)而程式的icon及裡頭的關於頁用的Garfield,則是我個人很喜歡的,用的圖也是我女兒小時候手繪的~




        在寫分數的加減乘除這個部份,比較費神的加減的部份,主要是因為分母通分的部份,還有讓電腦亂數出題,有可能會出一些答案是負數的,這個在小學可是不適用的…

還有,我不僅想讓程式自己出題、自己給出答案,還希望它能列出建議的計算過程,最後也能有語音講出來的功能,這些都是費功的地方,一時間開始思考分數的SOP算法是我個人的收獲…發現在這些計算中,求二數的「最大公因數」的能力非常重要,所以五年級的課程中,因數這個話題,小朋友一定要學好…

在程式中,我就要先寫一個取最大公因數的演算式才行,找了一下資料最棒的方式應該是「輾轉相除法」又稱歐幾里得算法(英語:Euclidean algorithm),而在中國則可以追溯至東漢出現的《九章算術(幾千年前的人智慧怎麼如些高呀!)

我實作出下列CODE

--求最大公因數

function gcd(m,n)

  local remainder = Math.Mod(m, n);

  while remainder ~= 0 do

   m = n;

   n = remainder;

   remainder  = Math.Mod(m, n);

   if remainder == 0 then

     break;

   end

  end

 return n;

end

--求最小公倍數

function lcm(m,n)

  local product = m*n;

  local gcd_n = gcd(m,n);

  return product/gcd_n;

end

        因為 二數乘積 = 最大公因數*最小公倍數,所以找出最大公因數後,鐵定能算出最小公倍數。在程式中需要二個數字,就把原始值送進涵數去,不過要避開0,否則程式就可能會掛掉了…

        在避開負數這個問題方面,則是善用了While迴圈:

   n2x = Math.Random(min_num, max_num);

   n3x = Math.Random(min_num, max_num);

while n2x < n3x do

   n2x = Math.Random(min_num, max_num);

   n3x = Math.Random(min_num, max_num);

  if n2x > n3x then

    break;

  end

end

在程式中若希望亂數產生的n2x必須大於n3x,就判斷一下,萬一不是這樣就進入while巡迴中重跑到合適再跳出


寫一些關於數學練習的程式(1)

 

        最近突然想到,又寫了一些跟數學相關的教學及自學程式,當然這是我一直有興趣的事,前陣子剛好家中女王提到中年級小朋友關於分數的學習問題,一時動了來寫寫相關教學程式的念頭…

寫個可以教小朋友分數程式
       分數相關的程式,我以前沒有寫過,因為處理分數「顯示」方式的問題很讓人覺得麻煩…,不過這次就玩玩看吧!頂多寫不好,又沒什麼壓力~一開始很單純的,就是希望畫面上動態地出現某個分數,讓小朋友可以去辨識是真分數、假分數或是帶分數,因為中年級的範圍好像就中有這樣,再往後一點就是假分數與帶分數的互換…對於電腦程式來說,這其實沒有什麼難度就是Math.Radom就解決了,當然花了許多功夫在分數的呈現方式上,六分之五又不能寫成5/6,雖然有點麻煩,但設計一些涵數就也解決了

認識分數的種類

分數轉換

    為了增加撰寫樂趣,我就想著若能讓這程式講話,唸出題目唸出答案,好像是不錯的點子,找到了https://soundoftext.com/ 這個網站可以讓人家輸入文字,下載成mp3所以就把預想中程式可能會說的字眼都分別存成獨立的mp3,我的策略是:要說話時就在程式中讓多個mp3音檔湊出那句話,一開始我把那些音檔一一送進播放器,問題出現了:雖然會講,但音檔與音檔在播放器交替時會有延遲,導致講話會鈍…

這是九十九的音檔波形
        怎麼解決這個問題呢?我想必須先能在送進播放器之前,將各音檔先動態合併起來,方法當然是去爬文(英文不好但又得去爬外國人說的),別跟我說用Audacity、用格式工廠、用Audio Joiner呀!這些沒用的…,我的需求是在我的程式中可以動態將多個聲波檔合併成一個聲波檔的方法,原則上就是CommandLine工具或是指令或是dll涵式庫之類的,想不到外國工程師的文中提到用Windows內建指令就行了,語法如下:> copy /b 1st.mp3+2st.mp3+3st.mp3 output.mp3
在程式中呼叫了cmd.exe來執行這樣的語法,果然可以將多個音檔合併成一個,不過很快就發現了問題,怎麼產生的mp3明明檔案大小是多個檔加起來的,但卻只唸2秒就沒了,原來這種方法合併mp3,會將mp3帶著的ID3 Tag也一起加起來,當ID3 Tag混亂的時候就會出現這種狀況…怎麼解決?想了一下午,終於…我試著用Gold wave 將所有音檔轉成同一個屬性(取樣率及位元率),這問題被解決了!

這算是寫這支程式自己學到了一點!
※要不然前一陣子都是在研究後推式的動力紙飛機怎樣才會飛




2020年9月25日 星期五

紙飛機也能STEAM

 

        去年我在https://www.kickstarter.com/ 集資平台跟隨了一個POWERUP 4.0 | Smartphone Controlled Paper Airplane 的專案,原本今年四月就可以完成,因為新冠疫情影響,整個專案的進度延後,九月份時,我拿到了這個套件…

剛從美國寄來的,我消毒後放了14天
        開箱囉!首先最重要的就是本體藍芽控制晶片及引擎,就是它讓紙飛有了超強的動力

靈魂所在,藍芽控制及馬達驅動板(設計得輕又小)

powerup 4.0是雙翼設計
        這樣就能飛了嗎?當然不行!要先有一點研究精神~首先知道一下:推出這個POWERUP 4.0專案的是一家以色列名為poweruptoys的電玩航空模型的小公司,專案發起人Shai Goitein 在這之前已有過 3 次成功集資的經驗,均以紙飛機相關產品為主題。
(圖片來源:POWERUP 4.0 飛行器集資頁面)

        與前幾代相比,POWERUP 4.0 內多加了 2 個傳感器、2 個高速馬達、1 個飛行計算儀器,因此在飛行表現上,第四代產品將有更多的動能推力,不只讓飛行更平穩,急轉彎等需求的機動性也會更高,飛高飛低、飛快飛慢都憑你心意…(話是這樣說沒錯,但根據實際經驗,操控部份還是需要一點時間來練習的)

        購買後,官方寄來的套件包中有一盒Paper Airplane Templates,裡頭是一個壓克力的桌上置放架及六種飛機折法的範本,每種範本附了二張有描線的紙可供練習,可以掃描範本紙上的ORcode會連結該飛機折法的影片…


所附的紙感覺上蠻普通的,但有印一些說明
          你會發現:「原來,折個紙飛機也是超有學問的…」,一開始就用官方附的紙來折,懂了之後到文具店買漂亮的紙來折,加上引擎後動力測試……感覺很有趣唷!室內不夠大當然沒法飛就是啦!
官方附的紙上頭有印一些花紋

自己買的紙磅數比較高比較挺
        APP連結飛加油門測試

        雖然使用原廠附的飛機模型來折肯定能飛,但我在網路上找到有人教折一台經典的長程飛機OmniWing,很令人喜愛,所以就折這個來飛飛看
這是一台翼展很寬的飛機,我使用8k的紙來折

        在這台的製作之前,其實我已經使用原廠的範例試飛過幾次,算是成功,只是在飛機的操控上,還是得多一些練習,否則不太容易達到外國人示範的長時間穩定盤旋,而且必須找到夠大的草坪,現場沒風是最好的情形…
一不小心飛機就卡在樹上了

 ★就帶個手機架,拍一下試飛的情形

其他說明:
※我在網路上看到了一段外國人的影片:Building the OmniWing Paper Airplane ,很喜歡這種形態的飛機
※又找到一段In Pursuit of a Slow Flying POWERUP Aircraft,這段影片的後半段,拍攝者在這飛機上加上了Powerup3.0在一個室內體育場館飛行,感覺很厲害的!

        所以雖然不是官方內建的飛機種類,但我著手折這種飛機來飛~



        也做了好幾種嚐試,發現並不是紙質越好的飛越好,事實上可能恰恰相反,關鍵是「重量」,這台OmniWing是三角形的寬翼機種,用A4紙來折感覺小了一點,所以我用B4及8k的紙來做,如果紙太好,重量就超重了,反而會難飛~但用輕薄的紙也有缺點,雖PowerUP套件有設計橫向支持桿,但在飛行的過程中,機翼可能太軟而承受不住!
使用好的紙,並在機翼內放入2mm的PLA棒支撐

後來發現機尾與引擎的位置如此是不行的
        這台第一次試飛的時候,「會飛」也飛得不錯,但怎麼直直向前飛去,不能轉彎呀!原來是機尾在引擎的後面,Powerup控制轉彎時,是靠兩個馬達不同的轉速來達成,結果這樣的結構無法產生效果~


後來我做了一些修改,再試!飛得可真不錯呢!