2016年6月12日日曜日

16.6.12 ダビンチゴール


ものづくり仲間がピタゴラゴールを入手したので、これで遊んでみることにした。


旗が立ったときに「ピタゴラスイッチ」と言うのを「ダビンチスイッチ」に変更する。マイコンはPIC18F14K22を使う。プログラムメモリは16KBytesしかないので、2秒位の音声でも圧縮しないと入らない。まずPCでADPCMのエンコーダを作成した。次にPICで動くADPCMのデコーダを作成。データは自分の声で作った(11.025KHz, 4bits)。


ピタゴラゴールとつなぐため、ピタゴラゴールの基板の配線を外し、旗が立ったことを検出するスイッチとスピーカを自作の基板に接続した。これでピタゴラゴールの旗が立つと、スピーカーから「ダビンチスイッチ」の声が出るようになった。


ボールをゴールに運ぶ仕掛けは、格子状の道をランダムに歩き回る2輪車を使うことにした。以前作ったもののモータとフォトインタラプタの取り付け方法、フォトインタラプタの測定方法を改善したものを作成した。これでゴールに到達すると、2輪車がレゴで作ったボールホルダを押し、ボールがゴールに入る。
生徒がこのダビンチゴールで遊べるか、仲間と検討してみる。


2016年6月10日金曜日

16.6.10 ハモンド風音源


去年単音のミニキーボードを作ったが、和音が鳴るものを作ってみようと思い、ハモンド風の音源を作ってみた。ハモンドにはレスリースピーカーがつきものなので、こちらもまねしてみた。


和音を鳴らせるCPUを探してみたところ、DSP機能付きで40MIPSで動き、16bitのDACを2チャンネル持っているdsPIC33FJ64GP802というものを発見。これで実験してみたところ24KHzのサンプリングで90本のサイン波を鳴らすことができた。
これを使うことにして、音源方式を検討してみた。FM音源は音作りが面倒だし、波形メモリ方式はメモリが足りない。ハモンドオルガンのトーンホイールの数を調べてみたところ、79ヶということなので、ハモンド音源を作ることにした。
まず、ユニバーサル基板にCPU、電源部、出力部、鍵盤スイッチ、を作った。dsPICは3.3Vでないと動かないので、電池2ヶを3.3Vに昇圧して使う。出力部はトランジスタでヘッドホンを鳴らす簡単なアンプを作った。


ソフトは、サイン発生部はDSPのMAC命令を使うためにアセンブラでコーディングした。各トーンホイールごとの振幅は別途計算しておき、サンプリング周波数ごとにサインの発生と振幅の乗算を行う。
レスリースピーカーのシミュレーションは、音源の出力を遅延用のメモリに書込み、読み出しのアドレスを周期的に変化させて周波数の変化をつけ、さらに前後と左右の音量の変化をつけるようにした。本物は高域と低域に分けて別のスピーカーを回しているが、今回は全体を同じように変化させている。音量変化をなしにすると、音が広がる感じのコーラス効果になる。この計算もアセンブラでコーディングしてある。
各フィートの音量とエフェクトの設定を8ヶずつプリセットできるようにし、白鍵で呼び出すようにした。デモ用に自動演奏する仕組みも作り、ジャズのピアノトリオのデータを入れてある。


ハモンドといえばドローバーが必須なので、スライドボリュームでドローバーを作った。各フィートの音量を制御する9ヶのボリュームと、全体の音量を制御するボリュームの10ヶのボリュームを使う。エフェクトのパラメータも9ヶなので、ドローバーで値を設定できるようにした。


こちらは8bitのPIC18F26K22を使った。ドローバーの値(0-8)をLEDで表示することにしたが、PICのピン数が足りず、5ヶのLEDで表示することにした。ドローバーで作ったパラメータをプリセットで記憶できるようにした。各フィートの音量とエフェクト、それぞれ9種類記憶できる。
PICのプロフラム領域に余裕があるので、こちらにも自動演奏の機能をつけておいた。
また、MIDIのキーボードで演奏できるよう、MIDI入力のインターフェイスをつけ、音源側に送るようにした。


2016年4月13日水曜日

16.4.13 永久ごま2


ものづくり教室で、3年ぶりに永久ごまを作ることにした。経験者には同じ原理で動くブランコまたは他のものを作ってもらうことにする。


