# シャミ多機能拡張ボードV1 利用マニュアル




本ドキュメントは、シャミ多機能拡張ボード V1 (Xia mi Multi-functional Expansion Board V1) の概要、特徴、利用方法について説明します。

シャミ多機能拡張ボード V2のドキュメントはこちらにてご確認ください。

PPDF-MBT0042-001.jpg







# 1. 本ドキュメントの目的


  • シャミ多機能拡張ボードV1 の概要説明
  • シャミ多機能拡張ボードV1 の仕様説明
  • シャミ多機能拡張ボードV1 に関する利用方法の説明






# 2. 概要


シャミ多機能拡張ボードV1 (Xia mi Multi-functional Expansion Board V1 for micro:bit)は、micro:bit V2用の多機能拡張ボードです。

コンパクトなレイアウトに、拡張コネクター、各種センサー・モジュール、モータードライバー、外部電源接続コネクター等が、予めオンボードで用意されています。モーター・サーボやハスキーレンズなども接続できるので、初心者の学習はもちろん、中上級者の需要にも応えられる拡張ボードです。

※ 拡張ボードには、信号機LED、温度湿度センサー、ポテンションメーター(可変抵抗器)、赤外線炎センサー、赤外線受信モジュール、RGBライト、OLEDディスプレイ、リレーモジュール、モータードライバーが搭載されています。


STEAM教育においては、この拡張ボード一枚で、学年や様々なレベルに合わせた、中長期に広い用途での利用が可能です。
micro:bitの基本機能を学ぶだけでなく、プログラミング以外に電子工作学習、ロボットカーやメカナムホイールロボットの制御や、課題解決型制作などにもご利用が可能です。







# 3. 購入方法


参考:シャミ多機能拡張ボード (Xia mi Multi-functional Expansion Board for micro:bit)は、当社ウェブストアにてご購入が可能です。



当社はmicro:bitの公認正規販売店です。国内のmicro:bit利用推進を行っております。

micro:bit専門ストア「イフティニー ストア(iftiny store)」 (opens new window)にて、各種micro:bit関連製品の販売をしております。

micro:bit専門ストア (opens new window)







# 4. 特徴


  • 豊富な拡張コネクター
  • micro:bit V2に最適な各種モジュールを配置
  • 高度に統合された拡張ボード
  • STEAM教育に最適
  • 中長期間の系統的な学習に最適(初学時から中上級レベルまで対応)

  • オンボードの金属保護カバー付きOLEDディスプレイ搭載

シャミ多機能拡張ボード



  • ポテンションメーター(可変抵抗器)が搭載されており、ライトの明るさやサーボの角度、モーターのスピードをコントロールすることが可能

シャミ多機能拡張ボード



  • 搭載されている信号機LEDモジュールで、交通信号機の模擬コントロールや交通信号の時間カウントをOLEDディスプレイに表示させることも可能。

シャミ多機能拡張ボード



  • オンボードのステータスインジケーター付きのリレーが搭載されており、植物の自動給水機などに利用することが可能

シャミ多機能拡張ボード



  • オンボード搭載の温度湿度センサーを使って、現在の温度湿度をOLEDディスプレイに表示させることが可能

シャミ多機能拡張ボード



  • 4つのモーター駆動用端子台(ターミナルブロック)が用意されているため、ロボットカーの製作にも最適
  • モーターの回転方向を示すインジケーターがあるため、駆動プログラムが作成しやすく、メカナムホイールロボットプラットフォームの制御基板として使用することも可能

シャミ多機能拡張ボード



  • 拡張ボードの前方に2つのWS2812 RGBライト、炎センサーが搭載されている

シャミ多機能拡張ボード



  • 2種類の超音波距離センサー(SR04超音波センサー、URM10 超音波センサー)を簡単に接続できるコネクターが配置されている

    ※ 下記は超音波センサーの装着イメージです。micro:bit本体と超音波センサーは本製品に付属していないため、別途ご購入する必要があります。

