2016年6月19日日曜日

16.6.19 温度計いろいろ


これまでに作った温度計を並べてみた。毎日使っているものもある。



残像表示
残像表示の振子時計と温度計。振子が動き続けるよう、コイルと永久磁石で駆動する。コイルの駆動とLEDの表示でけっこう電気を使うので、電源はACアダプタを使っている。もう2年くらい動き続けている。振子はレゴのパーツで作ってあるが、季節が変わると長さがかなり変わるようで、錘を調整して時間合わせをする。


液晶で温度・湿度表示
8文字*2行の小型の液晶を秋月で発見し、これにAM2320という温・湿度センサーをつけて温度・湿度計にした。温度計の他にもキッチンタイマーとトレーニング用のメトロノームの機能もついている。液晶モジュールが3.3Vでないと動かないので、電池2ヶをステップアップレギュレータで昇圧して使っている。


実用的なLED表示
ものづくり教室の教材用に実用的な温度計を作成した。センサーはトランジスタ型の温度センサー、表示は3ケタの7SegLEDを使う。こちらもキッチンタイマーとメトロノーム付き。ユニバーサル基板で組むので、ジャンパ線が多く教材には不向きか。


色で温度を表示
変わり種で、色で温度と湿度を表示するものを作ってみた。センサーはトランジスタ型の温度センサを2ヶ使い、1ヶは昔の乾湿式温度・湿度計と同じように水に浸したガーゼでくるむ。本物と同じ温度差にはならないが、係数を調整して湿度を表示するようにした。3色のLEDで青→緑→赤と30段階の色で温度・湿度を表示する。色だけでは大雑把にしかわからないので、1ケタの7SegLEDで温度と湿度を表示する。湿度を測るために水を使うのが面倒で、湿度は数秒ごとに値を変化させて色をデモするようにしてある。最近は息子と孫が作ったナノブロックのルーブル美術館のイルミネーションになっている。



CDの周りの目盛りで温度を表示
CDの周りに0℃から30℃までの目盛りを印刷し、目盛りの外側にフォトインタラプタ用の穴を開け、CDをモーターで回転させて一番上の数字で温度を表示するようにした。最初は1周で36度分の目盛りをつけたが、これだといったん温度の表示がずれると回復できないという欠点があることに気が付き、30℃から0℃までの間はセンサー用の穴を開けないようにして0℃の位置を検出できるようにした。これで表示の再現性がぐっと高くなった。温度が変化したときだけCDを回せばいいが、それではつまらないので、1分毎くらいにCDを回転させるようにした。基板は以前作成したリモコン基板を使うので、教材用として使えそうである。



ストロボで温度を表示
こちらもCDの周りに数字を印刷して表示するが、数字は1ケタの0-9までの数字を4組印刷してある。数字の上にLEDが2ヶ並んでいて、表示する数字が下に来た時にLEDを光らせ、ストロボで2ケタの数字を表示するようにした。最初はセンサー用の穴を4ヶ開け、1周に4回ストロボを光らせるようにしてみたが、穴を手で開けたため位置の精度が悪く、数字がにじんで見にくくなることが判明し、明るさは1/4になるが、1周に1回だけストロボを光らせるようにした。ものづくり仲間が3Dプリンタで作ったパーツを使わせてもらい、モーターの軸とCDを直結している。ストロボ点灯は20Hzくらいなので回転数は1200RPMくらい。温度を表示するだけだとつまらないので、5秒ごとくらいに温度の表示と数字が流れる表示を繰り返すようにしてある。



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入力のインターフェイスをつけ、音源側に送るようにした。