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

童謡『チューリップ』の歌い出し「さいた さいた チューリップの花が」の部分ををクムクムのBEEP音で奏でるプログラムを作ります。

音階・音の長さをBEEP音の周波数(Hz)で鳴らすコマンドを作りつなげるプログラムを作ります。

「さいた さいた チューリップの花が」を音符にすると「ドレミ_ ドレミ_ ソミレド レミレ_」になります。

これを周波数(Hz)に置き換え、音の長さを設定します。

最初の「ドレミ_」の部分は同じなので2回繰り返すfor構文を使います。

周波数(Hz)を変えると音程を変えることが出来るので、好きな音楽をクムクムに演奏させてみましょう。

今回は音を出す部分を、音の高さと長さをまとめて指定できるように関数にしています。

関数の作り方も学んでみよう。

ソースコード


import qumcum 

#BEEP音を出す関数を用意します。takasaは周波数(Hz)、nagasaは秒単位
def oto( takasa, nagasa):
    qumcum.sound(takasa,nagasa*2000) #音がつながるように長めに指定
    qumcum.wait(nagasa)

for kai in range(2):  #2回くりかえし
    oto(262, 0.6)
    oto(294, 0.6)
    oto(330, 1.2)
oto(392, 0.6)
oto(330, 0.6)
oto(294, 0.6)
oto(262, 0.6)
oto(294, 0.6)
oto(330, 0.6)
oto(294, 0.6)

関数

BEEP音について

クムクムには単音を使って効果音の鳴らしたりドレミ音階を使って音楽を鳴らしたりすることができます。
クムクムでは音の高さをドレミという音階で指定するのではなく0~65534Hzまでの周波数で、音の長さを秒0秒~99秒で指定します。
音は、空気の振動によって人間の鼓膜に伝えられます。
その空気の振動の一定時間内に起こる振動を周波数とよびHz(ヘルツ)という単位で表します。
周波数の小さいと低い音、大きいと高い音を表します。
人に聞こえる音などは個人差や再生装置によって異なりますが、クムクムのプログラムでは周波数は0~65535Hzまで、長さは0~99秒まで0.1秒単位で指定できます。
音の大きさは胸の部分のボリュームを精密ドライバーで回します。
※音の長さはロボットまでの通信時間などによって正確には動作しません。
※Arduino Cプログラミングでは通信が発生しないため0.01秒などの細かい時間の変化で動作させることが可能です。

QumcumのBEEP音

Pythonプログラムを実行すると、パソコンのBluetoothを通じてクムクムロボットへ命令が飛ばされます。

命令は、周波数と発音秒数で、その命令をクムクムは受けて自分のCPUから矩形波を発生し、オーディオアンプを通してスピーカーに伝えます。
クムクムに届くまでの時間と、届いてからCPUが受け取るまでの時間、CPUが受け取ってから矩形波をコントロールするまでの時間がかかるため、ロボットが直接CPUをコントロールする時間より長くかかってしまいます。

CPUにロボットを直接コントロールするプログラムを埋め込めるArduinoなどのC言語では、パソコンから送り出したり電波を読み込んだりする時間が必要ないため、もっと早く細かい速度で音のON/OFFを切りかえることができます。

※スクラッチで作った曲の演奏がどうしてもちゃんと演奏できなかったり、タイミングがずれたりするのはこのためです。
※また、音を鳴らしながらLEDを光らせたりすると、音を鳴らす命令と光らす命令が順に送り出されるため思ったようり遅いタイミングで鳴ったり光ったりしてしまいます。

デジタル信号を音に

BEEP音はCPUの1本の脚からデジタル信号で出力されるパルスをオーディオアンプで増幅してスピーカに伝えて鳴らします。
CPUから出力されるデジタル信号はとても小さな電力なのでそのまま大きなスピーカーの布を揺らすことはできません。
そのため、オーディオアンプという回路を使い、小さな信号を大きな信号に変えてスピーカーにつないで音として鳴らしています。
オーディオアンプを使わずに直接CPUの電力で鳴らすために圧電ブザーという部品を使用することもできますが、クムクムでは大きな音を鳴らしたいのであえてオーディオアンプを使っています。

BEEPが使われている装置・部品など

家電製品(テレビ、リモコン、炊飯器、洗濯機…)などで操作をしたときにピーとなる音など

2つのクムクムPythonプログラミング

クムクムによるPythonプログラミング方法には、①簡易エディターでまずはPythonを理解する ②APIとVSCodeなどを使ってインターネットサービスなどを利用したPythonプログラミングを行う 2つの方法があります。
クムクムサイトでは、前者①②を主に使用しロボットをPCに用意されたPythonの命令をBluetoothで順序良く送り出すことでコントロールすることを学びます。
ここではまず①の方法でPythonの基礎をしっかり身に着けることを目的とします。

