2020年6月30日火曜日

20.6.30 信号を守って走る三輪車


コロナ対応の気分転換で久しぶりにおもちゃの書き込み。
去年作った「ライントレース三輪車」に信号の色を判断するためのカラーセンサーを取り付けて、信号を守って走らせてみた。
走る道は楕円形のコースに直角に交わる直線の道路を追加して交差点を2つ作った。信号は緑・黄・赤の3つのLEDで作り、1つの交差点に置くことにした。


去年作った三輪車の基板にカラーセンサーを追加した。CPUの端子は使っていないピンがあったので、基板の裏にケーブルをはんだ付けしてセンサーをつないだ。センサーは小さく切った基板に取り付けて、メインの基板に取り付けてある。
スタートさせるときは、内部の直線の道路に三輪車を置く。交差点で内部の直線から外周に行くときは右折か左折、外周を走っていて交差点にきたときは直進か曲がって内側の直線に進む。


信号は4セット作り木の枠に取り付けた。緑・黄・赤の3つのLEDを4セット光らせるが、一度には1色しか光らないので、4セットの信号を50*4=200Hzで時分割で点灯させる。色で明るさが異なるので、点灯時間は色ごとにタイマーで調整する。
信号を木の枠に取り付けたが、センサーになるべく垂直に光が当たるよう、取付の高さはセンサーの高さギリギリにしてある。


カラーセンサーは浜松ホトニクス製のもので、RGBと赤外のフォトトランジスタの出力が出てくる。信号のLEDの光の強さを測定するとき、周囲の明るさが変わるとセンサーの出力が変化するため、その調整もやるようにしたが、基本はなるべくLEDに近い距離で測定することにした。


走るのが1台だけなのに信号が必要か?という疑問はあるが、簡単なセンサーでも信号の色を検出できることがわかった。

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を行う。


2018年10月2日火曜日

18.10.2 振子はかり+6


先日の振子はかりには他に6つの機能がある。
 1:時計        普通の時計、時報付き
 2:アラーム      目覚ましのアラーム、5分ごとに6回アラームが鳴る
 3:電池選別器     小電流と大電流両方で測定して残量を選別
 4:キッチンタイマー  99分まで設定できる、設定は10秒毎または1分毎
 5:ストップウオッチ  1秒ごとにカウント
 6:メトロノーム    テンポと拍子(3,4)を設定、訓練モードつき
これまでに作ったものをあれこれ詰め込んでみた。ほとんどのものはスマホなどで使えるが、電池選別器は実用的でお勧め。


数字は4ケタのLEDで表示する。小数点と時計表示用のコロンが付いている。
操作は手前に並んだ3ヶのスイッチで行う。一番右のスイッチを押す回数で機能を選ぶ。真ん中のスイッチは2回押しで機能のサブモードの変更、1回押しでスタート・ストップを行い、一番左のスイッチは値の変更を行う。1回押しで+1、押し続けると連続して+1となる。一番右のスイッチを押しながら左のスイッチを押すと値がマイナスされる。
仲間に協力してもらい、プリント基板を作成した。部品点数がかなり多いが、作業がかなり楽になった。


電池選別機は単1から単5までの1.5Vの電池専用。小電流(1mA)と大電流(100mA)で電圧を測定し、残量を4段階で表示する。大電流での測定は小電流で一定以上の電圧がある場合のみ行う。それぞれの電圧を表示し、次に選別値をバーの位置:上・中・下・なし、の4段階で表示する。
 1:モーターを回せる
 2:ラジオやリモコンで使える
 3:天気予報で使い切って捨てる
 4:即捨てる
使いかけの電池がけっこうたまっているが、これで選別しながら使っている。

2018年9月30日日曜日

18.9.30 振子はかり


ものづくり教室の教材用に、振子の周期を測定してで重さを計算する秤を作ってみた。普通の振子は錘の重さが変わっても周期は変わらないが、振子の皿に錘を乗せると、錘の重さで周期が変わるのがミソ。


振子は木の枠で作ってあり、振子を吊るす棒の真ん中あたりにビスとナットの錘がついている。これで、振子の重心がビスのあるあたりになる。振子の皿に錘を乗せると、振子全体の重心が錘の重さの分下に移動するため、振子の周期が長くなる、という仕掛け。


振子が軽く振れるよう、軸にはボールベアリングを着けた。外径4mmのアルミパイプを軸にして、内径4mmのボールベアリングを3Dプリンタで作ったケースに入れて、振子を支える柱に取り付ける。
以前作ったレゴの軸を使った振子に比べると、振子の揺れが減衰する時間がかなり長くなった。


振子の周期を測定するため、振子の皿の下にシャッターを取り付ける。床に取り付けた赤外線LEDとフォトトランジスタで作ったセンサーでシャッターが通過する間隔を測定する。
周期と錘の重さの関係は簡単な式では表せないので、重さのわかった錘を乗せた時の周期を何種類か測定して記憶しておき、測定する錘を乗せた時の周期で補間の計算をして重さを求める。0gから90gくらいまで7つの重さの周期を記憶してある。直線補間では誤差が大きいようなので、2次式で補間している。


錘をのせて振子をゆすると、4ケタのLEDに重さが表示される。1周期ごとに重さが表示されるが、時間がたつと振幅が小さくなり、周期が短くなるため、重さが小さくなっていく。振子の周期は振幅に依存しない、というのは振幅が小さい時だけ、というのが良くわかる。振幅が一定の値になった時の周期で最終的な重さを計算する。
重い錘をのせると、振幅が小さくなるのに時間がかかる。重いものを測るときは振り始めの振幅を小さくしたほうが良い。
直方体の錘の重さを測るとき、平らに置いた時と、立てて置いた時では重心の位置が変わるため、重さが変わる。
精度もあまり良くないし、測定中に重さが減っていったり、錘の置き方で重さが変わったりするあやしい秤であるが、振子の特性を数字で見れるのが面白いと思っている。