シャミ多機能拡張ボード



  • 7組の3.3V GPIOポート、4組の5V GPIOポート、2組の3.3V I2Cポート、1組の5V I2Cポート、豊富なIO拡張ポートを搭載
  • 各種拡張ポートは3.3Vと5V両方に対応し、5Vは外部電源を利用することで、AIカメラなどに十分な電源供給が可能

シャミ多機能拡張ボード



  • マイクロUSB(5V)、 端子台(ターミナルブロック)(6V-12V)の2種類の電源供給が可能
  • 端子台(ターミナルブロック)(6V-12V)は乾電池ホルダーや18650リチウム電池を利用することも可能なので、複数のサーボ、モーター、ハスキーレンズ(AIカメラ)などの電力パワーが必要な追加デバイスをストレスなく利用できる
  • 端子台(ターミナルブロック)(6V-12V)の電源オン・オフ用スイッチが用意されている。電源スイッチは、端子台(ターミナルブロック)(6V-12V)電源のみのオン・オフができます。USB電源のオン・オフができかねますので、ご注意ください

シャミ多機能拡張ボード



  • 背面に各種ポートの情報をシルク印刷されいるので、手軽に確認が可能

シャミ多機能拡張ボード







# 5. 仕様


項目 詳細 ピン 数量
型番 PPDF-MBT0042
USB電源 5V (マイクロUSB) 1
端子台(ターミナルブロック)電源 6V〜12V(電源スイッチは、端子台(ターミナルブロック)電源のみを制御) 1
リレーモジュール タイプ:1 Form C
接点定格;1A 120VAC/24VDC
ステータス インジケーター付き
P9 1
赤外線受信機 P13 1
RGBライト WS2812 P15 2
赤外線火炎センサー アドレス:0x10 I2C(P19/SCL, P20/SDA) 1
温度湿度センサー アドレス:0x38 I2C(P19/SCL, P20/SDA) 1
ポテンションメーター(可変抵抗器) アドレス:0x10 I2C(P19/SCL, P20/SDA) 1
信号機LED 赤・黄・青のセット
アドレス:0x10
I2C(P19/SCL, P20/SDA) 1
OLEDディスプレイ 解像度:128 x 64
(金属保護カバー付き)
アドレス:0x3C
I2C(P19/SCL, P20/SDA) 1
モータードライブ モーター駆動端子台(ターミナルブロック)
アドレス:0x10
I2C(P19/SCL, P20/SDA) 1
GPIO (5V) 外部電源を利用することで、より強力な駆動能力を提供 P0, P1, P2, P8 4
GPIO (3.3V) micro:bitの内部電源を利用 P0, P1, P2, P8, P12, P14, P16 7
I2C拡張ポート (3.3V) I2C(P19/SCL, P20/SDA) 2
HuskyLens用ポート (5V) 外部電源を利用することで、より強力な駆動能力を提供
※ 5VのI2C対応センサー・モジュールとしても利用可能
I2C(P19/SCL, P20/SDA) 1
SR04超音波センサー用ポート 5V, P0, P1, GND 1
URM10超音波センサー用ポート 5V, P0, P1, GND 1
寸法 57mm x 87mm (モジュール本体)
重量 59g(パッケージや収納袋を含める)
製品パッケージ あり(紙製)135 x 75 x 25mm






# 6. ボードの配置


シャミ多機能拡張ボード







# 7. 電源について


  • USB電源と端子台(ターミナルブロック)電源の2種類の電源供給が可能です。

  • USB電源は5V、端子台(ターミナルブロック)電源は6V〜12Vに対応しています。

  • 電源スイッチは、端子台(ターミナルブロック)電源ののON・OFFが可能です。

  • V1では、USB電源のON・OFFはケーブルの抜き差しで行ないます。電源スイッチと連動していません。

  • モーターやサーボなど、電力パワーが必要な場合、端子台(ターミナルブロック)電源を利用してください。

  • 端子台(ターミナルブロック)は、DC電線・リード線をそのままで接続できる端子です。

  • 端子台(ターミナルブロック)へは、リード線付きの電池ホルダーやリチウム電池が利用可能です。

  • V1では、USB電源を利用する場合、電源側の電力パワーやUSBケーブルの仕様などにより、モーターやサーボを駆動できない場合があります。

  • V1では、電池ホルダーを利用して、モーターやサーボを駆動する場合、単4電池×6本または単4電池×8の利用をお勧めします。

  • 電池ホルダーやリチウム電池を利用する場合、プラス・マイナスを正しく接続してください。また、ショート等が起きないように十分に気をつけてください。







