循跡

L298N 驅動 Arduino 小車

紅外線循跡感測模組 TCRT 5000


本專題結合 Arduino 小車和紅外線循跡感測模組 (TCRT 5000),做一台能夠循著黑色軌跡走的車子 。

有關組裝一台 L298N 驅動的 Arduino 車子,請參閱本網站專題: Arduino 自走車組裝與測試

紅外線循跡感測模組,有一個紅外線發射器(transmitter),和一個紅外線接收器(receiver)。當紅外線照到黑色物體時,會全部被吸收,沒有反射。反之,當紅外線照到白色物體時,白色會反射所有紅外線。當感測模組接收器,接受到白色反射回來的紅外線時,模組送回 Arduino 的訊號為"1";當感測器模組沒有收到任何反射回來的紅外線時,則送回 Arduino 的訊號為“0”。如此,Arduino 小車便能分辨黑色和白色,藉著左轉或右轉調整方向,使車子保持在固定的軌跡上行走。

先看看成果影片:

材料和接線圖

Arduino 自走車或智能車套裝組件 x1

L298N 馬達驅動模組 x1

Arduino UNO x1

紅外線循跡感測模組 TCRT 5000 x2

銅柱、螺絲 數個

小麵包板 x1

9V 電池 x1

9V 電池帽扣 x1

杜邦線 一公一母 數條

電線數條

直流馬達 連接 L298N OUT1, OUT2, OUT3, OUT4 。如直流馬達電線太長,可纏繞電線在車體上面,以免電線外露在車體外,車子行動時卡到東西。

L298N IN1, IN2, IN3, IN4 分別連接 Arduino pin 11, 10, 6, 5 。

L298N 5V 連到麵包板,再由麵包板接回 Arduino 5V 。如此,Arduino 在沒有電腦 USB 連接的情況下,其電源由L298N 來提供。

L298N GND 連接 Arduino GND 。如此,L298N 和 Arduino 兩個電路板,就能在同一個 GND 基準下,計算電位。

電池扣紅線 9V 連接 L298N +12V

電池扣黑線連接 L298N GND

紅外線循跡感測模組 用銅柱鎖在車子前研下端,左右各一個。

感測器的紅外線接收器及發射器,不要距桌面太遠,以免感測不到黑白兩色 。

VCC 接 Arduino 5V

GND 接 Arduino GND

一邊 感測模組 OUT 接 Arduino pin 7

另一邊 感測模組 OUT 接 Arduino pin 9

接線完成後,如下圖 :

上傳程式

複製下列程式於 Arduino IDE中,點擊 ”工具”,確認開發板是 Arduino/Genuino Uno, 序列埠 Port COM已接上,再點擊 ”上傳”。

程式的基本運作如下:

當左右感測器均感測到白色時,車子往前

當左邊感測器感測到黑色時,車子稍微左轉

當右邊感測器感測到黑色時,車子稍微右轉

當兩邊感測器均感測到黑色時,車子停止

當車子前進的時候,如果左右輪旋轉方向不對,有以下兩種方法可以調整,任選1種 :

1. 調整程式中的指令:5,6對調,或者10,11對調。

const int IN1 = 10;

const int IN2 = 11;

const int IN3 = 6;

const int IN4 = 5;

2. L298N 模組上的插線 : IN1,IN2 對調,或者IN3,IN4對調。

如此,車子就能按照指令,前進的時候前進,後退的時候後退,左轉的時候左轉,右轉的時候右轉。

創客點子 -- 如左圖所示,在一張黑色的桌面上,貼上白紙。修改程式,讓裝有紅外線循跡感測器的 Arduino 小車,能夠保持在白色的區域中行走,不會整個車子走都到黑色的區域中,甚至從桌面掉下來。