标题:
做了一个智能小车,分享一下,顺便问问大家改进方法
[打印本页]
作者:
owenliang
时间:
2018-2-26 23:14
标题:
做了一个智能小车,分享一下,顺便问问大家改进方法
单片机新手,求勿喷或者轻喷
作者:
owenliang
时间:
2018-2-26 23:15
我的思路是这样的,分为3个模块,电源模块,单片机主控模块,还有电机模块,一开始我用了3个板子来做,结果发现线非常乱,于是放弃
作者:
owenliang
时间:
2018-2-26 23:23
D:\QQPCmgr\Desktop\图片
这个图片怎么发。。。不会啊,这里附上图片,之前做的3个模块,还有一个后来集在一起的电路图,画了后我才知道有ad这种大神器,于是焊了第二块板
作者:
owenliang
时间:
2018-2-26 23:28
D:\QQPCmgr\Desktop\图片
这个是小车做好的图片,芯片也在上面了,用了18650电池,lm317,stc89c52rc,l293d,hc05蓝牙芯片
作者:
owenliang
时间:
2018-2-26 23:30
#include <reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
u8 r_buf; //À¶ÑÀ½ÓÊÕµ½µÄ×Ö·û´æ´¢»º³åÇø
sbit M1 = P0^1;
sbit M2 = P0^2;
sbit M3 = P0^4;
sbit M4 = P0^5;
sbit state = P3^6; //À¶ÑÀÁ¬Í¨µÄ״̬±ê־λ
void delay(u16 z) //ÑÓ³Ùº¯Êý
{
u16 x,y;
for(x=z;x>0;x--)
for(y=125;y>0;y--);
}
void InitUART() //´®¿Ú³õʼ»¯9600
{
//³õʼ»¯´®¿Ú¶¨Ê±Æ÷9600
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFD;
TL1 = 0xFD;
TR1 = 1;
ES = 1;
EA = 1;
}
void SendOneByte(unsigned char c) //·¢ËÍ×Ö·ûº¯Êý
{
SBUF = c;
while(!TI);
TI = 0;
}
void main(void) //³õʼ»¯µç»ú
{
InitUART();
M1 = 0;
M2 = 0;
M3 = 0;
M4 = 0;
r_buf = '2';
}
void UARTInterrupt(void) interrupt 4 //´®¿Ú½ÓÊÕ×Ö·û
{
if(RI)
{
RI = 0;
//add your code here!
r_buf = SBUF;
if(r_buf == '1')//Èç¹ûΪ×Ö·û¡®0¡¯£¬ÔòÖÇÕÏС³µÇ°½ø
{
M1=1;
M2=0;
M3=1;
M4=0;
delay(1000);
}
if(r_buf == '2')//Èç¹ûΪ×Ö·û¡®2¡¯£¬ÔòÖÇÕÏС³µ×óת
{
M1=0;
M2=0;
M3=1;
M4=0;
delay(1000);
}
if(r_buf == '3')//Èç¹ûΪ×Ö·û¡®3¡¯£¬ÔòÖÇÕÏС³µÓÒת
{
M1=1;
M2=0;
M3=0;
M4=0;
delay(1000);
}
if(r_buf == '4')//Èç¹ûΪ×Ö·û¡®1¡¯£¬ÔòÖÇÕÏС³µºóÍË
{
M1=0;
M2=1;
M3=0;
M4=1;
delay(1000);
}
SendOneByte(r_buf);//»Ø·¢¸Ã×Ö·û
}
}
复制代码
作者:
owenliang
时间:
2018-2-26 23:30
然后。。。问问,如果要差速转弯要怎么做?
作者:
凤姐438
时间:
2018-2-27 08:17
一个轮前进 一个轮后退 这样
如果还想更好的变速 还可以 使用PWM调速
作者:
纳兰小宇
时间:
2018-2-28 09:55
分别控制两个轮旋转方向
作者:
zhuo_272
时间:
2018-3-1 10:28
你这程序就已经是差速转弯了,如果想要转弯更急,可以把一个轮后退一个前进。。如果还想再改进,可以尝试PWM调速,网上可以找到参考例程,同时你的控制器(串口通信)也要重新设置多个参数来调整转弯幅度
作者:
songofjoy
时间:
2018-3-5 10:09
我之前物联网大赛做过智能小车,他其实跟四轴飞行器是类似的,比那个简单,因为是在一个平面上运动,而四轴飞行器是立体的,PID调节不好会翻机。首先是PID调节,因为四个轮胎的转速可能是有细微差别的,需要做PID调节,才可以使小车按照规定的路线走,也就是走直线,不会原地打弯;其次是控制左右转、急转,这个只需要调节四个轮胎的转速和方向就可以啦,至于你说的急转弯,假如需要左转的话,就是左边两个轮胎的转速向后,右边两个轮胎转速向前,调节至最大就可以了;再者是避障,这里有好多算法,对于很复杂的路线图,有时候避障传感器太灵敏可能会多次避障造成死循环,所以避障算法也是很重要的模块。
作者:
147258369f
时间:
2018-3-5 21:01
可以做一个蓝牙模块,在手机上能实时控制
作者:
owenliang
时间:
2018-3-13 17:52
现在焊了一个遥控器,连上了蓝牙模块,用矩阵键盘,感觉不错
作者:
1820732662@qq.c
时间:
2018-3-13 19:18
谁都是从新手开始的
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1