Plus電子デバイス・電子工作用語集モータドライバ博士のQ&A読者よりいただいたお問い合わせを元に、ロボット製作者、エンジニアのみなさんに役に立つ技術解説を発信していきます。Plus電子デバイス・電子工作用語集モータドライバ博士のQ&A読者よりいただいたお問い合わせを元に、ロボット製作者、エンジニアのみなさんに役に立つ技術解説を発信していきます。今回は、Arduinoを使った電子工作を前編、後編の2回に分けてお届けしていきます。Plusでもこれまでに、「Arduinoを使ったソーラーパネルで動くデジタル飼育箱」の制作を紹介して頂いております。そんな平原さんが今回紹介してくれるのは、ArduinoとTOF距離センサでつくるドーナツプレーヤ。前編では動作テストまでを紹介しましたが、いよいよ今回は完成までを紹介していきます。どんな音色が流れるのか、どうぞお楽しみください!はじめにみなさん、こんにちは。前編ではドーナツプレーヤの動作テストまでおこないましたが、今回は外装の制作から仕上げまでを紹介していきたいと思います。最後に3Dプリンタでつくるミュージックドーナツの紹介もありますので、ぜひオリジナルのミュージックドーナツも作ってみてください!配布ファイル作成例をつくるために必要なデータをダウンロードしてください。Arduinoのスケッチや、3Dプリンタで出力するためのモデルデータ、シナベニヤをカットするための形状データなどが含まれています。シナベニヤを組み合わせて箱を作り、天板にモータ、ボリューム、スピーカなどを取り付けます。3Dプリンタで作成するパーツとアルミパイプを組み合わせてアームを作り、先端にセンサを取り付けます。手順は以下のとおりです。3Dプリンタでパーツを出力するアルミパイプを切断するアームを組み立てるレーザ加工機で材料の切り出し天板に電子部品取付けブレッドボードの組み立て手順1:3Dプリンタでパーツを出力するセンサを取り付けるアームのパイプを固定する部品と、テーブルとモータを連結する部品を3Dプリンタで作成します。配布ファイルの中の5つのstlファイルを出力してください。サポート材の有無や積層方向などは、お使いの3Dプリンタに合わせて設定してください。パイプ同士を90度で接続します。パイプを天板に固定します。PipeBaseを固定するためのナット。回転テーブルとモータを接続します。パイプを切断するには、金切のこぎりでもいいですが、パイプカッターを使うと簡単で綺麗に切れます。手順3:アームを組み立てるセンサの電線をパイプに通してアームを組み立てます。3Dプリンタで作成したパーツ(SensorHead)にネジでセンサを固定します。3Dプリントで作ったパーツの穴にはネジ山はありませんが、M3ネジなら直径3mmの穴を開けておくと、ちょうど樹脂を切り込みながらネジが入り固定できます。順番に、センサの電線を通していきます。テスタの通電チェックを使い、パイプを通した電線がセンサのどこにつながっているかを調べ、先端に接続先(5V、GND、SDA、SCL)を書いたテープを貼ります。パイプと3Dプリントしたパーツを接続します。押し込んでもゆるい場合は接着剤で固定してください。パイプ130mmとPipeBaseは高さ調整に使うので、接着せずにつまみネジを横からねじ込んで固定してください。手順4:レーザ加工機で材料の切り出し配布ファイルの中のCutData.aiを使い、レーザ加工機で厚さ4mmのシナベニヤから部品を切り出します。嵌合の調整は、お使いのレーザ加工機に合わせて設定してください。UNOから一旦外し、天板に取り付けます。スイッチとボリュームは表から差込み裏からナットで固定します。左側にモータ速度調整用の可変抵抗器(回路図中のVR1)、右側にスピーカーにつながる可変抵抗器(回路図中のVR2)を取り付けます。ボリュームには別売りのツマミを取り付けてください。ツマミはデザインを左右する重要な部品です。軸経(シャフト経)が6mmものなら、可変抵抗器に取り付けられるので、お好きなものを選んでください。可変抵抗器用ツマミ一覧スピーカーは白い樹脂製のホルダーを使ってM3x15mmのネジとM3ナットで固定します。ボールキャスタは、説明書に従って25mmの高さで組み立て、天板に付属のネジとナットで固定します。モータは天板の外側からM2x10mmのネジで固定します。貼り付け、固まるまでマスキングテープなどで固定します。背面はまだ接着しないでください。天板にセンサのアームを上から差込み、天板を挟み込むように3Dプリンターで作ったナット(PipeBaseNut)で固定します。UNOとブレッドボードに配線します。配線の数が多く、箱の奥は見えにくいので、間違わないように注意してください。手順8:テーブルを取り付けるモータのシャフトの穴に、M2x20mmのネジ差し込み、抜けないようにダブルナットで固定します。テーブルに3Dプリンタで出力したパーツ(TableJoint)を差し込んで固定します。TableJointをシャフトに乗せると、ボールキャスタが荷重を受け止め、回転だけがシャフトからテーブルに伝わります。範囲の指定ドーナツの一番低い場所と一番高い場所の音を周波数で指定します。ドーナツの高さの範囲をmm単位で決めます。サンプルでは、最低音をC4のド、最高音をB4のシの1オクターブを音の範囲としました。カバーする音の範囲を広くするほど、僅かなノイズで音がズレやすくなります。高さの範囲は50mmに設定しました。センサの分解能は1mmなので、50段階で読み取れます。50mmTOF距離センサで距離を測り、周波数に変換するTOF距離センサで取得する値の単位はmmなので、そのまま距離として使うことができます。ドーナツの一番低いところにセンサを合わせて、原点設定ボタンを押すと、その高さをmaxFreq(ド/C4/262Hz)、50mm上をminFreq(シ/B4/494Hz)に変換します。指定した周波数で音を鳴らす音量つまみを右にひねると、スイッチがオンになります。tone関数を使って先程計算した周波数で音を鳴らします。tone関数は、第1引数に出力するピン、第2引数に周波数を指定します。noTone関数を呼び出すと止まります。速度調整つまみの値に応じてモータをコントロールするanalogReadで速度調整つまみの値を取得した0~1023の値を、モータが回転する強さの40~255に変換し、そのスピードでモータを回すように命令します。UNOに書き込んでください。動作確認それでは、いよいよドーナツの音を聞いてみましょう。UNOとブレッドボードを箱の中に納めてください。UNOに接続してください。背面板は開け締めする可能性があるので接着はしません。電源が入って急に大きな音がしたり、テーブルが高速回転してドーナツが飛んでいかないように、ACアダプタをコンセントに接続する前に、2つのつまみを反時計方向にカチッと音がするまで回してください。ACアダプタをコンセントに挿して、ドーナツを回転テーブルに乗せます。センサがドーナツの一番低い場所の上に来るようにアームを調節してください。原点設定ボタンを押すと基準となる高さが設定されます。右側のツマミを回すと音が大きくなり、左側のツマミを回すとテーブルが動きます。最初のドーナツは、凸凹に応じて音程が上下しつつ、チョコチップの影響でノイズが乗っているように聞こえますね。2つ目は何も乗っていないのでスムーズな音で、3つ目は全体的に傾いていて音が大きく上下します。ドーナツによって違う音がなるので、いろんなドーナツで試してみてください。これで今回の作例「ドーナツプレーヤ」は完成です。高さに応じて音がなる装置が完成したので、曲を再生したいですよね。これから、音程を厚みに変換した「ミュージックドーナツ」を作りたいと思います。ミュージックドーナツをつくる作業手順ミュージックドーナツ制作の手順は以下のとおりです。曲の音階を高さに変換する3DCADで形状を作成する3Dプリンターで原型を出力する食用シリコンで原型を型取りするドーナツのタネを作り、シリコンに流し込むオーブンで焼く手順1:曲の音階を高さに変換する今回はサンプルでは「かえるの合唱」のはじめの4小節分を使います。複雑な曲は読み取りづらいので、シンプルな童謡が向いています。使用する音は、ド(C4)からシ(B4)までの1オクターブとします。ドーナツの音を表す高さの範囲を50mmとします。ドからシまでの周波数の差は約232Hzなので、1Hzあたりの高さは0.215mmとなります。mm15mmの土台を加えた各音程の高さは、下記の表のとおりになります。65手順2:3DCADで形状を作成する曲の音階に合わせた高さで、ドーナツの形を設計します。ここではFusion360の画面で説明をおこないますが、3Dプリンタで出力できるソフトであれば何を使っても結構です。直径100mm、穴40mm、土台15mm、音階用の高さ50mmになるようにスケッチを描きます。ドーナツらしくなるように角にフィレットをかけます。今回は4分音符を基本の形とし、4小節分の4分音符が収まるようにドーナツを16分割します。360°/16=22.5°回転させボディにして基本の形を作り、円形状パターンで隙間なく16個並べます。高さを音階にあわせて調整していきます。先程の表にそってプレスプルで下げていきます。ターンテーブルが時計回りに回るので、音の凸凹は反時計回りに並べます。最後にボディを一つに結合します。完成したモデルデータは、配布ファイルのMusicDounuts/frog.stlです。他の曲も同梱しているので、好きなものを使ってみてください。高さの原点(ド・C4)を合わせるためのジグ(Base.stl)のデータも同じフォルダに入っています。厚さ15、直径5cm以上なら他の物で代用してもかいまいません。手順3:3Dプリンタで原型を出力する先程作成した形状と原点ジグを、3Dプリンタで出力します。手順4:食品用シリコンで原型を型取りする食品用シリコンでドーナツの型を作ります。今回は下記の製品を使用しました。硬さ:柔らかめタイプhttp://www.modelersstore.com/shopdetail/000000000336シリコンの基本的な扱いは製品の説明書を参照してください。はかりかくはん用ヘラテープビニール手袋3Dプリンタ製の原型は中空なので、シリコンを流し込んだ時に浮いてしまわないように、型用容器にテープで仮止めします。重い物で蓋をしても結構です。シリコンA剤とB剤を混ぜて、ゆっくり型用容器に流し込みます。硬化時間は室温が23度の場合、8時間程度です。動かさないように安置します。固まったら原型を外し、予備乾燥を2時間程させてください。ドーナツを焼く際にシリコンの壁が厚すぎると熱を通しにくいので、もし厚くなりすぎたらカッターで余分なシリコンを削ぎ落とします。シリコンの壁を薄くしすぎると、やわらかく変形しやすくなるので注意してください。手順5:ドーナツのタネを作り、シリコンに流し込むホットケーキミックスを使って焼きドーナツを作ります。型の大きさで量は加減してください。等オーブンを180度に予熱しておきます。シリコン型は洗って、表面に薄くサラダ油を塗りましょう。卵をとき、牛乳をあわせよく混ぜます。そこにホットケーキミックスとかたくり粉を加えさらに混ぜ、生地の完成です。型のふちまで生地を流し入れます。空気抜くために作業台にトントンと軽く落とします。180度に予熱しておいたオーブンに入れ、40分間焼きます。天板の汚れ防止にアルミホイルやクッキングシートを敷くといいでしょう。焼き時間は様子を見て加減してください。表面に焼き色がつき、楊枝を刺して生の生地がついてこなければ焼き上がりです。焼き上がりすぐはまだドーナツが柔らかいため、型から外さずに冷めるのを待ちます。皿に伏せて置くと形が安定します。冷めたら膨らんではみ出た部分を切りとり、型から外します。動作確認それでは、ミュージックドーナツを聞いてみましょう。再生する手順は次のとおりです。テーブルに原点合わせジグを置き、センサが真上になるように位置を合わせます。センサの高さが、一番高い音から1cm程度上になるように、アームの上下を合わせます。測定範囲がセンサから円錐状に広がるため、近距離のほうが正確に測定できます。原点設定ボタンを押します。その高さがド(C4)になります。ドーナツをプレーヤのテーブルの中央に置きます。ドーナツの平らな部分の上にセンサが位置するように調整します。右のツマミを回して音量を上げる。左のツマミを回してモータの回転速度を調整する。ドーナツから「カエルの歌」が聞こえて来ましたね。最後にみなさん、お疲れさまでした。「ドーナツプレーヤ」と「ミュージックドーナツ」の制作いかがでしたか。後半は電子工作とかけ離れてしましたが、ついてきていただけたでしょうか。今回はArduino標準のtone関数を使用したのでちょっとチープな音でしたが、音響合成ライブラリ「Mozzi」を使えば、より豊かな音を楽しめるようになります。物事の関係性をテーマに活動するアーティスト。電子工作でアイデアを形にしよう』(オーム社)。