2012年4月29日 星期日

AMIGO Controller

最近在開發 Mac OS X 下運行的 AMIGO Controller。我希望一個控制軟件去連接 AMIGO 系列的機體。開發 Mac OS X 軟件比想像中困難,不過都算是可接受的程度。

2012年4月28日 星期六

AMIGO Hexapod 的供電問題

AMIGO Hexapod 共有兩組 7.4V 鋰電。一組是供給舵機,另一組則是控制板。如果使用單一組電源時,是因為舵機在操作時,有可能令到電源不穩,導致控制板發生斷電情況。使用兩組的話,便能解決以上問題;亦能提升運作時間。控制板本身能接受 6V-12V 的電源,所以能直接接上 7.4V 的鋰電。不過,Futaba S3003 則是 4.5V-6V,需要把鋰電降壓後才能使用。恰巧找到一塊很久以前製作的 9V 轉 5V 板子,而且板子剛剛好能放到控制板的上方。現在只欠藍牙的安裝。看來電子部份很快便能完成!全力製作軟件部份。

2012年4月27日 星期五

RXN-305A

一直都很想買台電源穩壓器,方便做機體開發,不用下下充鋰電來做測試。星期三拿下決定,以 RMB$218 的價錢(連 $60 運費)買了這台 30V 5A 功率輸出的穩壓器。今天到手後可在周末使用。

2012年4月26日 星期四

UDID 荒

公司的客戶數目越來越多,連帶 iOS Developer License 的 100 台測試機 UDID 也快將爆滿。重新檢視一遍,發現只有數台 iOS 裝置可以刪除,其餘的都是客戶運作中的機器。要解決 UDID 荒的問題,似乎是要申請 Enterprise 版本的 Developer License 才可以。利用它的 In-house Distribution,幾多台裝置都沒有問題。不過,前提是 Apps 沒有包含 In-App-Purchase...。還有兩個月就要續約 Developer License,要刪除 UDID 的話,便要在這個時間之前完成,否則便要再等一年...。

2012年4月25日 星期三

Udacity

最近報讀了 Udacity 的「Programming a Robot Car」及「Applied Cryptography」兩個課程,引發了我對數學的興趣。可是我的英語水平較低,不能只聽講解,需要加上英語字幕才較易理解。今天把之前學過的內容重看一遍時,發電 Udacity 已加入了中文字幕,使我更能理解之前的內容。不過,只有頭幾個單元加入了中文,希望在不久的幾來有更多中文字幕出現!

2012年4月24日 星期二

安裝控制板

AMIGO Hexapod 最終選用 16 路舵機控制板,今日把它安裝到 AMIGO Hexapod 中。真的幸運,之前設計的孔,有兩個剛剛好跟控制板的對角孔體齊,我也順應這個巧合把它裝上。整理好舵機的電線之後,感覺頗為整齊。考慮到舵機電源要跟控制板電源分開,也加入了第二顆 7.4V 鋰電。之後便要著手處理藍牙及 7.4V 轉 5V 的工作。

2012年4月23日 星期一

面板底板之接合柱

星期六到網友 Peter 的店舖取貨時遇到機械人達人 Keith(http://bloodkeith.wordpress.com/),我們當然討論一下機體方面的心得。其中,他對我的 AMIGO Hexapod 面板底板之接合方法給了點意見。現在已作出修改。之前的接法,柱中間沒有固定的高度,只靠感覺連接,在運動的過程中也容易產生高度不一的情況。於是加入了絲帽來把中間的位置填滿,亦能把六條柱的高度變成較為劃一。

2012年4月22日 星期日

Segway-like Machine


已經有兩年沒去香港迪士尼樂園,今次帶著兩個女兒同進。在樂園遇上新驚喜。這台 Segway 般的機器也是用兩輪平衡,能前進後退及旋轉,附近看不見有工作人員操作,估計跟巡遊花車一樣能自動根據路線移動及遠距離無線操作。上面更安裝了鏡頭,能讓控制員跟遊客作出即時互動,效果十分之好!

2012年4月21日 星期六

終於都有腳了

上次拿到的 AMIGO Hexapod 的部件後,發現足部關節的尺寸有很大出入,於是重新在 Inventor 繪圖,並找網友 Peter 幫忙生產。今天拿到成品後回家立即進行安裝,尺寸非常完美。足部關節終於都完成了。這個設計有數個不足的地方:
1) 足部向上向下的空間不足
2) 關節一上一下,容易搖動
3) 關節只用螺絲及絲帽,沒有鑲實,容易脫落
4) 關節只能上下移動,不能向內向外

