發表文章

更改AR.Drone的鏡頭方向

圖片
因為其他事忙,所以有一陣子沒有再動AR.Drone了,當然它蠻怕風的也是一個原因,我覺得這個產品與我們現在說的空拍機像DJI的還是有些不同,比較像是可以用手機即時錄影的遙控飛機,而且有一點就是,它的camera設計是朝著正前方, 飛上天空時,就是拍遠方,反而下面是錄不到的,我想它一開始是想讓使用者看著螢幕就可以看著飛機的前方,而不用仰頭去看飛行器。 可以看前方卻無法錄到下面的景物 所以又要發揮創客的精神,動手來改造它,雖然它不便宜,但是實驗及動手做的精神更可貴! 只要用美工刀就行了!割開磁性的鐵片 排線粘得蠻緊的,拆的時候得小心別拉斷了 接下來就是把原本向前伸的機鼻給切掉,這部份倒是很容易的,這種機子本來就是保麗龍做的, 依電子零件大小設計好形狀後,把機板和零件塞進去固定好,就可以賣個好價錢,這也是人家的創意在賺錢~,下回有空時,應自己找掉保麗龍或類似的輕量物,自己塑個新的飛行器外殼,或是乾脆把外殼都拆了裸飛,說不定就不怕風了! 就把機鼻切斷了~膽大心細唷! 準備把鏡頭往下拉 這樣子鏡頭就朝下囉 改裝後試飛,結果一切正常,飛行中錄到的畫面變成下方,不變的一點是它還是怕風,只要風稍微大一些,它就會受到影響,在很空曠的地方飛倒沒差,如果周圍有建物,被風吹時操控又來不及反應,那麼撞山的情事就會發生! 我最近念頭有點改變,不要再買人家設計好的完美產品,世界潮流都已走向「自造者」的驅勢,我們雖還缺少許多「自造」的技術和經驗,但可以從心裡的想法改變做起,唯有我們自己能體驗「創客」、「自造者」…的觀念,我們才能真正地將這門技巧傳達給學生和週遭的朋友及家人…

Samsung Galaxy S6 edge 翻頁皮套的秘密

圖片
一 直以來都知道手機翻頁皮套,翻開螢幕就亮起,蓋上螢幕就關上是因為這種保護皮套上利用磁力的原理,換新手機(Galaxy S6 edge )時,試了非原廠的翻頁皮套卻無法有作用,所以就買了原廠的皮套。 手機還是需要一點兒保護 不過,用了一段時間後,皮套就變得又髒又難清理, 尤其白色的很難維護,功能還有但外觀不佳,再買個新的原廠皮套實在有點貴,不買原廠的,又無法有感應功能,昨天看到一個外形可說是一模一樣的翻頁皮套,看了一下,正面好像一樣有塊磁性板,想說一定可以用,就買了,想不到事情可沒這麼美好! 唉呀!光前蓋板還是沒用 事到如今,就發揮一點實驗精神→一定是後背板也有機關,動手把原廠的給拆了…果然… 我第一時間想:這廠商未免太用心了吧! 我就小心地把這三小塊給卸下來,若割壞了可能也不能用了! 真的是塊晶片貼紙→RFID 這是塊圓形的小磁鐵吧!還有片方形的 完工,拆下來裝到相對應的位置 最後測試,果然可行…,我並不是在鼓勵「山寨」,而是這個小小的實驗其實可以看出人家很用心的,連這種配件都不是只倚仗著原廠的稱號就賣很貴的價錢,為了防山寨盜版,可是有下功夫在裡頭的,我們在做事情及做各項計畫時,也應該心思細密一些,成果才能細緻精密一點,這是我的感想…

寫一個電腦抽籤的程式

