精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

arduino小車詳細制作教程

454398 ? 作者:工程師吳畏 ? 2018-09-18 10:37 ? 次閱讀

第一次做,很粗糙,都是模塊的組合,變速箱用的是模型小車的,最大的難點在于變速箱和馬達齒輪的配合因為完全是不配套的兩樣東西,視頻中小車也有走外的跡象,配合是主要問題,兩塊亞克力板的孔沒有打好,在安裝上還是有瑕疵

智能小車接線

arduino小車詳細制作教程

第一刀開啟arduino智能小車DIY的第一步

重要的電機驅動擴展板到了

最初的設想想加個散熱扇

這邊用到了接口擴展板

舵機到貨,有點小貴,金屬齒的

搭建中,,,

程序DEBUG中

完成圖

變速箱和馬達

為了使用大扭力電機,改變了原有變速箱的安裝方式

代碼部分

//超聲波智能避障車程序(ARDUINO)

#include

int pinI1=5;//定義I1接口(I1-I4是l298N擴展模塊上的電機輸出接口)

int pinI2=4;//定義I2接口

int pinI3=7;//定義I3接口

int pinI4=6;//定義I4接口

int inputPin = A1; // 定義超音波信號接收腳位(插錯的后果,讀值為0,舵機不停地轉頭)

int outputPin =A0; // 定義超音波信號發射腳位

int Fspeedd = 0; // 前速

int Rspeedd = 0; // 右速

int Lspeedd = 0; // 左速

int directionn = 0; // 前=8 後=2 左=4 右=6

Servo myservo; // 設 myservo

int delay_time = 250; // 伺服馬達轉向後的穩定時間

int Fgo = 8; // 前進

int Rgo = 6; // 右轉

int Lgo = 4; // 左轉

int Bgo = 2; // 倒車

void setup()

{

Serial.begin(9600); // 定義馬達輸出腳位

pinMode(pinI1,OUTPUT);

pinMode(pinI2,OUTPUT);

pinMode(pinI3,OUTPUT);

pinMode(pinI4,OUTPUT);

pinMode(inputPin, INPUT); // 定義超音波輸入腳位

pinMode(outputPin, OUTPUT); // 定義超音波輸出腳位

myservo.attach(9); // 定義伺服馬達輸出第9腳位(PWM)

}

void advance(int a) // 前進

{

digitalWrite(pinI4,LOW);//使直流電機(右)逆時針轉

digitalWrite(pinI3,HIGH);

digitalWrite(pinI1,LOW);//使直流電機(左)順時針轉

digitalWrite(pinI2,HIGH);

delay(a * 100);

}

void turnR(int b) //右轉(雙輪)

{

digitalWrite(pinI4,HIGH);//使直流電機(右)順時針轉

digitalWrite(pinI3,LOW);

digitalWrite(pinI1,LOW);//使直流電機(左)順時針轉

digitalWrite(pinI2,HIGH);

delay(b * 100);

}

void turnL(int c) //左轉(雙輪)

{

digitalWrite(pinI4,LOW);//使直流電機(右)逆時針轉

digitalWrite(pinI3,HIGH);

digitalWrite(pinI1,HIGH);//使直流電機(左)逆時針轉

digitalWrite(pinI2,LOW);

delay(c * 100);

}

void stopp(int d) //停止

{

digitalWrite(pinI4,HIGH);//使直流電機(右)剎車

digitalWrite(pinI3,HIGH);

digitalWrite(pinI1,HIGH);//使直流電機(左)剎車

digitalWrite(pinI2,HIGH);

delay(d * 100);

}

void back(int e) //後退

{

digitalWrite(pinI4,HIGH);//使直流電機(右)順時針轉

digitalWrite(pinI3,LOW);

digitalWrite(pinI1,HIGH);//使直流電機(左)逆時針轉

digitalWrite(pinI2,LOW);

delay(e * 100);

}

void detection() //測量3個角度(0.90.179)

