2016年3月30日 星期三

訓練數學感 93 ─ 操場周長多少?

https://4rdp.blogspot.com/2016/03/93.html

小明和大偉在圓形操場散步,兩人各站的位子正好呈一直徑,兩人以不同的固定速度,分別向順時鐘及逆時鐘方向走,兩人第一次碰面時大偉走了200公尺,第二次碰面時小明走了250公尺,請問操場周長幾公尺?


2016年3月26日 星期六

ROSA 系統開發 31 ─ 再論 SoftwareSerial

https://4rdp.blogspot.com/2016/03/rosa-31-softwareserial.html

本週開始將 SoftwareSerial 加入 ROSA,我先把它當作程式除錯使用,用它列印一些系統狀態,以方便了解程式執行到甚麼地方,不過並不太成功,今天留個紀錄,給有興趣的朋友參考。

原先我使用 Arduino IDE 1.6.3,在單一 ino 檔 #include <SoftwareSerial> 是 OK 的,不過現在程式拆成好幾個 cpp 後,想加入 SoftwareSerial,編譯程式總是回應找不到 SoftwareSerial.h 或是 SoftwareSerial.cpp,個人研判是系統編譯路徑出問題,之前 IDE 是 ZIP 下載沒安裝,因此改採安裝 IDE 1.6.8 才解決這問題。

現在藍牙是可以用,

2016年3月23日 星期三

訓練數學感 92 ─ 移動火柴

https://4rdp.blogspot.com/2016/03/92.html

移動兩根火柴,拼出最大數字。

2016年3月19日 星期六

ROSA 系統開發 30 ─ CARMP3 紅外線遙控器

https://4rdp.blogspot.com/2016/03/rosa-30-carmp3.html

自從 Daniel 加入後,給了 Pizg 和我許多好點子,其中一項就是 Spider 對戰,但是目前使用紅外線遙控器,最大的問題就是控制碼衝突,剛好最近在網路上看到另一支遙控器 CARMP3 有跟 Arduino 周邊搭售,從外觀來看,它主要應用於汽車 MP3 音響遙控,因此買來試看看。

// (C) 2015-2016, Bridan Wang, CC BY-NC-SA 3.0 TW // Revised by Daniel Lu 2016/3/5 // ROSA_Spider 6 X 2 Servo Spider // http://4rdp.blogspot.tw/search/label/ROSA%20(Arduino) #define IR_KEYES // IR_MBOT // IR_AUDIO // IR_CARMP3 // #ifdef IR_KEYES const byte cIR_Code[] PROGMEM = { // X, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, *, #, up, dn, rt, lf, ok 255, 22, 25, 13, 12, 24, 94, 8, 28, 90, 82, 66, 74, 70, 21, 67, 68, 64 }; const byte *cActions[] = { RUN_N, // none, RUN_1, // 1 RUN_2, // 2 RUN_3, // 3 RUN_4, // 4 RUN_5, // 5 RUN_6, // 6 RUN_7, // 7 RUN_8, // 8 RUN_9, // 9 RUN_0, // 0 RUN_S, // * RUN_P, // # RUN_U, // up RUN_D, // down RUN_R, // right RUN_L, // left RUN_K // ok }; #endif #ifdef IR_CARMP3 const byte cIR_Code[] PROGMEM = { // X, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, F+, CH, C+, C-, >>, <<, >|, EQ, V-, V+, F- 255, 12, 24, 94, 8, 28, 90, 66, 82, 74, 22, 25, 70, 71, 69, 64, 68, 67, 9, 7, 21, 13, }; const byte *cActions[] = { RUN_N, // none RUN_1, // 1 RUN_2, // 2 RUN_3, // 3 RUN_4, // 4 RUN_5, // 5 RUN_6, // 6 RUN_7, // 7 RUN_8, // 8 RUN_9, // 9 RUN_0, // 0 RUN_S, // FL+ RUN_P, // CH RUN_U, // CH+ up RUN_D, // CH- down RUN_R, // >> right RUN_L, // << left RUN_K, // >| OK RUN_8, // EQ RUN_7, // V- RUN_9, // V+ RUN_N, // FL- }; #endif #ifdef IR_AUDIO const byte cIR_Code[] PROGMEM = { // X, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, PW, RP, C+, C-, >>, <<, >|, EQ, V-, V+, MU 255, 16, 17, 18, 20, 21, 22, 24, 25, 26, 12, 0, 4, 6, 5, 14, 13, 2, 8, 9, 10, 1, }; const byte *cActions[] = { RUN_N, // none RUN_1, // 1 RUN_2, // 2 RUN_3, // 3 RUN_4, // 4 RUN_5, // 5 RUN_6, // 6 RUN_7, // 7 RUN_8, // 8 RUN_9, // 9 RUN_0, // 0 RUN_S, // Power RUN_P, // RP RUN_U, // C+ up RUN_D, // C- down RUN_R, // >> right RUN_L, // << left RUN_K, // >| OK RUN_8, // EQ RUN_7, // V- RUN_9, // V+ RUN_N, // MU }; #endif #ifdef IR_MBOT const byte cIR_Code[] PROGMEM = { // X, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, F, A, up, dn, rt, lf, *, B, C, D, E 255, 12, 24, 94, 8, 28, 90, 66, 82, 74, 22, 13, 69, 64, 25, 9, 7, 21, 70, 71, 68, 67, }; const byte *cActions[] = { RUN_N, // none, RUN_1, // 1 RUN_2, // 2 RUN_3, // 3 RUN_4, // 4 RUN_5, // 5 RUN_6, // 6 RUN_7, // 7 RUN_8, // 8 RUN_9, // 9 RUN_0, // 0 RUN_S, // F RUN_P, // A RUN_U, // up RUN_D, // down RUN_R, // right RUN_L, // left RUN_K, // * RUN_N, // B RUN_N, // C RUN_N, // D RUN_N, // E }; #endif


