文章

 商品名稱:  紅外線循線/循跡 自走車套件組

   

 

 

 

商品簡介

Motoduino紅外線循跡/循線自走車,讓玩家可以DIY做出一台沿著黑色線(或膠帶)的自走車,本套自走車是利用Motoduino自己開發完全相容於Arduino DuemilanoveMotoduino主板的主板,台灣製造且無鉛製程,來控制紅外線感測器及自走車馬達,偵測黑色線位置,並沿著線軌跡自行前進。玩家也可以使用此本體延伸設計其它應用.

Motoduino主機板是一片台灣人自己開發的主板,台灣製且無鉛製程,完全相容於Arduino Duemilanove 主板.

 Motoduino是結合arduino duemilanove L293D馬達驅動晶片的一塊整合板,可以驅動兩顆直流馬達(電流最大到1.2A)及利用PWM特性控制馬達轉速。

Motoduino 完全相容於arduino duemilanove ,大部分可以堆疊上去arduino的擴充板都可以使用。可以應用於自走車,尋跡車等有馬達需求應用上. Motoduino也可以很容易加上藍芽模組做成遙控車,例如手機遙控車.

技術規格

 1.減速馬達規格: 5V減速比1:48

 2.車子 長x(包括輪子): 20cm x 18.5cm

 3. 3路紅外線循線感測模組:利用紅外光探測,抗幹擾能力強,採用CTRT5000傳感器,工作電壓 5V,白線輸出低電壓

  

商品內容

1. Motoduino 電路板一片(相容於Arduino Duemilanove)

2. 9V電池扣含DC JACK電源線一條

3. 十字及一字螺絲起子各一支

4. 車體 (兩個輪胎及減速馬達,一個舵輪等)

5.  9V電池一顆

6.  6 pin排線一條 (3-pin長排針 x 2)

7. 紅外線循線感測器一個

8.  一條 USB 傳輸線

9. 塑膠六角柱(2x, 2x, 2x螺帽)

 

程式範例

// Sensor sequence: SLeftLeft SMiddle SRightRight

const int SLeftLeft = 9;      //左感測器輸入腳

const int SMiddle = 10;     //中間感測器輸入腳

const int SRightRight = 11;     //右感測器輸入腳

 

// variables will change:

int SLL;    //左感測器狀態

int SM;    //中感測器狀態

int SRR;    //右感測器狀態

const int Motor_M1 = 7;  

const int Motor_M2 = 8;  

const int Motor_E1 = 5;    

const int Motor_E2 = 6;  

byte byteSensorStatus=0;

#define SENSOR_L 4;

#define SENSOR_M 2;

#define SENSOR_R 1;

 

void setup() {

   //set up serial communications

   Serial.begin(9600);

  // 輸出入接腳初始設定

  pinMode(SLeftLeft, INPUT);

  pinMode(SMiddle, INPUT);

  pinMode(SRightRight, INPUT);

  pinMode(Motor_M1, OUTPUT);

  pinMode(Motor_M2, OUTPUT);

}

 

void loop(){ 

  byteSensorStatus = 0;

  // 讀取感測器狀態值

  SLL = digitalRead(SLeftLeft);

  if(SLL == 1)

     byteSensorStatus = (byteSensorStatus | (0x01 << 2));

  SM = digitalRead(SMiddle);

  if(SM == 1)

     byteSensorStatus = (byteSensorStatus | (0x01 << 1));

  SRR = digitalRead(SRightRight);

  if(SRR == 1)

     byteSensorStatus = (byteSensorStatus | 0x01);

//   Serial.println(byteSensorStatus, HEX);

  switch(byteSensorStatus)

  { //   感測器黑色:0   白色:1

    case 0: // SL:0 SM:0 SR:0

            motorstop(0, 255);

            break;

    case 1: // SL:0 SM:0 SR:1  //no used

            left(0, 255);

            break;

    case 2: // SL:0 SM:1 SR:0  //no used

            motorstop(0, 255);

            break;

    case 3: // SL:0 SM:1 SR:1 

            left(0, 255);

            break;

    case 4: // SL:1 SM:0 SR:0 // no used

             right(0, 255);

             break;

    case 5: // SL:1 SM:0 SR:1 

             forward(0, 255);

             break;

    case 6: // SL:1 SM:1 SR:0

             right(0, 255);

             break;

    case 7: // SL:1 SM:1 SR:1

             forward(0, 255);

  } 

}

void looptest(){ 

  forward(0,255);

  delay(1000);

  back(0,255);

  delay(1000);

  right(0,255);

  delay(1000);

  left(0,255);

  delay(1000);

  motorstop(0,0);

  delay(3000);

}

void motorstop(byte flag, byte numOfValues)

{

  digitalWrite( Motor_E1, 0);

  digitalWrite( Motor_E2, 0);

//  Serial.println("stop : ");

}

void forward(byte flag, byte numOfValues)

{

  digitalWrite( Motor_M1, LOW);

  digitalWrite( Motor_M2, LOW);

  analogWrite( Motor_E1, numOfValues);

  analogWrite( Motor_E2, numOfValues);

}

void back(byte flag, byte numOfValues)

{

  digitalWrite( Motor_M1, HIGH);

  digitalWrite( Motor_M2, HIGH);

  analogWrite( Motor_E1, numOfValues);

  analogWrite( Motor_E2, numOfValues);

}

void right(byte flag, byte numOfValues)

{

  digitalWrite( Motor_M1, LOW);

  digitalWrite( Motor_M2, LOW);

  analogWrite( Motor_E1, numOfValues);

  analogWrite( Motor_E2, 0);

}

void left(byte flag, byte numOfValues)

{

  digitalWrite( Motor_M1, LOW);

  digitalWrite( Motor_M2, LOW);

  analogWrite( Motor_E1, 0);

  analogWrite( Motor_E2, numOfValues);

}

接線範例

 

 組裝完成圖

 

 

 

 影片展示:

 

 

相關文檔及下載點

 

1.      教學網站: 循線自走車製作

2.     售價: 1300

3.     購買聯絡: samhlin@gmail.com