2019年9月24日火曜日

19.9.24 逆立ちが上達した三輪車


逆立ちに再挑戦してみた。これまでは、PID制御のI(積分)の項はすぐに発散して使いにくいためPとDの項だけで制御していた。今回は積分の項も使うようにしてみたところ、しっかり立てるようになった。つついても転ばないし、ギクシャクしながらだけど、前後に歩くこともできるよになった。


いつものレゴのモーターを使うことにしたが、これまで逆立ちに使っていた2つのモーターのうち1つがキュルキュル音を出すようになり、ついに使えなくなってしまった。30年くらい前の初代マインドストームのモーターなので、十分もとはとったけど残念。
ライントレース用に組み立ててあるモーターを1つ外して使おうかと思ったが、逆立ちだけならモーター1つでもできそうなので、残った1つのモーターで動かすことにした。モーターを1つにしたので、車体はコンパクトにできた。後輪はレゴの小さな車輪をつけてある。


基板は以前逆立ちに使ったものをそのまま使う。CPUは16bitsのPIC24FV32KA301、モータードライバーはロームのBD6211。センサーも以前と同じフォトリフレクタのRPR220を使う。床からの反射光の強さを測定し、一定の値になるようにモーターを制御する。
PIDの積分の項を以前8bitsのPICで使おうとしたときには、すぐに発散してしまい、使えなかったが、今回は16bitsのPICにしたこと、積分の値を32bitsにしたこと、などが効いたのか、発散せずにうまく使えるようになった。
Iの項を使うことにした効果は驚くほどで、以前よりも安定して逆立ちできるようになった。床からの距離の目標値を少し変更すると、ギクシャクしながら前後に歩くこともできるようになった。


リモコンはものづくり用に作ったものを使った。ボリュームが3ヶあるので、これでP・I・Dの係数を設定できるようにした。試しにPやIの係数を小さくすると、立てなくなってしまう。Dの係数を大きくするとしびれたようにビリビリ振動し、小さくすると酔っ払ったようにユラユラ前後に揺れるようになる。Pの係数を大きくすると、前後にフラフラ動くのが少なくなる。


2019年7月25日木曜日

19.7.25 2代目メロディー貯金箱


6月のものづくり教室の教材。前回のものはコインが入ったのを検出するだけだったが、今回は入ってきたコインの種類を判別できるようになった。飾りのうさぎは小二の孫が作ったものを使わせてもらった。


コインの判別は3つのスイッチと1ヶのフォトリフレクタで行う。3つのスイッチは高さがそれぞれ異なっていて、コインの大きさを3つに分類する。フォトリフレクタは赤外線を照らして、コインからの反射光を測定し、コインの穴と色を判別する。判別の流れは下の図のようになる。


スイッチ周りは下の図のようになっている。スイッチはボールペンから取り出したバネにメッキ線をはんだ付けして作った。高さを決めるストッパーは3D_Printerで作成。フォトリフレクタは最近よく使うロームのRPR220。
スイッチ周りの作成は生徒はかなり苦労していたが、ほとんどの生徒が完成できた。


基板は、別の仲間に協力してもらってプリント基板を作成した。CPUは20pinのPIC16F1508を使う。和音を鳴らす仕組みは、圧電ブザーの2本の端子に別々の周波数の信号を入れてみたところ、なんとか聴ける音が出ることが分かったので、この方法にした。ということで同時には2つの音しか鳴らない。
メロディーは生徒と仲間の分で22曲入力した。PICのメモリに入りきらなくなり、少しずつ切り詰めてなんとか納めた。


2019年2月2日土曜日

19.2.2 ストロボ回転数測定器


ストロボの使い方のデモ用に回転数測定器を作ってみた。
回転部は以前作ったリモコン基板を使い、モーターを回す。回転数はボリュームで設定できる。
ストロボは4ケタの7SegLEDを使った温度計に白色LEDを取り付けてソフトを改造して作った。


奥側が回転部。マブチのモーターをトランジスタでPWM駆動する。CPUはいつものPIC12F1822。回転数はボリュームを回してSw1を押して設定する。モーターの軸にタミヤのプーリーをつけて目印の黒丸をつけてある。


手前側がストロボ。LEDは1Wの白色LED、CPUはPIC18F26K22。回転数の表示は4ケタの7SegLEDでRPM(1分間の回転数)で表示する。
スイッチが2ヶあり、右側のスイッチでストロボの周波数が増加、左側のスイッチで減少する。どちらも1回押しで増加、押し続けると連続増加、ダブルクリックすると右なら2倍、左なら半分になる。


測定を行うときは、まずモーターをスタートしてプーリーを回転させる。次にストロボを低めの周波数でスタートさせる。右側のスイッチを押し続けて周波数を上げていくと、プーリーの目印の見え方が変わってきて、1か所で止まって見えるようになる。これで、プーリーとストロボの同期が取れた。ただし、プーリーが1回転する間にストロボが1回光っているか、プーリーが2回転する間にストロボが1回光っているのかは分からない。ここで、右側のスイッチをダブルクリックしてみる。これでストロボの周波数が2倍になる。プーリーの目印が2か所見えるようになったら、ストロボがプーリーの2倍の周波数で光っているので、左側のスイッチをダブルクリックして周波数を半分にする。この時に表示されている値がプーリーの回転数(RPM)となる。


2019年1月24日木曜日

19.1.24 流れるストロボカレンダー


2月のものづくり教室の教材。周囲に文字を印刷したCDを回転させ、LEDのストロボで照らして文字を表示する。一度に1文字しか表示できないので、文字が右から左に流れながら順に表示されるようにして、カレンダーを作った。
これだけでは面白くないので、数字のゴロ合わせで(8181)(7144874)などの単語を表示するようにした。ゴロ合わせの単語は生徒からのものなどを組み込み、ランダムに表示される。


CDの周囲には32ヶの文字が印刷されていて、その上にストロボ用のLEDがある。CDの裏側には黒いビニールテープを貼り、その下に反射型のフォトリフレクタを取り付けてある。CDが回転して黒いテープがフォトリフレクタの上にくるとセンサーが反応するので、CDが1回転するのにかかった時間をPeriodに記録しておく。このときにLEDが「0」の真上にあるとすると、「2」を表示するときは、2文字分待つ必要があるので、Period * 2 / 32を計算し、この時間を待ってからLEDを瞬間的に光らせる。これを1回転ごとに繰り返すことで文字が読めるようになる。


ベース板に部品を取り付ける。中央にモーターを、仲間が3Dプリンタで作ってくれたアダプタで取り付ける。奥に柱を立て、その上にストロボ用のLEDをつける。手前右に基板、右奥に電池ケースを取り付ける。
CDにアダプタを付け、モーターに差し込めば部品の取り付けは完了。



基板は、別の仲間に協力してもらってプリント基板を作成した。CPUは20pinのPIC18F14K22を使う。フォトリフレクタはリード線を長めにしてとりつけ、CDの裏側に近づける。カレンダーのために時計が必要なので、32.768KHzのクリスタルを使う。
右側のスイッチを押すと動作開始、CDの回転が上がったらカレンダーを表示し、その後ゴロ合わせの単語を4ヶ表示する。
右側のスイッチをダブルクリックすると設定モードになり、年・月・日・曜日・時・分・表示フォーマットなどを設定する。値の変更は左側のスイッチを押す。1回押しで+1、右側のスイッチを押しながら1回押しで-1、左側のスイッチを長押しすると連続で±1を行う。