刘工 发表于 2024-12-19 16:50:11

基于AI8051U的多用途小车控制板

<h2>项目简介</h2>
<p>本项目是基于AI8051U的多用途小车控制板,具有双轮自平衡小车主控板,四轮小车主控板,遥控器板,AI8051U性能评估板等多功能用途。</p>
<h2>项目功能</h2>
<p>本设计是基于AI8051U设计的多用途小车控制板;设计有四路直流电机接口,两路编码电机接口,SPI(IIC)OLED屏接口,MPU6050模块接口,超声波模块接口,红外通信,蓝牙模块接口,WIFI模块接口,摇杆,除小车基础功能外还设计了板载W25QXX及AT24CXX用以实验SPI及IIC通信,同时加装了板载AI8H以测试多路串口通信、COMP+、RGB灯及若干按键以方便对评估AI8051芯片其性能;</p>
<h2>项目参数</h2>
<ul>
<li>本设计采用TC118S单通道直流马达驱动器,驱动小车前进、后退、停止及刹车功能;</li>
<li>本设计采用OLED显示屏插座可兼容SPI或IIC的8/7/4线接口,为开发者提供调试便利;</li>
<li>本设计采用MPU6050模块插座,为小车或遥控器提供姿态数据;</li>
<li>本设计采用HC-SR04超声波模块插座,为小车提供前方障碍物距离数据;</li>
<li>板载AI8H2K12U,其主要功能作为USB转双串口方案,分别接主控的串口1与串口2;</li>
<li>通信上可以选择板载的红外通信方案,同样可以考虑设计的蓝牙模块及WIFI模块插座;</li>
<li>板载一颗360°无死角带归位摇杆,为遥控器用途提供更丰富的控制方案;</li>
<li>考虑到该芯片引脚仍有富余,为其添加存储拓展、LED、蜂鸣器等设计,以方便对其芯片性能做充分评估。</li>
</ul>
<h2>原理解析(硬件说明)</h2>
<p>本项目由以下部分组成,电源部分、电机驱动部分、主控部分、陀螺仪拓展部分、通信部分,本项目主要是通过摇杆产生控制信号由选定通信方案发送,再由主控接收控制信号并进行处理,通过对陀螺仪提取姿态信息,驱动电机做出对应操作。</p>
<p><img src="data/attachment/forum/202412/19/165120pvhl0vg38kvvjzyl.png" alt="电源部分.png" title="电源部分.png" /><br />
1--电源电路:<br />
采用DC插座及XT30作为电池供电接口、TYPE-C-16P接口作为调试供电接口,同时使用对应的USB数据引脚分别接入AI8H2K12U与AI8051U对应的USB引脚处,直接使用USB通过正反插实现不同芯片的作为下载和调试,无需转换为串口信号。在CC1和CC2引脚处加入5.1K下拉电阻,便于不同主机识别和配置,采用TPS5632DCDC稳压芯片为电机、模块、元件提供+5V,+3V3电源电压,主控使用一颗ME6211线性稳压器单独供电,并设计重新上电按键。</p>
<p><img src="data/attachment/forum/202412/19/165142tr0oowoab8l08nqr.png" alt="电机驱动部分.png" title="电机驱动部分.png" /><br />
2--电机驱动电路:<br />
依靠5V电压对电机供电,采用四路TC118S实现单通道直流马达驱动器控制四路电机驱动,并为四路电机提供接口,同时引出两路提供编码电机接口,电机可靠PWM调速驱动。</p>
<p><img src="data/attachment/forum/202412/19/165200stzgggth28szlfso.png" alt="主控部分.png" title="主控部分.png" /><br />
3--主控电路<br />
参照官方最小系统,保留了外接晶振接口及复位按键还有USB一键下载按键······</p>
<p><img src="data/attachment/forum/202412/19/165214diw1wx33xgs1nyv2.png" alt="陀螺仪拓展部分.png" title="陀螺仪拓展部分.png" /><br />
4--陀螺仪拓展电路<br />
设计有MPU6050模块插座。</p>
<p><img src="data/attachment/forum/202412/19/165234yd6t66w71848mk75.png" alt="通信部分1.png" title="通信部分1.png" /></p>
<p><img src="data/attachment/forum/202412/19/165311ui83vuwe6ipx66w3.png" alt="通信部分2.png" title="通信部分2.png" /><br />
5--通信电路<br />
为实现小车遥控,设计有板载红外通信电路,可实现红外信号收发通信,开发者也可以通过预留的蓝牙及WIFI模块插座,实现不同通信协议的操作。</p>
<p>......</p>
<h2>软件代码</h2>
<pre><code>/******************** 主函数 **************************/
void main(void)
{
        u8 t=' ';
WTST = 0;//设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
        EAXFR = 1; //扩展寄存器(XFR)访问使能
        CKCON = 0; //提高访问XRAM速度

        P0M1 = 0x00;   P0M0 = 0xff;   //设置为推挽输出
        P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
        P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
        P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
        P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
        P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口
        P6M1 = 0x00;   P6M0 = 0x00;   //设置为准双向口
        P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口

    OLED_Init();//初始化OLED
                OLED_ColorTurn(0);//0正常显示,1 反色显示
                OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示
                while(1)
                {
                        OLED_DrawBMP(0,0,128,64,BMP1);
                        BLUE         = 1;
                        GREEN = 0;
                        RED         = 0;
                        delay_ms(500);
                        BLUE         = 0;
                        GREEN = 1;
                        RED         = 0;
                        delay_ms(500);
                        BLUE         = 0;
                        GREEN = 0;
                        RED         = 1;
                        delay_ms(500);
                OLED_Clear();
                OLED_ShowChinese(0,0,0,16);//刘
                OLED_ShowChinese(18,0,1,16);//工
                OLED_ShowChinese(36,0,2,16);//的
                OLED_ShowChinese(54,0,3,16);//立
                OLED_ShowChinese(72,0,4,16);//创
                OLED_ShowChinese(90,0,5,16);//开
                OLED_ShowChinese(108,0,6,16);//源
                OLED_ShowString(8,2,&quot;ZHONGJINGYUAN&quot;,16);
                OLED_ShowString(20,4,&quot;2024/12/12&quot;,16);
                OLED_ShowString(0,6,&quot;ASCII:&quot;,16);
                OLED_ShowString(63,6,&quot;CODE:&quot;,16);
                OLED_ShowChar(48,6,t,16);
                t++;
                if(t&gt;'~')t=' ';
                OLED_ShowNum(103,6,t,3,16);
                delay_ms(500);
                OLED_Clear();
        }
}
</code></pre>
<p>待补充</p>
<h2>注意事项</h2>
<ul>
<li>待补充</li>
</ul>
<h2>组装流程</h2>
<p><img src="data/attachment/forum/202412/19/165336zro9dxf9grgyhrgo.jpg" alt="微信图片_20241212212031.jpg" title="微信图片_20241212212031.jpg" /></p>
<p>图1:焊接好空板</p>
<p><img src="data/attachment/forum/202412/19/165351mezzzii77575dkv7.jpg" alt="微信图片_20241212212101.jpg" title="微信图片_20241212212101.jpg" /></p>
<p>图2:装配好模块</p>
<p><img src="data/attachment/forum/202412/19/165406f466zmyofyoob6x7.jpg" alt="微信图片_20241212212107.jpg" title="微信图片_20241212212107.jpg" /></p>
<p>图3:装上小车</p>
<h2>实物图</h2>
<p>此处可放入组装完成后完整实物图</p>
<p><img src="data/attachment/forum/202412/19/165446ddu1fif6inxbnxdu.jpg" alt="微信图片_20241212215007.jpg" title="微信图片_20241212215007.jpg" /></p>
<p>图1:组装完成</p>
<p><img src="data/attachment/forum/202412/19/165501dok2ck0dxod46vmo.jpg" alt="微信图片_20241212213809.jpg" title="微信图片_20241212213809.jpg" /></p>
<p>图2:点亮RGB灯</p>
<p><img src="data/attachment/forum/202412/19/165514twfe8odi2iaga28d.jpg" alt="微信图片_20241212214032.jpg" title="微信图片_20241212214032.jpg" /></p>
<p>图3:OLED测试</p>

305444337 发表于 2024-12-22 13:41:41

<p><img src="data/attachment/forum/202412/22/134019y71zqgtnrumuguxz.png" alt="1.png" title="1.png" /></p>
<p>老师您好 请教下这个USB插头接线的意思是 正着插数据线连接到12UD反着插数据线连接到51UD的意思么</p>

刘工 发表于 2024-12-27 11:02:11

305444337 发表于 2024-12-22 13:41
老师您好 请教下这个USB插头接线的意思是 正着插数据线连接到12UD反着插数据线连接到51UD的意思么
...

是的。
页: [1]
查看完整版本: 基于AI8051U的多用途小车控制板