Arduino-跟隨小車

2021-01-10 沛華測控LabVIEW課程

沛華LabVIEW基礎課程|第47講

『LabVIEW+Arduino』

跟隨小車

看到這個標題的小夥伴是不是覺得有些熟悉?

跟隨效果的小車之前我們用LabVIEW簡單實現過-LabVIEW+ Arduino之「跟屁蟲」小車(←←←點擊藍字可回顧);這期內容我們在」跟屁蟲「小車的基礎上加以改進,具體請看以下視頻。

請看視頻

實物接線圖

實物接線圖

這期內容用到的材料如下:

1.紅外測距傳感器模塊*2;

2.Arduino UNO開發板;

3.麵包線、杜班線若干;

4.數據線;

5.小車套件;

6.電機驅動模塊;

7.升壓模塊;

8.3.7V鋰電池;

紅外測距傳感器模塊

紅外測距傳感器&Arduino的接線分別為:

Left→AI0;

Right→AI1。

電機&Arduino的接線分別為:

左電機→DO5;

左電機→DO6;

右電機→DO10;

右電機→DO11。

Arduino Code

向上滑動查看Arduino原始碼

#define Samples 10

#define UpperLimit 2.9

#define LowerLimit 1.4

boolean blinking;

float Sensor_volt_Left = 0;

float Sensor_volt_Right = 0;

void setup() {

Serial.begin(2000000);

pinMode(5, OUTPUT);

pinMode(6, OUTPUT);

pinMode(10, OUTPUT);

pinMode(11, OUTPUT);

pinMode(12, OUTPUT);

pinMode(13, OUTPUT);

}

void loop() {

Acquire();

if (CheckStop()){

Stop();

blinking=!blinking;

if(long((millis()/100))%2==0){

digitalWrite(12, blinking);

digitalWrite(13, blinking);

}

}

else {

if (CheckTurnLeft())

{

digitalWrite(12, 1);

digitalWrite(13, 0);

}

else {

digitalWrite(12, 0);

}

if (CheckTurnRight()) {

digitalWrite(12, 0);

digitalWrite(13, 1);

}else {

digitalWrite(13, 0);

}

if (CheckTurnLeft() == 1 && CheckTurnRight() == 0)

{

TurnLeft();

}

else if (CheckTurnLeft() == 0 && CheckTurnRight() == 1) {

TurnRight();

}

else if (CheckTurnLeft() == 1 && CheckTurnRight() == 1) {

GoForward();

}

else {

Stop();

}

}

}

void GoForward() {

digitalWrite(5, 0);

digitalWrite(6, 1);

digitalWrite(10, 1);

digitalWrite(11, 0);

}

void GoBack() {

digitalWrite(5, 1);

digitalWrite(6, 0);

digitalWrite(10, 0);

digitalWrite(11, 1);

}

void TurnLeft() {

digitalWrite(5, 1);

digitalWrite(6, 0);

digitalWrite(10, 1);

digitalWrite(11, 0);

}

void TurnRight() {

digitalWrite(5, 0);

digitalWrite(6, 1);

digitalWrite(10, 0);

digitalWrite(11, 1);

}

void Stop() {

digitalWrite(5, 0);

digitalWrite(6, 0);

digitalWrite(10, 0);

digitalWrite(11, 0);

}

void Acquire() {

float Sum_A0 = 0;

float Sum_A1 = 0;

for (int i = 0; i < Samples; i++)

{

Sum_A0 += analogRead(0) / 204.8;

Sum_A1 += analogRead(1) / 204.8;

delayMicroseconds(10);

}

Sensor_volt_Left = Sum_A0 / Samples;

Sensor_volt_Right = Sum_A1 / Samples;

}

boolean CheckTurnLeft() {

return (Sensor_volt_Left > LowerLimit); //大於LowerLimit則表明檢測到物體

// return (Sensor_volt_Left > LowerLimit) && (Sensor_volt_Left < UpperLimit);

}

boolean CheckTurnRight() {

return (Sensor_volt_Right > LowerLimit);//大於LowerLimit則表明檢測到物體

//return (Sensor_volt_Right > LowerLimit) && (Sensor_volt_Right < UpperLimit) ;

}

