2015年11月11日 星期三

訓練數學感 78 ─ X+Y 面積和多少?

http://4rdp.blogspot.com/2015/11/78-xy.html

已知梯形 ABCD 面積 34 平方單位,三角形 BCG 面積 11 平方單位,另外還知道線段 AF 及 ED 各為 1 單位長度,請問三角形 BFG 及 CEG 兩者面積和為多少?(也就是兩個水藍色面積)

2015年11月7日 星期六

ROSA 系統開發 12 ─ SERVO 驅動

http://4rdp.blogspot.com/2015/11/rosa-12-servo.html

影片來自 MeArm.Joytick

接下來 ROSA 將以 meArm 機械手臂為控制標的,加入伺服馬達驅動控制,

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

// SERVO  SG90  pulse = 560 ~ 2000 us (0 ~ 180)
#define MAXus  2000
#define MINus  560
#define GAIN   (MAXus-MINus)/180.0
byte servo_pin[] = { 0, 4, 5, 6, 7};
byte servo_revse[] = { 0, 0, 1, 0, 0};
byte servo_angle[] = { 0, 0, 0, 0, 0};

void SERVO_SET(byte p){   // for SG90
  byte a = servo_angle[p];
  if (a >= 181) return;
  if (servo_revse[p]==1) a = 180 - a;
  D_OUT(servo_pin[p], HIGH);
  delayMicroseconds(GAIN*a+MINus);
  digitalWrite(servo_pin[p], LOW);
}


void PROCESS_10ms(){     // sweep 0 ~90 degree
  static byte dir = 0;
  
  if (dir==0){
    if (++servo_angle[1] >= 90)
      dir = 1;
  } else {
    if (--servo_angle[1] >= 180)
      dir = servo_angle[1] = 0;
  }
  SERVO_SET(1);   // servo 1
}

2015年11月4日 星期三

平方減一速算

http://4rdp.blogspot.com/2015/11/blog-post.html

1 x 1 - 1 = 0 x 2
2 x 2 - 1 = 1 x 3
3 x 3 - 1 = 2 x 4
4 x 4 - 1 = 3 x 5
5 x 5 - 1 = 4 x 6
6 x 6 - 1 = 5 x 7
7 x 7 - 1 = 6 x 8
8 x 8 - 1 = 7 x 9
9 x 9 - 1 = 8 x 10

上週提出平方數和推導一文,讓我想到一個速算技巧,就如上面的算式表示,為什麼會有這麼規律恆等算式?

2015年10月31日 星期六

ROSA 系統開發 11 ─ PS2 搖桿控制

http://4rdp.blogspot.com/2015/10/rosa-11-ps2.html

圖片來自 http://www.ltc.com.tw/
能與 Arduino 相連接的遊戲模組,以 PS2 搖桿最常見,俗稱香菇頭,它有 5 pin 端子,為 +, -, B, X, Y,分別與 Arduino 的 5V、GND、Dx、Ax、Ax 相接,Dx 是數位輸入腳,平時為 0當有按壓時為 1,Ax 為類比輸入腳,平常讀值約為 512,當搖桿偏一邊為 <200 或 >800,所以可以用這判斷搖桿偏向何處。










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

// normal pin control
byte D_IN(byte p){
  pinMode(p, INPUT);
  return digitalRead(p);
}
unsigned int A_IN(byte p){
  pinMode(p, INPUT);
  return analogRead(p);
}

void PROCESS_1sec(void){
  Serial.print("A0 - (Y) ");
  Serial.println(A_IN(A0));
  Serial.print("A1 - (X) ");
  Serial.println(A_IN(A1));
  Serial.print("A2 - (B) ");
  Serial.println(D_IN(A2));
}

2015年10月28日 星期三

訓練數學感 77 ─ 平方數和

http://4rdp.blogspot.com/2015/10/77.html

話說數學家高斯在小時候就懂 1 到 100 總和速解,我的小朋友也對我出題,有沒有 1 到 100 的平方數和的公式解?

也就是 12 + 22 + 32 + ..... + 1002 = ?

2015年10月24日 星期六

ROSA 系統開發 10 ─ 蜂鳴器 (Buzzer)

http://4rdp.blogspot.com/2015/10/rosa-10-buzzer.html

蜂鳴器在嵌入式系統中,是很常見的硬體裝置,因為它可以發出聲音,提示操作者目前系統的狀態,本文將說明如何加入蜂鳴器功能。

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

// pin 8    Buzzer
#include "MeBuzzer.h"
MeBuzzer buzzer;

byte pitch = 0;
const PITCH[] = {
  // C    C#   D    D#   E    F    F#   G    G#   A    A#   B
  0, 131, 139, 147, 156, 165, 175, 185, 196, 208, 220, 233, 247,
};

// pin 2,3   IR
#include "MeIR.h"
MeIR ir;


const byte IR_CODE[][13] = {
  //X,  1,  2,  3,  4,  5,  6,  7,  A,  B,  C,  D,  E, 
    0, 12, 24, 94,  8, 28, 90, 66, 69, 70, 71, 68, 67, 
    0,  1,  3,  5,  6,  8, 10, 12,  7,  9, 11,  2,  4, 
};

void IR_CHECK() {   // for mBot car
  static byte sound = 0;
  static byte pre_ir;
  byte i;
  byte j;
  if (sound != 0){
    if (--sound == 0) {
      buzzer.noTone();
      ir.loop();
    }
  } 
  if (sound==0) {
    j = ir.key();
    for (i = 12; i<13; i--) {
      if (j == IR_CODE[0][i] && pre_ir != j) {
pre_ir = j;
if (i==0)
         ;
else {
         pitch = IR_CODE[1][i];
         buzzer.tone(PITCH[pitch]);
         sound = 2;    // 2 x 100ms
         // Serial.print("IR - ");
         // Serial.println(pitch);
}
break;
      }
    }
  }
  if (sound == 0)
    ir.loop();
}

2015年10月20日 星期二

數學之美 3 ─ 圖解三角函數角和差

http://4rdp.blogspot.com/2015/10/blog-post.html


有些東西,只要欣賞就好,這張圖對剛學三角函數的中學生,非常實用。