2020年7月5日日曜日

20.7.5 加速度リモコン


加速度センサーのMPU-6050を使って三輪車のリモコンを作った。重力加速度と手で振動させる加速度を使う。


センサーのMPU-6050はX,Y,Zの3軸の加速度を測定するセンサー。最初はセンサーの使い勝手を調べる意味もあり、水準器を作った。重力加速度の変化を測定して、傾きを十字型に並べたLEDで表示する。水平なら中央のLEDだけが点灯するが、傾くとX方向とY方向の高い方にLEDの光が移動する。センサーの感度は5段階に切り替えられるようにしてある。


水準器の応用で、傾けた方向に三輪車が走るリモコンを作ってみた。前に傾けると前進、右に傾けると右折、左に傾けると左折する。
もう1つは、リモコンを前後に振動させると、その加速度で前進の速度を決める。左右は傾きで制御する。このやり方は、疲れるしうまく走らせるのは難しい。


おまけで、簡単なシューティングゲームも組み込んだ。1つめは、横に並んだLEDの左から右に的が動いていくので、中央に来た時にスイッチを押すと的が爆発する。外れるとそのまま右に消えていく。的に当たると、次は的の動きが速くなっていく。
2つ目は上級者向けで、的が左右、右左、上下、下上にランダムな方向で飛んでくるし、次に出てくるまでの間隔もランダムに変化する。

2020年7月4日土曜日

20.7.4 手回し電子サイコロ


発電と蓄電をテーマにして、電子サイコロを作った。発電は去年三輪車で使ったギヤ付きモーターを使い、蓄電はスーパーキャパシタとも呼ばれる電気二重層コンデンサを使う。


発電用のギヤ付きモーターに手回し用のアームを3Dプリンターで作り、レゴのハンドルをつけた。蓄電は充電式の電池ではなくコンデンサを使うことにして探してみたところ、秋月で1Fのものが1ヶ100円であるのを発見。サンプルを調達してみた。ちなみに、電源などで100μFくらいのコンデンサを使うが、1Fはこれの1万倍。


モーターの出力をダイオードで整流してコンデンサに溜める。最初の実験ではコンデンサを3ヶつけて3Fにしてラジオを鳴らそうとしてみたが、モーターをブンブンまわしても瞬間的にザーというノイズが出る程度で、音を出すのはあきらめた。3Fあっても、電池の容量とは比べ物にならないことがよくわかった。
消費電力が少なくて、短時間で遊べるアプリとして、電子サイコロに落ち着いた。LEDを6角形に並べ、サイコロの目を表示する。同時には1ヶだけ点灯すればよいので、コンデンサ1ヶで十分遊べることがわかった。


電圧が下がっても使えるよう、最近よく使っているステップアップレギュレータを使う。これで、3.3Vに昇圧してマイコンとLEDを動かす。
コンデンサに蓄えた電力を表示するため、コンデンサの出力の電圧を測定して表示することにした。LEDの点滅回数で電圧を表示する。3回点滅なら3V以上、2回点滅なら2V以上、1回点滅なら0.5V以上とした。点滅しなくなったら動作しなくなるので、モーターを回して充電する。

サイコロの操作はスイッチ1ヶで行う。スイッチを押して離すとLEDがクルクル回って光り、動きが徐々に遅くなって止まり、どれか1つのLEDがブリンクしてブザーが鳴る。スイッチを押している時間が長いと止まるまでの時間が長くなる。
スイッチをダブルクリックすると、LEDが回るのではなく、ランダムに点滅し、動きが徐々に遅くなって止まって出た目を表示する。さらに、3回押しにすると、サイコロ2ヶが同時に振られたことになり、止まった時に2つのLEDが点滅する。2つのサイコロが同じ目のときは、ブリンクの周期が半分になる。

2020年7月3日金曜日

20.7.3 CD永久ごま


仲間からCDのメディアをたくさんもらったので、CDをコマにしてみることにした。
基本構造は以前作ったものと変わりないが、細部はかなり違うものになった。


以前はコマはレゴのブロックで作ったが、今回はCDを使う。磁石はCdの裏面に張り付けることにした。軸はレゴの軸を使うが、軸の先を尖らせると安定して回ることがわかった。磁石をバランスよく張り付けて、レゴの軸を通すアダプターを3Dプリンターで作成した。CDの表には丸い玉で虹の色を印刷してみたが、インクジェットではきれいな色は出なかった、残念。


コマを回す台は前回は盃を使ったが、今回は木製のスプーンを使う。百均で見つけたお茶用の小さなスプーンがそのまま使えるのでこれを採用。
磁石の位置を検出するセンサーは、以前はリードスイッチを使ったが、ケースのガラスが割れやすいので、今回はホールセンサーを使うことにした。薄いトランジスタのような形で、割れる心配もない。センサーの取付位置は微妙なので、コマを回しながら調整する必要がある。駆動用のコイルは以前作ったものをそのまま試作に使った。生徒は治具を使ってコイルを巻くことになる。
磁石が4ヶ、コイルが2ヶついていて、センサーに磁石が近づいたのを検出するとコイルに電流を流し、磁石とコイルが反発して回転を続ける。
基板は3年位前に仲間に作ってもらったリモコン用のプリント基板を一部修正して使う。CPUは新しいPIC12F1572を使うことにした。


コマの磁石がセンサーやコイルにぶつかると、壊れてしまう可能性があるので、カバーを作った。スチレン板をCDくらいの大きさに切り、コイル・センサにかぶせるように置くことにした。これで、コマの回転が止まるときもおとなしく止まるようになった。


