久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
基于K60單片機控制的智能循跡避障小車程序
[打印本頁]
作者:
qxfasd
時間:
2021-12-31 12:00
標題:
基于K60單片機控制的智能循跡避障小車程序
這是上個月做的基于K60控制的智能循跡避障小車通過五路紅外傳感器使小車沿著黑線循跡
通過HC-SR04來進行避障
#include "common.h"
#include "include.h"
int date=2;
int i=3;
int distance=399; //測量距離
int Time = 100000;
uint32 timevar;
//直行
void straight()
{
gpio_set(PTE8, 1);//右
gpio_set(PTE9, 0); //右
gpio_set(PTE10,0);//左
gpio_set(PTE11,1); //左
ftm_pwm_duty(FTM0, FTM_CH0,25);
ftm_pwm_duty(FTM0, FTM_CH2,25);
}
//慢直行
void slow()
{
gpio_set(PTE8, 1);//右
gpio_set(PTE9, 0); //右
gpio_set(PTE10,0);//左
gpio_set(PTE11,1); //左
ftm_pwm_duty(FTM0, FTM_CH0,10);
ftm_pwm_duty(FTM0, FTM_CH2,10);
}
//左轉彎
void left()
{
gpio_set(PTE8, 1);//右
gpio_set(PTE9, 0); //右
gpio_set(PTE10,1);//左
gpio_set(PTE11,0); //左
ftm_pwm_duty(FTM0, FTM_CH0,23);
ftm_pwm_duty(FTM0, FTM_CH2,7);
}
//左轉大彎
void bigleft()
{
gpio_set(PTE8,1);
gpio_set(PTE9,0);
gpio_set(PTE10,1);
gpio_set(PTE11,0);
ftm_pwm_duty(FTM0, FTM_CH0,30);
ftm_pwm_duty(FTM0, FTM_CH2,12);
}
//右轉彎
void right()
{
gpio_set(PTE8,0);
gpio_set(PTE9,1);
gpio_set(PTE10,0);
gpio_set(PTE11,1);
ftm_pwm_duty(FTM0, FTM_CH0,7);
ftm_pwm_duty(FTM0, FTM_CH2,23);
}
//右轉大彎
void bigright()
{
gpio_set(PTE8,0);
gpio_set(PTE9,1);
gpio_set(PTE10,0);
gpio_set(PTE11,1);
ftm_pwm_duty(FTM0, FTM_CH0,12);
ftm_pwm_duty(FTM0, FTM_CH2,30);
}
//停
void stop()
{
gpio_set(PTE8,0);
gpio_set(PTE9,0);
gpio_set(PTE10,0);
gpio_set(PTE11,0);
ftm_pwm_duty(FTM0, FTM_CH0,0);
ftm_pwm_duty(FTM0, FTM_CH2,0);
}
//后退
void back()
{
gpio_set(PTE8,0);
gpio_set(PTE9,1);
gpio_set(PTE10,1);
gpio_set(PTE11,0);
ftm_pwm_duty(FTM0, FTM_CH0,17);
ftm_pwm_duty(FTM0, FTM_CH2,17);
}
//TRIG發射脈沖
void trigpulse()
{
gpio_set(PTA25,1); //產生觸發脈沖
systick_delay_us(15);
gpio_set(PTA25,0); //產生一個20us的高電平脈沖
}
//超聲波測距
void chaoshengbo()
{
gpio_set(PTA25,1); //產生觸發脈沖
systick_delay_us(15);
gpio_set(PTA25,0); //產生一個20us的高電平脈沖
while(gpio_get(PTA27)==0); //等待電平變高,低電平一直等待
pit_time_start(PIT0); //開始計時
while(gpio_get(PTA27)==1); //等待電平變低,高電平一直等待
Time=pit_time_get_us(PIT0); //停止計時,獲取計時時間
// timevar=Time*1000/bus_clk_khz;
// distance = timevar*(331.4+0.607*20)/20000;
distance = (int)(Time*1.7)/100;
systick_delay_ms(60);
}
//超聲波左轉
void HCleft()
{
gpio_set(PTE8,1);
gpio_set(PTE9,0);
gpio_set(PTE10,0);
gpio_set(PTE11,1);
ftm_pwm_duty(FTM0, FTM_CH0,45);//右
ftm_pwm_duty(FTM0, FTM_CH2,15);//左
}
//超聲波右轉
void HCright()
{
gpio_set(PTE8,1);
gpio_set(PTE9,0);
gpio_set(PTE10,0);//左
gpio_set(PTE11,1); //左
ftm_pwm_duty(FTM0, FTM_CH0,15);
ftm_pwm_duty(FTM0, FTM_CH2,50);
}
void xunji()
{
//循跡 PTB4-右輪
if((gpio_get(PTB4)==1)&&(gpio_get(PTB5)==1)&&(gpio_get(PTB6)==1)&(gpio_get(PTB7)==1)&&(gpio_get(PTC0)==1))
{
// gpio_set(PTE8, 1);//右
// gpio_set(PTE9, 0); //右
// gpio_set(PTE10,0);//左
// gpio_set(PTE11,1); //左
// ftm_pwm_duty(FTM0, FTM_CH0,15);
// ftm_pwm_duty(FTM0, FTM_CH2,15);
slow();
systick_delay_ms(10);
}
if((gpio_get(PTB4)==1)&&(gpio_get(PTB5)==1)&&(gpio_get(PTB6)==0)&(gpio_get(PTB7)==1)&&(gpio_get(PTC0)==1))
{
straight();
systick_delay_ms(10);
}
//右轉小彎
if((gpio_get(PTB4)==1)&&(gpio_get(PTB5)==1)&&(gpio_get(PTB6)==1)&(gpio_get(PTB7)==0)&&(gpio_get(PTC0)==1))
{
right();
systick_delay_ms(10);
}
//左轉小彎
if((gpio_get(PTB4)==1)&&(gpio_get(PTB5)==0)&&(gpio_get(PTB6)==1)&(gpio_get(PTB7)==1)&&(gpio_get(PTC0)==1))
{
left();
systick_delay_ms(10);
}
//右轉大彎
if((gpio_get(PTB4)==1)&&(gpio_get(PTB5)==1)&&(gpio_get(PTB6)==1)&(gpio_get(PTB7)==1)&&(gpio_get(PTC0)==0))
{
bigright();
systick_delay_ms(10);
}
//左轉大彎
if((gpio_get(PTB4)==0)&&(gpio_get(PTB5)==1)&&(gpio_get(PTB6)==1)&(gpio_get(PTB7)==1)&&(gpio_get(PTC0)==1))
{
bigleft();
systick_delay_ms(10);
}
}
void pit2_hander()
{
led (LED0,LED_ON);
led (LED1,LED_ON);
led (LED2,LED_ON);
date--;
PIT_Flag_Clear(PIT2);
}
void main()
{
led_init(LED0);
led_init(LED1);
led_init(LED2);
gpio_init(PTE8, GPO, 1);
gpio_init(PTE9, GPO, 0);
gpio_init(PTE10, GPO,0);
gpio_init(PTE11, GPO,1);
gpio_init(PTB4, GPI, 0);
gpio_init(PTB5, GPI, 0);
gpio_init(PTB6, GPI, 0);
gpio_init(PTB7, GPI, 0);
gpio_init(PTC0, GPI, 0);
gpio_init(PTA25, GPO, 0); //TRIG
gpio_init (PTA27, GPI, 0); //ECHO
ftm_pwm_init(FTM0, FTM_CH0,200,18);
ftm_pwm_init(FTM0, FTM_CH2,200,18);
pit_init_ms(PIT2, 14000); //初始化 PIT2,定時時間為:14s
set_vector_handler(PIT2_VECTORn,pit2_hander);
enable_irq(PIT2_IRQn);
// disable_irq(PIT2_IRQn);
while(i>2)//i>2
{
xunji();
while(date<2)
{
trigpulse();
chaoshengbo();
if(distance<70)
{
i=2;
HCleft();
systick_delay_ms(1000);
HCright();
systick_delay_ms(600);
}
}
}
while(i==2)
{
xunji();
}
}
復制代碼
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩另类视频
|
欧美日日
|
国产精品福利视频
|
日本久久久久久
|
日本不卡一区二区三区在线观看
|
久久一区二区三区免费
|
av在线免费观看网站
|
91久久电影
|
中文字幕高清在线
|
国产精品视频一二三
|
天天操夜夜拍
|
久久日韩精品一区二区三区
|
精品日韩一区二区
|
日韩欧美亚洲综合
|
日本精品裸体写真集在线观看
|
国产999精品久久久 午夜天堂精品久久久久
|
日本一区二区三区免费观看
|
日韩欧美在线不卡
|
精品日韩
|
国产精品一区二区在线免费观看
|
欧美区在线观看
|
97精品超碰一区二区三区
|
黄色a三级
|
黑人粗黑大躁护士
|
1级毛片
|
国产成人精品综合
|
影视一区
|
国产高清视频
|
久久久精品一区二区三区
|
成人精品免费视频
|
一级日批片
|
精品久久久久久久
|
黄色一级大片在线观看
|
国产高清免费在线
|
蜜桃传媒一区二区
|
欧美中文字幕
|
日韩天堂av
|
久久国产精品视频
|
精品福利av导航
|
亚洲国产乱码
|
黄网免费
|