2011年9月17日 星期六

Android / NXT 機器人大戰-智慧型手機控制機器人

http://4rdp.blogspot.com/2011/09/android-nxt.html?m=0

More about Android / NXT 機器人大戰
今天推薦大家一本好書,Android/NXT 機器人大戰-智慧型手機控制機器人林毓祥、曾吉弘、CAVE教育團隊著,馥林文化出版。

阿吉老師每出版一本書,我們就會聚餐一次,已經成為慣例,能跟原書作者餐敘,傾聽作者的心情甘苦,了解他們的未來計劃,是一件美好的事。阿吉與毓祥以很短的時間,從 Android 是什麼都不懂到什麼都懂,歷經很多難關,甚至將 Android 控制重點整理出書,嘉惠 NXT 玩家們,真不簡單。

現在阿吉老師,週五下午在淡江大學開設 NXT Java 專班,竟七十多位同學修課,受到熱烈歡迎。而毓祥同學也正準備研究所升學,無論是誰都努力向下一個目標前進。

邊吃邊聊時,毓祥提出許多問題,一邊說明也引出很多話題,比如談到
資料十六進制表示、NXC 無堆疊及指標、編譯器、ABC 程式語言 (Assembly、BASIC、C)、雜訊處理、卡門濾波器 (Kalman Filter)、傅立葉轉換、示波器、 GPS 定位誤差超過十公尺如何處理、對 NBC 的看法,阿吉老師幫忙回答,我再補述,以後再逐一專文討論。

言歸正傳,Android 這本新書內容豐富自然不在話下,像是第一章細說 Android 的來龍去脈,有認真的去查資料與考據,這個章節我也寫不出這麼好的文筆。想充分了解 Android 手機並運用它控制 NXT,這本書絕對不要錯過,一般教導 Android 手機程式設計的書,較少提及手機內感應器如何控制應用,在第七章 Android 百寶箱列有加速度、磁場、GPS 等感應器,可以補強 NXT 感應器的不足,還有第六章、第十二章與 NXT 藍牙通訊亦是此書的靈魂章節,無論那個章節,都可以讓你無痛學習,按圖施工保證成功。雖然在原稿階段榮幸受邀核稿一些章節,但是實際拿到書還是令人興奮不已。

令我比較感興趣的是第八章 App Inventer,它讓一些害怕程式碼的朋友,感受程式設計的簡易。依阿吉老師的個性,後續會整理 App Inventor 以及 Arduino 成冊出書,我相信以阿吉老師的聰明才智以及不屈撓的精神,自然會想出辦法突破困境再創佳境,祝福他們。