# 8. 利用方法



下記はシャミ多機能拡張ボードの各機能を利用する際のプログラミング例です。
また、より簡単にプログラミングを行えるように、Makecode向けシャミ多機能拡張ボード用のパッケージ(拡張機能)が用意されています。 プログラミングの際ご利用ください。




# 8.1. MakeCode専用パッケージのインポート



MakeCodeで初めからプログラミングする場合、シャミ多機能拡張ボード用のパッケージをインポートする必要があります。
その場合、MakeCodeでプロジェクトを作成し、「拡張機能」にて下記のURLを入力して、パッケージをインポートしてください。

  • Makecode用パッケージ: https://github.com/DFRobot/pxt-DFRobot_xia_mi_Board

下記各「MakeCodeプログラミング例(ブロック)」には、予めパッケージがインポートされています。そのままmicro:bitに書き込むことでご利用が可能です。

※ 下記各MakeCode用プログラミング例で利用されているパッケージのバージョンは「0.7.0」です。
※ お客様にてパッケージをインポートする(拡張機能を追加する)際、自動的に最新バージョンがインポートされます。
※ メーカーにて不定期にMakeCode用パッケージのバージョンアップを行なっているため、バージョンアップデートされた際には、お客様にて手順・プログラムの見直しが必要です。
※ 最新のMakeCode用パッケージのバージョンは「MakeCode用パッケージのgithubリポジトリ (opens new window)」にて確認が可能です。




# 8.2. RGB LEDライトの利用



本製品は、2つのRGB LEDライトを付属しています。

本サンプルプログラムでは、二つのRGB LEDライトを赤色、緑色、青色の順に同タイミングで点灯させ、その後RGB LEDライトをピンクと黄色で交互に点滅させます。

# MakeCode ブロック





# MakeCodeプログラミング例(JavaScript)



xiamiBoard.initXiaMiBoard()
xiamiBoard.ledBlank()
xiamiBoard.setBrightness(100)
basic.pause(1000)
xiamiBoard.showColor(0xff0000)
basic.pause(1000)
xiamiBoard.showColor(0x00ff00)
basic.pause(1000)
xiamiBoard.showColor(0x007fff)
basic.pause(1000)
xiamiBoard.ledBlank()
basic.forever(function () {
    xiamiBoard.setIndexColor(0, xiamiBoard.rgb(200, 0, 200))
    xiamiBoard.setIndexColor(1, 0x000000)
    basic.pause(1000)
    xiamiBoard.setIndexColor(0, 0x000000)
    xiamiBoard.setIndexColor(1, xiamiBoard.rgb(255, 255, 0))
    basic.pause(1000)
})


# MakeCodeプログラミング例(python)



xiamiBoard.init_xia_mi_board()
xiamiBoard.led_blank()
xiamiBoard.set_brightness(100)
basic.pause(1000)
xiamiBoard.show_color(0xff0000)
basic.pause(1000)
xiamiBoard.show_color(0x00ff00)
basic.pause(1000)
xiamiBoard.show_color(0x007fff)
basic.pause(1000)
xiamiBoard.led_blank()

def on_forever():
    xiamiBoard.set_index_color(0, xiamiBoard.rgb(200, 0, 200))
    xiamiBoard.set_index_color(1, 0x000000)
    basic.pause(1000)
    xiamiBoard.set_index_color(0, 0x000000)
    xiamiBoard.set_index_color(1, xiamiBoard.rgb(255, 255, 0))
    basic.pause(1000)