為了能盡用 Futaba S3003,因而無法把每隻腳設計成三個 Servo,才出現以上部份問題。下一步便是構思如何移動...。

2012年4月20日 星期五

雙線發展

每次跟應徵者面試,都會說明一下公司的發展方向。當中亦會標明會「雙線發展」,即是:一開發自家研發應用;二替客人開發商業應用。一年前,舊老闆高總跟我說過「雙線發展」是很困難,我是明白的。不過,作為一間初創公司,總不能直接做自家研發應用,始終這是一件燒錢的事情。與其說是「不能」,我想「不敢」會較為合適。現在,我的想法也改變了。事實上,這一年我們把資源集中在「客人的商業應用」,凡事以它為優先;「自家研發應用」往往被迫延遲,最終被忽略了。若是在三年前,我想問題不大。但是現在市場環境改變了,應用不會放到 App Store 便能生出可觀的金錢!還需要「營運」的配合。沒錯,應用是需要經營的!如果現時的應用欠缺「營運」,我想只有兩個星期的光陰,之後便會一沉不起。問題是,初創公司要「營運」一個應用,需要的資源其實不少。作為管理層,是需要細心思考如何配合。我一直堅持「專注」,很多偉大的人物都有這個想法。「雙線發展」本來就是跟「專注」背道而馳。既然吸收了一年經驗,我想我們重新定立方向。可能是選一個擴展性高的應用,專注開發,努力營運!

2012年4月18日 星期三

迷你焊台

在淘寶購買,真的甚麼人也有。就像購買「迷你焊台」,付了費用後五天,賣家仍然未發貨。向他查詢又沒有回覆。只好退款另覓賣家。幸好今次三天內到手。這個「迷你焊台」連運費約人民幣 RMB$100。之前在新高登見過同類型的索價 HK$365。雖然質素不及,但平了二百多元,買來粗用無妨。家裡有兩個焊台,一個不夠熱,另一個則太熱。買了這個能調節火力的焊台,相信能應付不同的情況。

2012年4月17日 星期二

解剖 Android 應用

Android Apps Reverse Engineering
近日有三個項目都死期將至,當中一個比較大型,花了不少時間在開發工作上,導致用在其他項目的時間十分之少。其中一個是在 Android 上的攝影軟件。快要到交 Alpha 版本的時間,現在只完成了數個畫面,較為核心的繪圖部份還未動工,而且一點頭緒都沒有。相對於 iOS 開發,Android 方面始終經驗尚淺。面對這個困境,只好使用 Reverse Engineering 技術,偷看別人是如何製作攝影能用。今次選了《LINE Camera》:

