久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1804|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于K60單片機(jī)控制的智能循跡避障小車程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:994606 發(fā)表于 2021-12-31 12:00 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這是上個(gè)月做的基于K60控制的智能循跡避障小車通過五路紅外傳感器使小車沿著黑線循跡
通過HC-SR04來(lái)進(jìn)行避障
  1. #include "common.h"
  2. #include "include.h"

  3. int date=2;
  4. int i=3;
  5. int distance=399;   //測(cè)量距離
  6. int Time = 100000;
  7. uint32 timevar;

  8. //直行
  9. void straight()
  10. {
  11.     gpio_set(PTE8, 1);//右
  12.     gpio_set(PTE9, 0); //右
  13.     gpio_set(PTE10,0);//左
  14.     gpio_set(PTE11,1); //左
  15.     ftm_pwm_duty(FTM0, FTM_CH0,25);
  16.     ftm_pwm_duty(FTM0, FTM_CH2,25);
  17. }

  18. //慢直行
  19. void slow()
  20. {
  21.     gpio_set(PTE8, 1);//右
  22.     gpio_set(PTE9, 0); //右
  23.     gpio_set(PTE10,0);//左
  24.     gpio_set(PTE11,1); //左
  25.     ftm_pwm_duty(FTM0, FTM_CH0,10);
  26.     ftm_pwm_duty(FTM0, FTM_CH2,10);
  27. }

  28. //左轉(zhuǎn)彎
  29. void left()
  30. {
  31.     gpio_set(PTE8, 1);//右
  32.     gpio_set(PTE9, 0); //右
  33.     gpio_set(PTE10,1);//左
  34.     gpio_set(PTE11,0); //左
  35.     ftm_pwm_duty(FTM0, FTM_CH0,23);
  36.     ftm_pwm_duty(FTM0, FTM_CH2,7);
  37. }

  38. //左轉(zhuǎn)大彎
  39. void bigleft()
  40. {
  41.     gpio_set(PTE8,1);
  42.     gpio_set(PTE9,0);
  43.     gpio_set(PTE10,1);
  44.     gpio_set(PTE11,0);  
  45.     ftm_pwm_duty(FTM0, FTM_CH0,30);
  46.     ftm_pwm_duty(FTM0, FTM_CH2,12);
  47. }

  48. //右轉(zhuǎn)彎
  49. void right()
  50. {
  51.     gpio_set(PTE8,0);
  52.     gpio_set(PTE9,1);
  53.     gpio_set(PTE10,0);
  54.     gpio_set(PTE11,1);
  55.     ftm_pwm_duty(FTM0, FTM_CH0,7);
  56.     ftm_pwm_duty(FTM0, FTM_CH2,23);
  57. }

  58. //右轉(zhuǎn)大彎
  59. void bigright()
  60. {
  61.     gpio_set(PTE8,0);
  62.     gpio_set(PTE9,1);
  63.     gpio_set(PTE10,0);
  64.     gpio_set(PTE11,1);
  65.     ftm_pwm_duty(FTM0, FTM_CH0,12);
  66.     ftm_pwm_duty(FTM0, FTM_CH2,30);
  67. }

  68. //停
  69. void stop()
  70. {
  71.     gpio_set(PTE8,0);  
  72.     gpio_set(PTE9,0);  
  73.     gpio_set(PTE10,0);  
  74.     gpio_set(PTE11,0);
  75.     ftm_pwm_duty(FTM0, FTM_CH0,0);
  76.     ftm_pwm_duty(FTM0, FTM_CH2,0);
  77. }

  78. //后退
  79. void back()
  80. {
  81.     gpio_set(PTE8,0);  
  82.     gpio_set(PTE9,1);  
  83.     gpio_set(PTE10,1);  
  84.     gpio_set(PTE11,0);
  85.     ftm_pwm_duty(FTM0, FTM_CH0,17);
  86.     ftm_pwm_duty(FTM0, FTM_CH2,17);
  87. }
  88. //TRIG發(fā)射脈沖
  89. void trigpulse()
  90. {
  91.     gpio_set(PTA25,1);               //產(chǎn)生觸發(fā)脈沖
  92.     systick_delay_us(15);      
  93.     gpio_set(PTA25,0);           //產(chǎn)生一個(gè)20us的高電平脈沖
  94. }

  95. //超聲波測(cè)距
  96. void chaoshengbo()
  97. {   
  98.    
  99.     gpio_set(PTA25,1);               //產(chǎn)生觸發(fā)脈沖
  100.     systick_delay_us(15);      
  101.     gpio_set(PTA25,0);           //產(chǎn)生一個(gè)20us的高電平脈沖
  102.     while(gpio_get(PTA27)==0);             //等待電平變高,低電平一直等待
  103.     pit_time_start(PIT0); //開始計(jì)時(shí)
  104.     while(gpio_get(PTA27)==1);      //等待電平變低,高電平一直等待   
  105.     Time=pit_time_get_us(PIT0);    //停止計(jì)時(shí),獲取計(jì)時(shí)時(shí)間
  106. //    timevar=Time*1000/bus_clk_khz;
  107. //    distance = timevar*(331.4+0.607*20)/20000;
  108.     distance = (int)(Time*1.7)/100;
  109.     systick_delay_ms(60);
  110. }


  111. //超聲波左轉(zhuǎn)
  112. void HCleft()
  113. {   
  114.     gpio_set(PTE8,1);
  115.     gpio_set(PTE9,0);
  116.     gpio_set(PTE10,0);
  117.     gpio_set(PTE11,1);
  118.     ftm_pwm_duty(FTM0, FTM_CH0,45);//右
  119.     ftm_pwm_duty(FTM0, FTM_CH2,15);//左
  120. }

  121. //超聲波右轉(zhuǎn)
  122. void HCright()
  123. {
  124.     gpio_set(PTE8,1);
  125.     gpio_set(PTE9,0);
  126.     gpio_set(PTE10,0);//左
  127.     gpio_set(PTE11,1); //左
  128.     ftm_pwm_duty(FTM0, FTM_CH0,15);
  129.     ftm_pwm_duty(FTM0, FTM_CH2,50);
  130. }

  131. void xunji()
  132. {
  133.            //循跡 PTB4-右輪
  134.         if((gpio_get(PTB4)==1)&&(gpio_get(PTB5)==1)&&(gpio_get(PTB6)==1)&(gpio_get(PTB7)==1)&&(gpio_get(PTC0)==1))
  135.         {   
  136. //            gpio_set(PTE8, 1);//右
  137. //            gpio_set(PTE9, 0); //右
  138. //            gpio_set(PTE10,0);//左
  139. //            gpio_set(PTE11,1); //左
  140. //            ftm_pwm_duty(FTM0, FTM_CH0,15);
  141. //            ftm_pwm_duty(FTM0, FTM_CH2,15);
  142.            slow();
  143.             systick_delay_ms(10);
  144.         }   
  145.         if((gpio_get(PTB4)==1)&&(gpio_get(PTB5)==1)&&(gpio_get(PTB6)==0)&(gpio_get(PTB7)==1)&&(gpio_get(PTC0)==1))
  146.         {   
  147.             straight();
  148.             systick_delay_ms(10);
  149.         }
  150.         //右轉(zhuǎn)小彎
  151.         if((gpio_get(PTB4)==1)&&(gpio_get(PTB5)==1)&&(gpio_get(PTB6)==1)&(gpio_get(PTB7)==0)&&(gpio_get(PTC0)==1))
  152.         {   
  153.             right();
  154.             systick_delay_ms(10);
  155.         }
  156.         //左轉(zhuǎn)小彎
  157.         if((gpio_get(PTB4)==1)&&(gpio_get(PTB5)==0)&&(gpio_get(PTB6)==1)&(gpio_get(PTB7)==1)&&(gpio_get(PTC0)==1))
  158.         {   
  159.             left();
  160.             systick_delay_ms(10);
  161.         }            
  162.         //右轉(zhuǎn)大彎
  163.         if((gpio_get(PTB4)==1)&&(gpio_get(PTB5)==1)&&(gpio_get(PTB6)==1)&(gpio_get(PTB7)==1)&&(gpio_get(PTC0)==0))
  164.         {            
  165.             bigright();
  166.             systick_delay_ms(10);
  167.         }
  168.         //左轉(zhuǎn)大彎
  169.         if((gpio_get(PTB4)==0)&&(gpio_get(PTB5)==1)&&(gpio_get(PTB6)==1)&(gpio_get(PTB7)==1)&&(gpio_get(PTC0)==1))
  170.         {
  171.             bigleft();
  172.             systick_delay_ms(10);
  173.         }
  174. }
  175. void pit2_hander()
  176. {
  177.     led (LED0,LED_ON);
  178.     led (LED1,LED_ON);
  179.     led (LED2,LED_ON);
  180.     date--;     
  181.     PIT_Flag_Clear(PIT2);
  182. }

  183. void main()
  184. {     
  185.     led_init(LED0);
  186.     led_init(LED1);
  187.     led_init(LED2);
  188.     gpio_init(PTE8, GPO, 1);
  189.     gpio_init(PTE9, GPO, 0);
  190.     gpio_init(PTE10, GPO,0);
  191.     gpio_init(PTE11, GPO,1);
  192.     gpio_init(PTB4, GPI, 0);
  193.     gpio_init(PTB5, GPI, 0);
  194.     gpio_init(PTB6, GPI, 0);
  195.     gpio_init(PTB7, GPI, 0);
  196.     gpio_init(PTC0, GPI, 0);
  197.     gpio_init(PTA25, GPO, 0); //TRIG
  198.     gpio_init  (PTA27, GPI, 0); //ECHO
  199.     ftm_pwm_init(FTM0, FTM_CH0,200,18);
  200.     ftm_pwm_init(FTM0, FTM_CH2,200,18);
  201.          
  202.     pit_init_ms(PIT2, 14000); //初始化 PIT2,定時(shí)時(shí)間為:14s
  203.     set_vector_handler(PIT2_VECTORn,pit2_hander);
  204.     enable_irq(PIT2_IRQn);
  205.    
  206. //    disable_irq(PIT2_IRQn);
  207.     while(i>2)//i>2   
  208.     {   
  209.         xunji();
  210.         while(date<2)
  211.         {
  212.             trigpulse();
  213.             chaoshengbo();
  214.             if(distance<70)
  215.             {     
  216.                 i=2;
  217.                 HCleft();  
  218.                 systick_delay_ms(1000);                    
  219.                 HCright();     
  220.                 systick_delay_ms(600);                  
  221.             }  
  222.         }   
  223.     }
  224.    while(i==2)
  225.    {     
  226.        xunji();
  227.     }
  228. }
