日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

保姆级的Arduino循迹小车研发日志及一些坑(其中包含L298N、Arduino、TCRT5000以及1:48的TT电机的使用)

發布時間:2023/12/9 编程问答 77 豆豆
生活随笔 收集整理的這篇文章主要介紹了 保姆级的Arduino循迹小车研发日志及一些坑(其中包含L298N、Arduino、TCRT5000以及1:48的TT电机的使用) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

保姆級的Arduino循跡小車研發日志及一些坑

  • 循跡小車的研發日志
  • 技術設計路線
    • 硬件部分
      • 簡單的TCRT5000
      • 玄妙的L298N
    • 安裝部分
    • 軟件部分
      • 結語
      • 成品圖:
      • 完整代碼

循跡小車的研發日志

開發要求如下:

引言:為什么會用到米思齊這個青少年編程軟件是有兩個原因:

  • 接到了某所小學的研發項目需求,研發成果給小學生參加無人車循跡比賽。
  • 實驗室的師弟師妹并不是所有都有編程基礎,因此米思齊可以作為簡單的編程引入課程。

  • 技術設計路線

  • 首先我認為 TCRT5000紅外循跡傳感器 是最重要的,有兩個需要考慮的點,一個是數量,另一個則是排放方式
  • 其次我認為地圖的走勢也是很重要的,因此我手繪了一副地圖并且分析了無人車的走向;(可以減少很多無用功)
  • 最后就是 L298N 和 Arduino UNO的接線和應用。(沒想到他是最麻煩的!!!

  • 下面附上我的大致思路:(中途有所修改)
    在開發過程中,看到師弟師妹的做法有用排列的方法來實現的,也有用分情況觸發來實現的,也不失為一種好辦法。(排列指的是列出24=16,16種可能性之后再一個個加判斷條件;分情況觸發指的是用一些特殊的位置進行判斷,然后分段分析地圖。)
    但下面為我目前想到最簡單的代碼,調用盡量少的函數、盡量少的判斷條件


    硬件部分

    簡單的TCRT5000


    TCRT5000紅外循跡傳感器的發射二極管可以不斷的發射紅外線,通過檢測反射回來的紅外線的強大進行判斷是否處于黑線上。當指示燈一直處于熄滅狀態也就是沒有檢測到反射,即檢測到黑色,此時模塊輸出端為高電平1;反之,指示燈點亮時為檢測到反射,此時模塊輸出端為低電平0,即檢測到白色。
    需要3.3-5V供電。
    資料下載鏈接:
    https://pan.baidu.com/s/1Dqri3AanZbPhnMMCU1HZRQ
    提取碼:1234
    在本設計路線中,用到四個TCRT5000,且排放方式在簡易裝配圖中有畫出。


    玄妙的L298N


    L298N作為直流步進電機驅動模塊的主驅動芯片,所以該模塊就簡稱為L298N了,該模塊內置78M0通過驅動電源部分取電工作,因此當大于12V驅動電壓是,應該使用外置的5V邏輯供電。

    在產品介紹中也看到了,L298N不僅價格親民,接線也很簡單,邏輯也沒什么毛病,那為什么說L298N這個直流電機驅動模塊玄妙呢?大致分成以下幾個說法:

  • 電機有震動的聲音但不轉動
  • 電機沒有震動的聲音且不轉動
  • 通電后測電壓電壓一直下降
  • 一只輪子不轉另一只轉動
  • 兩只輪子轉速有差別
  • 解決方法如下:

  • 電壓不足,換電池,L298N雖然寫的是5V可以供電,但會出現供電不足的問題,因為Arduino板也占用了電壓,相當于串聯分壓。經過測試8.5-9V電機都能正常工作,而且轉速不會特別低。
  • 估計L298N的ENA/ENB出現問題,可以采用ENA/ENB短接,然后再IN1/IN3上面輸入PWM信號,一樣可以實現PWM控制
  • L298N與Arduino短接,可能是接線的時候誤觸導致,把所有的線都拔了重新插一次,如果還有上述問題,L298N本身串聯了大容量的電容器,隨著充電過程,電路充滿電電路沒有電流通過,導致電壓降為零。
  • 接線松掉,考慮3種情況,IN1/ENA沒有接好;Arduino接IN1/ENA的線沒接好;代碼有問題,可以試著用我下面提供的PWM代碼測試,如果兩個輪子都轉動,那就是代碼出現問題。
  • L298N的H橋的電阻電容大小不是一樣的,因此會有差別,倘若電機不太好,差別會更明顯,建議用電壓表來測試轉速*(PWM控制其實就是控制電壓,具體可以看公眾號發布的文章。)*
    如果只是平時自己玩玩這個小車,千萬不要這么傻用單電源單驅動的方式,直接雙電源雙驅動,電壓穩定之余PWM調節轉換后也是一樣的轉速!!
  • 資料下載鏈接:
    https://pan.baidu.com/s/1teVnq1LJ3VTQ55Lj8gTnFg
    提取碼:1234


    安裝部分


    掏個洞,走線更好看。

    輪子是外八的,更穩定一些。原因如下:



    千萬注意!!!!!L298N要用一個木板跟Arduino隔開!!!不然可能短路!!!


    軟件部分

    在通過分析比賽賽道后了解到全部彎道都是左轉,因此我們將代碼分成4種主要判斷條件。
    其中直行最為關鍵,因此我們用3個主要的邏輯判斷是否在走直線,并且他能走完直線的巡線。

    L==0 && R==0;//識別到白色,直走; L==1 && R==0;//中間靠左的傳感器識別到黑線微微向左邊調整; L==0 && R==1;//中間靠右的傳感器識別到黑線微微向右邊調整;

    寫入新的函數,分別是直行,直行左轉,直行右轉。

    void Forward() {analogWrite(5,120);analogWrite(6,140);digitalWrite(4,LOW);//我采用的是IN1 IN3作為PWM輸入,沒有用到ENA ENBdigitalWrite(7,LOW); } void Forwardturnleft() {analogWrite(5,40);analogWrite(6,120);digitalWrite(4,LOW);digitalWrite(7,LOW); } void Forwardturnright() {analogWrite(5,120);analogWrite(6,40);digitalWrite(4,LOW);digitalWrite(7,LOW); }

    當出現到十字路口時邏輯也應該判斷為直走,因此我們需要加入判斷全黑時直行。

    LL==1 && L==1 && R==1 && RR==1;//識別到全黑,直走;

    縱觀全圖,可以發現:幾乎每一個十字路口即(全黑)都是一次重要的轉折點。因此我們可以將全黑的情況設置為計數;加入一個新的判斷函數即可

    void Timer() {a=a+1;Serial.print(a);delay(300); }

    上訴的幾個函數并不能完美的通過直角彎,因此加入新判斷:

    LL == 1//大左轉

    進入直角彎道后,會進入到虛線部分,虛線部分會因為我們前面程序檢測到全白直行,導致沖出賽道,因此我們需要在這時候進入新的循環,也就是可以通過前面函數Timer中跳轉進入循環。
    且設置全白為微右調整,同時以防車子左微調會出去,可以在左微調時加入延時;
    代碼如下:

    if (a == 5) {if (L == 0 && R == 0) {Forwardturnright2();}if ((L == 1 && R == 0) && LL == 0) {Forwardturnleft2();delay(150);}if (((L == 0 && R == 1) && RR == 0 || (L == 0 && R == 1) && RR == 1) || (L == 0 && R == 0) && RR == 1) {Forwardturnright2();}if (LL == 1) {turnleft();}}

    在最后一個十字路口我加了一個加速(可加可不加)

    if(a==6){if(L==0 && R==0)//均未檢測到黑線Speedup();if(L==1 && R==0 && LL==0)//左側檢測到黑線,右側沒有,所以要左轉Forwardturnleft();if(L==0 && R==1 && RR==0)//右側檢測到黑線,左側沒有,所以右轉Forwardturnright(); }

    結語

    Emmm小車的結構、代碼可能都不是最優的。希望各位大佬可以指正修改,也歡迎大家關注我們的公眾號,一起分享關于開源機器人的項目和見解!!

    成品圖:

    完整代碼

    提取碼:open
    如果崩了請聯系我

    總結

    以上是生活随笔為你收集整理的保姆级的Arduino循迹小车研发日志及一些坑(其中包含L298N、Arduino、TCRT5000以及1:48的TT电机的使用)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。