basic.forever(on_forever)



# 8.3. 信号機



本サンプルプログラムでは、3秒おきに赤・黄・緑のLEDライトを順に点灯させます。 擬似的に簡易的な信号機を作れます。

# MakeCode ブロック





# MakeCodeプログラミング例(JavaScript)



xiamiBoard.initXiaMiBoard()
xiamiBoard.ledBlank()
basic.forever(function () {
    xiamiBoard.LED(0, 0, 1)
    basic.pause(5000)
    xiamiBoard.LED(0, 1, 0)
    basic.pause(2000)
    xiamiBoard.LED(1, 0, 0)
    basic.pause(5000)
})


# MakeCodeプログラミング例(python)



xiamiBoard.init_xia_mi_board()
xiamiBoard.led_blank()

def on_forever():
    xiamiBoard.LED(0, 0, 1)
    basic.pause(5000)
    xiamiBoard.LED(0, 1, 0)
    basic.pause(2000)
    xiamiBoard.LED(1, 0, 0)
    basic.pause(5000)
basic.forever(on_forever)



# 8.4. 温度・湿度計



本サンプルプログラムでは、温度・湿度センサーを利用し、取得した現在の温度・湿度値をOLEDディスプレイに表示します。

# MakeCode ブロック





# MakeCodeプログラミング例(JavaScript)



xiamiBoard.initXiaMiBoard()
xiamiBoard.tempHumiInit(SENSOR.AHT20)
xiamiBoard.ledBlank()
xiamiBoard.OLEDclear()
basic.forever(function () {
    xiamiBoard.OLEDshowUserText("TEMP: " + ("" + xiamiBoard.readSensor(SENSOR.AHT20, PARA.TEMP)) + " C", 0, 0)
    xiamiBoard.OLEDshowUserText("Humidity: " + ("" + xiamiBoard.readSensor(SENSOR.AHT20, PARA.HUM)) + " %", 2, 0)
})


# MakeCodeプログラミング例(python)



xiamiBoard.init_xia_mi_board()
xiamiBoard.temp_humi_init(SENSOR.AHT20)
xiamiBoard.led_blank()
xiamiBoard.ole_dclear()

def on_forever():
    xiamiBoard.ole_dshow_user_text("TEMP: " + ("" + str(xiamiBoard.read_sensor(SENSOR.AHT20, PARA.TEMP))) + " C",
        0,
        0)
    xiamiBoard.ole_dshow_user_text("Humidity: " + ("" + str(xiamiBoard.read_sensor(SENSOR.AHT20, PARA.HUM))) + " %",
        2,
        0)
basic.forever(on_forever)



# 8.5. ポテンションメーターによるサーボの制御



本サンプルプログラムでは、ポテンションメーター(可変抵抗器)を使用して、P0ポートに接続したサーボの角度を制御します。
また、ノブの位置とサーボの回転角度をリアルタイムでOLEDディスプレイに表示します。

※ 本サンプルプログラムをご利用する際、予めサーボ(180度)を用意し、GPIO(3.3V)のPOコネクターに接続してください。
※ 本拡張ボードのポテンションメーター(可変抵抗器)を回転させることで、0〜1023の範囲で入力することが可能です。
※ 本サンプルプログラムでは、ポテンションメーターの入力値(範囲:0〜1023)をサーボの可動域(範囲0°〜180°)に均等にマッピングするために、変数angleを定義しています。
※ 本サンプルプログラムでは、サーボの軽微なズレによる故障を防ぐため、可動域180°のサーボの動作範囲を3°〜177°でプログラムを作成しています。




# MakeCode ブロック





# MakeCodeプログラミング例(JavaScript)



let angle = 0
xiamiBoard.initXiaMiBoard()
xiamiBoard.ledBlank()
xiamiBoard.OLEDclear()
basic.forever(function on_forever() {
    
    angle = Math.round(pins.map(xiamiBoard.readAngle(), 0, 1023, 3, 177))
    xiamiBoard.OLEDshowUserText("Sensor:" + ("" + ("" + xiamiBoard.readAngle())), 0, 0)
    xiamiBoard.OLEDshowUserText("Servo:" + ("" + ("" + angle)), 1, 0)
    pins.servoWritePin(AnalogPin.P0, angle)
    basic.pause(500)
    xiamiBoard.clear(0, 7, 10)
    xiamiBoard.clear(1, 6, 10)
})