簡易エディタープログラミングについて

クムクムサイトに用意されているWEBエディターは、ご自分のPCにPython環境を準備する必要がなく、簡単にPythonを使ってクムクムを動かすことのできる統合環境です。
WEBブラウザーだけでクムクムとも簡単に通信ができるため非常に便利なのですが、残念ながらPythonが得意とするインターネットサービスの利用ができません。
ですので、例えば、「お天気予報サイトへ行きお天気情報を取得してクムクムと連携させる」といったことはこの環境では作れません。
あくまで、Pythonの文法とプログラミング手法を理解する簡易ツールとしてご理解ください。
もし、インターネット接続プログラムを作りたい場合には弊社Youtubeサイト、VSCodeによるクムクムPython環境の準備 をご覧の上、VSCodeとPythonの環境をPCにセットいただきプログラミングを行います。

Pythonプログラミングの方法

詳細は 「Pythonではじめよう」をご覧ください。
下記は、当マニュアルから要点を抜粋します。

①WEBエディターを起動します。

②エディタとクムクムを接続します

※PCにはBluetooth機能が必要です
声クムクム(QX-001R3J)はWEBから接続できるようにファームが書き換えられていなければ使えません。

③クムクムとブラウザーの接続確認を行います

※ブラウザーエディタ右上橋の接続ボタンをクリックし、クムクムがちゃんと動作するか?確認します。
※動きがおかしい場合や途中で止まる場合など、原因は電池充電不足です。

④プログラムを書いて実行します

エディター上にプログラムを書き、RUNボタンをクリックしてクムクムへプログラムを送信して動かします。

必ず必要なお作法

Pythonでは、標準に用意されている文法以外を使用する場合、import という命令を使って使いたいライブラリーを読み込む記述をします。
インターネットに接続していろいろな処理をするプログラムを作りたいときや、特殊な装置を動かしたい場合など必要な時に必要な機能を読み込んで使います。
クムクムをコントロールするコマンドも、標準のPythonにはない特別な命令なので、プログラムの最初でimport qumcumと記述しクムクムのライブラリーを読み込みます。

※注意 クムクムエディターでimportできるライブラリー
クムクムエディターはPythonの基礎をクムクムを使って学ぶためだけに用意されているので、マニュアルの2ページに記載されたライブラリーしかimportすることができません。
インターネットやAIなどのライブラリーはWEB上のクムクムプログラムからはセキュリティー上使用することができません

Pythonについて

◆誰がいつ創ったの?

Python(パイソン)はオランダ出身・アメリカ在住プログラマーであるグイド・ヴァン・ロッサムによって創り出されたプログラミング言語です。
1991年にはPythonの設計哲学をリリースし、2000年にはPython2.0を2008年にはPython3.0をリリースし、2021年6月にはC言語についで2位のランキングを獲得している、今最も注目を浴びているプログラミング言語です。

◆なんで今そんなにPythonなの?

Pythonがこんなに人気のあるのは「学びやすく便利な上将来性がある」ことが大きな理由で、具体的には以下5つの点が人気の理由として挙げられます。

◆Pythonの特徴

①簡単でわかりやすい
Pythonは、プログラムの記述ルールが明確に定義されています。C言語のように勝手気ままにプログラマーの癖で書くことは許されません。ですから、学習もしやすく、また誰が作っても読みやすく理解しやすくメンテナンス性にも優れていて、改造や修正もやりやすいプログラミング言語です。

②どんなパソコンでも動く
専門的に言うと、プラットフォームを限定しないといいます。
つまり、WindowsやMac、Linuxなど同じプログラムがそのまま他のパソコンで動きます。Pythonは、C言語のように機械語に翻訳されて動く言語ではないので、Windows用やMac用などそれぞれ専用にプログラムを作る必要がありません。

③コントロールの手段が豊富
多くのプログラマーが、いろいろな処理やいろいろな装置に使えるライブラリーをどんどん開発し、ネット上に公開しています。
自由に使える優秀なライブラリーがたくさんあります。しかも、Pythonのライブラリーは無料のものが多いため、手軽にいろいろなプログラムを作っていくことが可能です。

④動かしながら作れる
Pythonはインタプリタという形式で動くため、プログラムは作るとすぐに実行して瞬時に試すことができます。
C言語のように機械語に変換してから動くまで待つといったわずらわしさがありません。作ってすぐに結果を見ることができるので、気軽にトライ&エラーを繰り返すことができ、初心者の習得にも向きます。