未來如果要蜘蛛對戰,以下是對四支紅外線遙控器按鍵安排的建議,盡量避免控制碼衝突:

2016年3月17日 星期四

高壓電

https://4rdp.blogspot.com/2016/03/blog-post.html

這一篇只是記錄高壓電主題連結,因為朋友們在部落格留言時,難免岔開主題談論不相關事物,但是又深具專業知識參考意義,為了方便日後資料搜尋方便,特別連結彙整如下:

2016年3月16日 星期三

訓練數學感 91 ─ 90! = ?

https://4rdp.blogspot.com/2016/03/91-90.html

90! = ?


2016年3月12日 星期六

ROSA 系統開發 29 ─ 搭檔程編

https://4rdp.blogspot.com/2016/03/rosa-29.html


ROSA 開發至今,都是個人單打獨鬥,不過二月底,網友 Pizg 介紹 Daniel Lu 加入開發行列,他也擅長程式設計,因此我仍繼續負責嵌入式的 ROSA 作業系統,而他主要負責手機 APP 及 PC 應用程式,不過在 ROSA 還未加入遙控指令之前,Daniel 還沒辦法立即寫程式,因此他就先幫我 code review,把 ROSA 的 C 程式改成 C++ style,這讓我想起一篇舊文搭檔程編,採用此法的優點,可以讓程式碼的品質更佳。

2016年3月9日 星期三

訓練數學感 90 ─ 面積和多少?

https://4rdp.blogspot.com/2016/03/90.html

兩個直角三角形,直角的部分重疊於A,ABC 是等腰直角三角形,直角邊長各為 X,請問三角形 CDF 及 BEF 面積和等於多少?

2016年3月5日 星期六

ROSA 系統開發 28 ─ 指令讀入

https://4rdp.blogspot.com/2016/03/rosa-28.html


// (C) 2015-2016, Bridan Wang, CC BY-NC-SA 3.0 TW
// http://4rdp.blogspot.tw/search/label/ROSA%20(Arduino)

#define NONE  0
static char  cmd0[64] = "";
static char  cmd1[64] = "";

static byte  from;
static byte  index_cmd = 0;    // command index

char COM_READ(void) {
  char a;
  char i;

  if (cmd1[0] != NONE) return 1;
  if (Serial.available() > 0) {   // USB
    from = 1;
    a = Serial.read();
  }
  else if (BT.available() > 0) {  // BT
    from = 2;
    a = BT.read();
  }
  else
    return 0;

  if (a != '\r' && a != '\n') {
    cmd0[index_cmd++] = char(a);
    cmd0[index_cmd] = 0;
    return 0;
  }
  for (i = 0; i!=64 ; i++){
    if ((cmd1[i] = toUpperCase(cmd0[i])) == NONE) break;
  }

  cmd0[0] = index_cmd = NONE;
  if (cmd1[0] == NONE)
    return 0;
  else
    return 1;
}

2016年3月2日 星期三

訓練數學感 89 ─ 四子連線問題(2)

https://4rdp.blogspot.com/2016/03/89-2.html

截圖自赤子西瓜的圖形計算機繪圖
訓練數學感 87 的四子連線問題討論熱烈,延續這個議題,問題如下:
圍棋黑子連續四子以上視為一連線,可以直線、橫線、45度斜線,請問八顆子最多有幾條連線?九顆、十顆子又最多可以組合出幾條連線?