
#第七届立创电赛#基于状态空间的平衡单车
简介
本项目基于状态空间的智能车控制算法,使用Infineon旗下TC264及Nations旗下N32G430C8L7作为主控芯片,实现给定的状态评价函数最优解求算。
简介:本项目基于状态空间的智能车控制算法,使用Infineon旗下TC264及Nations旗下N32G430C8L7作为主控芯片,实现给定的状态评价函数最优解求算。开源协议
:GPL 3.0
描述
题目要求
本文的题目叫做“基于状态空间的平衡单车”,不知道大家了不了解智能车,由于参加过两届智能车的原因,所以给自己留下来很多那么难忘的回忆,还记得学长说过的一句话“做比赛的目的不是为了拿奖,而是为了学习更多的东西”,大一的时候是实话确实没有感觉到什么,但是现在确实有深深的感触,时间过得太快了,哎,有点感慨了
,怎么说,希望看到这篇文章的人,继续加油。(希望官方不要生气哈,提了一嘴其他的比赛,其实立创电赛挺好的,嗯
,对于我们这种搞硬件的,真的是一个很不错的机会,起码给了我这一次写这篇文档的机会嘛)
题目分析
本项目使用TC264及N32G430C8L7,自我感觉其实TC264绝对够用,但是吧,由于参加训练营的原因,所以了解到了N32G430这款芯片,而且还是国产的,那不得走一波
,于是第三套板子就出来了,TC264+N32G430,一些简单的让N32G430跑,一些复杂的让TC264跑,一主一副完美搭佩,而且串口通信不也来了
。
总体设计框图:

原理图设计说明
(1)主控芯片选择
TC264:
☆ 处理器:TC264,最高主频200MHz,双核TriCore™架构;
☆ TriCore™内置的DSP功能;
☆ 程序存储器:容量高至2.5MB、带ECC(纠错编码)保护的闪存;
☆ 数据存储器:容量高至752KB、带ECC(纠错编码)保护的RAM,用于存储雷达信息和摄像头的图像信息;
☆ 96KB EEProm,支持125k个读写周期;
☆ 4个12位SAR ADC转换器;
☆ 支持100Mbit以太网;
☆ 支持FlexRay、CAN、CAN FD、LIN和SPI;
☆ 定时器模块(GTM、CCU6、GPT12);
☆ 用于实现处理器间通讯的高速串行接口;
☆ 用于实时视觉和雷达数据跟踪的2.5 GHz高速轨迹端口;
☆ 板上集成DAP电路,通过Mini USB连接电脑进行仿真调试
☆ DAP仿真调试接口
☆ DC-DC电源芯片TLE42744G V33
☆ 30x2,32x1,20x1路扩展口
N32G430C8L7:
☆ 32 位 ARM Cortex-M4 内核+ FPU,支持 DSP 指令和 MPU
☆ 内置 1KB 指令 Cache 缓存,支持 Flash 加速单元执行程序 0 等待
☆ 最高主频 128MHz,160DMIPS
☆ 高达 64KByte 片内 Flash,支持加密存储、分区管理及数据保护,1 万次擦写次数,10 年数据保持
☆ 高达 16KByte 片内 SRAM, Stop2 模式保持,Standby 模式可配置为保持
☆ 支持 Run、Sleep、Stop0、Stop2、Standby 模式
☆ 1 个 12bit 4.7Msps ADC,12/10/8/6bits 可配置,多达 16 路外部单端输入通道, 3 个内部单端输入通道,支持差分模式
☆ 3 个高速比较器,内置 64 级可调比较基准
☆ HSE: 4MHz~32MHz 外部高速晶体
☆ LSE: 32.768KHz 外部低速晶体
☆ HSI: 内部高速 RC 8MHz
☆ LSI: 内部低速 RC 40KHz
☆ MCO: 支持 2 路时钟输出,可配置 SYSCLK、HSI、HSE、LSI、LSE、可分频的 PLL 时钟输出
☆ 支持上电/掉电/外部引脚复位
☆ 支持看门狗复位、软件复位
☆ 支持可编程的电压检测
☆ 4 个 U(S)ART 接口,其中 2 个 USART 接口(支持 ISO7816, IrDA,LIN),2 个 UART 接口
☆ 2 个 SPI 接口,主模式速率高达 18 Mbps,从模式速率高达 32 Mbps,支持 I
☆ 2 个 I2C 接口,速率高达 1 MHz,主从模式可配,从机模式下支持双地址响应
☆ 1 个 CAN 2.0A/B 总线接口,速率高达 1Mbps
(2)电源模块
流程图如下图:

①稳5V电源模块
在5V电源模块设计中,我们采用的是DC-DC电源方案,使用的是TI公司开关电源芯片TPS7350产生5V电压为传感器供电,电路中陶瓷旁路电容器可以改善负载的瞬态响应和噪声抑制。

