※注意※

モータープログラミングは非常に危険です。
モーターの力は非常に強いため指を挟んだりしてケガをすることもあります。
プログラムを書き込んだあとすぐに動作が始まるプログラムなどの場合は特に気を付けてください。

※特に、足(D5,D6,D8,D9)については、60度以下、120度以上の指定をすると回転しすぎてプラスチックを破損してしまいますので角度にはご注意ください。

※万が一のケガや部品の破損について弊社では責任を負いかねますので予めご了承ください。

対応ロボット:Qmcum(QX-001R3J)

クムクムロボットのふとももや足を動かすサーボモーターをコントロールします。モーターはそれぞれ独立しているので同時に動かすことが出来ます。モーターは60度から120度の好きな位置に動かすことが出来ます。右ふともものモーターは60度が内側で、120度が外側にふとももを動かします。90度は正面です。右足のモーターは60度で内側が上がり、120度では外側があがります。腕と同様、それぞれのモーターを同時に動かすことが出来、左足の場合は右足と動作が逆になります。ふとももや足のモーターを操作することでクムクムロボットを歩かせることも可能です。まずはそれぞれのモーターの動きをマスターしましょう。

以下のサンプルプログラムでは最初に一度90度の位置に移動してから、右足ふともものみ70度から110度の間で回転させています。他の足なども動かしてみましょう。

ライブラリの追加

事前にArduino IDEへライブラリを追加します。

今回はサーボモーターの速度をコントロールするので、WEB上にあるライブラリ「VarSpeedServo」をダウンロードして追加します。

  • 赤線で囲んだ[Code]をクリックし[Download ZIP]を選択するとZIPファイルがダウンロードされます。

  • Arduino IDEのメニュー[スケッチ]-[ライブラリをインクルード]-[.ZIP形式のライブラリをインクルード]を選択します。ファイル選択ウインドウが表示されるので、先ほどダウンロードしたZIPフィルを選択して[開く]をクリックすれば完了です。

ソースコード

#include <VarSpeedServo.h>
VarSpeedServo legL;
VarSpeedServo legR;
VarSpeedServo footL; 
VarSpeedServo footR; 

void setup(){ 
  legL.attach(9); //左脚のモーターをポート10に設定 
  legR.attach(5); //右脚のモーターをポート4に設定 
  footL.attach(8); //左足のモーターをポート10に設定 
  footR.attach(6); //右足のモーターをポート4に設定 
  pinMode(11,OUTPUT) ; //モーター電源供給ポート設定
  digitalWrite(11,HIGH) ; //モーター電源ON 
  legL.write(90, 50, false); //50の速度で90度へ移動 
  legR.write(90, 50, false); 
  footL.write(90, 50, false); 
  footR.write(90, 50, false); 
  delay(3000); 
}

void loop(){ 
  legL.write(90, 50, false);
  legR.write(70, 50, false); //50の速度で70度へ回転 
  footL.write(90, 50, false); 
  footR.write(90, 50, false); 
  delay(3000); 
  legL.write(90, 50, false);
  legR.write(110, 50, false);  //50の速度で110度へ回転 
  footL.write(90, 50, false); 
  footR.write(90, 50, false); 
  delay(3000);
}

 

関数

VarSpeedServo write(value, speed, wait);

value: 角度

speed: 動作速度 1から255  数値の大きい方が速い

wait:  trueで動作完了まで関数内で待つ。 falseで待たずに次の行へ進む

クムクムのモーター

クムクムに利用しているモーターはサーボモーターと呼ばれ、サーボモーターは、扇風機などに使われているモーターとは異なり、角度や速度などを指定して、好きな場所まで自由な速度で回転して止めることができるモーターです。
クムクムロボットでは、顔、両腕、足の付け根、足 の合計7個のサーボモーターがあり、これらの一つ一つを個別の角度、速度で回転して止めることができます。

Arduinoによる制御方法

Arduinoなどマイコンから指定角度に回転させるには、その角度に該当するパルスをプログラムから出力します。
この方法をPWMと呼び、クムクムロボットでは0~180度の回転角度に対して500パルス~2500パルスを与えて制御します。

