Setup |
スピードキューブって知ってますか? 3x3x3の立方体パズル、いわゆるルービックキューブ系パズルの 早解き競技です。 スピードキューブの歴史は割愛しますが 昨今では競技用のキューブなども市販され、 盛んに競技が行われてます。 参考:2013 Rubik's Cube World Championship さて、早解き競技ですからタイマーが必要です。 100円ショップのストップウォッチでもいいのですが、、、 せっかくだから、専用タイマー作っちゃいましょう! 例によって使用するのはこれ。 高性能ワンチップマイコンATMEGA328Pです。 1個250円で、何でも出来るすごいやつ! 用意する物: ATMEGA328P ATmega168/328マイコンボードキット(秋月) ATP3011F4-PU (AquesTalk pico LSI) SD1602VBWB-XA-G-G(LCD) LM358N 2SC2712GR 2SA1162GR 電解コンデンサ 100uF 16V x 2 スピーカ 銅板 他、ケース、コネクタ、ピンヘッダ、ユニバーサル基板 コンデンサ、抵抗など 部品や基板などほぼ秋月でそろいました。 どれも、一般的なパーツです。 |
Step 2 |
外観および機能です メインの機能はストップウォッチなので、 液晶の時間表示を見やすくしてみました キャラクタ液晶の外字を組み合わせた、「デカ文字表示」です 正面のタッチセンサーでメニュー操作し、 両サイドのタッチセンサーでタイマーの開始・停止制御をします。 記録の表示もします。 最速記録、5回平均、12回平均 最近12回の記録や、累計試行回数などを ATmega328P内臓のEEPROMに保持しています。 スクランブルの表示をすることができます。 写真のスクランブルは、下記の表記に相当します 「BL'BFL'D'FDFU'BR'F2DLFDF2D'FBL2F'D2L2」 競技用のスクランブルは25回なのですが、 LCDには一度に32文字しか表示できず 一般的な表記である、「R2」や「R'」などの記号を使用すると、 32文字では一度に表示できません。 そこで、白抜きの外字を作成し、小文字を併用することで、 25回のスクランブル表記を可能にしました。 WCA公式のAverege of 5を測定するための「TA MODE」も あります 電源はUSBからもらいます USBはPCへの統計情報出力機能も兼ねており、 ExcellのVBAで、統計情報をリアルタイムに表示したり することができます。 |
Step 1 |
中身です ごちゃごちゃしていますが、 ケースの大きさの割にはスカスカです メイン基板は、 「ATmega168/328マイコンボードキット(秋月)」 を使用しました。 マイコンは買いだめしてあったATmega328Pを16MHzで駆動し 電源はUSBを利用します。 ケースは電工用の立方体に近いケースを利用しました。 両サイドには大きな銅板を張って、静電容量型タッチセンサーとしました。 高抵抗と銅板を直列接続し、銅板をコンデンサとみなして 銅板に充電するときの過渡応答時間の違いを検出する仕組みです。 タッチセンサーは正面の3つ、両サイド2つの、合計5つです。 底面には穴をあけてスピーカーを設置しました。 メイン基板の上に、サウンド関連の部品を実装した基板を ピンヘッダで接続しました。 実装は下記の通りです ・ATP3011F4-PU(合成音声) ・LM358N(ミキサー、ローパスフィルタ) ・2SC2712GRおよび2SA1162GR(スピーカーアンプ用) マイコンが発生する3和音メロディー(PWM)と、 ATP3011F4-PUが発生する合成音声をミキサーに入れて、 波形成形してスピーカーを鳴らす仕組みです。 上面はLCDと銅板(タッチセンサー) x 3です。 |
Step 3 |
動作しているところです 起動時に、タッチセンサーのキャリブレーションをしています。 スクランブルが完了すると、 カウントダウンののち、計測スタートです。 ここではカウントダウンを最後まで聞いていますが、 両サイドのタッチセンサーを「触る→離す」の動作で いつでもスキップすることができます。 計測したタイムが確定すると 更新した内容を合成音声(またはメロディー)で通知し、 統計を表示して、次の測定待ちに入ります。 |
Step あとがき |
うっかりAques Talk picoを買ったところから始まったこの工作、 気が付いたら、 ・タッチセンサー ・オルゴール ・LCDの外字をフル活用 ・PCと連携と 思いつく限りのものを詰め込んだものになりました。 欲を言えば、電池駆動もできたらよかったかも。 あと、色配置の印刷を間違ったのは秘密・・・ ではまた、次の配信で。 |