⑤これからの時代に必要な処理が簡単にできる
Pythonにはインターネットを利用したライブラリーや、AI・ビッグデータの処理や統計分析などこれからの時代に必要な処理を実現できるライブラリーがたくさんあります。
大量のデーターベースを利用し、AIで判定して装置を動かしたりすることはこれからの時代には絶対に必要な処理でこの先、間違えなくPythonでのプログラミングは必要で伸びていく技術です。

◆なぜクムクムとPythonのなのか

これまでの時代は、「ハードはハード」「ソフトはソフト」「データはデータ」と切り分けられており、技術者の知識も腕もそれぞれ切り分けられていました。
しかしこれからの時代における装置(ドローンや自動運転の車、ロケット、空飛ぶ車、そして外科手術ロボットなど…)は自分自身以外とどんどん通信を行い、日々増なく「総合的に理解し利用できる技術」です。
ふえ続ける新たな知識データベースを利用して、どんどん新しい動きができるように変化成長をする装置になります。
これらの技術に対応できるエンジニア・プログラマーに求められるのは、「切り分けられた技術」ではクムクムでは、ロボットやPythonそしてインターネットサービスにおけるデータなをどを総合的に学ぶことでこれから必要な「先端IT技術」をマスターすることができます。

文部科学省の科学技術・学術政策研究所は、2035年には「量子化コンピューター」の実用化と「空飛ぶ車」という未来の科学技術の予測をまとめました。2019年4月23日に経済産業省が発表した「IT人材需給に関する調査」では2030年に「従来型IT人材」が10万人余ると発表していますが、 4月24日同報告書を紹介した日本経済新聞の記事には「先端人材55万人不足 経産省試算 30年、AIやIoT」という見出しを付けています。10万人余る「従来型IT人材」とは受託開発や保守運用を担うエンジニアで、 55万人不足する「先端IT人材」とは「AIやビッグデータ、IoT等、第4次産業革命に対応した新しいビジネスの担い手として、付加価値の創出や革新的な効率化等により生産性向上等に寄与できるIT人材」と定義しています。

◆クムクムロボット公式サイトのマニュアル
https://qumcum.com/wp-content/uploads/2022/08/start_python.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)

童謡『チューリップ』の歌い出し「さいた さいた チューリップの花が」の部分ををクムクムのBEEP音で奏でるプログラムを作ります。

音階・音の長さをBEEP音の周波数(Hz)で鳴らすコマンドを作りつなげるプログラムを作ります。

「さいた さいた チューリップの花が」を音符にすると「ドレミ_ ドレミ_ ソミレド レミレ_」になります。

これを周波数(Hz)に置き換え、音の長さを設定します。

最初の「ドレミ_」の部分は同じなので2回繰り返すfor構文を使います。

周波数(Hz)を変えると音程を変えることが出来るので、好きな音楽をクムクムに演奏させてみましょう。

今回は音を出す部分を、音の高さと長さをまとめて指定できるように関数にしています。

関数の作り方も学んでみよう。

ソースコード


import qumcum 

#BEEP音を出す関数を用意します。takasaは周波数(Hz)、nagasaは秒単位
def oto( takasa, nagasa):
    qumcum.sound(takasa,nagasa*2000) #音がつながるように長めに指定
    qumcum.wait(nagasa)

for kai in range(2):  #2回くりかえし
    oto(262, 0.6)
    oto(294, 0.6)
    oto(330, 1.2)
oto(392, 0.6)
oto(330, 0.6)
oto(294, 0.6)
oto(262, 0.6)
oto(294, 0.6)
oto(330, 0.6)
oto(294, 0.6)

関数

BEEP音について

クムクムには単音を使って効果音の鳴らしたりドレミ音階を使って音楽を鳴らしたりすることができます。
クムクムでは音の高さをドレミという音階で指定するのではなく0~65534Hzまでの周波数で、音の長さを秒0秒~99秒で指定します。
音は、空気の振動によって人間の鼓膜に伝えられます。
その空気の振動の一定時間内に起こる振動を周波数とよびHz(ヘルツ)という単位で表します。
周波数の小さいと低い音、大きいと高い音を表します。
人に聞こえる音などは個人差や再生装置によって異なりますが、クムクムのプログラムでは周波数は0~65535Hzまで、長さは0~99秒まで0.1秒単位で指定できます。
音の大きさは胸の部分のボリュームを精密ドライバーで回します。
※音の長さはロボットまでの通信時間などによって正確には動作しません。
※Arduino Cプログラミングでは通信が発生しないため0.01秒などの細かい時間の変化で動作させることが可能です。