{

int delay_time = 250; // 伺服馬達轉向後的穩定時間

ask_pin_F(); // 讀取前方距離

if(Fspeedd 《 10) // 假如前方距離小於10公分

{

stopp(1); // 清除輸出資料

back(2); // 後退 0.2秒

}

if(Fspeedd 《 25) // 假如前方距離小於25公分

{

stopp(1); // 清除輸出資料

ask_pin_L(); // 讀取左方距離

delay(delay_time); // 等待伺服馬達穩定

ask_pin_R(); // 讀取右方距離

delay(delay_time); // 等待伺服馬達穩定

if(Lspeedd 》 Rspeedd) //假如 左邊距離大於右邊距離

{

directionn = Rgo; //向右走

}

if(Lspeedd 《= Rspeedd) //假如 左邊距離小於或等於右邊距離

{

directionn = Lgo; //向左走

}

if (Lspeedd 《 10 && Rspeedd 《 10) //假如 左邊距離和右邊距離皆小於10公分

{

directionn = Bgo; //向後走

}

}

else //加如前方不小於(大於)25公分

{

directionn = Fgo; //向前走

}

}

void ask_pin_F() // 量出前方距離

{

myservo.write(90);

digitalWrite(outputPin, LOW); // 讓超聲波發射低電壓2μs

delayMicroseconds(2);

digitalWrite(outputPin, HIGH); // 讓超聲波發射高電壓10μs,這裡至少是10μs

delayMicroseconds(10);

digitalWrite(outputPin, LOW); // 維持超聲波發射低電壓

float Fdistance = pulseIn(inputPin, HIGH); // 讀差相差時間

Fdistance= Fdistance/5.8/10; // 將時間轉為距離距離(單位:公分)

Serial.print(“F distance:”); //輸出距離(單位:公分)

Serial.println(Fdistance); //顯示距離

Fspeedd = Fdistance; // 將距離 讀入Fspeedd(前速)

}

void ask_pin_L() // 量出左邊距離

{

myservo.write(5);

delay(delay_time);

digitalWrite(outputPin, LOW); // 讓超聲波發射低電壓2μs

delayMicroseconds(2);

digitalWrite(outputPin, HIGH); // 讓超聲波發射高電壓10μs,這裡至少是10μs

delayMicroseconds(10);

digitalWrite(outputPin, LOW); // 維持超聲波發射低電壓

float Ldistance = pulseIn(inputPin, HIGH); // 讀差相差時間

Ldistance= Ldistance/5.8/10; // 將時間轉為距離距離(單位:公分)

Serial.print(“L distance:”); //輸出距離(單位:公分)

Serial.println(Ldistance); //顯示距離

Lspeedd = Ldistance; // 將距離 讀入Lspeedd(左速)

}

void ask_pin_R() // 量出右邊距離

{

myservo.write(177);

delay(delay_time);

digitalWrite(outputPin, LOW); // 讓超聲波發射低電壓2μs

delayMicroseconds(2);

digitalWrite(outputPin, HIGH); // 讓超聲波發射高電壓10μs,這裡至少是10μs

delayMicroseconds(10);

digitalWrite(outputPin, LOW); // 維持超聲波發射低電壓

float Rdistance = pulseIn(inputPin, HIGH); // 讀差相差時間

Rdistance= Rdistance/5.8/10; // 將時間轉為距離距離(單位:公分)

Serial.print(“R distance:”); //輸出距離(單位:公分)

Serial.println(Rdistance); //顯示距離

Rspeedd = Rdistance; // 將距離 讀入Rspeedd(右速)

}

void loop()

