1
國立勤益科技大學
電子工程系
專題製作報告
題目: 智慧自走車程式控制設計
班 級 : 四子三甲
組 員 : 曹祐銘、張景為
指 導 老 師 : 董 秋 溝
中 華 民 國 1 0 6 年 6 月
2
目錄
圖目錄.............................................................................................................................3
摘要 ................................................................................................................................4
一.簡介............................................................................................................................5
二.流程圖 ........................................................................................................................6
三.硬體架構 ....................................................................................................................7
1.架構圖 ......................................................................................................................7
2.車體介紹...................................................................................................................8
3.晶片介紹...................................................................................................................9
4.馬達介紹................................................................................................................. 10
5. HC-SR04 超音波感測器 ........................................................................................... 12
6. CNY70 紅外線感測器 .............................................................................................. 13
四.軟體程式 .................................................................................................................. 14
1.程式介紹................................................................................................................. 14
2.編譯軟體................................................................................................................. 24
3.燒錄軟體................................................................................................................. 24
五.結論.......................................................................................................................... 25
六.附錄.......................................................................................................................... 26
1.比賽規則................................................................................................................. 26
2.比賽照片................................................................................................................. 28
七.參考文獻 .................................................................................................................. 32
3
圖目錄
圖 2.1 流程圖 .................................................................................................. 6
圖 3.1 架構圖 .................................................................................................. 7
圖 3.4 A12-0030 min IC 8051 接腳圖 ............................................................. 9
圖 3.5 A12-0030 min IC 8051 開發板 ............................................................. 9
圖 3.6 A03-0017 直流馬達控制器................................................................ 10
圖 3.7 直流馬達 ............................................................................................ 11
圖 3.8 HC-SR04 超音波感測器 ..................................................................... 12
圖 3.10 音波感測動作圖 .............................................................................. 12
圖 3.11 CNY70 紅外線感測器....................................................................... 13
圖 3.12 CNY70 接腳圖................................................................................... 13
圖 3.13 CNY70 內部架構與電路圖............................................................... 13
圖 4.2 minIC.exe 燒錄程式 ........................................................................... 24
圖 6.1 智慧自走車比賽規則(一) .................................................................. 26
圖 6.2 智慧自走車比賽規則(二) .................................................................. 27
圖 6.3 修平科技大學比賽現場 .................................................................... 28
圖 6.4 台北海洋科技大學比賽現場(一) ...................................................... 28
圖 6.5 台北海洋科技大學比賽現場(二) ...................................................... 29
圖 6.6 台北海洋科技大學-自走車摸黑比賽場地 ....................................... 29
圖 6.8 場地練習與測試(二) .......................................................................... 30
圖 6.9 場地練習與測試(三) .......................................................................... 31
圖 6.10 內湖高工場次頒獎合影 .................................................................. 31
4
摘要
近幾年來科技突飛猛進的進展,從個人電腦的出現,再到個人電腦縮
小到人手一台的智慧型手機,科技越來越靠近人性也越來越追求自動
化,或許在不久的未來一台台能讓人類更方便生活的機器人就會出現
在平常的生活之中了,而我們這次主要研究的就是機械自走車,目的
也是為了能尋找能讓生活更便利的程式,程式方面我們是選擇用 C 語
言來控制 8051 單晶片,面對不同的地形撰寫出能相對應的程式。
5
一. 簡介
自動化,不透過人為操控而是由撰寫代替的程式來達到目的,自走車
也是如此,自動化的好處也相對不少,人類可能會有疲倦或是注意力
不集中的問題,自動化能將這些問題相對的解決,也大大的降低出錯
率,近幾年來汽車上也有許多自動化的設備,自動安全煞車.路邊停車
等等,甚至是最近幾年很紅的自動駕駛,也是利用超音波感測障礙
物,自動化就像能讓機械擁有判斷的智慧,也相對的能得到更便利的
生活與安全性,當然自動化也不單單用在車子行走上面,也有運用在
機器人方面,以前對機器人的印象可能是一個口令一個動作,透過程
式撰寫,機器人也能擁有自己判斷的能力,讓自動化的技術更進一
步。
8
2.車體介紹
圖 3.2 車體正面
圖 3.3 車體背面
車體:益眾科技 A03-0518 SPEED CAR
a. A12-0030 min IC 8051 開發板
b.自走車電源開關
c. A03-0017 直流馬達控制器
d. HC-SR04 超音波感測模組*5
e. RA200013-50301R 直流馬達*2
f. 3 號 2 個電池盒*4
g. CNY70 紅外線感測模組*9
9
3.晶片介紹
圖 3.4 A12-0030 min IC 8051 接腳圖
內建 11.0592MHz 震盪器電路、Reset
電路,USB 插座除了提供燒錄功能
外,也可當作電源使用(電源為 USB
Port 提供的 5V/500mA),同時整合燒
錄、電源及通訊在一條線上。
尺寸:5cm X 1.8cm
圖 3.5 A12-0030 min IC 8051 開發板
10
4.馬達介紹
直流馬達控制器可用 4 個 TTL 的 IO 腳來控制兩個馬達的正反轉,IO 腳的 電
壓可使用 3.3V - 5V,馬達規格可使用 24V / 2A 以下 直流馬達控制卡的圖示如
下
圖 3.6 A03-0017 直流馬達控制器
(1) PWM 信號輸入,由左至右為 MF1、MR1、MF2、MR2。
(2) 馬達 1(左邊)電源輸入(POWER1)。
(3) 馬達 2(右邊)電源輸入(POWER2)。
(4) GND,提供與外部共地的接腳。
(5) 電源共接點。
(6) 馬達 1 接點(相對應於 POWER1)。
(7) 馬達 2 接點(相對應於 POWER2)。
12
5. HC-SR04 超音波感測器
圖 3.8 HC-SR04 超音波感測器 圖 3.9 HC-SR04 接腳圖
◎ 本模組性能穩定,測度距離精確。能和國外的 SRF05、SRF02 等超聲波測距
模組相媲美,模塊高精度,盲區(2cm)超近。
◎ 電源:DC5V/2mA
◎ 輸出電位( 1/ 0):5V/ 0V
◎ 精度:3mm
◎ 距離範圍:2 ~ 450cm
◎ 有效的角度:<15℃
◎ 觸發輸入信號:10uS TTL pulse
◎ ECHO 輸出信號: Input TTL lever signal and the range in proportion
◎ 接線方式:VCC、trig(控制端)、 echo(接收端)、 GND
◎ 尺寸:45(L) x 20(W) x 15(H)mm
圖 3.10 音波感測動作圖
13
6. CNY70 紅外線感測器
圖 3.11 CNY70 紅外線感測器
圖 3.12 CNY70 接腳圖
◎感應距離: 0 mm to 5 mm
◎集電極-發射極最大電壓 VCEO: 32 V
◎集電極最大電流: 50 mA
◎Vf - 順向電壓: 1.25 V
◎Vr - 反向電壓: 5 V
◎If - 順向電流: 50 mA
◎最高工作溫度: + 85 C
◎最低工作溫度: - 40 C
◎Pd - 功率消耗 : 200 mW
◎波長: 950 nm
◎尺寸:7(L) x 7(W) x 6(H)mm
圖 3.13 CNY70 內部架構與電路圖
14
四.軟體程式
1.程式介紹
/*******************************/
#include <REGX51.H>
#include <intrins.h>
#include <STDIO.H>
//超音波感測距離 範圍:5~50 公分
unsigned char LR=15,M=16,RR=15;
//馬達速度 範圍:1~9 段
unsigned char LS=1, FS=2,RS=1;
#define CLEDR P3_2
#define CLEDM P3_3
#define CLEDL P3_4
#define LLEDR P0_4
#define LLEDM P0_5
#define LLEDL P0_6
#define RLEDR P1_6
#define RLEDM P1_7
#define RLEDL P0_7
#define CCNYR P3_5
#define CCNYM P3_6
#define CCNYL P3_7
#define LCNYL P2_0
#define LCNYM P2_1
#define LCNYR P2_2
#define RCNYL P2_3
#define RCNYM P2_4
#define RCNYR P2_5
#define RX_M P1_3
#define TX_M P1_2
float SM=0;
//-----------------------
#define LEDR P3_2
#define LEDM P3_3
#define LEDL P3_4
#define MF0 P0_0
#define MR0 P0_1
#define MF1 P0_2
#define MR1 P0_3
unsigned int time=0;
unsigned int timer=0;
bit flag =0;
unsigned char stat=0,duty;
unsigned int temp=0;
#define T 11059200/12/1000
bit onoff=0;
void delay_1m(unsigned int dly)
{
int count;
while(dly>0)
{
count=120;
while(count>0)
count--;
dly--;
}
}
/*******************************/
15
void readUSM(void)
{
while(!RX_M);
//當 RX 為零時等待
TR0=1; //開啟計數
while(RX_M);
//當 RX 為 1 計數並等待
TR0=0; //關閉計數
time=TH0*256+TL0;
TH0=0;
TL0=0;
SM=(time*1.87)/100;
if(flag==1)
{
flag=0;
}
}
/*******************************/
void delayms(unsigned int ms)
{
unsigned char i=100,j;
for(;ms;ms--)
{
while(--i)
{
j=10;
while(--j);
}
}
}
/*******************************/
void zd0() interrupt 1
{
flag=1;
}
/*******************************/
void StartUSM()
{
TX_M=1;
_nop_();
_nop_();
_nop_();
TX_M=0;
}
/*******************************/
void USM()
{
StartUSM();
readUSM();
delayms(1);
}
/*******************************/
void FORWARD(void)
{
MF0=0;
MR0=1;
MF1=0;
MR1=1;
}
void BACK(void)
{
MF0=1;
MR0=0;
MF1=1;
MR1=0;
}
void LEFT(void)
{
MF0=1;
MR0=0;
MF1=0;
MR1=1;
}
16
void RIGHT(void)
{
MF0=0;
MR0=1;
MF1=1;
MR1=0;
}
void STOP(void)
{
TR1=0;
MF0=0;
MR0=0;
MF1=0;
MR1=0;
}
void BREAK(void)
{
TR1=0;
MF0=1;
MR0=1;
MF1=1;
MR1=1;
}
/*******************************/
//-----Speed change-----//
//stat=1
void SFORWARD(unsigned char duty1)
{
TR1=1;
duty=duty1%10;
if(duty==0)
//將 0-10 的 duty1 指定給全域的 duty
duty=1;
if(stat!=1)
{
onoff=0;
temp=65536-(T*duty);
TL1 = temp; // 設定 TL0 與 TH0
TH1 = temp>>8;
TR1=1; // Timer0 開始計時
stat=1;
}
}
//stat=2
void SLEFT(unsigned char duty1)
{
TR1=1;
duty=duty1%10;
if(duty==0)
//將 0-10 的 duty1 指定給全域的 duty
duty=1;
if(stat!=2)
{
onoff=0;
temp=65536-(T*duty);
TL1 = temp; // 設定 TL0 與 TH0
TH1 = temp>>8;
TR1=1; // Timer0 開始計時
stat=2;
}
}
17
//stat=3
void SRIGHT(unsigned char duty1)
{
TR1=1;
duty=duty1%10;
if(duty==0)
//將 0-10 的 duty1 指定給全域的 duty
duty=1;
if(stat!=3)
{
onoff=0;
temp=65536-(T*duty);
TL1 = temp; // 設定 TL0 與 TH0
TH1 = temp>>8;
TR1=1; // Timer0 開始計時
stat=3;
}
}
//stat=4
void SBACK(unsigned char duty1)
{
TR1=1;
duty=duty1%10;
if(duty==0)
//將 0-10 的 duty1 指定給全域的 duty
duty=1;
if(stat!=4)
{
onoff=0;
temp=65536-(T*duty);
TL1 = temp; // 設定 TL0 與 TH0
TH1 = temp>>8;
TR1=1; // Timer0 開始計時
stat=4;
}
}
/********************************
************************/
void T1_int(void) interrupt 3
{
onoff=~onoff;
if(!onoff)
{
temp=65536-(T*duty);
if(stat==1)
FORWARD();
else if(stat==2)
LEFT();
else if(stat==3)
RIGHT();
else if(stat==4)
BACK();
else if(stat==5)
BREAK();
else
STOP();
}
else
{
temp=65535-(T*(10-duty));
STOP();
}
TL1 = temp; // 設定 TL0 與 TH0
TH1 = temp >>8; // Timer0 開始計時
TR1=1;
}
18
void black1()
{
BREAK();//煞車
delay_1m(200);//煞車等待
SLEFT(5);//左轉
delay_1m(200);//左轉持續時間
SFORWARD(5);//直走
delay_1m(350);//直走持續時間
SRIGHT(5);//右轉
delay_1m(300);//右轉持續時間
SFORWARD(5);//直走
delay_1m(500);//直走持續時間
SRIGHT(5);//右轉
delay_1m(400);//右轉持續時間
SFORWARD(5);//直走
delay_1m(50);//直走持續時間
}
void black2()
{
BREAK();//煞車
delay_1m(200);//煞車等待
SRIGHT(5);//右轉
delay_1m(300);//右轉持續時間
SFORWARD(5);//直走
delay_1m(300);//直走持續時間
SLEFT(5);//左轉
delay_1m(400);//左轉持續時間
SFORWARD(5);//直走
delay_1m(600);//直走持續時間
SLEFT(5);//左轉
delay_1m(300);//左轉持續時間
SFORWARD(5);//直走
delay_1m(50);//直走持續時間
}
/*******************************/
void main(void)
{
unsigned char a=0;
TMOD=0x11;
//設 T0 為方式 1GATE=1;
TH1=0;
TL1=0;
TH0=0;
TL0=0;
TR0=1;
ET1=1;
ET0=1; //允許 T0 中斷
TR0=1;
TR1=1; //開啟計時器
TI=1;
EA=1; //開啟總中斷
while(1)
{
while(P2_1==0)
{
USM();
if(SM<M)//中央感測器有障礙物
{
if(LCNYR==1 || CCNYL==1)
//001100000
{
SLEFT(3);//左轉
delay_1m(50);
}
else if(CCNYR==1 || RCNYL==1)
//000001100
{
SRIGHT(3);//右轉
delay_1m(50);
}
19
else if(LCNYL==0 && LCNYM==0 &&
LCNYR==0 && CCNYL==0 &&
CCNYM==1 && CCNYR==0 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*置中*/
{
if(a==0)
{
LEDM=LEDL=LEDR=0;
black1();
LEDM=LEDL=LEDR=1;
a=1;
}
else if(a==1)
{
LEDM=LEDL=LEDR=0;
black2();
LEDM=LEDL=LEDR=1;
a=0;
}
}
}
//左感測
if(LCNYL==1 && LCNYM==0 &&
LCNYR==0 && CCNYL==0 &&
CCNYM==0 && CCNYR==0 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*100000000*/
{
LLEDL=0;
SLEFT(6);
}
else if(LCNYL==1 && LCNYM==0 &&
LCNYR==0 && CCNYL==1 &&
CCNYM==0 && CCNYR==0 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*100100000*/
{
LLEDL=0;
CLEDL=0;
SLEFT(5);
}
else if(LCNYL==1 && LCNYM==0 &&
LCNYR==0 && CCNYL==0 &&
CCNYM==1 && CCNYR==0 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*100010000*/
{
LLEDL=0;
CLEDM=0;
SLEFT(5);
}
else if(LCNYL==1 && LCNYM==0 &&
LCNYR==0 && CCNYL==0 &&
CCNYM==0 && CCNYR==1 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*100001000*/
{
LLEDL=0;
CLEDR=0;
SLEFT(5);
}
else if(LCNYL==1 && LCNYM==1 &&
LCNYR==0 && CCNYL==0 &&
CCNYM==0 && CCNYR==0 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*110000000*/
{
LLEDL=0;
LLEDM=0;
SLEFT(5);
}
20
else if(LCNYL==1 && LCNYM==1 &&
LCNYR==0 && CCNYL==1 &&
CCNYM==0 && CCNYR==0 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*110100000*/
{
LLEDL=0;
LLEDM=0;
CLEDL=0;
SLEFT(5);
}
else if(LCNYL==1 && LCNYM==1 &&
LCNYR==0 && CCNYL==0 &&
CCNYM==1 && CCNYR==0 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*110010000*/
{
LLEDL=0;
LLEDM=0;
CLEDM=0;
SLEFT(5);
}
else if(LCNYL==1 && LCNYM==1 &&
LCNYR==0 && CCNYL==0 &&
CCNYM==0 && CCNYR==1 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*110001000*/
{
LLEDL=0;
LLEDM=0;
CLEDR=0;
SLEFT(5);
}
else if(LCNYL==1 && LCNYM==1 &&
LCNYR==1 && CCNYL==0 &&
CCNYM==0 && CCNYR==0 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*111000000*/
{
LLEDL=0;
LLEDM=0;
LLEDR=0;
SLEFT(6);
}
else if(LCNYL==0 && LCNYM==1 &&
LCNYR==0 && CCNYL==0 &&
CCNYM==0 && CCNYR==0 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*010000000*/
{
LLEDM=0;
SLEFT(4);
}
else if(LCNYL==0 && LCNYM==1 &&
LCNYR==1 && CCNYL==0 &&
CCNYM==0 && CCNYR==0 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*011000000*/
{
LLEDM=0;
LLEDR=0;
SLEFT(3);
}
else if(LCNYL==0 && LCNYM==0 &&
LCNYR==1 && CCNYL==0 &&
CCNYM==0 && CCNYR==0 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*001000000*/
{
LLEDR=0;
SLEFT(3);
}
21
else if(LCNYL==0 && LCNYM==0 &&
LCNYR==1 && CCNYL==0 &&
CCNYM==1 && CCNYR==1 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*001011000*/
{
LLEDR=0;
CLEDR=0;
CLEDM=0;
SLEFT(3);
}
else if(LCNYL==0 && LCNYM==0 &&
LCNYR==1 && CCNYL==1 &&
CCNYM==1 && CCNYR==0 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*001110000*/
{
LLEDR=0;
CLEDL=0;
CLEDM=0;
SLEFT(3);
}
else if(LCNYL==0 && LCNYM==0 &&
LCNYR==1 && CCNYL==1 &&
CCNYM==0 && CCNYR==0 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*001100000*/
{
LLEDR=0;
CLEDL=0;
SLEFT(3);
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
// 中感測
else if(LCNYL==0 && LCNYM==0 &&
LCNYR==0 && CCNYL==1 &&
CCNYM==0 && CCNYR==0 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*000100000*/
{
CLEDL=0;
SFORWARD(6);
if(LCNYL==1 || LCNYM==1 ||
LCNYR==1 )/*111000000*/
{
RLEDL=0;
SLEFT(3);
}
}
else if(LCNYL==0 && LCNYM==0 &&
LCNYR==0 && CCNYL==1 &&
CCNYM==1 && CCNYR==0 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*000110000*/
{
CLEDL=0;
CLEDM=0;
SFORWARD(7);
if(LCNYL==1 || LCNYM==1 ||
LCNYR==1 )/*111000000*/
{
RLEDL=0;
SLEFT(3);
}
}
22
else if(LCNYL==0 && LCNYM==0 &&
LCNYR==0 && CCNYL==0 &&
CCNYM==1 && CCNYR==0 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*000010000*/
{
CLEDM=0;
SFORWARD(8);
if(LCNYL==1 || LCNYM==1 ||
LCNYR==1 )/*111000000*/
{
RLEDL=0;
SLEFT(3);
}
}
else if(LCNYL==0 && LCNYM==0 &&
LCNYR==0 && CCNYL==0 &&
CCNYM==1 && CCNYR==1 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*000011000*/
{
CLEDM=0;
CLEDR=0;
SFORWARD(7);
if(LCNYL==1 || LCNYM==1 ||
LCNYR==1 )/*111000000*/
{
RLEDL=0;
SLEFT(3);
}
}
else if(LCNYL==0 && LCNYM==0 &&
LCNYR==0 && CCNYL==0 &&
CCNYM==0 && CCNYR==1 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==0)/*000001000*/
{
CLEDR=0;
SFORWARD(6);
if(LCNYL==1 || LCNYM==1 ||
LCNYR==1 )/*111000000*/
{
RLEDL=0;
SLEFT(3);
}
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
//右感測
else if(LCNYL==0 && LCNYM==0 &&
LCNYR==0 && CCNYL==0 &&
CCNYM==0 && CCNYR==0 &&
RCNYL==1 && RCNYM==0 &&
RCNYR==0)/*000000100*/
{
RLEDL=0;
SRIGHT(3);
}
else if(LCNYL==0 && LCNYM==0 &&
LCNYR==0 && CCNYL==0 &&
CCNYM==0 && CCNYR==0 &&
RCNYL==1 && RCNYM==1 &&
RCNYR==0)/*000000110*/
{
RLEDL=0;
RLEDM=0;
SRIGHT(3);
}
else if(LCNYL==0 && LCNYM==0 &&
LCNYR==0 && CCNYL==0 &&
CCNYM==0 && CCNYR==0 &&
RCNYL==0 && RCNYM==1 &&
RCNYR==0)/*000000010*/
23
{
RLEDM=0;
SRIGHT(4);
}
else if(LCNYL==0 && LCNYM==0 &&
LCNYR==0 && CCNYL==0 &&
CCNYM==0 && CCNYR==0 &&
RCNYL==0 && RCNYM==1 &&
RCNYR==1)/*000000011*/
{
RLEDM=0;
RLEDR=0;
SRIGHT(5);
}
else if(LCNYL==0 && LCNYM==0 &&
LCNYR==0 && CCNYL==0 &&
CCNYM==0 && CCNYR==0 &&
RCNYL==0 && RCNYM==0 &&
RCNYR==1)/*000000001*/
{
RLEDR=0;
SRIGHT(5);
}
else if(LCNYL==0 && LCNYM==0 &&
LCNYR==0 && CCNYL==0 &&
CCNYM==0 && CCNYR==0 &&
RCNYL==1 && RCNYM==1 &&
RCNYR==1)/*000000111*/
{
RLEDL=0;
RLEDM=0;
RLEDR=0;
SRIGHT(5);
}
else
{
LLEDL=1;
LLEDM=1;
LLEDR=1;
CLEDL=1;
CLEDM=1;
CLEDR=1;
RLEDL=1;
RLEDM=1;
RLEDR=1;
}
}
}
}
24
2.編譯軟體
圖 4.1 Keil uVision5
◎ 一套整合性開發介面。
◎ 可編寫 C 語言的 C51 編譯器(ANSIC) 。
◎ 可編寫組合語言的 A51 組譯器。
◎ 除錯測試。
◎ 嵌入式系統程式(RTX51) 。
◎ 適用各種 51 核心。
3.燒錄軟體
圖 4.2 minIC.exe 燒錄程式
使用 ISP 燒錄程式 minIC.exe,將已編譯完成之機器碼(.hex 文件)燒錄至自走
車。
25
五.結論
平常在實習教室修改程式和練習的時候感覺都滿順利的,直到
第一次去全國競賽在賽前練習的時候,就慢慢的遇到平常沒遇到的
狀況,遇到新的狀況時才知到自己對程式的了解度還不夠深入,像
是紅外線感測的靈敏度、超音波感測的距離與馬達轉速的調適、左
轉右轉與直走的持續時間…等等,經過反覆的修改與研究才能找到
最合適的程式。在這裡理解程式的速度比坐在電腦前慢慢看還快上
許多,真正上過戰場才知道武器怎麼使用,經過多次的比賽之後能
更快速的修改和除錯,面對不同的場地拿出不同特點的程式,因此
遇到新問題時的解決能力也隨之提升了不少。
就算不斷修改,整體仍然有不足的地方,其中最大的問題就是
電池與供電,在測試時常常會有因電池的新舊問題而導致結果有所
差異,新電池的電壓太強而跑太快,舊電池的電壓不足而導致感測
失靈,因此需要一個穩壓的電源電路裝在電池後面,使電池的電壓
輸出可以穩定,從而避免比賽時發生變數。
透過這次的專題實務讓我們學到了不少知識和經驗,第一次使
用 8051 來操控車子,車子的轉彎是透過左輪與右輪的轉速差來進行
調整,而且光是要判斷走黑線就要寫出數十行的 If 程式,很謝謝有
老師、學長的指導以及同學的幫忙讓我們學到如此寶貴的經驗。
32
七.參考文獻 益眾科技 A03-0518 SPEED CAR說明書與光碟
益眾科技股份有限公司
http://www.icci.com.tw/index.html
HC-SR04 超音波感測器
http://coopermaa2nd.blogspot.tw/2012/09/hc-sr04.html
http://shop.cpu.com.tw/product/45466/info/
CNY70 紅外線感測
http://www.mouser.tw/ProductDetail/Vishay-
Semiconductors/CNY70/?qs=%2Fjqivxn91cdreAm7vR28%252bA%3D%3D 貿澤電子
http://eshare.stust.edu.tw/EshareFile/2013_6/2013_6_a90f2caa.pdf
Top Related