久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3656|回復: 12
打印 上一主題 下一主題
收起左側

做了一個智能小車,分享一下,順便問問大家改進方法

[復制鏈接]
跳轉到指定樓層
樓主
ID:285225 發表于 2018-2-26 23:14 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機新手,求勿噴或者輕噴
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

5#
ID:285225 發表于 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. }
復制代碼
回復

使用道具 舉報

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

使用道具 舉報

7#
ID:69072 發表于 2018-2-27 08:17 | 只看該作者
一個輪前進 一個輪后退 這樣
如果還想更好的變速 還可以 使用PWM調速
回復

使用道具 舉報

8#
ID:272345 發表于 2018-2-28 09:55 | 只看該作者
分別控制兩個輪旋轉方向
回復

使用道具 舉報

9#
ID:286274 發表于 2018-3-1 10:28 | 只看該作者
你這程序就已經是差速轉彎了,如果想要轉彎更急,可以把一個輪后退一個前進。。如果還想再改進,可以嘗試PWM調速,網上可以找到參考例程,同時你的控制器(串口通信)也要重新設置多個參數來調整轉彎幅度
回復

使用道具 舉報

10#
ID:287622 發表于 2018-3-5 10:09 | 只看該作者
我之前物聯網大賽做過智能小車,他其實跟四軸飛行器是類似的,比那個簡單,因為是在一個平面上運動,而四軸飛行器是立體的,PID調節不好會翻機。首先是PID調節,因為四個輪胎的轉速可能是有細微差別的,需要做PID調節,才可以使小車按照規定的路線走,也就是走直線,不會原地打彎;其次是控制左右轉、急轉,這個只需要調節四個輪胎的轉速和方向就可以啦,至于你說的急轉彎,假如需要左轉的話,就是左邊兩個輪胎的轉速向后,右邊兩個輪胎轉速向前,調節至最大就可以了;再者是避障,這里有好多算法,對于很復雜的路線圖,有時候避障傳感器太靈敏可能會多次避障造成死循環,所以避障算法也是很重要的模塊。
回復

使用道具 舉報

11#
ID:287936 發表于 2018-3-5 21:01 | 只看該作者
可以做一個藍牙模塊,在手機上能實時控制
回復

使用道具 舉報

12#
ID:285225 發表于 2018-3-13 17:52 | 只看該作者
現在焊了一個遙控器,連上了藍牙模塊,用矩陣鍵盤,感覺不錯
回復

使用道具 舉報

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品视频网 | 欧美日韩在线免费观看 | 亚洲最大av网站 | 亚洲一区二区三区免费在线观看 | 99免费在线视频 | 国产成人99久久亚洲综合精品 | 亚洲网址在线观看 | 亚洲不卡在线观看 | 日韩亚洲一区二区 | 嫩草视频免费 | 黑人粗黑大躁护士 | 91在线视频一区 | 久久精品中文字幕 | 国产精品免费一区二区三区四区 | 欧美高清成人 | 日韩av成人在线观看 | 国产日韩欧美91 | 99视频在线| 亚洲欧美日韩久久久 | 亚洲视频在线看 | 国产一区在线视频 | 亚洲狠狠 | 欧美一a | 日韩欧美中文字幕在线观看 | 亚洲一区成人 | 一区二区三区日韩 | a欧美 | 精品精品视频 | 久草在线青青草 | 野狼在线社区2017入口 | 羞羞网站在线观看 | 国产乱码精品1区2区3区 | 毛片a| 色婷婷综合久久久中字幕精品久久 | 久久综合久久自在自线精品自 | 成人毛片网 | 亚洲国产一区二区三区在线观看 | 午夜欧美一区二区三区在线播放 | 欧美亚洲成人网 | 一区二区中文字幕 | 亚洲视频在线观看一区二区三区 |