找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3761|回復(fù): 12
打印 上一主題 下一主題
收起左側(cè)

做了一個(gè)智能小車,分享一下,順便問問大家改進(jìn)方法

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:285225 發(fā)表于 2018-2-26 23:14 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
單片機(jī)新手,求勿噴或者輕噴
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:285225 發(fā)表于 2018-2-26 23:15 | 只看該作者
我的思路是這樣的,分為3個(gè)模塊,電源模塊,單片機(jī)主控模塊,還有電機(jī)模塊,一開始我用了3個(gè)板子來做,結(jié)果發(fā)現(xiàn)線非常亂,于是放棄
回復(fù)

使用道具 舉報(bào)

板凳
ID:285225 發(fā)表于 2018-2-26 23:23 | 只看該作者
D:\QQPCmgr\Desktop\圖片
這個(gè)圖片怎么發(fā)。。。不會(huì)啊,這里附上圖片,之前做的3個(gè)模塊,還有一個(gè)后來集在一起的電路圖,畫了后我才知道有ad這種大神器,于是焊了第二塊板
回復(fù)

使用道具 舉報(bào)

地板
ID:285225 發(fā)表于 2018-2-26 23:28 | 只看該作者
D:\QQPCmgr\Desktop\圖片
這個(gè)是小車做好的圖片,芯片也在上面了,用了18650電池,lm317,stc89c52rc,l293d,hc05藍(lán)牙芯片
回復(fù)

使用道具 舉報(bào)

