- 采用STM32F407vet6核心板作为主控
- 采用STMCubeMX生成工程,用keil5进行编译和下载
- 包含:步进电机驱动、舵机驱动、屏幕显示、树莓派通信
- Core:主程序代码main.c所在,我们所修改的就只有main.c和main.h
- Drivers:驱动代码所在,包括各种外设的驱动代码,不需要修改
- MDK-ARM:keil工程文件所在,不需要修改
- communication:包括串口通信相关和定时器中断相关(串口屏、视觉联调等主要代码所在)
- motor_control: 步进电机的驱动库,提供了电机的控制函数,部分电机控制相关的参数在这里设置(如电机的转速、加速度、移动位置等)
- MPU6050: 陀螺仪的驱动库,提供了陀螺仪的初始化函数和读取函数,目前未使用
- screen: 显示屏的驱动库,用的串口屏,只需要用printf调用串口发送数据即可
- sensor: 传感器的驱动库,暂无内容
- servo: 舵机的驱动库,待完善
- template: .c和.h文件的模板,用于新建文件时参考
下面是主要的程序所在的文件
- 首先初始化各个外设(串口、中断、等待电机初始化等)
- 进行预先设定好的程序,如行走、转弯、识别、抓取等。
- 在各个动作进行的过程中,借助一些全局变量来进行状态的判断和传输(比如当到位时用串口给树莓派发消息,树莓派则开始进行视觉识别)
- 定时器控制的原理即采用定时器中断,每隔一段时间执行一次中断函数,中断函数中进行一些操作,如电机的控制、传感器的读取等。
- 电机的微调控制在此
- 串口的通信在此,包括串口屏、树莓派、电机的通信
- 电机的控制函数在此,主要是电机的位置控制、速度控制
- 舵机的控制函数在此,待完善