※注意※
モータープログラミングは非常に危険です。
モーターの力は非常に強いため指を挟んだりしてケガをすることもあります。
プログラムを書き込んだあとすぐに動作が始まるプログラムなどの場合は特に気を付けてください。
※特に、足(D5,D6,D8,D9)については、60度以下、120度以上の指定をすると回転しすぎてプラスチックを破損してしまいますので角度にはご注意ください。
※万が一のケガや部品の破損について弊社では責任を負いかねますので予めご了承ください。
対応ロボット:Qmcum(QX-001R3J)
クムクムロボットの顔や腕を動かすサーボモーターを速度も指定してコントロールします。モータはそれぞれ独立しているので顔や両方の腕を同時に動かすことが出来ます。顔を左右に、腕を上下に動かすプログラムを作成し、loop() に書くことでループ処理(ずっと)の使い方をマスターしましょう。
サーボモーターのライブラリを追加します。
このプログラムでは同時に複数のモーターを動作させるのでサーボモータ関数writeの3つ目の引数をfalseとします。
ライブラリの追加
事前にArduino IDEへライブラリを追加します。
今回はサーボモーターの速度をコントロールするので、WEB上にあるライブラリ「VarSpeedServo」をダウンロードして追加します。
- ブラウザからhttps://github.com/netlabtoolkit/VarSpeedServoを開きます。

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

- Arduino IDEのメニュー[スケッチ]-[ライブラリをインクルード]-[.ZIP形式のライブラリをインクルード]を選択します。ファイル選択ウインドウが表示されるので、先ほどダウンロードしたZIPフィルを選択して[開く]をクリックすれば完了です。
ソースコード
#include <VarSpeedServo.h>
VarSpeedServo face;
VarSpeedServo armL;
VarSpeedServo armR;
void setup(){
face.attach(7); //顔のモーターをポート7に設定
armL.attach(10); //左腕のモーターをポート10に設定
armR.attach(4); //右腕のモーターをポート4に設定
pinMode(11,OUTPUT) ; //モーター電源供給ポート設定
digitalWrite(11,HIGH) ; //モーター電源ON
}
void loop(){
face.write(0, 50, false); //50の速度で0度へ移動
armL.write(0, 50, false); //50の速度で0度へ移動
armR.write(0, 50, false); //50の速度で0度へ移動
delay(3000);
face.write(180, 50, false); //50の速度で0度へ移動
armL.write(180, 50, false); //50の速度で0度へ移動
armR.write(180, 50, false); //50の速度で0度へ移動
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

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)
クムクムロボットの顔や腕を動かすサーボモーターを速度も指定してコントロールします。モータはそれぞれ独立しているので顔や両方の腕を同時に動かすことが出来ます。顔を左右に、腕を上下に動かすプログラムを作成し、loop() に書くことでループ処理(ずっと)の使い方をマスターしましょう。
サーボモーターのライブラリを追加します。
このプログラムでは同時に複数のモーターを動作させるのでサーボモータ関数writeの3つ目の引数をfalseとします。
ライブラリの追加
事前にArduino IDEへライブラリを追加します。
今回はサーボモーターの速度をコントロールするので、WEB上にあるライブラリ「VarSpeedServo」をダウンロードして追加します。
- ブラウザからhttps://github.com/netlabtoolkit/VarSpeedServoを開きます。

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

- Arduino IDEのメニュー[スケッチ]-[ライブラリをインクルード]-[.ZIP形式のライブラリをインクルード]を選択します。ファイル選択ウインドウが表示されるので、先ほどダウンロードしたZIPフィルを選択して[開く]をクリックすれば完了です。
ソースコード
#include <VarSpeedServo.h>
VarSpeedServo face;
VarSpeedServo armL;
VarSpeedServo armR;
void setup(){
face.attach(7); //顔のモーターをポート7に設定
armL.attach(10); //左腕のモーターをポート10に設定
armR.attach(4); //右腕のモーターをポート4に設定
pinMode(11,OUTPUT) ; //モーター電源供給ポート設定
digitalWrite(11,HIGH) ; //モーター電源ON
}
void loop(){
face.write(0, 50, false); //50の速度で0度へ移動
armL.write(0, 50, false); //50の速度で0度へ移動
armR.write(0, 50, false); //50の速度で0度へ移動
delay(3000);
face.write(180, 50, false); //50の速度で0度へ移動
armL.write(180, 50, false); //50の速度で0度へ移動
armR.write(180, 50, false); //50の速度で0度へ移動
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

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/