導航:首頁 > 編程語言 > 智能避障小車及源程序

智能避障小車及源程序

發布時間:2023-06-16 10:39:53

⑴ 用單片機AT89C51設計智能小車,要有循跡、避障、計算路程的功能

這個很麻煩的 自己做不但要有單片機基礎 還要花費很多精力

如果你只想應付的話就幾個人湊錢 在淘寶上買到類似的小車 大概幾百元

如果自己做的話 就花個100~200買個車模 然後自己做控制電路

這個得需要經驗 慢慢來

⑵ 智能小車避障程序~~~急

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit moto1=P1^5;
sbit moto2=P1^6;
sbit moto3=P2^0;
sbit moto4=P2^1;
sbit en1=P1^7;
sbit en2=P2^2;
///////////////
sbit left1=P1^0;//
sbit left2=P1^1;
sbit left3=P1^2;
sbit mid=P1^3;//
sbit right1=P1^4;
sbit right2=P2^3;
sbit right3=P2^4;////////////////
sbit hled=P0^0;
sbit bled=P0^1;
sbit lled=P0^2;
sbit rled=P0^3;
sbit bizhang=P2^5;
uchar pro_head;
uchar pro_back;
uchar i;
uchar j; //前後占空比標志
void delay(uint z)
{
uchar i;
while(z--)
{
for(i=0;i<121;i++);
}
}

void init()
{
TMOD=0x01;
TH0=(65536-100)/256;
TL0=(65536-100)%6;
EA=1;
ET0=1;
TR0=1;
en1=1;
en2=1;
}
void time0(void) interrupt 1
{
i++;
j++;
if(i<=pro_back)
{
en1=1;
}
else
{
en1=0;
}
if(i==40)
{
en1=~en1;
i=0;
}
if(j<=pro_head)
{
en2=1;
}
else
{
en2=0;
}
if(j==40)
{
en2=~en2;
j=0;
}
TH0=(65536-100)/256;
TL0=(65536-100)%6;
}
void qianjin()/////////////////////
{
pro_back=15;
pro_head=5;
moto1=0;
moto2=0;
moto3=1;
moto4=0;
lled=1;
rled=1;
bled=1;
}
void turn_right1()//
{
pro_back=10;
pro_head=15;
moto1=0;
moto2=1;
moto3=1;
moto4=0;
}
。。。。。。。
void xunji() //
{
uchar flag;
if((left1==0)&&(left2==0)&&(left3==1)&&(mid==1)&&(right1==0)&&(right2==0)&&(right3==0))
{
flag=1;

}
else if((left1==0)&&(left2==0)&&(left3==1)&&(mid==0)&&(right1==0)&&(right2==0)&&(right3==0))
{
flag=2;
}
else if((left1==0)&&(left2==1)&&(left3==1)&&(mid==0)&&(right1==0)&&(right2==0)&&(right3==0))
{
flag=3;
}
、。。。。。。。。。。。。。
switch (flag)
{
case 0:qianjin();headled();
break;
case 1:turn_left1();leftled();
break;
case 2:turn_left2();leftled();
、。。。。。。。。。。。。。。。 break; default:backled();
break;
}
}

void main()
{
init();
delay(600);
jiance();
delay(300);

while(1)
{
if(bizhang==1)
{
xunji();
}
else
bz();
}

}、、、、、、、、、後面根據自己的實際情況填寫吧!

⑶ 避障小車原理

避障小車原理:

一、運動機理:

控制前面兩個輪子的轉動方向就可以控制整個機器人行進的方向:

1、左右兩個前輪都向前轉,則機器人向「正前方」直線前進;

2、左右兩個前輪都向後轉,則機器人向「正後方」直線倒退;

3、左前輪向後轉,右前輪向前轉,則機器人將以後輪為軸心逆時針轉動,即實現向「右後方」轉彎倒退;

4、左前輪向前轉,右前輪向後轉,則機器人將以後輪為軸心順時針轉動,即實現向「左後方」轉彎倒退。

二、控制原理

在機器人的頭部用鋼絲做兩根觸須,一左一右各連接到一個碰撞開關,分別控制兩個前輪的旋轉方向。

