見出し画像

〈ココロキット+〉テキストプログラミングの関数について

前回の記事では、テキストプログラミング言語 JavaScript を使って、ココロキット+を動かす方法を説明しました。

JavaScript でココロキット+を動かす関数は、ビジュアルプログラミングで用意しているブロックの機能とほぼ同じです。ココロキット+のブロックの一覧は次のnoteを見てくださいね。

1つのモータを動かす

1つのモータを動かすときには、次のようにプログラムを書きます。

await window.cocoro.setPwmDuty(
  CocorokitPlus.PWM0, // モータを選択
  CocorokitPlus.deg2value(0) // 関数を使って角度を指定
);

動かしたいモータは次のように4つから選ぶことができます。

CocorokitPlus.PWM0 // MOTOR1
CocorokitPlus.PWM1 // MOTOR2
CocorokitPlus.PWM2 // MOTOR3
CocorokitPlus.PWM3 // MOTOR4

動かしたい角度は、「deg2value」という関数を使って指定します。

🙋 この関数を使って、角度の値を Duty と呼ばれるサーボの制御値に変えています。
CocorokitPlus.deg2value(0)    // 0度にする
CocorokitPlus.deg2value(90)   // 90度にする
CocorokitPlus.deg2value(180)  // 180度にする

1つのモータが動く時間を指定する

1つのモータが5秒かけて動くようにしたい場合はこのように使います。

await window.cocoro.changePwmDutyTime(
  CocorokitPlus.PWM0,           // モータの指定
  CocorokitPlus.deg2value(45),  // 角度の指定
  5000                          // ミリ秒
);

同時に複数のモータを動かす

同時に複数のモータを動かすときには、次のようにプログラムを書きます。

await window.cocoro.setPwmDutyAll(
  CocorokitPlus.deg2value(0),  // MOTOR1の角度
  CocorokitPlus.deg2value(0),  // MOTOR2の角度
  CocorokitPlus.deg2value(0),  // MOTOR3の角度
  CocorokitPlus.deg2value(0)   // MOTOR4の角度
);

上のように書くと、4つのモータ全てが0度になります。もし、MOTOR1と、MOTOR3だけを同時に動かしたいときは、NOT_MOVEの値を入れるようにしてください。

// MOTOR1 と MOTOR3 だけを角度0度にしたい場合
await window.cocoro.setPwmDutyAll(
  CocorokitPlus.deg2value(0),  // MOTOR1の角度
  CocorokitPlus.NOT_MOVE,
  CocorokitPlus.deg2value(0),  // MOTOR3の角度
  CocorokitPlus.NOT_MOVE
);

LEDを光らせる

ココロキット+についているLEDを光らせるための関数です。

await window.cocoro.setLED(
  CocorokitPlus.LED_R,  // 光らせたい色を指定します
  100                   // 光量を 0 - 100 で指定します
);

光らせたい色の指定は次の3つからできます​

CocorokitPlus.LED_R // 赤
CocorokitPlus.LED_G // みどり
CocorokitPlus.LED_B // 青

スイッチのON、OFF

❗ ビジュアルプログラミングのように、「スイッチがONになったら~~」を簡単にはできませんが、ここではやり方を説明します!

大きくステップを分けると次のように分けられます。

1.スイッチの変化があったときの関数を作る
2.スイッチの変化に反応するようにする。(start)

まず、変化があったときの関数を作ります

今回は、スイッチの値が変化したとき、Chromeの開発者コンソールに数字が表示されるようにしてみます。

// data は、00000000 というデータが入っており、
// 3番目と4番目の値に、スイッチ1とスイッチ2の値が入っています。

const inputCallback = (data) => {
  const input1 = (data >> 3) & 0x01; // スイッチ1
  const input2 = (data >> 4) & 0x01; // スイッチ2

  console.log(input1);  // input1 の値を開発者コンソールに表示
  console.log(input2);  // input2 の値を開発者コンソールに表示
}

次に、スイッチの変化に反応するようにします。

// 先ほど作った関数を入れます。
await window.cocoro.startDigitalInputNotification(inputCallback);

start することで、スイッチの値が変わったことに反応し始めます。ここでは、スイッチを押したり話したりすることで、開発者コンソールに数字が表示されるはずです。

その他

この関数を使う全てリセットできます。

リセット内容
・モータが全て90度に戻る
・LED が暗くなる
await window.cocoro.softwareReset();
🙋 プログラミングをして、上手くいかなくなったときはリセットしちゃいましょう!

関数の説明はこれで以上です!


この記事が気に入ったらサポートをしてみませんか?