QumcumのBEEP音

Pythonプログラムを実行すると、パソコンのBluetoothを通じてクムクムロボットへ命令が飛ばされます。

命令は、周波数と発音秒数で、その命令をクムクムは受けて自分のCPUから矩形波を発生し、オーディオアンプを通してスピーカーに伝えます。
クムクムに届くまでの時間と、届いてからCPUが受け取るまでの時間、CPUが受け取ってから矩形波をコントロールするまでの時間がかかるため、ロボットが直接CPUをコントロールする時間より長くかかってしまいます。

CPUにロボットを直接コントロールするプログラムを埋め込めるArduinoなどのC言語では、パソコンから送り出したり電波を読み込んだりする時間が必要ないため、もっと早く細かい速度で音のON/OFFを切りかえることができます。

※スクラッチで作った曲の演奏がどうしてもちゃんと演奏できなかったり、タイミングがずれたりするのはこのためです。
※また、音を鳴らしながらLEDを光らせたりすると、音を鳴らす命令と光らす命令が順に送り出されるため思ったようり遅いタイミングで鳴ったり光ったりしてしまいます。

デジタル信号を音に

BEEP音はCPUの1本の脚からデジタル信号で出力されるパルスをオーディオアンプで増幅してスピーカに伝えて鳴らします。
CPUから出力されるデジタル信号はとても小さな電力なのでそのまま大きなスピーカーの布を揺らすことはできません。
そのため、オーディオアンプという回路を使い、小さな信号を大きな信号に変えてスピーカーにつないで音として鳴らしています。
オーディオアンプを使わずに直接CPUの電力で鳴らすために圧電ブザーという部品を使用することもできますが、クムクムでは大きな音を鳴らしたいのであえてオーディオアンプを使っています。

BEEPが使われている装置・部品など

家電製品(テレビ、リモコン、炊飯器、洗濯機…)などで操作をしたときにピーとなる音など

2つのクムクムPythonプログラミング

クムクムによるPythonプログラミング方法には、①簡易エディターでまずはPythonを理解する ②APIとVSCodeなどを使ってインターネットサービスなどを利用したPythonプログラミングを行う 2つの方法があります。
クムクムサイトでは、前者①②を主に使用しロボットをPCに用意されたPythonの命令をBluetoothで順序良く送り出すことでコントロールすることを学びます。
ここではまず①の方法でPythonの基礎をしっかり身に着けることを目的とします。

簡易エディタープログラミングについて

クムクムサイトに用意されているWEBエディターは、ご自分のPCにPython環境を準備する必要がなく、簡単にPythonを使ってクムクムを動かすことのできる統合環境です。
WEBブラウザーだけでクムクムとも簡単に通信ができるため非常に便利なのですが、残念ながらPythonが得意とするインターネットサービスの利用ができません。
ですので、例えば、「お天気予報サイトへ行きお天気情報を取得してクムクムと連携させる」といったことはこの環境では作れません。
あくまで、Pythonの文法とプログラミング手法を理解する簡易ツールとしてご理解ください。
もし、インターネット接続プログラムを作りたい場合には弊社Youtubeサイト、VSCodeによるクムクムPython環境の準備 をご覧の上、VSCodeとPythonの環境をPCにセットいただきプログラミングを行います。

Pythonプログラミングの方法

詳細は 「Pythonではじめよう」をご覧ください。
下記は、当マニュアルから要点を抜粋します。

①WEBエディターを起動します。

②エディタとクムクムを接続します

※PCにはBluetooth機能が必要です
声クムクム(QX-001R3J)はWEBから接続できるようにファームが書き換えられていなければ使えません。

③クムクムとブラウザーの接続確認を行います

※ブラウザーエディタ右上橋の接続ボタンをクリックし、クムクムがちゃんと動作するか?確認します。
※動きがおかしい場合や途中で止まる場合など、原因は電池充電不足です。

④プログラムを書いて実行します

エディター上にプログラムを書き、RUNボタンをクリックしてクムクムへプログラムを送信して動かします。

必ず必要なお作法

Pythonでは、標準に用意されている文法以外を使用する場合、import という命令を使って使いたいライブラリーを読み込む記述をします。
インターネットに接続していろいろな処理をするプログラムを作りたいときや、特殊な装置を動かしたい場合など必要な時に必要な機能を読み込んで使います。
クムクムをコントロールするコマンドも、標準のPythonにはない特別な命令なので、プログラムの最初でimport qumcumと記述しクムクムのライブラリーを読み込みます。