復(fù)制代碼





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产电影一区二区 | 狠狠干天天干 | 人人看人人干 | 亚洲精品久久久久久国产精华液 | 亚洲成人免费观看 | 国产精品永久免费 | 91中文在线观看 | 欧美黄视频 | 日韩另类视频 | 色99视频 | 一道本一区二区 | 亚洲精品久久久一区二区三区 | 色婷婷激情综合 | 国产做a爱免费视频 | 成人久久18免费网站麻豆 | 久久精品国产一区二区三区不卡 | 久久成人精品 | 欧美天堂| 国产女人与拘做视频免费 | 国产精品欧美一区二区 | 羞羞视频在线观看 | 欧美mv日韩mv国产网站91进入 | 青青草av | 亚洲另类视频 | 国产精品视频999 | 红色av社区 | av国产精品毛片一区二区小说 | 神马久久av | 国产无套一区二区三区久久 | 最新黄色毛片 | 国产在线精品一区二区三区 | 综合久久综合久久 | 国产日产精品一区二区三区四区 | 成人日韩av | av在线播放网址 | 久久九九色 | 亚洲一区二区av | 国产精品久久久久久吹潮 | 免费观看一级特黄欧美大片 | 九九热免费视频在线观看 | 免费国产黄网站在线观看视频 |