圖片
昨天,學校的教學組長提及有沒有辦法在校內語文競賽時,選手抽籤像全市比賽那樣,用電腦抽號!我直覺地回答:「這簡單呀!」(聽說主任本來要去找一下有沒有人在賣這種程式…) 其實,一切都是為了「比賽的公開與公平」,這個要從校內做起…,也是需要啦! 看了一下,全市比賽的抽籤程式用的是Excel巨集寫的,一來我不擅長那個,二來我想弄個漂亮點、功能好一點的,所以花了一下子來寫支「競賽抽籤程式」。 程式執行畫面 說來說去,就是電腦亂數啦! 程式裡的簡單說明 要用這支程式,首先就是建一個選手名單,要不然誰知道你要抽什麼?所以我很簡單地提供一個純文字的範本檔,使用者填好另存後,就可以當作給程式的Source了 為了呈現出公平中的公平,引入名單時還可以決定抽籤順序,免得有人連「誰先抽」也計較(※說實在的,有必要那麼計較小朋友的競賽得失嗎?學到了東西比較重要吧!) 接下來選手名單就會列表在左側的欄位裡了,這是主持人可以決定讓輪到的選手上來一個一個抽,或由電腦一次幫所有人抽好… 在這個部份,我就讓它呈現一點兒效果(正在抽及抽出號碼的畫面及音效) 正在抽號… 抽出來了… 我把這支程式放在網路上供有興趣的人→ 下載參考 ※程式畫面我嵌死了忠義國小的校幑和學校名稱,不過那都是可以改掉的,如果有人有需要的話。 ※寫這種程式,我想最重要的就是操摐亂數的技巧,以下面這個涵數(lua程式)來說,傳入一個數字 n 要求它在1~n之間取一個亂數,還要進行檢查這個數字在之間取過了沒 function num_set(n)   g_no = Math.Random(n);   g_tb_Count = Table.Count(g_tb);   if g_b_Count == 0 then Table.Insert(g_tb, 1, g_no);   else NumFind = false; for i,j in pairs(g_tb) do if g_no == j then NumFind = true; end end if not NumFind then Table.Insert(g_tb, g_tb_Count+1, g_no); end   end end 再來,我就會搭配一個迴圈來讓程式一直跑到我想要的所有亂數都產生為止,下面例子...

Arithmetic Challenge Open2015開發紀錄

圖片
今天我把以前開發給學校學生使用的 算術大挑戰 (Arithmetic Challenge)改版開放給校外,主要是把消息Share在溫老師的備課Party,比較起來,這兒重視小朋友學習的老師或家長還是多一點吧! 程式網站的位置→ http://163.26.23.3/app/math_game_ex/ 這是一個主從式的程式,意思是程式在使用者的電腦上執行,背後卻可以和伺服器連動,很多電玩不都是這樣嗎?以這個程式來說,小朋友挑戰的成績可以上傳到伺服器配合的網站程式接收,這樣可以讓小朋友們比拼一下誰厲害。 原本結合在學校兒童學習網的後端 在這次的改版中,保留原本程式中算術項目功能,「個位數加法」、「二位數加法」]、[九九乘法]、[二位乘一位]、[100以內的減法],我覺得這些項目是小學生最需要的話題,簡單是簡單,就算是一位加一位的題目,如果趕你時間,就可能會出錯囉! 我趁這個機會,就把最近用的「憤怒鳥」加到畫面裡。 程式執行起來的畫面 當挑戰者(學生)按下開始後,程式會自動出題,共20題,題目在上方,答案會隨機出現在下面的八鈕之中,學生做完一題,程式會立刻出下一題,直到20題結束。 分數的核算方法:本程式計算成績的方法依據二個部份→答對的題數及所耗用的時間,而且連績答對還會有動態加分,如此設計的原因是希望學生能同時兼顧作答的正確性及速度。 進入測驗的畫面 我覺得我之前構思的計算分數的方法是蠻不錯的想法→想得高分,得兼顧速度和正確還有連續正確…,只是過去在學校實施,有很多學生的成績會很接近,使用的秒數有一樣的情形,那是因為之前的程式,我讓它每一秒核算一次所謂的「時間加分」,當許多認真的學生出現時,他們的成績會很接近,甚至一樣。 所以這一次,我修改程式這個部份,改為每0.1秒核算一次,我想這樣子,想同分的機會就不多了。 再來就是成績上傳這件事,原來的版本,小朋友測驗完後,想要上傳成績,會跳出一個視窗要求輸入帳號密碼,會送出到兒童學習網認証並取得學生的資料,再寫入成績表,所以可以上傳成績的都是本校的學生。 想讓程式改成讓學校之外的人上傳成績,以學習的角度來說,這絕對是很棒的事,但如何在上傳成績時進行「認証」變成一件很值得思考的事,我不可能要求凡是要上傳成績的人都來系統申請帳號,因為這樣會讓事情變複雜了,而且我也不想找自己的麻煩。 最後,我想了一個辦法,伺服器上不需要保有使用者的...

Multiplication Chessboard的更新紀錄

