【STM32】寻迹小车项目复盘

寻迹小车项目复盘

前言

博主近日首次完成了一个简单的循迹小车。但让我意外的是,在我上手如此简单的项目时,我的思路却十分混乱,开发过程毫无逻辑,虽说跌跌撞撞的做出来了,但效率低下,故在做完该项目后进行复盘,以供进步

复盘简述

  • 不要沉迷造轮子!!!
  • 无思路的项目:(硬件选型)了解所用模块的功能 ---> 借鉴学习并做框架(做完测试) ---> 遍学遍做模块功能(做完测试) ---> 组装成系统
  • 先宏观再微观:写框架---测试框架---写驱动---测试驱动---组成系统
  • 分而治之:整体于各个模块都要分开测试,测试需要由小至大

项目无思路,无大局观

不要执着于造轮子!!!

描述

在这次项目的初期,我对如何完成这个项目毫无思路,无从下手。而且后面热衷于造轮子,造又造不出来,慢慢的心态就崩溃了

复盘

在对一个项目了解的过少的时候 应:

  1. 先了解模块功能 (模块功能简单的话,可以一并学习
    如:TB6612、TCRT5000、HC-05大概的原理
  2. 再学框架 (看源码,学整个系统如何运行
    借鉴或思考这个系统的框架如何运行,做出来合理的架构,并测试
  3. 后"学"并"做"模块功能
    根据所学模块知识,完成bsp模块功能驱动代码,并测试
  4. 最终拼成系统

项目无架构

描述

在做项目时,我常遇到不知道该做什么,也不知当下在做什么的问题。既未知将要进行什么,又迷茫当下的意义,整个过程似乎既无宏观 规划也无微观意识

复盘

重要思想

  • 先宏观再微观,由微观至宏观
    解释:先写结构先架构(宏观),再写bsp底层功能函数驱动代码(微观),由功能函数(微观)至整体系统(宏观)
  • 分而治之
    解释:整体的大系统的错难找,故,应在结构处测试宏观的正确,在每个bsp底层驱动代码处测试微观的正确。分开"治理",就不会导致合体时系统的崩溃

下次项目改进思路

  1. 先写框架:以状态机的编程思想为例,先写fsm();的伪代码,理清系统整体运行逻辑
  2. 测试框架:以蓝牙或按键等工具,测试框架是否有BUG,能否正常进行状态的切换
  3. 再模块化编程,实现各个基本功能的代码逻辑(注意,模块化功能也可以写逻辑,写伪代码,学会拆分任务
  4. 测试功能代码:测试功能代码是否有BUG
  5. 若框架正常,模块化功能正常,则系统整体正常

模块测试由小到大!!!
按 小模块测试--->大模块测试(如:go(); ---> track();)

DEBUG无思路

硬件

  • 接线问题:保证接线无误
  • 供电问题:注意模块是否供电异常
  • 模块异常:更换模块测试(建议常用模块多备几个

软件

  • 代码逻辑:善用printf与DEBUG断点调试
  • 注意是否开启对应功能(如:编码器开启、定时器开启、PWM产生开启
相关推荐
踏着七彩祥云的小丑4 小时前
嵌入式测试学习第1天:电路基础核心概念
单片机·嵌入式硬件
Deitymoon6 小时前
STM32F103——超声波模块
stm32·单片机·嵌入式硬件
你怎么知道我是队长9 小时前
计算机系统基础22---计算机的基本组成---IO控制方式
单片机·嵌入式硬件
風清掦9 小时前
【STM32学习笔记-12】Unix 时间戳、BKP 备份寄存器与 RTC 实时时钟
笔记·stm32·单片机·嵌入式硬件·学习·实时音视频·unix
hoiii18710 小时前
基于STM32的扫地机器人源码工程
stm32·单片机·机器人
feasibility.11 小时前
嵌入式系统的“能量-执行”拓扑学:电池、舵机、电机与电调的深层关系
科技·嵌入式硬件·电机·拓扑学·舵机·电池·电调
振南的单片机世界12 小时前
EXTI边沿检测:上升沿、下降沿、双边沿,硬件自动捕捉
stm32·单片机·嵌入式硬件
Max_uuc13 小时前
【感知心法】别相信你的传感器!撕碎“所读即所得”的 API 幻觉,论物理世界的“全员撒谎”与状态观测器的绝对凝视
单片机
踏着七彩祥云的小丑14 小时前
嵌入式——认识电子元器件——符号
单片机·嵌入式硬件
莎士比亚的文学花园1 天前
stm32——平衡小车
stm32·单片机·嵌入式硬件