要達到這個目的,需要 dex2jar 及 JD GUI 兩個免費軟件:
  • 下載 dex2jar 後,解壓到桌面
  • 下載 LINE Camera 放到 dex2jar 目錄內
  • 打開 Terminal 並跳轉到 dex2jar 目錄內
  • 輸入 sh ./dex2jar.sh LINE_Camera_1.0.2.apk
  • dex2jar 會生成一個 LINE_Camera_1.0.2_dex2jar.jar
  • 打開 JD GUI
  • 選擇剛才的 LINE_Camera_1.0.2_dex2jar.jar
  • 就這樣 JD GUI 便能顯示 LINE Camera 的 Java 碼

    這個方法雖然不是百份百能獲取 Java 代碼,但作為參考已經是非常之好。
  • 2012年4月16日 星期一

    迷你藍牙

    一連買了兩顆藍牙模塊,連家中的一塊,已經有三塊;可用在 AMIGO Hexapod, AMIGO mini 及最近想開發的 AMIGO Quadcopter。這塊藍牙連運費只需 RMB$40。跟其他模塊不同,沒有了內置電壓轉換,是跑 3.3V。嘗試過跟 MacBook Air 連接,一切正常。稍後會開始用 Xcode 製作 AMIGO Hexapod 的控制軟件。

    2012年4月15日 星期日

    修正 Arduino UNO 的串口問題

    Arduino UNO serial-port fix

    2012-Sep-12 更新:
    如果要在 Lion 或 Mountain Lion 下使用 PL2303,可以到這裡下載驅動程式

    在淘寶購買的 Arduino UNO 已經到手。看起來品質很好,手工精細,原裝意大利貨果然不同。按照書籍講解的方法把 Arduino 連接,可是 Mac OS X 沒有彈出「找到新硬體」的通知。調查後發現,我這塊 UNO 板原來是淘寶賣家的改版,USB-Serial 那部份改用了 PL2303 而不是原裝的 MEGA8U2。噢!原來不是原裝意大利貨!看漏了一點又中伏了。跟祖國人做生意真的要很小心!那只好自行解決問題!

    幸而,在網上找到了 Lion 適用的 PL2303 驅動程式。安裝方法如下:
  • 下載 http://xbsd.nl/~martijn/log/osx-pl2303.kext.tgz
  • 解壓 osx-pl2303.kext 到桌面
  • 打開 Terminal 並跳轉到桌面
  • 輸入 su root
  • 輸入 cp -R osx-pl2303.kext /System/Library/Extensions/
  • 輸入 cd /System/Library/Extensions
  • 輸入 chmod -R 755 osx-pl2303.kext
  • 輸入 chown -R root:wheel osx-pl2303.kext
  • 輸入 kextload ./osx-pl2303.kext
  • 輸入 kextcache -system-cache

    啟動 Arduino.app,在 Tools 選單下的 Serial Port 便會多了 /dev/tty.PL2303-00001004。終於可以把程序下載到 Arduino UNO 了!
  • 2012年4月14日 星期六

    AMIGO mini 的身驅

    Body of AMIGO mini
    之前改造了的 AMIGO Hexapod 足部部件已經生產完畢,我專程到 Peter 的店取貨。回到家後,立即動手裝嵌。可是,部件過長...。我又一次錯誤...。幸好,還有 AMIGO mini 的部件。於是改為組裝 AMIGO mini。由於體積細小,要利用大人的手來裝嵌是有點困難,而且還要分好先後,不然便會更難安裝。圖中就是 AMIGO mini 身體的近照,真的很細小。

    2012年4月13日 星期五

    藍牙 + 舵機控制板

    BlueTooth and Servo Controller
    在淘寶買的第二塊藍牙模塊今日到手,立即接舵機控制板。由 MacBook Air 在 Lion 上的 ZTerm 連接。可以無論如何連接,都沒有任何字元傳回。向賣家查詢後,原來是板子只會接收,沒有傳回的。然而,當我在 ZTerm 中按任何鍵時,舵機控制板上的小燈會亮起,再按一下又會關閉。估計是已經接上。舵機控制板是以 \r\n 來決定指令的末端,應該是拍 Enter 鍵只有 \n 而使得舵機沒有轉動。需要另寫程式測試。

    之後,我嘗上把程序下載到舵機控制板。在 Arduino IDE 選好預設的測試程式,選好 Arduino mini,下載!誰知無法成功。再告賣家查詢才得知這塊板子的 MCU 不是 Arduino mini,是無法更新程序!頂!他寫 Arduino mini USB 舵機控制板,原來是「Arduino」「mini USB」「舵機控制板」!被誤導了!也是我的大意。所以我沒有給予劣評...。不能編程,唯有用在簡單的機體上吧...。

    2012年4月12日 星期四

    在 Ainol Novo 8 Advanced 2.2 上安裝 ICS 4.0.3

    Install Custom Firmware 4.0.3 on Ainol Novo 8 Advanced 2.2
    事前準備
  • 到 http://origovacua.altervista.org/wordpress/custom-ics-for-novo8-official-page/ 下載最新 Firmware
  • 把 Firmware 拷到 SD 卡的根目錄並改名為 update.zip
  • 在同一頁的連結下載 Recovery ClockWorkMod_5.5.0.4-NOVO8-0.04RC0 後解壓檔案到 SD 卡的根目錄
  • 下載 Gapps 20120317 版把 ZIP 檔案到 SD 卡的根目錄
  • 下載 Powerpack Novo8-ICS_psquare-RC2 後解壓檔案到 SD 卡的根目錄
  • 下載 Settings+Browser from CM9 後把 ZIP 檔案到 SD 卡的根目錄

    安裝步驟
  • 確保有 60% 電力(我試過 57% 會失敗)
  • 關掉 Novo 8(接住電源線時只能 Suspend,要抜掉)
  • 按著 VOL+ 不放然後接回電源線,這時系統便會重開
  • 當 Android 機械人標誌出現後,放開 VOL+
  • 待選單出現後,利用 VOL+ 及 VOL- 改變點選項目
  • 選「wipe data/factory reset」按「放大鏡」確定
  • 選「Yes -- delete all user data」按「放大鏡」確定
  • 選「wipe cache partition」按「放大鏡」確定
  • 選「Yes - Wipe cache」按「放大鏡」確定
  • 選「install zip from sdcard」按「放大鏡」確定
  • 選「apply /sdcard/update.zip」按「放大鏡」確定
  • 選「choose zip from sdcard」按「放大鏡」確定
  • 選「Custom-ICS_4.0.3-Novo8-psquare_2.0RC1-signed.zip」按「放大鏡」確定
  • 選「choose zip from sdcard」按「放大鏡」確定
  • 選「Setting+Browser-signed.zip」按「放大鏡」確定後耐心等 30 分鐘
  • 選「choose zip from sdcard」按「放大鏡」確定
  • 選「powerpack-Novo8-ICS_psquare-RC2-signed.zip」按「放大鏡」確定後耐心等 30 分鐘
  • 選「reboot system now」按「放大鏡」確定
  • 第一次開機成功!
  • 2012年4月11日 星期三

    16 路 Servo 控制器

    16-Channels Servo Controller
    在淘寶網看到一塊 16 路 Servo 控制器,只不過是 RMB$90,加上它是 Arduino mini,之前已學習了一些 Arduino 編編,於是買來一試。可惜 Mac 機沒有相關 USB 驅動程式,有待新藍牙模塊到手時再作測試。畢竟我想在 MacBook Air 上做開發...。

    2012-04-14 更新
  • 原來這塊不是 Arduino mini,被賣家誤導了。

    2012-04-16 更新
  • 舵機控制板的說明 http://www.torobot.com/usc/
  • 2012年4月10日 星期二

    Android Project in Xcode

    Android 的模擬器啟動得實在太慢,而且像真度又低;在開發 Android 的應用時,多數在實機上進行。Eclipse 也是一個較慢的 IDE。因此,我嘗試利是 Xcode 進行 Android 開發。話雖如此,但 Eclipse 及 Android SDK 同樣需要預先安裝好:

    1) 啟動 Eclipse 建立一個 Android 專案
    2) 啟動 Xcode 建立 External Build System 專案

    3) 輸入專案名稱

    4) 導入 Eclipse 專案內的所有檔案

    5) 啟動 Terminal 並跳轉到專案目錄
    6) 輸入 /Applications/eclipse/android-sdk-macosx/tools/android update project --path .
    6) 關閉 Terminal
    7) 在 Xcode 的 Target 內的 Custom Build Command 設定為:
       Build Tools: /usr/bin/ant
       Arguments: $ACTION
       Directory: 專案的目錄位置
    8) 這樣便能直接編譯 APK 出來

    2012年4月9日 星期一

    連接點測試

    在設計 AMIGO Hexapod 的時候,沒有想得太仔細,大多都是見步行步...MCU 板如是、MCU 位置如是、電力位置如是。到時再想辦法解決。現在要解決足部支架的問題。每隻腳跟身體是有兩個支持點,目前只有一個,另一個還沒有裝上。當初在繪畫足部結構時,已把上下支架的連接點高度劃一,目的是想做出垂直提放的動作。為何要這樣?如果兩點高度不均時,足部會如圖般向外向內伸展,遇上阻力較大的地質時,有機會不夠力量支持到目的角度及位置...。

    2012年4月8日 星期日

    AMIGO Hexapod 六足裝上

    收到 Peter 的部件後,我急不及待地把它們裝上 AMIGO Hexapod 的身軀。眼見整個機體的機械部份差不多完成,感覺十分興奮!本來於足部用上鐵線,但硬度不足,需要另想辦法把足部完好地連接。在移動的過程螺絲會鬆開,亦是另一個要解決的問題...。

    2012年4月7日 星期六

    Ainol Novo8

    之前留意到 ainol Novo 8 的出現,認為可以作為機械人的控制器(也能給太太煲劇用)。原因是 Android 在藍牙方面甚至其他資源上沒有限制。雖然我對 Android 的體驗很差,但基於 iOS 的限制,只好暫時選擇 Android。這台 Novo8 Advanced 8GB 版本,在黃金商場以 HK$950 購入。原本打算除了作為機體控制器之外,也能做點其他東西。但玩了一個小時之後,基乎連作為控制器的想法也放棄。

    2012年4月6日 星期五

    AMIGO Mini 小腿板金

    收到了新一批板金。是 AMIGO Mini 小腿板金的改良版本。上次無法放下 EMAX ES08A,今次則是剛剛好放下,尺寸十分吻合。是時候要解決把底面兩塊板金鑲在一起的問題了。

    2012年4月5日 星期四

    NEC V850 開發環境

    NEC V850 Environment
    在 VirtualBox 內安裝好 Windows XP,安裝好 Interface 雜誌送的開發工具。打開工具 PM+,把 UART 程式範例修改一下後進行測試。程式能順利編譯、也能透過 FPL 下載到 V850 內。利用 HyperTerminal 跟 V850 連接,設定為 COM3-9600-8-N-1-N,看到不斷打印出 Hello World,LED 也不停閃動。運作成功!
    在 Lion 下的 ZTerm 也能顯示出 Hello World!

    可是,我有一個大問題。為了方便開發的緣故,V850 的 UART 口被接上了 USB 口,使得 V850 能在 USB 口取電及收發訊號。不過,我的目標是要接上藍牙,利用手提電腦的藍牙進行對 AMIGO Hexapod 的操控。除非我能另接 UART 到藍牙模塊,否則便要改用 PS2 手掣操作,或是選用其他 MCU...。然而,查看引腳的說明後,發現 V850 提供了 RXD0, TXD0, RXD1, TXD1, RXD2, TXD2 六個通訊用的接口。特別是 RXD2 及 TXD2 引腳並無其他功用,我打算以這兩個口作為藍牙通訊的渠道。

    2012年4月3日 星期二

    AMIGO Hexapod 關節接位

    在設計 AMIGO Hexapod 機身時,沒有考慮到 MCU 板的大小及關節的接合方法,純以外觀作為優先考慮,待機械部份完成後才想辦法把所需東西塞進去。這個方法有風險,但值得一試以汲取經驗。關節接合位本來是鑲上螺絲來固定軸心,但這樣會使得軸心搖晃,畢竟接觸面只有螺絲柱及鋁片之間的空間。最終為了增大接觸面,我把螺絲上下倒置來安裝,效果十分理想。

    2012年4月2日 星期一

    AMIGO Hexapod 主板輪選

    AMIGO Hexapod 的機械部份差不多完成,現在要考慮電子部份。前幾年買落了不同的 MCU 板子還沒有使用,當中有 ATmega128, NEC V850, SH7144A, Fujitsu FR60。ATmega128 最細小,打算留給同樣細小的 AMIGO Mini 使用;V850 的板子有四塊,而尺寸跟 AMIGO Hexapod 的空間差不多,打算使用這塊為主板。我會先行編寫 V850 的 C 語言程序,一切順利便會設計母板。

    2012年4月1日 星期日

    AMIGO Mini Mount

    從網友 Peter 手上取得最新的 AMIGO Mini 部件。這兩件是小腿部份。可惜尺寸有所偏差,放不下 EMAX E08A Servo,需要修改設計圖重新生產才行。