最近两天有点偷懒了,什么都不想做,所以今天不接着弄上次的GPS模块了,今天就分享点别的-----大三时做的嵌入式课程设计。当时做好后也算是好几个班流传最广的版本了,所以多少还是很有点成就感的。
实现的具体功能如下:
运用STM32F407ZGT6为核心的开发板,实现玩具小车的控制。控制内容包括:
1.可利用按键进行小车行驶控制(前进、后退、左转、右转);
2.可用电位器实现小车速度调整;
3.可利用红外遥控器控制小车运行;
4.可利用显示屏将当前小车运行状态显示在屏幕上。
5.可利用蓝牙控制小车状态
6.可以利用蓝牙控制小车循迹功能开关实现小车自动循迹
7.可以利用超声波模块实现小车的避障转向功能
记得当时老师要求是至少实现5个还是6个功能,我当时做了以上7个功能。一共有8个功能可选最后一个是关于mpu6050的,关于这个模块我们以后细讲。
至于代码部分还是展示一部分吧

int main()
{   u8 lab = 0;                    //循迹控制标志u8 i=0;u8 key; u16 value=0;u16 value1=0;float vol, vol_1;        //声明一些程序用到的变量long long indata=0;float distance=0;     //超声波测距用到的变量SysTick_Init(168);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中断优先级分组 分2组LED_Init1();                //led和电机引脚初始化gpio_Init();USART1_Init(9600);USART3_Init(9600);   //串口初始化ADCx_Init();             //adc数模转换初始化KEY_Init();                 //按键初始化Hwjs_Init();             //红外模块初始化TFTLCD_Init();         //LCD初始化TIM12_CH1_PWM_Init(500-1,84-1);TIM11_CH1_PWM_Init(500-1,84-1);          //TIM11和TIM12初始化AT24CXX_Init();TIM5_CH1_Input_Init(0xffffffff,83);  //以1M频率计数FRONT_COLOR=BLACK;LCD_ShowString(10,10,tftlcd_data.width,tftlcd_data.height,12,"liaocheng-university");LCD_ShowFontHZ(10,50,"聊城大学");LCD_ShowFontHZ(10,120,"小车状态:");          //屏幕显示聊大,和小车状态等字符串GPIO_SetBits(GPIOF,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_9|GPIO_Pin_10);  //初始小车状态为停止pwm(1500, 17500);                        //舵机角度调整至正前方。USART3_RX_STA=0;                      //蓝牙串口接收信息标志while(1){distance = ultrasonic(indata, distance);  //get前方是否有障碍物value = adc_model_1( value,  vol );       //1--get钮输入引脚的电压值value1 = adc_model_2(value1, vol_1 ); //1--get旋钮输入引脚的电压值pwm_model(i, value, value1);              //2--pwm输出设置Remote_control();                           //3--红外遥控lab = hc05_control(lab);                  //4--蓝牙控制key_model(key);                                //5--按键扫描程序执行前进后退,左转右转Obstacle_avoidance(lab);                   //6--循迹模块控制函数Ultrasonic_obstacle_avoidance(distance);   //7--超声波避障控制函数}
}

全部代码放在百度网盘里,链接:链接:https://pan.baidu.com/s/1EnKFuV3M8G73_y61cXZyiQ
提取码:kn6i

需要的可以自行下载,如果你是聊大的学弟学妹,如果要求一样则可以直接编译下载就可以(这里还是建议大家把上面的代码当作参考,毕竟学知识还是要靠自己去理解去探索)。当然,这里我也不想讲解每行代码作用。
还有一个问题就是接线问题,具体如下:

第三次更新说明:
1.这次跟新程序完成超声波测试功能,可能这也是最后一次更新。
2.超声波模块接线说明
舵机的信号线(IO10)———对应开发板(PF3)
舵机vcc,gnd已经接扩展板的5V和gnd
超声波模块
(vcc)--开发板(5V)
(GND)--开发板(GND)
(trig)--开发板(PF2)
(echo)--开发板(PA0)注:本人在调试过程可能扩展板出现问题,超声测距本来可以直接插扩展板的接口,但是由于某种原因测试出错,所以本人直接将超声波模块接开发板,测试功能正常。(这也是上面为什么超声波模块会接开发板5V和GND的原因)*******************************************************************
再次重申:本程序仅限大家学习使用,严禁用于任何商业用途。
当然,本人能力有限,希望大家批评改进。联系方式:见文末。
*******************************************************************二次更新说明:
1.直至本次更新程序可以实现6个要求功能(2个基本功能和4个选做功能)。
2.这次主要是对循迹模块功能进行编写,具体函数还是在主函数中while循环中调用,大家可以选中右键go to去具体了解。这里不做详细介绍
3.功能说明,由于主函数大的while循环中存放的功能函数太多,直接和以前一样放进去会对其他函数造成影响,所以本人添加一个循迹函数标志变量,具体是由蓝牙功能进行控制。所以想要实现循迹功能必须具有蓝牙功能(本来想使用pcf8574的中断功能,但是扩展板上没有INT的外部接口,所以只能这样了。遗憾!)具体就是循迹模块中4个红外对管有一个亮了就进行转向(可左转也可能右转,具体看是哪个对管指示灯亮,全亮就停止行进)。
4.接线说明,这次又添加了两根线主要是IIC接口的串行数据线(SDA)和时钟线(SCL),SDA————扩展板上的J23的6号引脚,SCL————扩展板上的J23的5号引脚。SCL---接开发板PB8,
SDA--接开发板PB9。注:接线由于功能越来越多,所以接线一定要注意连接正确。如果有疑问可以请教作者或作者宿舍成员。更新说明:
1.程序添加蓝牙功能,可以实现蓝牙控制小车,蓝牙连接后输入‘qianjin’对应 前进
‘houtui’对应 后退,‘zuozhuan’对应 左转, ‘youzhuan’对应 右转, ‘tingzhi’对应 停止
2.引脚说明 电机1接(PF0,PF9),电机2接(PF1,PF10), pwm2,pwm3对应(PB14,PF7)
AD0,AD1对应(PA6,PA4)3.蓝牙模块的连接:VCC接5v, GND接GND, RX接PB10, TX接PB11注:扩展板(小板)与开发板之间需要 ---共地!!!说明:
1.程序下载进开发板,按下reset开始执行程序
2.按下开发板的右下角的上键前进同时两个led灯全亮(下键,左键,右键分别实现相对应功能)
3.调节扩展板上的黄色旋钮和旁边的白色电位器实现小车左右轮调速
4.红外遥控的使用2键对应前进,8键对应后退,4键对应左转,6键对应右转
5.屏幕显示,屏幕前3行显示
“liaocheng-university聊城大学小车状态:”一直保持不变,下一行显示‘前进’或‘后退’或‘左转’或‘右转’具体跟随小车当前状态改变。注:由于连线可能接反,实验过程中可以自己更改最终都可实现以上效果。

以上内容压缩包内都有,而且更为详细,希望对大家有帮助。

