今回は、Arduinoを使ったユニークな電子工作を前編、後編の2回に分けてご紹介していきたいと思います。
この興味深い電子工作を紹介してくれるのは、物事の関係性をテーマに活動するアーティストである平原真さん。
大阪芸術大学准教授でもある平原さんは、これまでもコンピュータや電子デバイスを使ったメディアアートを多数制作されており、Device Plusでも「Arduinoを使ったソーラーパネルで動くデジタル飼育箱」や「ArduinoとTOF距離センサでつくるドーナツプレーヤ」「Arduinoと加速度センサで作るデジタルボール転がし迷路」といったセンス溢れる電子工作を紹介してくれています。それでは早速見ていきましょう!
目次
- 作品プランと制作の準備
- 電子回路の作成
- 2.1. 配線図と回路図
- 3.2. 組み立て手順
- 2.3. 部品にワイヤを取り付ける
- 2.4. ブレッドボードに部品を取り付ける
- 2.5. 配線する
- 2.6. 動作テストする
はじめに
みなさん、こんにちは。平原と申します。
昔話で恐縮ですが、自分が学生の時、バンドをやっていた友達の影響で、中古のエレキギターを買いました。さっそく練習を始めたものの、金属の弦を押さえるとすぐに指が痛くなってしまい、残念ながら諦めてしまいました。
「痛くない弦なら続けられたのに!」
というわけで、かなり強引な前振りですが、今回はレーザーの弦で演奏できる電子楽器を作ります。12個のレーザーとセンサを組み合わせ、リアルタイムに生成された音を鳴らします。
この記事は4つのパートに分かれています。
- 作品プランと制作の準備
- 電子回路の作成
- 筐体の作成
- プログラムの作成
前編は、制作を始めるための準備と電子回路の組み立て、動作チェックを行います。後編は、レーザー加工機や3Dプリンタを使って筐体を作り、最後にMozziというライブラリを使ってプログラムを書きます。
なお、今回の作品のアイデアは、大阪芸術大学の猪熊祐斗さんにご協力いただきました。
1. 作品プランと制作の準備
1.1. 全体のイメージ
今回は、弦に触れずに演奏できる電子楽器を作ります。指を動かすとポロロンとハープのような音色が聞こえるようにしたいです。音程や音の伸びを調整する機能があると、演奏の幅が広がりそうですね。
1.2. システム構成
全体のイメージで考えたポイントを実現するために必要な仕組みを図に描いて、システム構成を考えます。
まず、指の位置を読み取る機能が必要です。いくつかの方法が考えられるので検討してみましょう。深度カメラで撮影した映像を解析する技術がありますが、PCのパワーが必要でArduinoでは実現できません。
では、距離センサはどうでしょうか。指の位置は読み取れそうですが、弦の存在を感じにくそうです。
そこで今回は、非常に弱い赤色レーザーと、光が当たると電気が流れるフォトダイオードを使い、手でレーザーを遮ると反応する、という仕組みにしたいと思います。遮っている時は指にレーザーがあたるので、弦の場所も分かります。
そして、表現力のある音を鳴らす方法を考えます。Arduino標準のtone関数でビープ音を鳴らすことはできますが、美しい音色とは言えません。外部部品を使えばサンプリングした音を再生することもできますが、リアルタイムに音色を変えることができません。そこで、MozziというArduino用の音響合成ライブラリを使うことにします。音量や音階だけでなく、波形や音の響きも調整することができます。また、スピーカをArduinoに直結しても音量が小さいので、信号を増幅するためのアンプも必要です。音色に変化をつけるためにボリュームも使います。
次に、電子部品店のオンラインショップなどを見ながら、具体的な部品を選定します。主要な部品や選択肢の少ない部品から決めると考えやすくなります。
レーザーとセンサ
光源には、レーザーポインタなどに使われる1mWの超小型レーザーを使用します。円筒部分のサイズは直径6mm、長さ10mm。3Vで動作し、640nm ~ 660nmの波長の光を発します。ネジを回してレンズを調整すると、焦点をあわせることができます。出力は非常に弱いですが、直接目に入らないように注意してください。電源を入れる時はレーザー保護メガネを使用してください。
センサは、フォトダイオードと増幅回路が内蔵されたフォトICダイオードという製品を使います。光があたりフォトダイオードから発生した電流を増幅します。感度のピーク波長が650nmなので、レーザーと一致します。サイズは20mm x 20mm です。
>> 赤色ドットレーザーモジュール
>> フォトICダイオード
>> ROHM 半導体レーザー・ラインナップ
>> ROHM 光センサ・ラインナップ
オーディオアンプ
ICと周辺回路が納められたオーディオアンプ基板を使います。不要な部分をカットすることで10mm x 10mm程度の大きさになり、ブレッドボードで使いやすくなります。
Mozzi
Arduino用の音響合成ライブラリです。他のデバイスを追加せずに、音量、音程はもちろん、波形や音の響きなど変えることができます。
>> Mozzi
1.3. 筐体のデザイン
最初に手書きでスケッチをおこないます。竪琴やレトロなアンプのイメージを取り入れたデザインにしました。音の高低が目で見てわかるように斜めにしています。レーザーの固定方法やフォトダイオードとの位置関係なども検討しています。
1.4. 部品リスト
使用する物品をまとめました。価格と購入先URLは執筆時点のものです。送料が別途かかります。
1.5. 配布ファイル
作成例を作るために必要なデータを以下のリンクからダウンロードしてください。Arduinoのプログラムや、シナベニヤをカットするための形状データなどが含まれています。
>> 配布ファイル(1.2MB)
ファイルの内容
- TestSketch/TestSketch.ino
電子回路のテスト用プログラム - LaserStrings/LaserStrings.ino
完成品のプログラム - CutData.ai
シナベニヤの切断データ - LaserMounter.stl
レーザーの固定具 - SensorBase.stl
センサの台座 - RearTopFixture.stl
背面パネル上部の固定具 - RearBottomFixture.stl
背面パネル下部の固定具
2. 電子回路の作成
2.1. 配線図と回路図
電子部品のデータシートを確認しながら回路を設計します。同時に、実際の物の大きさや位置関係を考慮しながら、配線の長さなど考えます。回路図は電気的な接続関係を表した図で、配線図は実際のサイズや位置関係などを考慮した図です。慣れないうちは配線図をそっくりそのまま再現すると作りやすいですが、制作に慣れてきて自分で回路を作ったり他の人の回路を取り入れる時は、回路図で考えるほうが理解しやすくなります。配線図、回路図の作図には Fritzing というソフトを使用しています。
2.2. 組み立て手順
それでは、電子回路を組み立てて行きましょう。配線図と写真を見比べながら間違わないように配線してください。作業の手順は次のとおりです。
- 部品にワイヤを取り付ける
- ブレッドボードに部品を取り付ける
- 配線する
- 動作テストする
2.3. 部品にワイヤを取り付ける
部品をブレッドボードに接続できるようにするために、QIコネクタの付いたワイヤを作ります。QIコネクタと圧着ペンチを入手できない場合は、抵抗器の足をニッパーで切り、ワイヤにはんだ付けしても代用できます。
太さAWG26のワイヤを下記の長さに切断してください。
- スピーカ用 30cm 2本
- レーザー用 40cm 24本
- ボリューム用 15cm 12本
- センサ用 30cm 12本
全てのワイヤにQIコネクタを取り付けます。QIコネクタは、2.54mmピッチの汎用的なコネクタで、金属部品を圧着ペンチで圧着し、樹脂製のケースに入れて使います。QIコネクタの取り付け方についてはこちらのWebサイトを参考にしてください。
>> 【Tips】電子工作でよく使う『QIコネクタ』の圧着方法
次に、スピーカ、レーザー、ボリュームの端子にワイヤをはんだ付けし、熱収縮チューブで保護します。
センサ用のワイヤには、硬いジャンパワイヤを切断して作ったL字の先端をハンダ付けします。ブレッドボードに取付けた時に低く配線することができます。
ワイヤを全て取り付けるとこのような状態になります。レーザーとセンサ用は線が長く絡みやすいので、注意してください。
2.4. ブレッドボードに部品を取り付ける
センサ用のブレッドボードを連結します。裏面の凹凸をはめてください。両面テープで隠れている場合は、カッターで切断して取り除いてください。
センサの突起が上を向くように足を90度に曲げ、ブレッドボードの中央の溝をまたげるくらいまで左右に広げます。センサを正面から見て、左側の足を配線図の赤いラインに繋がるように差し込んでください。
下の図と同じようにセンサと抵抗器を取り付けてください。赤と青のラインはジャンパワイヤです。硬いタイプを使うとブレッドボードに沿ってすっきり納まります。10kΩの抵抗器は、根本から90度に曲げ、10mmくらいの長さで切断します。極性は無いのでどちら向きでも構いません。
もう一つのブレッドボードには、オーディオアンプと、レーザー用の200Ωの抵抗器を取り付けます。抵抗器は先程と同じように根本で90度に曲げ、10mm程度の長さで切断します。オーディオアンプ基板は、下の図の点線の箇所で切断してください。鋭利なニッパやカッターで切断し、ヤスリで軽く削るときれいに仕上がります。ブレッドボードに取り付ける方向は、ICが取り付けられている側をArduinoに向けます。間違いやすいので注意してください。
2.5. 配線する
部品間を配線します。下の配線図をよく見て作業をおこなってください。
配線が終わるとこのようになります。もじゃもじゃして大変なことになっていますね。絡まらないように注意してください。
2.6. 動作テストする
USBケーブルをPCにつなぐとレーザーが照射されます。レーザー保護メガネを着用し、光源を直接見ないように十分注意してください。
テストプログラムを使って、回路が動作しているか確認します。配布ファイルのTestSketch.inoをArduino UNOに書き込んでください。
プログラムを書き込み終わると、スピーカから「ブブッ」と音が鳴ります。音が確認できない場合は、配線を確認してから、Arduinoの電源を入れ直してください。
シリアルモニタを開くと、下記のようなメッセージが表示されます。PDはセンサに光が当たっているかどうかを表しています(0は暗い、1は明るい)。部屋の照明が直接当たらない状態で、レーザーの光をセンサに1つずつ当てて、PDの値が0から1に変化することを確認してください。なお、一番左の数値は、センサ1の値ですが、シリアル通信とピンを共用しているため、シリアルモニタで確認している間は反応しません。VRはボリュームの状態です。ボリュームを回すと0~1023の範囲で変化することを確認してください。
スピーカ、レーザー、センサ、ボリュームの動作を確認できれば、回路は完成です。お疲れさまでした!もし、正しく動作しない場合は、配線図を見て接続する位置やパーツの向きを確認したり、テスタを使って配線の導通チェックを行なってください。
次回の後編では、レーザー加工機や3Dプリンタで筐体を作り、Mozziを使ったプログラムを書きます。お楽しみに!
今回の連載の流れ
前編:Arduinoと赤色レーザーで作るレーザーストリングス(今回)
後編:Arduinoと赤色レーザーで作るレーザーストリングス