クムクムでモーターを動かす場合

クムクムでは、電池の有効活用のために、モーターへの電源供給をプログラムからコントロールできるようにしています。
ポート(D11)と下記の回路図の矢印部分が接続されており、プログラムからHIGH(電源ON)/LOW(電源OFF)を出力することで電池からのモーター電源供給を物理的にコントロールします。

◆Arduinoプログラミングについて


Arduinoを利用して、C,C++言語でクムクムをコントロールするプログラムを作り、クムクムロボットのボード内に書き込んで直接動かすことができます。
スクラッチやPythonなどより、より早く・より自由に動かすことができます。
CPUから各パーツを直接コントロールするプログラムを作るため、電気的な知識をしっかりマスターすることができます。

    1.開発環境

    WindowsまたはMacなど、ArduinoIDEがインストールされたパソコンとクムクムをマイクロUSBのケーブルで結びます。
    ※ArduinoIDEは <こちら>から最新バージョンをダウンロードすることができます。
    ※USBケーブルは必ずデータ通信が可能なケーブルをご用意ください。(中にはスマホ用などで充電専用のケーブルもあります)

    2.クムクムのCPUを選択する

    ArduinoIDEを起動し、お使いのクムクムの機種にあったCPUを選択します。
    Qumcum[QX-001R3J]の場合には【ArduinoLeonardo】を、QumcumPRO/W[QX-001R321J/321E]の場合にはBoards ManagerからESP32を選択します。
    ESP32が選択項目に現れない場合は、ESP32用のライブラリーなどをインストールしてください。(インストール方法などはArduino関連サイトなどから検索します。※参考サイト <ここ> リンク等は予告なく切れる場合があります。)

    ●使用CPU
    Qumcum[QX-001R3J] … ATMEGA32U4
    QumcumPRO/W[QX-001R321J/E] … ESP32 WROOM32-D,E

    3.プログラミング

    各ボードの情報を参考にプログラミングを行います。
    具体的なプログラミングについては、随時サンプルプログラムと技術情報をクムクムライブラリー <3J> <321J/E> に掲載していきますので参考にプログラミングを進めてください。また、下記のボードマニュアルやネット情報を利用し独自にプログラミングをしていくことも可能です。

    Qumcum[QX-001R3J] のボードマニュアルは  <こちら>
    QumcumPRO/W[QX-001R321J/E]のボードマニュアルは <こちら>

    4.書き込み

    プログラムができたら、パソコンとクムクムの接続されているポートを合わせ、その後書き込みボタン(右スクリーンショット赤い〇矢印)をクリックします。
    クリック後、C言語で書かれたプログラムは機械語にコンパイルされ、USBケーブルを経由してロボットのCPUに書き込まれます。
    書き込みが完了すると、プログラムは自動で実行され、作られたプログラム通りにロボットは動きます。
    もし思い通りに動かなかったら、プログラムのどこかに間違えがあるので、直してもう一度書き込みます。
    ※Arduinoでは文法ミス以外は動かないプログラムでもCPUに書き込んで動かそうとしますので、書き込んでみなければ正しく動くかどうかがわかりません。
    ※また、CPUの中にあらかじめ書き込まれているArduinoシステムを壊してしまうプログラムも書き込めてしまうので、プログラミングは慎重に行ってください。

    ◆クムクムロボット公式サイトのマニュアル
    https://qumcum.com/wp-content/uploads/2022/08/start_scratch.pdf

    ◆Scratch(スクラッチ)で動く3Dロボット「3D-WEBクムクム」β版
    https://personal.qumcum.com/home3d/robo-real/

    ◆クムクムロボット(アマゾンQumcumストア)
    https://www.amazon.co.jp/stores/Qumcum/page/FFCFA57A-F592-49A0-9F23-3D90514E5E61?ref_=ast_bln

    ◆Youtubeにはたくさんの動画を載せています
    https://www.youtube.com/@qumcum/

    ※注意※

    モータープログラミングは非常に危険です。
    モーターの力は非常に強いため指を挟んだりしてケガをすることもあります。
    プログラムを書き込んだあとすぐに動作が始まるプログラムなどの場合は特に気を付けてください。

    ※特に、足(D5,D6,D8,D9)については、60度以下、120度以上の指定をすると回転しすぎてプラスチックを破損してしまいますので角度にはご注意ください。

    ※万が一のケガや部品の破損について弊社では責任を負いかねますので予めご了承ください。

    対応ロボット:Qmcum(QX-001R3J)

    クムクムロボットのふとももや足を動かすサーボモーターをコントロールします。モーターはそれぞれ独立しているので同時に動かすことが出来ます。モーターは60度から120度の好きな位置に動かすことが出来ます。右ふともものモーターは60度が内側で、120度が外側にふとももを動かします。90度は正面です。右足のモーターは60度で内側が上がり、120度では外側があがります。腕と同様、それぞれのモーターを同時に動かすことが出来、左足の場合は右足と動作が逆になります。ふとももや足のモーターを操作することでクムクムロボットを歩かせることも可能です。まずはそれぞれのモーターの動きをマスターしましょう。

    以下のサンプルプログラムでは最初に一度90度の位置に移動してから、右足ふともものみ70度から110度の間で回転させています。他の足なども動かしてみましょう。

    ライブラリの追加

    事前にArduino IDEへライブラリを追加します。

    今回はサーボモーターの速度をコントロールするので、WEB上にあるライブラリ「VarSpeedServo」をダウンロードして追加します。

    • 赤線で囲んだ[Code]をクリックし[Download ZIP]を選択するとZIPファイルがダウンロードされます。

    • Arduino IDEのメニュー[スケッチ]-[ライブラリをインクルード]-[.ZIP形式のライブラリをインクルード]を選択します。ファイル選択ウインドウが表示されるので、先ほどダウンロードしたZIPフィルを選択して[開く]をクリックすれば完了です。

    ソースコード

    #include <VarSpeedServo.h>
    VarSpeedServo legL;
    VarSpeedServo legR;
    VarSpeedServo footL; 
    VarSpeedServo footR; 
    
    void setup(){ 
      legL.attach(9); //左脚のモーターをポート10に設定 
      legR.attach(5); //右脚のモーターをポート4に設定 
      footL.attach(8); //左足のモーターをポート10に設定 
      footR.attach(6); //右足のモーターをポート4に設定 
      pinMode(11,OUTPUT) ; //モーター電源供給ポート設定
      digitalWrite(11,HIGH) ; //モーター電源ON 
      legL.write(90, 50, false); //50の速度で90度へ移動 
      legR.write(90, 50, false); 
      footL.write(90, 50, false); 
      footR.write(90, 50, false); 
      delay(3000); 
    }
    
    void loop(){ 
      legL.write(90, 50, false);
      legR.write(70, 50, false); //50の速度で70度へ回転 
      footL.write(90, 50, false); 
      footR.write(90, 50, false); 
      delay(3000); 
      legL.write(90, 50, false);
      legR.write(110, 50, false);  //50の速度で110度へ回転 
      footL.write(90, 50, false); 
      footR.write(90, 50, false); 
      delay(3000);
    }
    

     

    関数

    VarSpeedServo write(value, speed, wait);

    value: 角度

    speed: 動作速度 1から255  数値の大きい方が速い

    wait:  trueで動作完了まで関数内で待つ。 falseで待たずに次の行へ進む

    クムクムのモーター

    クムクムに利用しているモーターはサーボモーターと呼ばれ、サーボモーターは、扇風機などに使われているモーターとは異なり、角度や速度などを指定して、好きな場所まで自由な速度で回転して止めることができるモーターです。
    クムクムロボットでは、顔、両腕、足の付け根、足 の合計7個のサーボモーターがあり、これらの一つ一つを個別の角度、速度で回転して止めることができます。

    Arduinoによる制御方法

    Arduinoなどマイコンから指定角度に回転させるには、その角度に該当するパルスをプログラムから出力します。
    この方法をPWMと呼び、クムクムロボットでは0~180度の回転角度に対して500パルス~2500パルスを与えて制御します。

    クムクムでモーターを動かす場合

    クムクムでは、電池の有効活用のために、モーターへの電源供給をプログラムからコントロールできるようにしています。
    ポート(D11)と下記の回路図の矢印部分が接続されており、プログラムからHIGH(電源ON)/LOW(電源OFF)を出力することで電池からのモーター電源供給を物理的にコントロールします。

    ◆Arduinoプログラミングについて


    Arduinoを利用して、C,C++言語でクムクムをコントロールするプログラムを作り、クムクムロボットのボード内に書き込んで直接動かすことができます。
    スクラッチやPythonなどより、より早く・より自由に動かすことができます。
    CPUから各パーツを直接コントロールするプログラムを作るため、電気的な知識をしっかりマスターすることができます。

      1.開発環境

      WindowsまたはMacなど、ArduinoIDEがインストールされたパソコンとクムクムをマイクロUSBのケーブルで結びます。
      ※ArduinoIDEは <こちら>から最新バージョンをダウンロードすることができます。
      ※USBケーブルは必ずデータ通信が可能なケーブルをご用意ください。(中にはスマホ用などで充電専用のケーブルもあります)

      2.クムクムのCPUを選択する

      ArduinoIDEを起動し、お使いのクムクムの機種にあったCPUを選択します。
      Qumcum[QX-001R3J]の場合には【ArduinoLeonardo】を、QumcumPRO/W[QX-001R321J/321E]の場合にはBoards ManagerからESP32を選択します。
      ESP32が選択項目に現れない場合は、ESP32用のライブラリーなどをインストールしてください。(インストール方法などはArduino関連サイトなどから検索します。※参考サイト <ここ> リンク等は予告なく切れる場合があります。)

      ●使用CPU
      Qumcum[QX-001R3J] … ATMEGA32U4
      QumcumPRO/W[QX-001R321J/E] … ESP32 WROOM32-D,E

      3.プログラミング

      各ボードの情報を参考にプログラミングを行います。
      具体的なプログラミングについては、随時サンプルプログラムと技術情報をクムクムライブラリー <3J> <321J/E> に掲載していきますので参考にプログラミングを進めてください。また、下記のボードマニュアルやネット情報を利用し独自にプログラミングをしていくことも可能です。

      Qumcum[QX-001R3J] のボードマニュアルは  <こちら>
      QumcumPRO/W[QX-001R321J/E]のボードマニュアルは <こちら>

      4.書き込み

      プログラムができたら、パソコンとクムクムの接続されているポートを合わせ、その後書き込みボタン(右スクリーンショット赤い〇矢印)をクリックします。
      クリック後、C言語で書かれたプログラムは機械語にコンパイルされ、USBケーブルを経由してロボットのCPUに書き込まれます。
      書き込みが完了すると、プログラムは自動で実行され、作られたプログラム通りにロボットは動きます。
      もし思い通りに動かなかったら、プログラムのどこかに間違えがあるので、直してもう一度書き込みます。
      ※Arduinoでは文法ミス以外は動かないプログラムでもCPUに書き込んで動かそうとしますので、書き込んでみなければ正しく動くかどうかがわかりません。
      ※また、CPUの中にあらかじめ書き込まれているArduinoシステムを壊してしまうプログラムも書き込めてしまうので、プログラミングは慎重に行ってください。

      ◆クムクムロボット公式サイトのマニュアル
      https://qumcum.com/wp-content/uploads/2022/08/start_scratch.pdf

      ◆Scratch(スクラッチ)で動く3Dロボット「3D-WEBクムクム」β版
      https://personal.qumcum.com/home3d/robo-real/

      ◆クムクムロボット(アマゾンQumcumストア)
      https://www.amazon.co.jp/stores/Qumcum/page/FFCFA57A-F592-49A0-9F23-3D90514E5E61?ref_=ast_bln

      ◆Youtubeにはたくさんの動画を載せています
      https://www.youtube.com/@qumcum/