聊城大学理工学院-嵌入式课程设计-stm32f407小车相关推荐

  1. c语言电子时钟课程设计报告,电子时钟嵌入式课程设计报告

    <电子时钟嵌入式课程设计报告>由会员分享,可在线阅读,更多相关<电子时钟嵌入式课程设计报告(19页珍藏版)>请在人人文库网上搜索. 1.合海大学计算机信息工程学院(常州)课程设 ...

  2. alin的学习之路:嵌入式课程设计总结(基于Linux的Qt版MP3播放器)

    嵌入式课程设计总结(基于Linux的Qt版MP3播放器) 废话不多写直接上图上代码,其中有很多不规范的地方,希望大佬们指正. 1.课设题目 设计一个MP3播放器,要求:使用Linux下的madplay ...

  3. 课程设计报告linux小游戏,嵌入式课程设计报告---贪吃蛇游戏.doc

    嵌入式课程设计报告---贪吃蛇游戏 嵌入式系统课程设计报告书 课题题目:贪吃蛇游戏 学 院:核自院 班 级:测控三班 学 号:9 姓 名: 马文铂 第一章 引言- 2 - 1.1关于题目- 2 - 1 ...

  4. 用linux设计99乘法表,嵌入式课程设计九九乘法表

    <嵌入式课程设计九九乘法表>由会员分享,可在线阅读,更多相关<嵌入式课程设计九九乘法表(8页珍藏版)>请在人人文库网上搜索. 1.安阳师范学院计算机与信息工程学院嵌入式系统课程 ...

  5. 流水灯嵌入式课程设计(包含UCOSII的无仿真和无UCOSII的有仿真)

    目录 流水灯设计原理 1.基于STM32F103R6Tx的流水灯设计,先初始化管脚,编写LED.KEY按键和定时器的初始化函数. 2.按键的判断设计分为两部分:开始/停止按键和设置时间按键. ① 开始 ...

  6. 嵌入式课程设计 使用 tini4412配合交叉编译环境 完成串口助手的制作(已解决主机与设备通过网线FTP连接和交叉编译环境的部署问题)

    嵌入式课程设计 使用 tini4412配合交叉编译环境 完成串口助手的制作 注:还没有完全写完,不过主要过程都在中间了 摘要 本文主要介绍一下五个部分: tini4412的系统烧写 虚拟机上交叉编译环 ...

  7. 嵌入式 课程设计指导书

    <嵌入式体系结构与接口技术> 课程设计指导书 题目1:电子计算器 一.设计任务 设计一个具有加减乘除功能的计算器,带三角函数.指数函数.对数函数计算功能,科学计数法表示.  二.任务分析 ...

  8. 用英文给嵌入式计算机下定义,嵌入式课程设计报告--嵌入式系统项目设计.doc

    河海大学计算机与信息学院(常州) 课程设计报告 题 目 嵌入式系统项目设计 专业.学号 授课班号 277704 学生姓名 同组学生 指导教师 完成时间 2011年6月 课程设计(报告)任务书 (理 工 ...

  9. 嵌入式课程设计linux,嵌入式系统课程设计--基于U盘的linux操作系统的构建

    嵌入式系统课程设计--基于U盘的linux操作系统的构建 1 课程设计报告课程设计报告 课程名称课程名称 嵌入式系统课程设计嵌入式系统课程设计 设计题目设计题目基于基于 U盘的盘的 linux 操作系 ...

最新文章

  1. Android Google 服务框架相关问题
  2. Your Feedback Report at Adecco
  3. 微观计量经济学_微观经济学与数据科学
  4. vmware 网络连接方式的说明
  5. 数字化项目建设管理难点分析与对策
  6. Linux程序设计-1-Linux基础
  7. 对象和map的相互转换
  8. android ADB 模拟手机点击事件
  9. 精通RPM之--制作篇(上)
  10. YSO小游戏·VB6版代码
  11. iOS-配置AppIcon
  12. 红米k30 允许调用gpu调试层_红米击败自家小米,夺得性能榜第四,红米K30 Pro究竟靠什么?...
  13. 安装Windows11遇到只能安装到GPT磁盘
  14. cesium 流动线 发光线(道路线)
  15. 魔兽世界地图插件制作代码、
  16. Unity3D开发之边缘检测Sobel算子的一些个人观点
  17. USB Gadget iMX6UL开发板模拟U盘
  18. 麦克风的计算机英语词汇,英语词汇,直播带货的行业术语,非常火!
  19. 电信号码没有实名制会停机?
  20. java 读取数据库mysql千余条微博excel数据,并用swing界面显示结果

热门文章

  1. 零基础学PS平面设计基础有哪些?
  2. Vue + AILabel.js 实现图片标注
  3. No module named ‘PCV‘与解决OSError: xxx not found.
  4. E哥的Git教程(一)热身篇
  5. 或许我只是个小丑罢了
  6. html5+css+js简单了解
  7. java接口fastjson_JSON 走进Java接口测试之fastjson指南 _好机友
  8. 对话区块预言资本王辉林:Cosmos像安卓,波卡像IOS |链捕手
  9. 学校人力资源管理系统——E-R图
  10. 公网IP + 蒲公英异地组网实现真正意义上的随时随地远控设备