初代の永久ごまは百円ショップで調達した盃の上で回したが、同じ店に行ってみたが盃は売っていなかった。仲間に相談したところ、缶ビールの底が丸くなっている、というアイデアをもらい、缶ビールの底の上で回すことにした。試作ができたころ、別の仲間が百円ショップで盃を発見し調達してきてくれた。今回は盃か缶ビールか、生徒に選んでもらうことにした。


こまが回る原理はブラシレスモータに近い。ローターに相当するこまは永久磁石を4ヶ持っている。ステーターには電磁石を2ヶ使い、こまの磁石の位置を検出するためにリードスイッチを使う。永久磁石が狙った位置に来たことを検出し、電磁石を駆動してローターを回す。こまはバランスよく作れるようレゴで作る。
調整はリードスイッチの位置とコマの軸の長さ。安定して回る組み合わせを試行錯誤で探す。


電磁石2ヶのコイル巻きが難関の工程。ポリウレタン線が絡まらないように慎重に巻いていく。


制御はいつものPICマイコンを使う。基板は以前リモコン用に作成したプリント基板。
ケースは木製。シナベニヤの板と角棒を接着して作る簡単な構造とした。


ものづくり仲間の希望もあり、経験者用にこまと同じ原理で動くブランコを用意した。
振り子時計と同じ構造で、ブランコに永久磁石を付け、ブランコの真下にリードスイッチと電磁石を付け、ブランコを駆動する。


ブランコの形は、作りやすさを優先し、板の両側に直角に棒を立ててブランコを支えることにした。ブランコの軸はレゴで作る。ブランコをチェーンやひもでぶら下げることも検討したが、駆動方法を考えるとブランコの形が固定されているのが間違いないので、アルミ棒でブランコをぶら下げることにした。



こまと違い、リードスイッチの位置を変えることができないので、リードスイッチで永久磁石の位置を検出してから電磁石を駆動するまでの時間と電磁石の駆動時間を設定できるようにした。ボリューム1ヶとタクトスイッチ2ヶを使う。
試作機はデモ用に電磁石を駆動している間、ブランコにつけたLEDが点灯するようにしてある。


2016年2月20日土曜日

16.2.20 飾りがついたゲジゲジ君


ゲジゲジ君にゴキブリの飾り付けをした。黒い画用紙を切って体とひげを作り、輪ゴムでボディに取り付けただけ。今日の教室で他のゲジゲジ君といっしょに走らせてみた。ゴキブリらしくすみっこの壁に沿って走る。


2016年2月15日月曜日

16.2.15 ゲジゲジ君


ものづくり仲間が作った教材を試作し、ついでに自分用にアレンジしたものを作ってみた。
モーターの軸に偏心した錘をつけ、その振動でブラシを振動させて動かすもの。


教材用のものは、モーター1ヶを木のボディに取り付け、ブラシは3ヶつける。錘をつける部品は3Dプリンタで作成したもの。2mmのビスとナットを錘にしている。以前テクノフェスタで教材にした光るペンダントの基板を使い、LEDを光らせる。
モーター・電池・ブラシ・LED基板の配置は生徒がアレンジできる。重心が低くなるよう、モーターをボディの下側につけ、両側にブラシをとりつけた。教室ではボディの上に乗り物や動物などの飾り付けをするが、今回は飾りなしのまま。
教室ではコースを作って競争する予定。



自分用のものは、動く方向を真っ直ぐ・右・左、と制御するようにしてみた。モーターとブラシを2ヶずつ使う。方向の切り替えは得意のメロディーに合わせてやることにした。音符が変わるたびにランダムに方向を切り替える。LEDが2ヶついていて、動いているモーターの側のLEDが光る。モーターのスピードは音程が低いと遅く、高いと速い。
4歳の孫も喜んで遊んでいた。




2015年11月23日月曜日

15.11.23 ミニキーボード


ものづくり教室の生徒に電子音を体験してもらおうと思い、基板にスイッチを鍵盤状にならべてキーボードを作ったところ、ものづくり仲間が鍵盤じゃないとつまらない、と言って、プラダンで鍵盤を試作してくれた。その鍵盤を使い、ミニキーボードを作ってみた。


