L9110馬達驅動板

L9110(或是L9110s)是個可以直接由開發板的腳位供電的馬達驅動板(也就是可以不用外接電源),它需要用二個腳位來控制一個馬達,當第一個腳位高電位,另一個腳位低電位時,馬達便開始旋轉;反過來,如果第一個腳位低電位,另一個腳位高電位時,馬達便會反相旋轉。如果高電位的腳位利用PWM控制,便可以控制馬達的轉速了。通常如果要玩自走車,至少要有二個馬達,因此開發板便需要四個腳位來控制二個馬達,因此,L9110的輸入端除了GND及VCC之外,還有四個腳位和開發板連接。

L9110的輸出端可連接兩個馬達,M1及M2(不同廠商的對馬達的編號稱呼會不同,例如有的叫Motor A及Motor B),M1及M2各有A、B二個接口可連接馬達。M1及M2的輸出端提供每個馬達0.8A的電力,足夠驅動像是N20這種比較小的馬達。雖然L9110不像L298N需要接額外的電源,但馬達本就是高耗電的零件,開發板的擴展板的選用,也應該使用能提供足夠電源的擴展板,而且如果要利用L9110進行自走車的專案,擴展板的電源供應是一件需要特別注意的事,在這裡的擴展版是選用IC Shop的MBitBot Lite擴展板,本身帶有18650的電池可供應馬達驅動板電力。 

L9110的輸入及輸出端

另一種L9110,馬達編號為Motor A(M1)及Motor B(M2)

L9110馬達驅動板的積木位於「吉哥積木」→「模組」→「L9110馬達驅動」的選單內,每個馬達需要二個腳位來控制,M1A及M1B腳位控制M1馬達,M2A及M2B腳位控制M2馬達。這些積木同時適用於7697、ESP32、ESP8266以及Arduino,另外,因為這些積木沒有使用到額外的函式,因此吉哥積木會自動更新,打開BlocklyDuino便可以直接使用這些積木了。

micro:bit有許多的擴展板以及自走車的資源,以下便以7697:bit以及PocketCard(ESP32)為例子,將這兩片板子插上MBitBot Lite這塊micro:bit的擴展板,然後以積木的方式控制馬達的轉動:

7697:bit,將7697轉換成micro:bit的接腳型式

PocketCard,將ESP32轉換成micro:bit的接腳型式

線路的連接:

以下的例子,將L9110馬達驅動板的M1A連接到擴展板的P14,M1B連接到擴展板的P13,M2A連接到擴展板的P16,M2B連接到擴展板的P15。

7697的控制範例:

7697:bit相關的按鈕及腳位積木,位於「吉哥積木」→「模組」→「7697:bit」內。按下A鍵,會讓全部馬達正轉,車子前進;按下B鍵,會讓全部馬達反轉,車子後退;按下A+B鍵,則會讓全部馬達停止轉動。


如果專案只要控制一個馬達就好,可以使用單馬達的設定如下:

PocketCard(ESP32)的控制範例:

PocketCard相關的按鈕及腳位積木,位於「吉哥積木」→「ESP32」→「PocketCard」內。按下A鍵,會讓全部馬達正轉,車子前進;按下B鍵,會讓全部馬達反轉,車子後退;按下A+B鍵,則會讓全部馬達停止轉動。

在這裡要比較注意的是,ESP32的類比控制需要用到Channel,在這些積木中,控制二個馬達預設使用了8、9兩個channel,所以如果你還有類比寫入的需求,請避開這兩個channel。


如果在ESP32底下因為channel相衝突而想更改馬達的channel設定,以下的範例將預設的8和9的channel改成0和1,只比上面多了一個積木:


如果專案只要控制一個馬達就好,可以使用單馬達的設定如下:

以上的積木,所謂「正轉」,是指讓自走車前進的方向,「反轉」則是讓自走車後退的方向,若是積木設定「正轉」,但是馬達的方向卻會讓自走車後退;或是積木設定「轉」,但是馬達的方向卻會讓自走車前進,便要將那個馬達的A、B接口的線對調。

接下來,可以準備二個輪胎,一個萬向輪,一個紙盒,便可以完成自己的紙盒自走車了!

將N20馬達、輪胎、萬向輪固定在紙盒底部

紙盒內部可放入L9110驅動板

將擴展板固定於紙盒上方

加上一個超音波感測器,便可以做成避障車