5#
ID:285225 發(fā)表于 2018-2-26 23:30 | 只看該作者
  1. #include <reg52.h>

  2. typedef unsigned char u8;
  3. typedef unsigned int u16;
  4. u8 r_buf; //&Agrave;&para;&Ntilde;&Agrave;&frac12;&Oacute;&Ecirc;&Otilde;&micro;&frac12;&micro;&Auml;×&Ouml;·&ucirc;&acute;&aelig;&acute;&cent;&raquo;&ordm;&sup3;&aring;&Ccedil;&oslash;
  5. sbit M1 = P0^1;
  6. sbit M2 = P0^2;
  7. sbit M3 = P0^4;
  8. sbit M4 = P0^5;
  9. sbit state = P3^6; //&Agrave;&para;&Ntilde;&Agrave;&Aacute;&not;&Iacute;¨&micro;&Auml;×&acute;&Igrave;&not;±ê&Ouml;&frac34;&Icirc;&raquo;
  10. void delay(u16 z) //&Ntilde;&Oacute;&sup3;&Ugrave;&ordm;&macr;&Ecirc;&yacute;
  11. {  
  12.         u16 x,y;  
  13.         for(x=z;x>0;x--)   
  14.         for(y=125;y>0;y--);
  15. }
  16. void InitUART() //&acute;&reg;&iquest;&Uacute;&sup3;&otilde;&Ecirc;&frac14;&raquo;&macr;9600
  17.         {
  18. //&sup3;&otilde;&Ecirc;&frac14;&raquo;&macr;&acute;&reg;&iquest;&Uacute;&para;¨&Ecirc;±&AElig;÷9600
  19.                 TMOD = 0x20;
  20.                 PCON = 0x00;
  21.                 SCON = 0x50;   
  22.                 TH1 = 0xFD;
  23.                 TL1 = 0xFD;
  24.                 TR1 = 1;
  25.                 ES = 1;
  26.                 EA = 1;
  27.         }
  28. void SendOneByte(unsigned char c) //·&cent;&Euml;&Iacute;×&Ouml;·&ucirc;&ordm;&macr;&Ecirc;&yacute;
  29. {
  30.     SBUF = c;
  31.     while(!TI);
  32.     TI = 0;
  33. }
  34. void main(void)        //&sup3;&otilde;&Ecirc;&frac14;&raquo;&macr;&micro;&ccedil;&raquo;ú
  35. {
  36.     InitUART();
  37.         M1 = 0;
  38.         M2 = 0;
  39.         M3 = 0;  
  40.         M4 = 0;
  41.         r_buf = '2';
  42. }
  43. void UARTInterrupt(void) interrupt 4 //&acute;&reg;&iquest;&Uacute;&frac12;&Oacute;&Ecirc;&Otilde;×&Ouml;·&ucirc;
  44. {
  45.     if(RI)
  46.     {
  47.         RI = 0;
  48.         //add your code here!
  49.                 r_buf = SBUF;
  50.         if(r_buf == '1')//&Egrave;&ccedil;&sup1;&ucirc;&Icirc;&ordf;×&Ouml;·&ucirc;&iexcl;&reg;0&iexcl;&macr;&pound;&not;&Ocirc;ò&Ouml;&Ccedil;&Otilde;&Iuml;&ETH;&iexcl;&sup3;&micro;&Ccedil;°&frac12;&oslash;
  51.         {
  52.                    M1=1;                                   
  53.                    M2=0;
  54.                    M3=1;
  55.                    M4=0;
  56.                 delay(1000);
  57.         }
  58.         if(r_buf == '2')//&Egrave;&ccedil;&sup1;&ucirc;&Icirc;&ordf;×&Ouml;·&ucirc;&iexcl;&reg;2&iexcl;&macr;&pound;&not;&Ocirc;ò&Ouml;&Ccedil;&Otilde;&Iuml;&ETH;&iexcl;&sup3;&micro;×ó×&ordf;
  59.         {
  60.                    M1=0;                                   
  61.                    M2=0;
  62.                    M3=1;
  63.                    M4=0;
  64.                 delay(1000);
  65.         }
  66.         if(r_buf == '3')//&Egrave;&ccedil;&sup1;&ucirc;&Icirc;&ordf;×&Ouml;·&ucirc;&iexcl;&reg;3&iexcl;&macr;&pound;&not;&Ocirc;ò&Ouml;&Ccedil;&Otilde;&Iuml;&ETH;&iexcl;&sup3;&micro;&Oacute;&Ograve;×&ordf;
  67.         {
  68.                    M1=1;                                   
  69.                    M2=0;
  70.                    M3=0;
  71.                    M4=0;
  72.                 delay(1000);
  73.         }
  74.         if(r_buf == '4')//&Egrave;&ccedil;&sup1;&ucirc;&Icirc;&ordf;×&Ouml;·&ucirc;&iexcl;&reg;1&iexcl;&macr;&pound;&not;&Ocirc;ò&Ouml;&Ccedil;&Otilde;&Iuml;&ETH;&iexcl;&sup3;&micro;&ordm;ó&Iacute;&Euml;
  75.         {
  76.                    M1=0;                                   
  77.                    M2=1;
  78.                    M3=0;
  79.                    M4=1;
  80.                 delay(1000);
  81.         }
  82.            SendOneByte(r_buf);//&raquo;&Oslash;·&cent;&cedil;&Atilde;×&Ouml;·&ucirc;
  83.     }
  84. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

6#
ID:285225 發(fā)表于 2018-2-26 23:30 | 只看該作者
然后。。。問問,如果要差速轉(zhuǎn)彎要怎么做?
回復(fù)

使用道具 舉報(bào)

7#
ID:69072 發(fā)表于 2018-2-27 08:17 | 只看該作者
一個(gè)輪前進(jìn) 一個(gè)輪后退 這樣
如果還想更好的變速 還可以 使用PWM調(diào)速
回復(fù)

使用道具 舉報(bào)

8#
ID:272345 發(fā)表于 2018-2-28 09:55 | 只看該作者
分別控制兩個(gè)輪旋轉(zhuǎn)方向
回復(fù)

使用道具 舉報(bào)

9#
ID:286274 發(fā)表于 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)彎幅度
回復(fù)

使用道具 舉報(bào)

10#
ID:287622 發(fā)表于 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),所以避障算法也是很重要的模塊。
回復(fù)

使用道具 舉報(bào)

11#
ID:287936 發(fā)表于 2018-3-5 21:01 | 只看該作者
可以做一個(gè)藍(lán)牙模塊,在手機(jī)上能實(shí)時(shí)控制
回復(fù)

使用道具 舉報(bào)

12#
ID:285225 發(fā)表于 2018-3-13 17:52 | 只看該作者
現(xiàn)在焊了一個(gè)遙控器,連上了藍(lán)牙模塊,用矩陣鍵盤,感覺不錯(cuò)
回復(fù)

使用道具 舉報(bào)

13#
ID:225288 發(fā)表于 2018-3-13 19:18 | 只看該作者
誰都是從新手開始的
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表