12 則留言:

  1. 阿吉老師和Bridan都是非常專業且敬業的,非常敬佩兩位!
    機器人的領域涉獵不深,恐怕和你們一起吃飯聊天,我會像鴨子聽雷,不知所云!哈哈~

    非常恭喜阿吉老師再次出了一本新書,也祝福新書大賣!

    回覆刪除
  2. 薛老師您好,

    您客氣了,每個人專長領域不同,有很多東西,大家一起討論,可以激發出另外的想法,希望以後有機會可以和薛老師ㄧ起用餐聊天,學習新東西。

    回覆刪除
  3. Bridan您好,

    很高興來到您的Blog, 您的文章寫得不只詳細而且又簡單易懂,
    讓一般非電子本科系的人都能了解, 包括我, 感恩唷.

    我個人是在2年多以前開始接觸到Arduino,
    剛開始除了自學之外, 也蒙受 Cooper Maa 傾囊相授,
    這2年多以來, 我做了不少 Arduino 的電路實驗,
    像是RGB LED, 7 Segments LED, 16x16 dot Matrix LED 中英文動態展示,
    紅外線循線, 超音波避障, 智慧型手機藍芽遙控自走車...等,
    也用Processing寫了幾個手機遊戲, 當然地, 他也可以跟Arduino通訊,

    在這之前都是在練基礎功, 最近我開始想做些比較實用的東西,
    像是幫老婆做一台手機遙控麵包發酵箱, 箱內的溫濕度數據會反饋回手機,
    還有也想做一個太陽能魚菜共生系統,

    因為我不是學電子的, 所以對於這方面的知識仍是一知半解,
    希望日後能向您請教並得到協助,
    感謝.

    回覆刪除
    回覆
    1. Pizg,

      很高興能在網路認識您,也謝謝對本部落格的讚許,你歷經兩年 Cooper Mas 的指導,以及自己努力自學,必定也紮下不錯的電子基礎。

      關於你想製作的專題,我很樂意協助,因為我也常在網路搜尋資料,從他人的留言獲益良多,希望我們的討論也可以給別人些許幫助。

      接下來,你可以將想討論的問題列出清單,我們逐一深度討論,也鼓勵你把學習經驗整理出書。

      刪除
    2. 呵~~十幾年前我曾出過幾本有關AutoCAD程式設計的書, 我寫的是進階方面的內容, 出版社看讀者不多, 後來我就沒寫了. 哈~~應該是我的文筆不佳吧!
      我們還是來談談太陽能魚菜共生系統好了,

      目標: 建立一座中小型之太陽能魚菜共生系統.

      說明:
      1. 抽取魚池的水供給蔬菜, 水會再回流到魚池, 如此循環不止.
      2. 使用太陽能供電, 響應環保新能源政策(目前暫不考慮追日以取得最大日照量).
      3. 魚缸大小和菜池大小先不考慮(因為MCU可以調控水量的供需).
      4. 暫不考慮魚水的酸鹼值與蔬菜的養分等問題.
      5. 期望種苗播種下去後無人管理, 在成熟期去收割即可.(哈~這期望值會不會太高啊? 希望菜沒被蟲蟲吃掉才好, 當然如果有一間溫室就再好不過了, 即使沒溫室我也有辦法解決這個問題, 趕快去倉庫翻出阿嬤那個古早的"剩菜網蓋"蓋住菜就萬無一失了)

      材料清單:
      1. 太陽能板( 12V20W Imp=1.14A) http://goods.ruten.com.tw/item/show?21312318429703
      2. 太陽能控制器(12V/10A) http://goods.ruten.com.tw/item/show?21312101319015
      3. 免加水汽車電瓶(12V45AH) http://goods.ruten.com.tw/item/show?21401143761729
      4. 水泵(直流電壓6V~24V、電流100mV~500mA) http://goods.ruten.com.tw/item/show?21401082563091
      5. 降壓模組(12V降到5V1.8A) http://goods.ruten.com.tw/item/show?21401157485301
      6. 直流電壓表(3.2V~30V) http://goods.ruten.com.tw/item/show?21312101252088
      7. 直流電流表(10A) http://goods.ruten.com.tw/item/show?21312318485053
      8. Arduino控制模組
      9. 光照感測器
      10. 溫濕度感測器
      11. 土壤濕度感測器
      12. 繼電器模組(4units)
      13. 其他

      我想請問的是, 這樣的組合是否適當? 包括
      1. 太陽能板是否提供足夠的電量
      2. 是否可避免充電電池過充和過放
      3. 其他尚未發現的問題在哪理

      刪除

    3. 原來是前輩,失敬失敬,日後有機會再討教出版經驗。回歸主題,前輩想做個太陽能魚菜共生系統,依據你所列材料清單應該足夠,就個人觀點分析給你參考看看:

      先看水泵,我的估計在 DC 12V 約 250 mA (~ 500mA x 12V / 24V),如果電池充飽並且沒裝太陽能板充電,那 45AHr / 0.25A = 180Hr = 7.5 Day,這電池可以連續供電給水泵一周沒問題。

      再來看太陽能板供電是否能與水泵耗電相互平衡,如果你是整天不停打水,那水泵需要 0.25A x 24Hr = 6 AHr,依據你的太陽能板規格,我估計約為 0.78A = 1.14A x 12V / 17.5V,需要日照 6 / 0.78 = 7.7Hr,表示太陽能板要換大一點,或者打水時間減半就可以用這個面板。

      使用太陽能控制器是正確的,可避免電池過充或過放。準備降壓模組,猜測你應該是供電給 Arduino 用。
      其它需要注意的地方在太陽能板與控制器之間接線,需要比較粗的電線,因為充電電流比較大,怕過熱導致危險。
      電壓表選用OK,電流表則太大,會看不清楚小電流數值,看能不能找一個 3A 左右。其它零件需要你進一步介紹,才清楚你的想法。

      刪除
    4. 呵~~請別叫我前輩, 在此承蒙您費心地教導, 我還得稱呼您一聲老師呢.
      話說經過您如此詳細的解說, 我終於有稍微明白這整個狀況了, 讓我來重新描述一次, 看看我是否真正消化了.

      1. Bridan 您是先考量電量需求. 所以先考慮電池與水泵的關係.
      45AHr / 0.25A = 180Hr = 7.5 Day
      這個我可以理解.
      呵~~當然我們不太會真的把7.5天都用足了, 到那時候我看電池也報銷了, 所以得找個控制器來控制避免電池過放.

      2. 再來我們得認識太陽能板, 到這兒 http://goods.ruten.com.tw/item/show?21312318429703#auc 找到20W太陽能板的規格表, 接著我們得名詞解釋一下:
      PEAK POWER(Pmax) 峰值功率 - 是指最大輸出功率為20W, 請詳WIKI http://en.wikipedia.org/wiki/Peak_power
      PEAK POWER VOLTAGE(Vmp) 峰值功率電壓 - 是指在達到最大輸出功率時的電壓為17.5V. 單多晶之Vmp 大約為 0.8*Voc,CIGS為0.75*Voc
      PEAK POWER CURRENT(Imp) 峰值功率電流 - 是指在達到最大輸出功率時的電流為1.14A. 單多晶之 Imp 大約為0.9*Isc,CIGS為0.83*Isc.
      OPEN CIRCUIT VOLTAGE(Voc) 開路電壓 - 是指太陽能板未接電器時的電壓是21.7V. 這數據通常只是拿來計算轉換效率的。
      SHORT CIRCUIT CURRENT(Isc) 短路電流 - 太陽能板輸出最大電流,這數據通常也是拿來計算轉換效率的。

      問題來了, 甚麼時候太陽能板可以達到最大輸出功率, 答案是太陽很大時, 時間大約是夏天的AM11:00~13:00, 業界通常把早上9:00以前和下午4:00以後的日照都不計入有效時數, 所以總計大約是7hr, 然而還得再扣除一些其他因素, 例如偶而有一朵雲飄過來遮住太陽能板, 或是某一塊晶片被鳥屎遮蓋住了造成孤島效應, 再不然是自己的太陽能板老化發電效率降低或是太久沒清潔被塵土掩埋了...諸如此類種種因素, 還得要加扣一小時, 所以呢大部分人都會以一天是6hr來計算有效日照時數.

      有些露天拍賣業者在幫客戶計算發電量時, 通常會以 Imp 乘以6hr再打8折作為一天的發電量, 這個值也可以說是存到電池裡的電量, 或是設備可用的電量,
      計算式: 1.14A * 6hr * 0.8 = 5.47A

      Bridan, 我不了解這個式子是怎麼來的 >> 0.78A = 1.14A x 12V / 17.5V
      意思是不是雖然太陽能板輸出1.14A, 但是當儲存到12V的電池裡時, 只會有0.78A的電量被存入?

      您計算出來每天要充7.7hr才夠, 看來我應該要換50W的面板才夠, 呵~~~面板的價錢也翻了2倍呢!

      3. 除了水泵用電之外, 還有MCU, 感測器...等會用到電的東西都還沒被計算進來, 若再加上預留未來可能會擴充的規模, 所以看起來真的要狠心砸下銀子不行了. 如果真換了50W面板, 當然電池也要換大一點的才行, 不然就會浪費得來不易的電.

      真的很感謝Bridan, 接下來我得開始購買材料並實做才行, 如此有一些隱藏性的問題才會陸續出現,郭董不是常說一句話嗎: 魔鬼藏在細節裡.

      ps, 電池也有很大的學問, 有機會再聊這個.

      刪除
    5. Pizg 您好,

      謝謝你的抬舉,我只是就個人所知提供訊息給大家參考,而且可以從大家的問題中學習更多的知識,教學相長,你的理解釋正確的。

      現在再進一步補充一些資料,如果沒有電池蓄電,太陽能板直接接水泵,只要太陽能板能發電 6V 以上,水泵就能夠持續打水運轉,現在中間接了一個電池以及控制器,我看不出控制器詳細規格,如果採傳統電路設計,太陽能板發電低於 12V 時,就無法對電池充電,惟有控制器充電電路用 DC-DC 設計方式,太陽能板即使發電低於 12V 也可以充電,從售價來看應該是傳統設計方式。

      太陽能板充電計算,我是採取保守估計,因為太陽能板特性曲線呈現線性變化,最大輸出功率的電壓 17.5V,電流 1.14A,因為電池穩壓在 12V,因此充電電流約在 0.78A = 1.14A x 12V / 17.5V。

      刪除
  4. 經過一個晚上的消化, 大概可以用下列方法就可以很簡單地看出電量供需的問題.
    先不考慮蓄電池, 因為如果"生吃都不夠了, 哪還有剩下的能夠去曬乾?" 先考慮太陽能板直接供電給水泵的電量是否足夠, 若是足夠了才有餘電可以儲存到蓄電池裡, 這時再來衡量該用多大容量的蓄電池.
    太陽能板每天供電量 1.14A * 6hr * 80% = 5.47A
    水泵每天需電量 0.25A * 24hr = 6A
    5.47A < 6A
    由上面計算式可以得知20W的太陽能板發電量是不足以供應250mA的水泵連續運轉24小時.

    後來我突然想到, 雖然魚24hr都需要氧氣, 但我卻不需要用250mA的水泵去24hr不停地打水, 打水的目的是供給蔬菜水份和養分, 一旦菜池裡的土壤水分夠了, 就可以停止打水. 更何況如果一直打水, 還得要考慮魚池、菜池的容量和打水量是否匹配的問題.
    至於魚的氧氣部分, 我可以另外使用一只耗電量較小的水泵供給氧氣, 如此即可解決這個問題.

    另外, 為了對太陽能板多了解一些, 今天搜尋到「綠能趨勢網」 http://pv.energytrend.com.tw/knowledge/20140224-7885.html
    裡面有一篇關於功率計算的文章, 內容片段如下:
    功率計算
    太陽能交流發電系統是由太陽電池模組、充電控制器、逆變器和蓄電池共同組成;太陽能直流發電系統則不包括逆變器。為了使太陽能發電系統能為負載提供足夠的電源,就要根據用電器的功率,合理選擇各部件。
    一般來說,太陽能板功率=電池片功率X數量X損耗。太陽能電池板功率有理論和損耗之分,損耗程度不同,其功率也不同。
    下面以100W輸出功率,每天使用6個小時為例,介紹一下計算方法:
    1.首先應計算出每天消耗的瓦時數(包括逆變器的損耗):若逆變器的轉換效率為90%,則當輸出功率為100W時,則實際需要輸出功率應為100W/90%=111W;若按每天使用5小時,則耗電量為111W*5小時=555Wh。
    2.計算太陽能電池模組:按每日有效日照時間為6小時計算,再考慮到充電效率和充電過程中的損耗,太陽能電池模組的輸出功率應為555Wh/6h/70%=130W。其中70%是充電過程中,太陽能電池模組的實際使用功率。
    以上資料摘自「綠能趨勢網」.

    回覆刪除
    回覆
    1. 現階段你需要重新思考水泵問題,魚池的需要多少電流(24H),菜池的又需要多少電流及時間長度?這樣才能選擇適當的太陽能板,讓發電與耗電相互平衡。

      關於綠能趨勢網的內容,逆變器是 Invertor 的翻譯,用途為轉換電源電壓或頻率給負載使用,通常可以控制馬達轉速快慢,它的估算方法也是從負載反推回去,
      消耗功率 x 耗電時間 / 逆變器效率 / 太陽能板日照時間 / 太陽能板充電效率 = 需要多大發電功率的太陽能板

      如果使用這公式試算,因為你沒有逆變器,就用 100%
      (12V x 0.25A) x 24Hr / 100% / 6Hr / 70% = 17.14W

      我對日照時間及太陽能板充電效率沒有那麼樂觀,建議 17.14 x 2 = 34.28W

      刪除
  5. Bridan,
    Mobile 論壇有一篇討論太陽能板的議題, 我偏看邊笑, 因為大家七嘴八舌, 你一句我一句地互相調侃, 但是在嬉戲笑鬧中仍可窺見事情的真相 >>
    http://www.mobile01.com/topicdetail.php?f=168&t=2605777&p=9
    對了, 那些材料我今天上網訂了.

    回覆刪除
    回覆
    1. Pizg,
      謝謝你的分享,真是有趣的討論,一堆網友取好笑的代號,然後東扯西扯,光說不練。
      期待你分享第一階段成果發表。^_^

      刪除