2009年5月30日 星期六

Simple Cube Solver 設計感想

http://4rdp.blogspot.tw/2009/05/simple-cube-solver.html

在進行此 Cube Solver 專案之前,我並沒有百分之百把握可以解決所有問題,但是蠻幸運的能在網路上找到許多解決方案,雖然它們需要程式改寫才能適用,不過關鍵技術逐一確認後,想完成它就非難事。

研發除了技術問題要處理,還須注意日程進度、價格、效能與品質。技術知識在學生時代就須紮好底子,平時也一直進修學習,那遇到問題才有能力逐項克服。一些底子不夠的工程師很容易半路陣亡,如果一個問題搞個兩三天弄不出來,就會開始坐立難安;兩三個禮拜還弄不好,老闆就會每天和你請安;兩三個月不見成果,自己應該要有心理準備;兩年東西沒辦法生產上市,一定捲舖蓋走路。

價格也是商品成功要素之一,

2009年5月23日 星期六

VB - Color Identification

http://4rdp.blogspot.tw/2009/05/vb-color-identification.html

顏色識別是這個程式另一個技術瓶頸,在網路上找到藍色小舖所提供的方法比較簡單,它提供全螢幕抓點,共有兩項技術要點:螢幕座標計算以及顏色判別。

首先,如何計算螢幕上特定位置座標?

2009年5月16日 星期六

VB - Video Captrue

http://4rdp.blogspot.tw/2009/05/vb-video-captrue.html

研究完 Bluetooth 通訊後,Cube Solver 還有一個重要功能必須加入,那就是顏色識別。當初我只購買 LEGO MINDSTORMS NXT 8527,沒有再添購其它特殊 Sensor,因此可以用來顏色識別的感測器只有 Light Sensor

所以我先測看看 Light Sensor 顏色識別度如何,結果大失所望,以下是我以 NXT View 所得的測試結果:

2009年5月9日 星期六

VB - Communication with NXT over Bluetooth

http://4rdp.blogspot.tw/2009/05/vb-communication-with-nxt-over.html

接續前一篇貼文,我們先設計一個六面體遙控程式,也就是點選程式上的按鍵,然後以藍芽遙控 LEGO MINDSTORMS NXT 正轉反轉 90 度,這裡用 NXC 設計 NXT 程式。

//
// Author: Bridan
//         http://4rdp.blogspot.com
// Date:   2009/05/09
//
// Brief:  Remote control NXT motor by bluetooth
//

#include "NXCDefs.h"

#define FRONT_C "F "
#define FRONT_R "F'"
#define CLEAR   true
#define INBOX1  0

sub BTCheck(int conn)
{
if (!BluetoothStatus(conn)==NO_ERR){
TextOut(5,LCD_LINE2,"Error");
Wait(1000);
Stop(true);
}

}

task main()
{
string   control;
string   str;

BTCheck(0);

while (true) {
ReceiveRemoteString(INBOX1, CLEAR, control);

if (control == FRONT_C) {
RotateMotor(OUT_A,50,90);
} else if (control == FRONT_R) {
RotateMotor(OUT_A,50,-90);
} else {
continue;
}

str = StrCat("Control = ",control);
TextOut(0, LCD_LINE1, str, true);
}
}


這裡先說明 NXC 程式,

2009年5月2日 星期六

VB - Simple Cube Rotating

http://4rdp.blogspot.tw/2009/05/vb-simple-cube-rotating.html

在設計複雜程式前,通常先寫簡單程式確立程式架構,然後逐步修改及添加功能,最後就可以設計出成品。同樣的,想設計複雜的 Cube Solver 也是如此,先寫一個簡單六面體程式看看旋轉的情形,再從這個程式修改。就像蓋房子一樣,都要先挖地基、架鋼骨,而後釘模板、灌泥漿,從地面蓋到摩天大樓。

另外,設計自己的作品前先參考別人的作品也是很重要的步驟,學習他人的優點改進缺點,讓作品更臻完美。下列網址值得參考,