圖片
在10月上旬將這個程式Share出去之後, 有許多老師同好對「九九乘法遊戲板」感到興趣,所以我儘可能地快速Update它到我認為較完整的版本,主要就是加入對戰紀錄分析,我個人認為這可比遊戲本身更重要,也加入了一點音效… 加入可以逐手討論的區塊 若有大人或老師,在某場遊戲結束之後,引導小朋友(對戰者或其他人)一起來「回顧」每一手紀錄,這可以讓小朋友長智慧,因為不僅是單純的背熟九九乘法這麼陽春,它還包含觀察對方的局勢做出是要「進攻」或是「阻止」的決定! 以程式的角度來說,就是要在遊戲進行中,不斷地留下紀錄,所以我讓程式在啟始時,在使用者的電腦裡檢查並建一個目錄,就在 C:\cw_cheesboard,遊戲進行時,程式會截取盤勢畫面及寫下使用者動作的log,最後在程式中增加一個區塊→「對戰分析區」 每一次的對戰會被以時間為標記留下來 選了對戰紀錄後,就可以進入那一場的檢討畫面。 在這一次的Update中,有鑑於目前螢幕或是單槍都是16:10的比例,且解析度也都不錯,便加出一版使用1200X800的版面,並用KIOSK模式(全螢幕遮蔽),結果老師們也大都認為不錯。 KIOSK模式執行的程式 不久之後(才釋出程式一二天),有位新市國小的大紅帽老師來商談,希望能改一版適合他的「全黑板投影」,還很認真地提出了他的需求,想說如果不要太費時,就舉手之勞一下… 原來現在有一些老師認為原本的教室投影模式(單槍投在布幕上)太不清楚,所以就投在黑板上,這樣還可以用粉筆加上去,算是一種巧思,也有書商的數位教材光碟也提供了所謂的「黑板投影模式」,其實很多年前,我去台北開會或研所上課時,就有教授把畫面直接投在白板上,加上白板筆說明課程,用黑板的話,在目前的教室應是不錯的啦,因為教室配的投影幕都是4:3的居多,早就跟不上時代了,只不過認真的老師,仍免不了要吃些「粉筆灰」… 投影在黑板上有二個重點:1.黑板是狹長型的。2.投影在黑板上對於內容的顏色是有限制的 還有,大紅帽老師希望利用鍵盤來控制程式…,嗯…這些要求對我來說也還算可以啦,不過我也沒太多時間就是了,而且看來他使用雙螢幕在玩(這麼有衝勁的老師現在也不多了),所以我也加了一個螢幕來試程式效果。 這時筆電是主螢幕,另一個就是副螢幕(二個解析度可設為不同) 發現程式一開始會執行於主螢幕,由於寬長於螢幕解析會被截斷,拖到副螢幕也不會自己恢復 加上...

開發Multiplication Chessboard紀錄

圖片
中秋節連假前的星期五(2015.9.25),我們利用下午沒有課務的時段,在圖書館辦了一場校內的研習:「桌遊在教學上的運用」,參加的就是幾位平時對於桌遊很有興趣的老師,像是内人(Spring Wu)和女兒(Irene Zheng)就是桌遊長期以來的支持者。所以在這小小的研習中,老婆帶了許多之前買的桌遊和其他老師及小朋友分享,也分享了最近在溫老師備課party中看到的資訊:有位邱老師分享了 九九乘法盤遊戲 的作法,大人和小孩都覺得效果很好。 剛好本人會寫點小程式,心想可以把這「寓教於樂」的想法化成程式,或二人玩或投影,若有電子白板的教室,豈不美事一件,就立刻動手… ※寫程式對自己也是很有幫助的,它可以促進腦細胞快速運動,讓一個人即使夜深了也不會累…哈哈!是隔天才會累 第一件事就是看著人家這張設計,想一下人家建議的玩法 分析原本構思者的想法很重要,它將成為程式最基本的樣子,這方面我算是還可以啦!過去也累積了許多經驗。 一開始先把想像中的畫面做出來 既為「程式」,程式碼才是最重要的,接下來就是思考畫面上的各種功能要如何佈置及靠程式碼去實現,這過程中充滿了腦海中對於未來運作程序的順序模擬,事件及動作,如果怎樣就怎樣…英文就是event→function→if xxx then else xxx,我寫程式的速度算是蠻快的(如果慢下來放著,就會不想寫了),很快地我就完成了基本樣式(約莫一二天中的空餘時間),也不能全部時間都拿來做這事,還是要上課、打球、家務事、也得睡覺… 第一階段最費腦袋的應該就是如何判斷所有三連環的情形,一想之下,情形真多…如何把它化為公式判斷是很重要的,像下方這樣: function chk_line(user,point)   if user == "user_green" then     if String.Find(txt_user_green, "|" .. n-6 .. "|", 1, false) ~= -1 and String.Find(txt_user_green, "|" .. n+6 .."|", 1, false) ~= -1 then       victory = true;     end   elseif user == ...