標(biāo)題:
做了一個(gè)智能小車,分享一下,順便問問大家改進(jìn)方法
[打印本頁(yè)]
作者:
owenliang
時(shí)間:
2018-2-26 23:14
標(biāo)題:
做了一個(gè)智能小車,分享一下,順便問問大家改進(jìn)方法
單片機(jī)新手,求勿噴或者輕噴
作者:
owenliang
時(shí)間:
2018-2-26 23:15
我的思路是這樣的,分為3個(gè)模塊,電源模塊,單片機(jī)主控模塊,還有電機(jī)模塊,一開始我用了3個(gè)板子來做,結(jié)果發(fā)現(xiàn)線非常亂,于是放棄
作者:
owenliang
時(shí)間:
2018-2-26 23:23
D:\QQPCmgr\Desktop\圖片
這個(gè)圖片怎么發(fā)。。。不會(huì)啊,這里附上圖片,之前做的3個(gè)模塊,還有一個(gè)后來集在一起的電路圖,畫了后我才知道有ad這種大神器,于是焊了第二塊板
作者:
owenliang
時(shí)間:
2018-2-26 23:28
D:\QQPCmgr\Desktop\圖片
這個(gè)是小車做好的圖片,芯片也在上面了,用了18650電池,lm317,stc89c52rc,l293d,hc05藍(lán)牙芯片
作者:
owenliang
時(shí)間:
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);//»Ø·¢¸Ã×Ö·û
}
}
復(fù)制代碼
作者:
owenliang
時(shí)間:
2018-2-26 23:30
然后。。。問問,如果要差速轉(zhuǎn)彎要怎么做?
作者:
鳳姐438
時(shí)間:
2018-2-27 08:17
一個(gè)輪前進(jìn) 一個(gè)輪后退 這樣
如果還想更好的變速 還可以 使用PWM調(diào)速
作者:
納蘭小宇
時(shí)間:
2018-2-28 09:55
分別控制兩個(gè)輪旋轉(zhuǎn)方向
作者:
zhuo_272
時(shí)間:
2018-3-1 10:28
你這程序就已經(jīng)是差速轉(zhuǎn)彎了,如果想要轉(zhuǎn)彎更急,可以把一個(gè)輪后退一個(gè)前進(jìn)。。如果還想再改進(jìn),可以嘗試PWM調(diào)速,網(wǎng)上可以找到參考例程,同時(shí)你的控制器(串口通信)也要重新設(shè)置多個(gè)參數(shù)來調(diào)整轉(zhuǎn)彎幅度
作者:
songofjoy
時(shí)間:
2018-3-5 10:09
我之前物聯(lián)網(wǎng)大賽做過智能小車,他其實(shí)跟四軸飛行器是類似的,比那個(gè)簡(jiǎn)單,因?yàn)槭窃谝粋(gè)平面上運(yùn)動(dòng),而四軸飛行器是立體的,PID調(diào)節(jié)不好會(huì)翻機(jī)。首先是PID調(diào)節(jié),因?yàn)樗膫(gè)輪胎的轉(zhuǎn)速可能是有細(xì)微差別的,需要做PID調(diào)節(jié),才可以使小車按照規(guī)定的路線走,也就是走直線,不會(huì)原地打彎;其次是控制左右轉(zhuǎn)、急轉(zhuǎn),這個(gè)只需要調(diào)節(jié)四個(gè)輪胎的轉(zhuǎn)速和方向就可以啦,至于你說的急轉(zhuǎn)彎,假如需要左轉(zhuǎn)的話,就是左邊兩個(gè)輪胎的轉(zhuǎn)速向后,右邊兩個(gè)輪胎轉(zhuǎn)速向前,調(diào)節(jié)至最大就可以了;再者是避障,這里有好多算法,對(duì)于很復(fù)雜的路線圖,有時(shí)候避障傳感器太靈敏可能會(huì)多次避障造成死循環(huán),所以避障算法也是很重要的模塊。
作者:
147258369f
時(shí)間:
2018-3-5 21:01
可以做一個(gè)藍(lán)牙模塊,在手機(jī)上能實(shí)時(shí)控制
作者:
owenliang
時(shí)間:
2018-3-13 17:52
現(xiàn)在焊了一個(gè)遙控器,連上了藍(lán)牙模塊,用矩陣鍵盤,感覺不錯(cuò)
作者:
1820732662@qq.c
時(shí)間:
2018-3-13 19:18
誰都是從新手開始的
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1