boolean CheckStop() {

return Sensor_volt_Left > 2.8;

// return (Sensor_volt_Left > 3.2) && (Sensor_volt_Right> 2.5);

// return ((Sensor_volt_Left > 2.2) && (Sensor_volt_Left < 2.5)) &&((Sensor_volt_Right > 1.9) && (Sensor_volt_Right < 2.1));

}

以上就是今天的內容,老規矩:對本期內容感興趣的小夥伴後臺發送阿拉伯數字「47」獲取源碼研究~

相關焦點

  • 十個中文例程教會你輕鬆上手製作Arduino智能小車
    Arduino簡介本文引用地址:http://www.eepw.com.cn/article/201706/348117.htmArduino 是一款便捷靈活、方便上手的開源電子原型平臺,包含硬體(各種型號的arduino板)和軟體(arduino IDE)。
  • [新課推薦]人工智慧科普活動資源包配套課程Micro:bit+ Arduino...
    課程的第一章會介紹arduino控制板、arduino編程軟體的使用以及簡單的基礎傳感器的使用。第二章主要講程序的邏輯關係以及複雜傳感器的應用。第三章主要講課程的綜合應用,通過搭建一個小車、編寫程序實現小車不同的功能。通過本課程的學習,大家可以掌握arduino編程以及arduino開源硬體的使用。
  • arduino從零開始(4)PWM與呼吸燈
    在arduino中,我們常用PWM來驅動LED的暗亮程度,電機的轉速等。我們知道,在數字電路中,電壓信號是離散的: 不是 0(0V)  就是 1(5V或者3.3V), 那麼如何輸出介於 0v 和  5V之間的某個電壓值呢?簡單來說就是在一個周期內讓電壓在0V與5V之間快速切換,根據5V的佔比便可以模擬出0v到5v之間的不同電壓。
  • 數碼管與ARDUINO 開發板的連接使用
    數碼管模塊與arduino連接示意圖接線說明:數碼管的VCC –arduino上的5V數碼管的GND -- arduino上的GND數碼管的DS -- arduino上的A0數碼管的ST_CP -- arduino上的A1數碼管的SH_CP -- arduino上的A2
  • 萬能超的arduino學習日記(一)
    本科時候有接觸過arduino,但是由於導師方向原因,轉做了3D列印和動力學分析,所以這裡是啥都會一點點的萬能超,希望能夠和大家一起學習討論。最近由於興趣原因,決定重新撿起arduino,所以決定寫這個萬能超的arduino學習日記跟大家一起重新學習。最開始的入門學習,我選擇跟B站太極創客的學習視頻,因為有基礎,選擇二倍速觀看學習。
  • 智能家居控制-arduino紅外遙控控制燈
    上一篇文章介紹了 arduino接受智能家具系統中的紅外遙控的解碼在此基礎上,今天就做一個遙控器控制的燈,我們可以將燈換成繼電器,這樣的話就實現了,用紅外遙控機,控制家裡的電器開關,比如燈,電視,插座,洗衣機等接線圖幾原理圖如上,一個板子一個紅外接收器,一個燈(可以換成你想控制的任何設備
  • Arduino使用光敏電阻實驗
    今天我來用光敏電阻加arduino板子來實現光控燈。 工具/原料 arduino板子 光敏電阻 電阻 LED燈 麵包板
  • 亞博智能JETBOT機器人小車怎麼樣?亞博JETBOT機器人使用評測
    |||— —|||開箱展示對於這個JETBOT機器人小車我可是充滿了期待,收到了還是蠻激動的,方形的包裝盒採用了草綠色和乳白色的撞色設計,正面印著有小車的外觀,左側則是「JETBOT」的字樣。打開包裝之後,內部是組成小車的各種零件,其中包括電機、兩個舵機、小車底盤、小車履帶、OLED顯示屏、遙控手柄、攝像頭等等,值得一提的是它還採用了全新的B01主板,兼容性更好,更加結實耐用。
  • 一文看懂arduino驅動uln2003操作步進電機的方法
    打開APP 一文看懂arduino驅動uln2003操作步進電機的方法 發表於 2018-05-30 09:34:32   arduino驅動uln2003操作步進電機的方法   1、網上買的步進電機,很多接線順序都不對。
  • 用Arduino讀取霍爾流量傳感器的脈衝數
    安裝好開發環境,接好線,選擇好通道,點亮板子,連接霍爾流量傳感器至arduino板子,黃線接pin 2.紅色接5V,黑色接GND.把霍爾流量傳感器接在管路上接好小水泵都接好之後,打開水泵開關,水流流過,監視窗口就會顯示脈衝數,每秒鐘更新一次。
  • 如何使用Qt為arduino製作圖形界面
    如何使用Qt為arduino製作圖形界面 網絡整理 發表於 2019-11-13 11:11:39 步驟1:安裝Qt
  • 大牛輕鬆帶你玩轉Arduino智能硬體六-arduino入門:LED流水燈
    (六)arduino入門:LED流水燈    一、本節介紹  在本課中,您將進行一個簡單但有趣的實驗 - 使用LED來創建流動的LED燈。
  • LabVIEW+Arduino之四位數碼管顯示
    charScan[] = {0x08, 0x04, 0x02, 0x01}; //位選所對應的掃描碼,對應從pin11掃描到pin8;voidsetup() {DDRB =0xff; // 設置 PORTB為輸出,對應arduino
  • 敢碰就報警的Arduino Yún系統
    打開瀏覽器,輸入http://arduino.local,然後即能看到Arduino網頁界面了。如果一切操作正常,打開SSH會話。$ sshroot@arduino.local默認密碼是:「arduino」。
  • 大馬拉小車的節能問題
    事實上,在許多場合,還存在著大馬拉小車的現象,在這一方面,還大有潛力。本文專就大馬拉小車的節能技巧問題作一探討。1 大馬拉小車的基本分析當負載所需的功率遠小於電動機的額定功率,或者負載折算到電動機軸上的轉矩遠小於電動機的額定轉矩時,通常稱之為大馬拉小車。1.1 大馬拉小車時的反電動勢電動機定子側的電動勢平衡方程
  • 慣性小車—探索慣性飛輪的作用以及慣性對樂高小車行駛速度的影響
    點這裡可以▲▲▲▲關注鄧老師 今天帶領各位小朋友製作一輛應用慣性的小車,主要目標是認識慣性和了解慣性飛輪的作用,在這裡看到慣性和飛輪
  • 小犀牛來到他們的小車旁邊,小車的顏色和自己身上的顏色差不多
    小犀牛來到他們的小車旁邊,小車的顏色和自己身上的顏色差不多犀牛,體肥蠢笨,四肢矮小,巨大的頭部上頂有一條或兩條犀牛角,全身披以盔甲似的厚皮,雙眼很小,奔馳速度快,通常都是獨自日子,但會有牛椋鳥相伴,喜愛打滾,歸於草食性動物在克魯格國家公園內,一支動物維護基地的工作人員在巡查
  • 如何用礦泉水瓶子製作小車!
    一個手工愛好者聚集地今天教大家用礦泉水瓶子製作一個小車。創意的手工DIY作品。01DIY材料02製作教程1首先,用DIY小刀將水瓶子切掉一個口子(注意不要割到手),用小鑽子在瓶子上下端的一邊分別鑽出2個小孔,用來 穿過小車車軸。
  • 零跑T03/哪吒V/歐拉黑貓,同級別電動小車到底誰最強?
    今天小編就選取了A00級電動小車中的三款代表車型,分別是歐拉黑貓、哪吒V以及零跑T03,來看看三款車誰的性價比更高。雖然很多用戶購買A00級電動小車主要是用於城市代步,但偶爾也會有城際出行的需求,如果續航太弱,充電次數就會很頻繁,而且也不敢開太遠,用車便利性大打折扣,所以純電小車的續航是用戶比較關注的方面。
  • agv小車設計的內部結構圖解,agv小車工作原理_定位方法_特點及引導...
    當接收到物料搬運指令後,控制器系統就根據所存儲的運行地圖和AGV小車當前位置及行駛方向進行計算、規劃分析,選擇最佳的行駛路線,自動控制AGV小車的行駛和轉向,當AGV到達裝載貨物位置並準確停位後,移載機構動作,完成裝貨過程。然後AGV小車起動,駛向目標卸貨點,準確停位後,移載機構動作,完成卸貨過程,並向控制系統報告其位置和狀態。隨之AGV小車起動,駛向待命區域。