特別注意,左右觸須與對應控制的電機是交叉過來的,即:左邊的觸須連接右邊的碰撞開關,控散穗制右邊的電機;右邊的觸須連接左邊的碰撞開關,控制左邊的電機。

(1)無障礙物

當前方都沒有障礙物,左右兩個輪子都向前正轉,則機器人向「前方」直線前進。

(2)左前方有障礙物

當左前方有障礙物,在左邊觸須碰到障礙物時,控制右邊的輪子反轉,則機器人向「左後方」倒退並轉彎,即方向轉向了障礙物的右邊,從而避開了左邊的障礙物。

向後倒退轉彎會持續一會,在完成轉彎之後,左邊觸須不再碰到障礙物,則兩個輪子都正轉,機器人繼續向新的沒有障礙物的「前方」直線前進。

(3)右前方有障礙物

當右前方有障礙物,在右邊觸須碰到障礙物時,控制左邊的輪子反轉,則機器人向「右後方」倒退並轉彎,即方向轉向了障礙物的左邊,從而避開了右邊的障礙物。

向後倒退轉彎會持續一會,在完成轉彎之後,右邊觸須不再碰到障礙物,則兩個輪子都正轉,機器人繼續向新的沒有障礙物的「前方」直線前進。

(4)正前方有障礙物

當正前方有障礙物,左右兩邊的觸須都會碰到障礙物,控制左右兩邊的輪子都反轉,則機器人向「正後方」倒退,從而避開障礙物。

在直線倒退持續了一會後,左右兩邊的觸須都不再碰到障礙物,則兩個輪子都正轉又變成直線前進;然後又會遇到正前方的障礙物又會直線倒退,再直線前進……如此反復變成一個死循環。

三、電路原理

機器人頭部有兩根鋼沖伏卜絲作的觸須,觸須分別連接在兩個碰撞開關上(廳輪注意兩根鋼絲對應的碰撞開關是交叉的,即:「左—右」鋼絲,對應「右—左」碰撞開關)。

(1)沒有障礙物時,觸須沒有被擠壓,不觸發碰撞開關,碰撞開關默認的通路,給電機供給一個「正方向」的電流,電機於是「順時針方向」旋轉。

(2)有障礙物時,觸須被擠壓,觸發碰撞開關,碰撞開關斷開默認通路,連接另外的一組通路,給電機供一個「反方向」的電流,電機於是「逆時針方向」旋轉。

⑷ 51單片機紅外避障小車教程

你好,我以前參加過飛思卡爾智能小車競賽,程序已經找不到了,但我可以給回你一些建議。
尋路或者避障答,主要由光電和攝像頭兩種,如果你採用光電去做,你需要了解一寫光電感測器,距離感測器的知識。如果你選擇攝像頭去做,你需要了解一些AD轉換,圖像處理的知識
C程序應該包括電機驅動,舵機驅動,當前感測器狀態識別/當前圖像處理等內容

⑸ 求避障小車的程序

#include<reg52.h> //添加函數庫
#define uint unsigned int //宏定義
#define uchar unsigned char //宏定義
sbit s=P3^5; //定義紅外避障檢測埠
sbit m1=P3^4; //定義電機M1電平輸出埠
sbit m2=P3^6; //定義電機M2電平輸出埠
void delay_ms(uint z); //聲明延時函數

main() //主函數
{
uint i=0; //初始值設定
m1=1;
m2=1;
while(1) //無限循環
{
if(s==0) //S=0表示前方有障礙物 進行轉向
{
for(i=0;i<5;i++)
{
m1=0;
m2=1;
delay_ms(15);//狀態保持15ms
m1=1;
m2=1;
delay_ms(5);//狀態保持5ms
}
}
if(s==1) //S=1表示前方無障礙物 直線行駛
{
m1=1;
m2=1;
delay_ms(10);//狀態保持10ms
}
}
}

void delay_ms(uint z) //延時函數 循環嵌套原理
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

⑹ 求arino避障小車程序,急!(高額懸賞)

//舵機和超聲波調試代碼
#include <Servo.h>
#include <Metro.h>
Metro measureDistance = Metro(50);
Metro sweepServo = Metro(20);

unsigned long actualDistance = 0;

Servo myservo; //創建舵機
int pos = 60;
int sweepFlag = 1;