鍵盤は1オクターブで発音数は1つだけとする。PIC1つで全ての処理を行うことにし、部品点数が一番少なくできる16bitのPIC24FV32KA301に決めた。音源方式はピッチ同期式で1周期128ポイントの波形メモリ方式とした。DACはないのでPWM変調を使うことにし、キャリア周波数は256KHz、データのビット数は8bitとした。PWM変調の出力に抵抗を直列に入れて圧電ブザーを鳴らしている。


鍵盤は1オクターブの13keyとモード選択用に1keyの合計14keyがあり、それぞれの鍵盤のスイッチがPICのポートに接続されている。
通常は、鍵盤を押して演奏する。モード選択キーをダブルクリックするとエディットモードになり、鍵盤でパラメータ変更などができるようになる。モード選択キーをシングルクリックすると、通常の演奏モードに戻る。

機能1:音色選択
白鍵を押して音色を変更する。サイン波・三角波・矩形波・鋸歯状波・FM波形(4種類)の8種類の波形が用意されている。8番目の波形は、音の出だしから波形を順に切り替えていくようになっていて、音色が変化する音になっている。
機能2:音量エンベロープ設定
音量の減衰を選択する。減衰なしから減衰最大までを4種類選べる。
機能3:ビブラート設定
ビブラートの深さを設定する。ビブラートなしから最大までを4種類選べる。
機能4:オクターブ設定
演奏する音程のオクターブを4つの中から選択する。
機能5:メロディー演奏
メロディー貯金箱用に作ったメロディーを連続演奏する。演奏順はランダム。メロディーを演奏しながら機能変更を行うと、音色の変化がわかりやすい。


プラダンで鍵盤を作る工程で、白鍵の隙間をカッターで切り取る作業や、スイッチになるメッキ線を取り付ける作業など、かなり技術的にも高度な作業があるし、ユニバーサル基板に回路をはんだ付けし、スイッチのメッキ線と接続する作業も忍耐が必要な作業なので、他の作業の負担を減らすよう、いくつかの作業を事前にこちらで行った。


和音が出ないのが最大の欠点だし、音の強弱のコントロールができないのが寂しいが、簡単なメロディーを弾いて楽しむことはできる。

2015年9月13日日曜日

15.09.13 エネループ放電・充電器


今回は自分用の実用品。以前、エネループ用の放電器を作ったが、電池1ヶ用だったし、充電は別の充電器に移してやる必要があったので、エネループ2ヶを同時に放電してから充電する装置を作った。電池でエネループを充電するのはばからしいので、電源は3.3VのACアダプタを使う。


放電は、トランジスタのコレクタに3.3Ωの抵抗をつけ、これにエネループで電流を流すようにする。流れる電流は300mA程度。電池の電圧を測定し、1.0V以下になったら放電を終了し、充電を開始する。


充電は別のトランジスタのコレクタに3.3Ωの付加抵抗を付けて電源に接続し、エミッタにエネループの+側をつなぎ、-側はグランドにつなぐ。3.3Ωの両端の電圧を測定し、一定の電流が流れるようにベース入力のPWMの幅を制御する。電池を10時間で使い切るのと同じ電流で充電するのが安全ということなので、単3の場合は190mA、単4の場合は75mAを流して充電する。充電中の電池の電圧が1.44V以上になったら充電を終了し、無負荷状態に戻る。


動作状態や電池の電圧を表示するため、乾湿式の温度・湿度計で使ったのと同じ3桁の7SegLEDを使い、操作用にタクトスイッチを2ヶ用意した。
LEDの1桁目は状態表示で、上半分で左側の電池、下半分で右側の電池の状態を交互に表示する。"口"は無負荷状態、下の横棒がないのは放電状態、右の縦棒がないのは充電状態を表す。1桁目の小数点は常に点灯している。
2桁目と3桁目で電圧の小数部を表示する。電池が装着されていない場合は"--"と表示される。


電池を電池ホルダに入れると、無負荷の状態の電池の電圧が表示される。エネループでなくても電池の残量を表示することができる。基板には単4用の電池ホルダを取り付けたので、単3を使う場合は単3用の電池ホルダを基板のコネクタに取り付ける。


タクトスイッチを押す回数で機能を選択する。
1回押しは単4電池の放電と充電、2回押しは単3電池の放電と充電、3回押しは単4電池の充電、4回押しは単3電池の充電となる。動作中にスイッチを押すと、動作を停止して無負荷状態に戻る。