{

myservo.write(90); //讓伺服馬達回歸 預備位置 準備下一次的測量

detection(); //測量角度 並且判斷要往哪一方向移動

if(directionn == 2) //假如directionn(方向) = 2(倒車)

{

back(8); // 倒退(車)

turnL(2); //些微向左方移動(防止卡在死巷裡)

Serial.print(“ Reverse ”); //顯示方向(倒退)

}

if(directionn == 6) //假如directionn(方向) = 6(右轉)

{

back(1);

turnR(6); // 右轉

Serial.print(“ Right ”); //顯示方向(左轉)

}

if(directionn == 4) //假如directionn(方向) = 4(左轉)

{

back(1);

turnL(6); // 左轉

Serial.print(“ Left ”); //顯示方向(右轉)

}

if(directionn == 8) //假如directionn(方向) = 8(前進)

{

advance(8); // 正常前進

Serial.print(“ Advance ”); //顯示方向(前進)

Serial.print(“ ”);

}

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 智能小車
    +關注

    關注

    87

    文章

    549

    瀏覽量

    81669
  • Arduino
    +關注

    關注

    187

    文章

    6464

    瀏覽量

    186675
收藏 人收藏

    評論

    相關推薦

    Arduino手機藍牙遙控智能小車制作教程

    `今天介紹一個Arduino手機藍牙遙控智能小車制作教程先來看看視頻演示:首先給大家介紹今天要使用到的主板:一個mega32u4帶兩路直流電機驅動的整合開發板:Mboard。MBoard是一款
    發表于 04-27 11:16

    51單片機智能小車制作詳細教程

    51單片機智能小車制作詳細教程,51單片機藍牙小車(精要版)實現:通過手機與小車的藍牙通信,實現手機控制
    發表于 07-15 08:36

    51循跡小車詳細制作過程

    51循跡小車詳細制作過程,循跡小車話從哪里說起,等到你要說話,什么話都是那樣渺茫地找不到個源頭。假期來了,決定自己動手做點東西,于是剛接觸51不久的我就將眼光轉向了“簡單”的循跡
    發表于 07-21 09:46

    基于Arduino UNO的小車制作過程簡析

    材料:小車套件、Arduino UNO板子、面包板及連接線、L298N電機驅動模塊、電池盒、電池一、智能小車套件拼裝關于小車套件拼裝建議大家在做小車
    發表于 01-05 08:16

    Arduino藍牙避障小車制作過程

    文章目錄前言一、pandas是什么?二、使用步驟1.引入庫 2.讀入數據 總結前言最近學了些許Arduino知識,加之老師要求用Arduino做出一點東西用來展示,所以自己做了一個Arduino
    發表于 01-05 08:20

    arduino版的自動避障小車程序

    自動避障小車 arduino版的自動避障小車,自己寫的程序
    發表于 11-24 15:24 ?0次下載

    藍牙模塊的使用_藍牙模塊小車制作步驟

    本文主要詳解藍牙模塊的使用_藍牙模塊小車制作步驟,具體的跟隨小編來詳細的了解一下。
    的頭像 發表于 06-18 07:10 ?2.5w次閱讀
    藍牙模塊的使用_藍牙模塊<b class='flag-5'>小車</b>的<b class='flag-5'>制作</b>步驟

    用手機藍牙APP控制的基于arduino制作的藍牙小車

    本文檔的主要內容詳細介紹的是用手機藍牙APP控制的基于arduino制作的藍牙小車
    發表于 10-15 08:00 ?87次下載

    WIFI智能小車設計制作教程的詳細資料免費下載

    本文檔的主要內容詳細介紹的是WIFI智能小車設計制作教程的詳細資料免費下載。
    發表于 11-09 16:06 ?32次下載

    Arduino教程之如何使用Arduino制作一個寶寶使用的小桔燈詳細資料概述

    本文檔的主要內容詳細介紹的是Arduino教程之如何使用Arduino制作一個寶寶使用的小桔燈詳細資料概述主要內容包括了:
    發表于 01-04 18:22 ?14次下載
    <b class='flag-5'>Arduino</b>教程之如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b>一個寶寶使用的小桔燈<b class='flag-5'>詳細</b>資料概述

    Arduino智能小車底板電路原理圖免費下載

    本文檔的主要內容詳細介紹的是Arduino智能小車底板電路原理圖免費下載。
    發表于 05-13 08:00 ?18次下載
    <b class='flag-5'>Arduino</b>智能<b class='flag-5'>小車</b>底板電路原理圖免費下載

    Arduino示波器制作資料說明

    本文檔的主要內容詳細介紹的是Arduino示波器制作資料說明免費下載。
    發表于 05-13 08:00 ?35次下載
    <b class='flag-5'>Arduino</b>示波器<b class='flag-5'>制作</b>資料說明

    如何使用Arduino實現智能小車的自由行詳細程序資料免費下載

    本文檔的主要內容詳細介紹的是如何使用Arduino實現智能小車的自由行詳細程序資料免費下載。
    發表于 05-30 08:00 ?10次下載
    如何使用<b class='flag-5'>Arduino</b>實現智能<b class='flag-5'>小車</b>的自由行<b class='flag-5'>詳細</b>程序資料免費下載

    使用Arduino設計的智能小車自動避障的接線說明

    本文檔的主要內容詳細介紹的是使用Arduino設計的智能小車自動避障的接線說明。
    發表于 11-22 08:00 ?18次下載
    使用<b class='flag-5'>Arduino</b>設計的智能<b class='flag-5'>小車</b>自動避障的接線說明

    Arduino制作循跡小車教程

    Arduino制作循跡小車完全教程
    發表于 01-05 11:09 ?7次下載