# MakeCodeプログラミング例(python)



angle = 0
xiamiBoard.init_xia_mi_board()
xiamiBoard.led_blank()
xiamiBoard.ole_dclear()

def on_forever():
    global angle
    angle = Math.round(pins.map(xiamiBoard.read_angle(), 0, 1023, 3, 177))
    xiamiBoard.ole_dshow_user_text("Sensor:" + ("" + str(xiamiBoard.read_angle())), 0, 0)
    xiamiBoard.ole_dshow_user_text("Servo:" + ("" + str(angle)), 1, 0)
    pins.servo_write_pin(AnalogPin.P0, angle)
    basic.pause(500)
    xiamiBoard.clear(0, 7, 10)
    xiamiBoard.clear(1, 6, 10)
basic.forever(on_forever)



# 8.6. 赤外線リモコンによるリレーモジュールの制御



本サンプルプログラムでは、赤外線リモコンを使用して、リレーモジュールを制御します。
リモコンのボタン「1」を押すとスイッチON、ボタン「0」を押すとスイッチOFFにすることが可能です。
また、スイッチのON/OFFに合わせて、マイクロビットに「✓」・「×」を表示します。また、RGB LEDも青色・赤色を光らせます。

※ 本サンプルプログラムはリレーモジュールのオン・オフの切り替えを行うプログラムです。
※ リレーモジュールを利用して他の回路の電源ON/OFFをコントロールしたい場合、本拡張ボード以外で動作させたい電子部品の電源付き回路を、本拡張ボードのリレー用端子台に接続する必要があります。
※ 植物の自動水やり機を作成する場合、ポンプの電源付き回路を、リレー用端子台のCOM端子(+側)とNO端子(-側)に接続することでポンプの電源操作が可能です。



  • リレーについて

リレー(relay、継電器)は、受け取った電気信号で電気回路のオン/オフや切り替えを行う部品です。
小電力の入力によって大電力のオン/オフを制御できるため、安全性(感電の防止など)、省電力性や操作性を向上させます。そのためリレーは、広範囲な目的で、家電、制御機器、通信機器などの身近な機器に多用されています。

本拡張ボードのリレーモジュールは三つの端子があります。
NC(ノーマルクローズ)、COM(コモン)、NO(ノーマルオープン)三つの端子へは、端子台で接続が可能です。
通常(Release状態)では、端子COMと端子NCがつながっています。
スイッチをONにする(Actuation状態)と端子COMと端子NOがつながります。
端子NCと端子NOのどちらが端子COMとつながっているかは、拡張ボード上のインジケーターで確認することが可能です。



  • 赤外線リモコンのキー配置

赤外線リモコンにキーに対応する整数(キー値の下2桁)があらかじめ設定されています。
赤外線リモコンによって異なるため、ここでは、弊社ウェブストアで販売している赤外線リモコンを例として使用します。

※ シャミ多機能拡張ボードのMakeCode用追加パッケージをご利用の場合、該当ブロックにリモコンボタンに該当する10進数整数を入力してください。

赤外線リモコン


参考:赤外線リモコン(Infrared remote controller)は、当社ウェブストアにてご購入が可能です。



当社はmicro:bitの公認正規販売店です。国内のmicro:bit利用推進を行っております。

micro:bit専門ストア「イフティニー ストア(iftiny store)」 (opens new window)にて、各種micro:bit関連製品の販売をしております。

micro:bit専門ストア (opens new window)



# MakeCode ブロック





# MakeCodeプログラミング例(JavaScript)