※注意 クムクムエディターでimportできるライブラリー
クムクムエディターはPythonの基礎をクムクムを使って学ぶためだけに用意されているので、マニュアルの2ページに記載されたライブラリーしかimportすることができません。
インターネットやAIなどのライブラリーはWEB上のクムクムプログラムからはセキュリティー上使用することができません

Pythonについて

◆誰がいつ創ったの?

Python(パイソン)はオランダ出身・アメリカ在住プログラマーであるグイド・ヴァン・ロッサムによって創り出されたプログラミング言語です。
1991年にはPythonの設計哲学をリリースし、2000年にはPython2.0を2008年にはPython3.0をリリースし、2021年6月にはC言語についで2位のランキングを獲得している、今最も注目を浴びているプログラミング言語です。

◆なんで今そんなにPythonなの?

Pythonがこんなに人気のあるのは「学びやすく便利な上将来性がある」ことが大きな理由で、具体的には以下5つの点が人気の理由として挙げられます。

◆Pythonの特徴

①簡単でわかりやすい
Pythonは、プログラムの記述ルールが明確に定義されています。C言語のように勝手気ままにプログラマーの癖で書くことは許されません。ですから、学習もしやすく、また誰が作っても読みやすく理解しやすくメンテナンス性にも優れていて、改造や修正もやりやすいプログラミング言語です。

②どんなパソコンでも動く
専門的に言うと、プラットフォームを限定しないといいます。
つまり、WindowsやMac、Linuxなど同じプログラムがそのまま他のパソコンで動きます。Pythonは、C言語のように機械語に翻訳されて動く言語ではないので、Windows用やMac用などそれぞれ専用にプログラムを作る必要がありません。

③コントロールの手段が豊富
多くのプログラマーが、いろいろな処理やいろいろな装置に使えるライブラリーをどんどん開発し、ネット上に公開しています。
自由に使える優秀なライブラリーがたくさんあります。しかも、Pythonのライブラリーは無料のものが多いため、手軽にいろいろなプログラムを作っていくことが可能です。

④動かしながら作れる
Pythonはインタプリタという形式で動くため、プログラムは作るとすぐに実行して瞬時に試すことができます。
C言語のように機械語に変換してから動くまで待つといったわずらわしさがありません。作ってすぐに結果を見ることができるので、気軽にトライ&エラーを繰り返すことができ、初心者の習得にも向きます。

⑤これからの時代に必要な処理が簡単にできる
Pythonにはインターネットを利用したライブラリーや、AI・ビッグデータの処理や統計分析などこれからの時代に必要な処理を実現できるライブラリーがたくさんあります。
大量のデーターベースを利用し、AIで判定して装置を動かしたりすることはこれからの時代には絶対に必要な処理でこの先、間違えなくPythonでのプログラミングは必要で伸びていく技術です。

◆なぜクムクムとPythonのなのか

これまでの時代は、「ハードはハード」「ソフトはソフト」「データはデータ」と切り分けられており、技術者の知識も腕もそれぞれ切り分けられていました。
しかしこれからの時代における装置(ドローンや自動運転の車、ロケット、空飛ぶ車、そして外科手術ロボットなど…)は自分自身以外とどんどん通信を行い、日々増なく「総合的に理解し利用できる技術」です。
ふえ続ける新たな知識データベースを利用して、どんどん新しい動きができるように変化成長をする装置になります。
これらの技術に対応できるエンジニア・プログラマーに求められるのは、「切り分けられた技術」ではクムクムでは、ロボットやPythonそしてインターネットサービスにおけるデータなをどを総合的に学ぶことでこれから必要な「先端IT技術」をマスターすることができます。

文部科学省の科学技術・学術政策研究所は、2035年には「量子化コンピューター」の実用化と「空飛ぶ車」という未来の科学技術の予測をまとめました。2019年4月23日に経済産業省が発表した「IT人材需給に関する調査」では2030年に「従来型IT人材」が10万人余ると発表していますが、 4月24日同報告書を紹介した日本経済新聞の記事には「先端人材55万人不足 経産省試算 30年、AIやIoT」という見出しを付けています。10万人余る「従来型IT人材」とは受託開発や保守運用を担うエンジニアで、 55万人不足する「先端IT人材」とは「AIやビッグデータ、IoT等、第4次産業革命に対応した新しいビジネスの担い手として、付加価値の創出や革新的な効率化等により生産性向上等に寄与できるIT人材」と定義しています。

◆クムクムロボット公式サイトのマニュアル
https://qumcum.com/wp-content/uploads/2022/08/start_python.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/