14自走車(L298N)
(2017/09/22)
下週課後電腦班要上自走車,整理資料時,想說用micro:bit當控制器來測試看看(以前是用arduino來控制),所以才有此文章!!
這次用到比較多腳位,所以參考下圖
一、材料:
micro:bit 二片
micro:bit擴展板:Grace Chen提供的
自走車車體:motoduino的車體
L298N馬達驅動模組
18650電池盒及電池
二、佈線
L298N的out1、out2與右車輪的馬達連結
L298N的out3、out4與左車輪的馬達連結
L298N的in1、in2、in3、in4分別與micro:bit的P0、P1、P2、P3來連接
L298N的ENA、ENB先jumper住(以最快速度來跑),事後要控制速度再把ENA接P4、ENB接P5
L298N的12V接18650電池盒的正極
L298N的GND分別接18650電池盒的負極及micro:bit的GND
L298N的5V不接線(會把micro:bit給燒壞)
三、簡易測試
L298N控制馬達的正轉
右馬達:in1為LOW、in2為HIGH (ENA控制轉速 0~255)
左馬達:in3為LOW、in4為HIGH (ENB控制轉速 0~255)
L298N控制馬達的正轉
右馬達:in1為HIGH、in2為LOW (ENA控制轉速 0~255)
左馬達:in3為HIGH、in4為LOW (ENB控制轉速 0~255)
L298N控制馬達的停止
右馬達:in1為LOW、in2為LOW 或 in1為HIGH、in2為HIGH
左馬達:in3為LOW、in4為LOW 或 in3為HIGH、in4為HIGH
程式如下:
經測試後,發現並非所有腳位都適合當控制馬達的腳位,如下圖打叉的腳位就不行
所以將控制左輪的in3、in4改接到P2、P8
四、測試車子前進、後退、左右轉
L298N的in1、in2、in3、in4分別與micro:bit的P0、P1、P2、P8來連接
按 micro:bit 的A+B前進車子、按A向左轉、按B向右轉、搖動向後退
程式如下:
五、利用板子傾斜度控制車子前進、後退、左右轉
L298N的in1、in2、in3、in4分別與micro:bit的P0、P1、P2、P8來連接
當 micro:bit 前向傾(logo較低)車子前進、向後傾(logo較高)車子後退、向左傾(向左傾斜)車子左轉、向右傾(向右傾斜)車子右轉、按A鍵時車子停止
程式如下:
測試畫面:
六、利用另一塊micro:bit板子來控制車子前進、後退、左右轉
自走車上micro:bit的程式,加入廣播的功能,修改如下:
準備另一塊micro:bit 當遙控器,程式如下:
測試影片
七、利用micro:bit Blue的APP來控制車子前進、後退、左右轉
micro:bit Blue 的APP,請參考【之前的文章】
可以用來當遙控器,這部分可參閱另一篇文章(MICRO:BOT BLUETOOTH CONTROL),利用這遙控器來控制自走車
參考上文後,修改程式如下:
測試時,發現按方向鍵時,micro:bit的方向指示燈不會顯示,當然車子也不會動!因此,我先將L298N到micro:bit的GND線先拔掉,再重新連線,按方向鍵micro:bit就會顯示方向燈了,這時再把GND線插上,車子就可以被控制了!
測試影片,如下:
八、利用按鍵控制車子轉動速度
銜接【五、利用板子傾斜度控制車子前進、後退、左右轉】的部份
增加 按A鍵-車子加速、按B鍵-車子減速、按A+B鍵-車子停止 的功能
由於 L298N的ENA、ENB需用到PWM的腳位,在micro:bit有類比輸入功能的腳位有P0、P1、P2、P3、P4、P10 等腳位(其值為0~1023),所以將原本控制右輪的P0、P1改為P13、14,將ENA接到P0、ENB接到P1,如下圖
程式的部份如下:
車子行進時,按下A鍵,車子就會加速,同樣,按下B鍵,車子就會減速
如果要用另一塊板子來控制車子,也是將按A鍵及B鍵,給廣播過去給車子,所以不再贅述。
另外,如果兩個輪子的轉動速度不同,就利用兩個變數speed1及speed2來分別控制兩個輪子的轉速。