xiamiBoard.IR_callbackUser(function (message) {
    if (message == 12) {
        basic.showIcon(IconNames.Yes)
        xiamiBoard.showColor(0x007fff)
        xiamiBoard.setRelay(RELAY.CLOSE)
    }
    if (message == 22) {
        basic.showIcon(IconNames.No)
        xiamiBoard.showColor(0xff0000)
        xiamiBoard.setRelay(RELAY.DISCON)
    }
})
xiamiBoard.initXiaMiBoard()
xiamiBoard.OLEDclear()
xiamiBoard.ledBlank()
xiamiBoard.setBrightness(80)


# MakeCodeプログラミング例(python)



def on_ir_callbackuser(message):
    if message == 12:
        basic.show_icon(IconNames.YES)
        xiamiBoard.show_color(0x007fff)
        xiamiBoard.set_relay(RELAY.CLOSE)
    if message == 22:
        basic.show_icon(IconNames.NO)
        xiamiBoard.show_color(0xff0000)
        xiamiBoard.set_relay(RELAY.DISCON)
xiamiBoard.IR_callbackUser(on_ir_callbackuser)

xiamiBoard.init_xia_mi_board()
xiamiBoard.ole_dclear()
xiamiBoard.led_blank()
xiamiBoard.set_brightness(80)



# 8.7. 火災警報器



本サンプルプログラムでは、火炎センサーを使って、リアルタイムでOLEDディスプレイに火炎強度を数値で表示します。
火炎センサーの約20cm前でライターの火をつけると、センサーでそれを検知しOLEDディスプレイの計測値が急激に上昇します。
また、火炎強度が200を超えるとアラーム音を鳴らし、RGB LEDを赤色で点灯します。

※ ご注意事項:火を使用する際は、十分に安全性をご確認のうえご利用してください。
※ ご利用に関する事故等について、当社では一切責任を負いませんので、ご了承ください。

# MakeCode ブロック





# MakeCodeプログラミング例(JavaScript)



xiamiBoard.initXiaMiBoard()
xiamiBoard.OLEDclear()
xiamiBoard.ledBlank()
xiamiBoard.setBrightness(255)
basic.forever(function () {
    xiamiBoard.OLEDshowUserText("Fire:" + xiamiBoard.readFlre(), 0, 0)
    if (xiamiBoard.readFlre() > 200) {
        xiamiBoard.showColor(0xff0000)
        music.play(music.stringPlayable("B - B - B - B - ", 125), music.PlaybackMode.UntilDone)
    } else {
        xiamiBoard.ledBlank()
        music.stopAllSounds()
    }
    xiamiBoard.clear(0, 6, 10)
})


# MakeCodeプログラミング例(python)



xiamiBoard.init_xia_mi_board()
xiamiBoard.ole_dclear()
xiamiBoard.led_blank()
xiamiBoard.set_brightness(255)

def on_forever():
    xiamiBoard.ole_dshow_user_text("Fire:" + str(xiamiBoard.read_flre()), 0, 0)
    if xiamiBoard.read_flre() > 200:
        xiamiBoard.show_color(0xff0000)
        music.play(music.string_playable("B - B - B - B - ", 125),
            music.PlaybackMode.UNTIL_DONE)
    else:
        xiamiBoard.led_blank()
        music.stop_all_sounds()
    xiamiBoard.clear(0, 6, 10)
basic.forever(on_forever)



# 8.8. 超音波距離センサーによる距離測定



本サンプルプログラムでは、超音波距離センサーで正面の障害物までの距離を測定します。
また、測定した距離をリアルタイムでOLED画面に表示します。

※ 本サンプルプログラムを実行するためには、予めSR04超音波センサーを別途で用意し、本拡張ボードの超音波センサー用ポートに挿入する必要があります。

# MakeCode専用パッケージのインポート

MakeCodeでプロジェクトを作成し、上記本拡張ボードの専用MakeCodeパッケージ以外に、下記SR04超音波センサー用Makecodeパッケージを追加する必要があります。

「拡張機能」にて下記のURLを入力して、パッケージをインポートしてください。

  • SR04超音波距離センサー用Makecodeパッケージ: https://github.com/microsoft/pxt-sonar

