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 當遙控器,程式如下:

  • 測試影片

    YouTube 影片


七、利用micro:bit Blue的APP來控制車子前進、後退、左右轉
  • micro:bit Blue 的APP,請參考【之前的文章
  • 可以用來當遙控器,這部分可參閱另一篇文章(MICRO:BOT BLUETOOTH CONTROL,利用這遙控器來控制自走車
  • 參考上文後,修改程式如下:









  • 測試時,發現按方向鍵時,micro:bit的方向指示燈不會顯示,當然車子也不會動!因此,我先將L298N到micro:bit的GND線先拔掉,再重新連線,按方向鍵micro:bit就會顯示方向燈了,這時再把GND線插上,車子就可以被控制了!
  • 測試影片,如下:

    YouTube 影片



八、利用按鍵控制車子轉動速度
  • 銜接【五、利用板子傾斜度控制車子前進、後退、左右轉】的部份
  • 增加 按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來分別控制兩個輪子的轉速。

ċ
01自走車-按鍵控制.hex
(561k)
黃文玉,
2017年9月21日 下午9:05
ċ
02自走車-傾斜控制.hex
(562k)
黃文玉,
2017年9月21日 下午9:05
ċ
03自走車-兩台互動(主體).hex
(573k)
黃文玉,
2017年9月21日 下午9:05
ċ
03自走車-兩台互動(遙控器).hex
(561k)
黃文玉,
2017年9月21日 下午9:05
ċ
04自走車-APP平板控制.hex
(585k)
黃文玉,
2017年9月24日 上午4:59
ċ
05自走車-可控制速度.hex
(565k)
黃文玉,
2017年9月25日 下午8:48
ċ
06自走車-兩台互動(主體+可改變速度).hex
(578k)
黃文玉,
2017年10月11日 上午7:11
ċ
06自走車-兩台互動(遙控器+可改變速度).hex
(564k)
黃文玉,
2017年10月11日 上午7:26
Comments