找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4980|回复: 0
收起左侧

CCD寻迹智能车的stm32源码

[复制链接]
ID:309390 发表于 2018-6-30 13:54 | 显示全部楼层 |阅读模式
采用CCD传感器作为系统的传感器输入,采用增量式PID作为程序算法部分。

单片机源程序如下:
  1. /*
  2.   ******************************************************************************
  3.   * @file    main.c
  4.   * @author  WangQuan
  5.   * @date    2016--10--11
  6.   * @brief   用3.5.0版本库建的工程模板
  7.   * @本实验是用mini stm32 开发板实现
  8.   ******************************************************************************
  9. 目的是:智能车(使用线阵CCD)循迹
  10.   
  11.   ******************************************************************************
  12.   */
  13. #include "stm32f10x.h"
  14. #include "usart1.h"
  15. #include "adc.h"
  16. #include "led.h"
  17. #include "oled.h"
  18. #include "pwm_output.h"
  19. #include "display.h"  
  20. #include "dianji.h"


  21.          u16 PWM_DIAN=1000;   //8000  SHI   11%      //  1000   shi  88%
  22.          u16 PWM_DUO=58650;// 60000  shi   4%   zuo     //   55500  shi  11%  you
  23.    

  24. u8 AtemP,value1_max,value1_min,PixelAverageValue_old;
  25. unsigned char PixelAverageValue;




  26. void erzhihua(void)
  27. {  
  28.         extern unsigned char PixelAverageValue;
  29.      unsigned char i;
  30.        
  31.      for(i=0;i<128;i++)
  32.      {
  33.          if(ao_d[i]>125)      //PixelAverageValue即为阈值
  34.          {
  35.               ao_d[i]=255;
  36.          }
  37.          else
  38.          {
  39.               ao_d[i]=0;
  40.          }
  41.       
  42.      }
  43.        
  44. }


  45. /************************延时函数***************************/
  46. void Delay(__IO uint32_t nCount)
  47. {
  48.   for(; nCount != 0; nCount--);
  49. }
  50. /************************延时函数***************************/






  51. /*************************主函数****************************/
  52. int main(void)
  53. {          
  54.        
  55. /***************配置,系统时钟为72M***********/      
  56.     SystemInit();       
  57.         LED_GPIO_Config(); //LED 端口初始化
  58.     Dianji_GPIO_Config();
  59.         USART1_Config();
  60.         ADC1_Init();
  61.         SPI2_Init();                              //初始化SPI硬件口
  62.         CCD_Prepare();
  63.         LED1( ON );                          // 亮
  64.     TIM4_PWM_Init(9000,0); //TIM1 PWM波输出初始化,并使能TIM1 PWM输出   8KHZ
  65.     TIM3_PWM_Init(62535,22); //TIM1 PWM波输出初始化,并使能TIM1 PWM输出   50HZ
  66.     TIM_SetCompare2(TIM3,PWM_DIAN);
  67.         TIM_SetCompare3(TIM4,PWM_DUO);
  68.     OLED_Init();                         //初始化OLED  
  69.           OLED_ShowString(1,0, "Hello");  
  70.         A1(ON);    //ON  0   OFF   1
  71.         A2(OFF);    // 正
  72.        
  73.   while (1)
  74.         {          
  75.                 CCD_Find(1200);//曝光时间2uS单位可根据实际情况修改 时间定在10ms~20ms效果会比较好
  76.        erzhihua();                //二值化
  77.             suanzhongzhi();
  78.                                 servo_PD(45,150,650);  //  35  150  650
  79.                 display();   
  80.         }
  81. }

  82. /*************************主函数****************************/
  83. /*****************************0*********END OF FILE**********************/
复制代码

所有资料51hei提供下载:
权的车20161026 15:58 11.5V电压 -调试程序.rar (282.88 KB, 下载次数: 93)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表