②稳3.3V电源模块
此部分电路采用3.3V稳压芯片RT9013供电,其中核心板也是此芯片供电,其输入和输出端采用无极性电容进行滤波。


③电机驱动模块
电机驱动器采用mos管搭建H桥电路,使用全桥驱动器HIP4082驱动,HIP4082是英特矽尔公司的驱动芯片,它最大输出电压可达80V,输出电流达到1.3A,输入PWM频率最高可达 200Khz,一块HIP4082配合外围电路组成H桥即可驱动一路电机,具有输出电流大,设计方便的特点,完全满足带载电机的需求。

其工作原理如下,打开Q1、Q4,关断Q2、Q3,此时电流可经过Q1、电机M、Q4即可完成电机的正转。如图5.2所示。打开Q2、Q3,关断Q1、Q4,此时电流可经过Q2、电机M、Q3即可完成电机的反转。

PCB设计说明
- 20mil线宽–>1A电流,0.5mm过孔–>1A电流
- 原理图检查选项中,将悬浮网络,单端网络,修改成致命错误,然后编译;
- 焊盘上不要打孔,容易出现漏锡和立碑;
- 扇孔的好处:1)缩短回流路径;2)打孔占位;
- 缝合地过孔,减小回流路径,天线部分用地过孔包裹;(晶振同理)
- 调整丝印的时候,只打开丝印层,阻焊层,板框层即可;
- 电解电容滤除低频信号,独石电容,瓷片电容滤除高频信号;
- TPS7350 小压差,最大电流500ma;
- 功率开关器件MOSFET,开关速度可达KHz至MHz:
- PCB完成后,一定记得DRC检查;
- 旁路电容:铝解电容和钽电容比较适合作旁路电容,一般为10~470μ F \mu FμF
- 有源晶振需要外接供电,无源晶振只接2个晶振引脚就可以了
软件说明
以下程序为模块测试程序
#include "headfile.h"
#pragma section all "cpu0_dsram"
//将本语句与#pragma section all restore语句之间的全局变量都放在CPU0的RAM中
uint16 duty;//定义舵机占空比控制变量
uint16 speed1,count;//定义电机占空比控制变量及编码器计数变量
//工程导入到软件之后,应该选中工程然后点击refresh刷新一下之后再编译
//工程默认设置为关闭优化,可以自己右击工程选择properties->C/C++ Build->Setting
//然后在右侧的窗口中找到C/C++ Compiler->Optimization->Optimization level处设置优化等级
//一般默认新建立的工程都会默认开2级优化,因此大家也可以设置为2级优化
//对于TC系列默认是不支持中断嵌套的,希望支持中断嵌套需要在中断内使用enableInterrupts();来开启中断嵌套
//简单点说实际上进入中断后TC系列的硬件自动调用了disableInterrupts();来拒绝响应任何的中断,因此需要我们自己手动调用enableInterrupts();来开启中断的响应。
int core0_main(void)
{
get_clk();//获取时钟频率 务必保留
//用户在此处调用各种初始化函数等
//duty = 750;
count = 2000;
gtm_pwm_init(ATOM1_CH1_P33_9,50,duty);//舵机PWM接口初始化
ips114_init();//ips1.14寸屏幕初始化
//mt9v03x_init();//
gpt12_init(GPT12_T2,GPT12_T2INB_P33_7,GPT12_T2EUDB_P33_6);//编码器初始化
gtm_pwm_init(ATOM0_CH6_P02_6,17*1000,count);//电机PWM接口初始化
//等待所有核心初始化完毕
IfxCpu_emitEvent(&g_cpuSyncEvent);
IfxCpu_waitEvent(&g_cpuSyncEvent, 0xFFFF);
enableInterrupts();
//注意 从V1.1.6版本之后 printf打印的信息从串口输出具体可以学习库例程Printf_Demo
//注意 从V1.1.6版本之后 printf打印的信息从串口输出具体可以学习库例程Printf_Demo
//注意 从V1.1.6版本之后 printf打印的信息从串口输出具体可以学习库例程Printf_Demo
while (TRUE)
{
//用户在此处编写任务代码
pwm_duty(ATOM1_CH1_P33_9,duty);
pwm_duty(ATOM0_CH4_P02_4,count);
//if(mt9v03x_finish_flag)
//{
//ips114_displayimage032(mt9v03x_image[0],MT9V03X_W,MT9V03X_H);
//mt9v03x_finish_flag = 0;
//}
speed1=gpt12_get(GPT12_T2);
gpt12_clear(GPT12_T2);
ips114_showuint16(0,0,speed1);
}
}
#pragma section all restore
实物展示说明
其实自己做了好多好多版本,主要是想试一下,对,有想法的话,不去试一下怎么可以呢,不说了,上图

看

看

再看

再看



再看

你以为这样就结束了,不

……
最终:


演示视频
视频源文件发在了网盘里面,想要的可以下,链接如下:
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论