調整するのは、センサーの位置・コマの下に出る軸の長さの2つ。サンプルを見ながら安定して回るように調整する。
スイッチを押すと3分間動作する。時間が来ると動作を停止し、CPUはスリープする。動作中にスイッチを押すと動作停止する。

2020年7月2日木曜日

20.7.2 マイコン式手回し計算機


60年以上前に、タイガー計算機という機械式手回し計算機が使われていた。今回は、同じように手回しで計算する「マイコン式手回し計算機」を作ってみた。
計算は、「答え」±「足す数」→「答え」の足し算・引き算だけができる。掛け算は足し算を繰り返して行うことで計算する。掛け算の場合は、掛ける数の1桁分ずつしか計算できないので、筆算と同じように、桁をずらしながら計算する必要がある。でも実際は掛け算が一番得意。


マイコンは、掛け算は必要ないのでPIC16F1508を使う。表示は16*2文字の液晶表示器を中国から調達した。操作子は5ヶのタクトスイッチを使い、ハンドルはレゴのブロックで作った。ハンドルの回転の数と方向を2つのフォトインタラプタで検出する。


表示は左上に「足す数」(8桁)、右上に「足す回数」(6桁)、左下に「答え」(8桁)、右下に「計算」(*/)の4つ。
下の写真は「123*45=5535」の計算をした結果。


「足す数」の入力
機械式のものは、桁ごとにレバーを動かして値をセットするようになっていたが、今回は桁ごとにハンドルを回して値をセットすることにした。
"IS"スイッチを押して「足す数」のどれかの桁がブリンクするようにし、"DL","DR"スイッチを押して桁を選ぶ。ハンドルを右に回すとブリンクしている数字が1つずつ大きくなり、左に回すと小さくなる。


足し算(54+32=86)
"CA"でクリア、ハンドルを回して「足す数」を54にする。"IS"を押して「足す回数」の1の位がブリンクしているのを確認してハンドルを1回右に回すと、「答え」が54になる。"IS"を押してハンドルを回して「足す数」を32にして、"IS"を押してハンドルを1回右に回すと答えが足し算の結果の86になる。
引き算は上の手順の「足す数」を32にして"IS"を押した後、ハンドルを左に1回まわすと「答え」が引き算の結果の22になる。

掛け算(123*45=5535)
"CA"でクリア、まずハンドルを回して「足す数」に123を入力する。次に"IS"を押して「足す回数」を45にすると、「答え」が掛け算の結果の5535になる。

割り算(3456/78=44余り24)
"CA"でクリア、まずハンドルを回して「足す数」に3456を入力する。次に"IS"を押してハンドルを右に1回まわすと「答え」が3456になる。次に"IS"を押して「足す数」に78を入力する。次に"IS"を押すと「足す回数」の1の位がブリンクする。3456/78の商は10の位からになるので、"DL"を1回押して10の位がブリンクするようにする。ハンドルを左に回していくと、「ピッ」と音がして「答え」がマイナスの値になるので、ハンドルを1回右に回すともう一度「ピッ」と鳴って「答え」がプラスの値になる。次に商の1の位を求めるために"DR"を押して「足す回数」の1の位をブリンクさせ、ハンドルを左に回していくと、「ピッ」と音がするので、1回右に回してもう一度「ピッ」と鳴らす。これで計算が完了。「足す回数」が商の44になっていて、「答え」が余りの24になっている。


割り算その2(3456/78=44.3076)
割り算の答えを商と余りでなく、小数まで求めたい場合のやりかた。まず割られる数の3456を左の桁に詰めて34560000と入力する。あとは上の例の割り算の計算を「足す回数」の1の位まで繰り返すと、「足す回数」が商の44.3076になる。商の位取りは自分で考える必要がある。

2020年7月1日水曜日

20.7.1 RGB温度計


以前作った3色表示の温度計を教材用にまとめたもの。特徴は、①3色の光で温度を表示する、②目盛りがないので遠くからでも温度がわかる、③自分で光るので暗くても温度がわかる、④使いかけの電池でも動き、きれいに使い切って捨てることができる。


作りやすいようにプリント基板を作成した。部品を基板にはんだ付けすれば、すぐに動くようになる。生徒にはLEDの光の拡散方法とケース作りを考えてもらう。
光の拡散は、サンプルとして、拡散カバーを取り付けただけのもの、ストローの内側をサンドペーパーでこすったものをかぶせて煙突のように光らせるものを用意した。
ケースのサンプルは、黒い画用紙で囲っただけのもの、プラダンで作った箱形のケースを用意した。


温度の表示方法は、①麻雀方式、②バイナリ方式、③モールス方式、の3種類。
①麻雀方式は、4拍1小節で0~39度を表示する。1拍めで10の位、2,3拍めで1の位を表示し、4拍めは休み。


②バイナリ方式は4拍3小節の4ビットバイナリで0.0~99.9度を表示する。1小節め(赤)が10の位、2小節め(緑)が1の位、3小節め(青)が少数の位。


③モールス方式は5拍3小節のモールス信号で0.0~99.9度を表示する。1小節め(赤)が10の位、2小節め(緑)が1の位、3小節め(青)が少数の位。


今回使ったセンサーは測定温度のオフセットが大きいので、オフセットをキャンセルするためにキャリブレーションをやることにした。
以前使った、温度・湿度・気圧を測定できるセンサーの精度がまずまずだったので、このセンサーと振り子測りの基板で温度計を作成した。この温度計とRGB温度計をケーブルでつなぎ、スイッチをダブルクリックすると正確な温度の値がRGB温度計に伝わり、温度のオフセットを記録して調整する。