Arduino+Pythonハッキングに参加してきました。
Arduino+Pythonハッキングに参加してきました。
http://connpass.com/event/1649/
秋葉原のCEROというコワーキングスペースでおこなわれた、「Arduino+Pythonハッキング」というイベントに参加してきました。
今回が第3回です。実は第2回にも参加して、Arduinoの基本的な使い方なんかを覚えてきました。
今回は音で遊ぼうということで圧電スピーカを使ってArduinoから音を鳴らしました。
圧電スピーカはこちら
http://akizukidenshi.com/catalog/g/gP-04118/
イベントで使ったサンプルプログラムはこちらにあります。
http://kitagami.org/Study/Arduinopy20130217/20130217.html
Arduinoのプログラムは基本的にC(C++?)で書くことになります。
PythonからArduinoを制御しようということで、Serial経由でホストからArduinoのコマンドを送っていろいろな音を出します。
そして、ホストからのコマンド送出プログラムがPythonで書かれるわけです。
サンプルはプッっていう音が数回出るだけです。(Pythonファイル)
これは440Hzで音を鳴らしているのですが、この周波数と音の長さをコマンドで制御できます。
そこでやりたいのは音階を演奏することですよねw
音階から周波数を変換するテーブルを作成して、任意の音階の音を出すことができました。
そして、サーバと通信してどんな音を出すか決めたりしたいよね、ということで3つ目のサンプル(Pythonファイル POST版)です。
わたしはせっかく音階テーブルも作ったので、文字列で音階名と長さを与えて簡易版MMLのようなもので曲を演奏するようにしました。
この簡易版MMLの実装をしているときに、どこからかジムノペティが流れて来たので、ジムノペティの出だしを演奏してみることにします。
"F2A2G2F2C2b2C2D2a6f6f6f6f6r2F2A2G2F2C2b2C2D2a6C6f6"
小文字と大文字が混ざっているのはオクターブの高い低いがあるからそれを使い分けています。
またジムノペティはロ短調なので、FとCが半音上がっています。
プログラムはGistにあげておきます。
ハードをいじるプログラムは楽しいですね。こういうイベントすごく好きです。また参加したいですね。