対応ロボット:Qmcum(QX-001R3J)
クムクムの右胸についているマイク(クムクムではアナログ式コンデンサーマイク、クムクムプロではデジタルマイク、3Dではシミュレーション)では、周囲の音を検知することができます。
今回はこのマイクでの音検知を使い音のレベルによって3色のLEDを光らせるプログラムを作ります。
音の大きさに合わせ、そのレベルによりそれぞれの反応をさせます。
※音は、小さいところから大きなピークに達し、そこから下がるので、今回のようなプログラムでは音量の上がり下がりのタイミングで何度かの判定に引っかかってしまうので、良いプログラムではありません。
プログラミングの処理のイメージをまず理解してください。
※マイクの音量は、0から最大1023になります。
※実用的なプログラムにするには計測した音量の値からノイズを取り除き、絶対値としてデータを扱うなど工夫が必要となります。
ソースコード
#define Red A0
#define Mic A4
void setup() {
Serial.begin(15200);
pinMode(Red,OUTPUT);
digitalWrite(Red,LOW);
}
void loop() {
int val = analogRead(A4);
Serial.println(val);
digitalWrite(Red,LOW);
digitalWrite(Green,LOW);
digitalWrite(Blue,LOW);
if(val>=900){
digitalWrite(Red,HIGH);
}
else if(val>=700){
digitalWrite(Blue,HIGH);
}
else if(val>=500){
digitalWrite(Green,HIGH);
}
else{
}
delay(100);
}
関数
analogRead(); 指定したアナログポートの電圧(0~5V)を10bit(0~1023)の値に変換されます。2.5Vなら512辺りの値となります。
クムクムのマイク
クムクムロボット右胸には小さなコンデンサーマイクがついています。
このコンデンサーマイクは100倍増幅のアンプを通してアナログ信号として出力されるため、クムクムではこの信号をA4po-to で受けて処理をします。
このアナログ信号は0~1023までの数値で取得することができますが、マイクからの信号の時は、無音の場合512あたりの数値を返します。
実際には100倍増幅していますので、微妙な数値の揺れがあり、この信号を処理して音ありなしの制御を行います。


◆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/
対応ロボット:Qmcum(QX-001R3J)
クムクムの右胸についているマイク(クムクムではアナログ式コンデンサーマイク、クムクムプロではデジタルマイク、3Dではシミュレーション)では、周囲の音を検知することができます。
今回はこのマイクでの音検知を使い音のレベルによって3色のLEDを光らせるプログラムを作ります。
音の大きさに合わせ、そのレベルによりそれぞれの反応をさせます。
※音は、小さいところから大きなピークに達し、そこから下がるので、今回のようなプログラムでは音量の上がり下がりのタイミングで何度かの判定に引っかかってしまうので、良いプログラムではありません。
プログラミングの処理のイメージをまず理解してください。
※マイクの音量は、0から最大1023になります。
※実用的なプログラムにするには計測した音量の値からノイズを取り除き、絶対値としてデータを扱うなど工夫が必要となります。
ソースコード
#define Red A0
#define Mic A4
void setup() {
Serial.begin(15200);
pinMode(Red,OUTPUT);
digitalWrite(Red,LOW);
}
void loop() {
int val = analogRead(A4);
Serial.println(val);
digitalWrite(Red,LOW);
digitalWrite(Green,LOW);
digitalWrite(Blue,LOW);
if(val>=900){
digitalWrite(Red,HIGH);
}
else if(val>=700){
digitalWrite(Blue,HIGH);
}
else if(val>=500){
digitalWrite(Green,HIGH);
}
else{
}
delay(100);
}
関数
analogRead(); 指定したアナログポートの電圧(0~5V)を10bit(0~1023)の値に変換されます。2.5Vなら512辺りの値となります。
クムクムのマイク
クムクムロボット右胸には小さなコンデンサーマイクがついています。
このコンデンサーマイクは100倍増幅のアンプを通してアナログ信号として出力されるため、クムクムではこの信号をA4po-to で受けて処理をします。
このアナログ信号は0~1023までの数値で取得することができますが、マイクからの信号の時は、無音の場合512あたりの数値を返します。
実際には100倍増幅していますので、微妙な数値の揺れがあり、この信号を処理して音ありなしの制御を行います。


◆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/