※ 2024年2月現在、本拡張ボードのMaceCode用パッケージ(拡張機能)に付属している超音波距離センサー用機能の精度に改善の余地があるため、本サンプルプログラムでは、マイクロソフト社から提供されているパッケージ(拡張機能)を追加し利用しています。

※ 下記各「MakeCodeプログラミング例(ブロック)」には、予め必要なパッケージがインポートされています。そのままmicro:bitに書き込むことでご利用が可能です。

参考:SR04超音波センサーは、当社ウェブストアにてご購入が可能です。



当社はmicro:bitの公認正規販売店です。国内のmicro:bit利用推進を行っております。

micro:bit専門ストア「イフティニー ストア(iftiny store)」 (opens new window)にて、各種micro:bit関連製品の販売をしております。

micro:bit専門ストア (opens new window)



# MakeCode ブロック





# MakeCodeプログラミング例(JavaScript)



xiamiBoard.initXiaMiBoard()
xiamiBoard.OLEDclear()
xiamiBoard.ledBlank()
basic.forever(function on_forever() {
    xiamiBoard.OLEDshowUserText("Distance:" + ("" + ("" + sonar.ping(DigitalPin.P0, DigitalPin.P1, PingUnit.Centimeters))), 0, 0)
    basic.pause(500)
    xiamiBoard.clear(0, 9, 15)
})


# MakeCodeプログラミング例(python)



xiamiBoard.init_xia_mi_board()
xiamiBoard.ole_dclear()
xiamiBoard.led_blank()

def on_forever():
    xiamiBoard.ole_dshow_user_text("Distance:" + ("" + str(sonar.ping(DigitalPin.P0, DigitalPin.P1, PingUnit.CENTIMETERS))),
        0,
        0)
    basic.pause(500)
    xiamiBoard.clear(0, 9, 15)
basic.forever(on_forever)



# 8.9. モーター駆動



本サンプルプログラムでは、モータードライバーを利用し、一つのモーターを駆動します。

モーター駆動用端子台(ターミナルブロック)M1にモーターを接続し、micro:bitのAボタンを押すことで、モーターが回転(逆転)を開始します。
また、micro:bitのBボタンを押すことで、モーターが停止します。

モーターの回転方向は、オンボードのインジケーターで確認することが可能です。

※ 別途一つのモーターをご用意する必要があります。
※ V1では、USB電源を利用する場合、電源側の電力パワーやUSBケーブルの仕様などにより、モーターやサーボを駆動できない場合があります。
※ V1では、電池ホルダーを利用して、モーターやサーボを駆動する場合、単4電池×6本または単4電池×8のご利用をお勧めします。
※ 電池ホルダーやリチウム電池を利用する場合、プラス・マイナスを正しく接続してください。また、ショート等が起きないように十分に気をつけてください。



# MakeCode ブロック





# MakeCodeプログラミング例(JavaScript)



input.onButtonPressed(Button.A, function () {
    xiamiBoard.motorRun(MOTOR.M1, DIRECTION.CCW, 50)
})
input.onButtonPressed(Button.B, function () {
    xiamiBoard.motorStop(MOTOR.M1)
})
xiamiBoard.initXiaMiBoard()
xiamiBoard.OLEDclear()
xiamiBoard.ledBlank()
xiamiBoard.motorStop(MOTOR.ALL)


# MakeCodeプログラミング例(python)



def on_button_pressed_a():
    xiamiBoard.motor_run(MOTOR.M1, DIRECTION.CCW, 50)
input.on_button_pressed(Button.A, on_button_pressed_a)

def on_button_pressed_b():
    xiamiBoard.motor_stop(MOTOR.M1)
input.on_button_pressed(Button.B, on_button_pressed_b)

xiamiBoard.init_xia_mi_board()
xiamiBoard.ole_dclear()
xiamiBoard.led_blank()
xiamiBoard.motor_stop(MOTOR.ALL)






Last Updated: 2/18/2024, 2:25:56 PM