int URPWM = 3; //PWM輸出0-25000us,每50us代表1cm
int URTRIG= 10; // PWM trigger pin PWM串口為10
uint8_t EnPwmCmd[4]={0x44,0x02,0xbb,0x01}; // distance measure command 距離測量命令

void setup(){ // Serial initialization 串列初始化
myservo.attach(9); //舵機串口為9
Serial.begin(9600); // Sets the baud rate to 9600
SensorSetup();
}

void loop(){
if(measureDistance.check() == 1){
actualDistance = MeasureDistance();
// Serial.println(actualDistance);
// delay(100);
}

if(sweepServo.check() == 1){
servoSweep();
}

}

void SensorSetup(){
pinMode(URTRIG,OUTPUT); // A low pull on pin COMP/TRIG
digitalWrite(URTRIG,HIGH); // Set to HIGH
pinMode(URPWM, INPUT); // Sending Enable PWM mode command 發送使能控制模式命令
for(int i=0;i<4;i++){
Serial.write(EnPwmCmd[i]);
}
}

int MeasureDistance(){ // a low pull on pin COMP/TRIG triggering a sensor reading 觸發感測器讀數
digitalWrite(URTRIG, LOW);
digitalWrite(URTRIG, HIGH); // reading Pin PWM will output pulses 讀引腳脈寬調制將輸出脈沖
unsigned long distance=pulseIn(URPWM,LOW);
if(distance==50000){ // the reading is invalid.閱讀無效
Serial.print("Invalid");
}else{
distance=distance/50; // every 50us low level stands for 1cm
}
return distance;
}

void servoSweep(){
if(sweepFlag ){
if(pos>=60 && pos<=120){
pos=pos+1; // in steps of 1 degree 1度角度的轉動
myservo.write(pos); // tell servo to go to position in variable 'pos' 告訴舵機轉動的角度
}
if(pos>119) sweepFlag = false; // assign the variable again 重新分配變數
}else {
if(pos>=60 && pos<=120){
pos=pos-1;
myservo.write(pos);
}
if(pos<61) sweepFlag = true;
}
}

////////////////////////////////////////////////////////////

需要載入一個Metro.h的庫,這只是調試機器,餘下的完全看你的發揮了,加上電機

⑺ 怎麼編寫51單片機C程序讓智能循跡小車,無論是否遇到障礙物都朝著目標走啊跪求大神解答。。

http://code.21ic.com/code/27229基於51單片機運用兩個單片機控制小車前進,一個控制轉向,一個控制後輪前進,兩個單片機沒有聯系各自工作。21ic電子技術網站上有很多源碼,可以找找看!

⑻ 求一個智能小車實現電機調速(盡量使速度降低)、循跡避障功能的C程序。

幾個驅動輪的?可以用笨一點的方法 如果你是四輪車 你可以控制它直線高速四輪全動 低速動兩個
轉彎的話 高速可以正轉一邊反轉 低速一邊正轉 另一邊鎖死 或者轉一個 我比較笨 到現在都沒學會pwm 所以只有這本辦法了~

閱讀全文

與智能避障小車及源程序相關的資料

熱點內容
itunes備份包含微信聊天記錄 瀏覽:20
怎麼向虛擬機傳文件 瀏覽:677
win10怎麼用軟體激活不了 瀏覽:816
美版a1453是什麼版本 瀏覽:517
電腦里的文件夾按照拼音歸類 瀏覽:996
文件管理器怎麼把視頻壓縮成文件 瀏覽:477
標准化文件名稱包括哪些 瀏覽:85
win10不能讀取dll文件 瀏覽:882
雲騎士重裝系統找不到usb字樣文件 瀏覽:42
皖事通app社保年限在哪裡看 瀏覽:65
為什麼快影顯示沒網路 瀏覽:356
華為如何讓手機升級提醒紅1消失 瀏覽:345
我愛九九商城app 瀏覽:587
劍靈蒼穹武器升級 瀏覽:248
微信錢包微粒貸 瀏覽:654
滾動字幕屏找不到文件 瀏覽:990
鄭州青少年學編程哪個機構比較好 瀏覽:866
ps文件打開不是彩色的 瀏覽:781
監控硬碟格式化工具 瀏覽:512
下載新版本微信6311 瀏覽:440

友情鏈接