设计一种集红外遥控、 黑线循迹、自动泊车、车速检测、行驶路程显示等功能于一体的智能车。主要使用了红外传感技术,并结合 STM32F103 系列芯片,模拟现代新型汽车的自动驾驶功能。 采用槽型对射光电传感器测量智能车车速,使用红外光对管进行障碍物检测, TFT LCD 彩屏模拟汽车的仪表盘,并显示智能车的各项数据,如驾驶模式、 行驶距离、车速等。使用红外遥控器对智能车进行操控,并且控制多种模式的自由切换。- #include "led.h"
- #include "key.h"
- #include "delay.h"
- #include "sys.h"
- #include "lcd.h"
- #include "usart.h"
- #include "remote.h"
- #include "beep.h"
- #include "motor_control.h"
- int main(void)
- {
- u8 key;
- u8 t=0;
- u8 *str=0;
- delay_init(); //延时函数初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
- uart_init(115200); //串口初始化为115200
- LED_Init(); //LED端口初始化
- LCD_Init();
- Beep_Init();
- Remote_Init(); //红外接收初始化
- GPIO_Configuration();//电机
- Control_GPIOC_Config();//传感器
-
- POINT_COLOR=RED; //设置字体为红色
- LCD_ShowString(30,50,200,16,16,"STM32 CAR");
- LCD_ShowString(30,70,200,16,16,"REMOTE CAR");
- LCD_ShowString(30,90,200,16,16,"SPEED: ");
- LCD_ShowString(30,130,200,16,16,"KEYVAL:");
- LCD_ShowString(30,150,200,16,16,"KEYCNT:");
- LCD_ShowString(30,170,200,16,16,"SYMBOL:");
- while(1)
- {
- key=Remote_Scan();
- if(key)
- {
- LCD_ShowNum(86,130,key,3,16); //显示键值
- LCD_ShowNum(86,150,RmtCnt,3,16); //显示按键次数
- switch(key)
- {
- case 24: Forward_run();str="UP";break; //UP
- case 74: Backward_run();str="DOWN";break; //DOWN
- case 16: LEFT();str="LEFT";break; //LEFT
- case 90: RIGHT();str="RIGHT";break; //RIGHT
- case 56: Stop();str="STOP";break; //STOP
-
- case 162: LED_L();str="1";break; //"1"
- case 98: LED_M();str="2";break; //"2"
- case 226: Left_Back();str="AUTO_PARKING";break; //"3"
- case 34: X_J();str="TRACKING";break; //"4"
- }
- LCD_Fill(86,170,116+8*8,170+16,WHITE); //清楚之前的显示
- LCD_ShowString(86,170,200,16,16,str); //显示SYMBOL
- }else delay_ms(10);
-
- t++;
- if(t==50)
- {
- t=0;
- LED0=!LED0;
- }
- }
- }
复制代码 全部资料51hei下载地址:
红外遥控循迹小车.7z
(229.87 KB, 下载次数: 43)
|