« 「トランジスタ技術2022年3月号」に「ニッ水電池」の記事を掲載してもらいました | トップページ | Behzad Razavi 著「アナログCMOS集積回路の設計」 »

2022年2月18日 (金)

「シャカシャカ・ホイップ」衝撃検出回路

圧電発音体(ピエゾ・スピーカー)を衝撃(振動)センサーに
した時の検出回路、トランジシタ1つだと回路は簡単ですが
振動波形のうねりによりチャタリングでミスカウントする
ことがあります。

パルス検出プログラムが、V-sync(60Hz)のタイミングで
動いているので、ソフト的なチャタリング除去がもうひとつ
うまくいきません。
きちんと波形を捉えて、1発パルスにしておきたいという
ことで、LM393を使ってヒステリシスを持ったコンパレータ
回路を使うことにしました。

この時のヒステリシスの考え方を図示しておきます。
検出回路の全体図

Ss2

比較電圧はコンパレータ部の(+)端子、非反転入力です。
この電圧を抵抗値から計算します。
H11_20220218113501
このように抵抗がつながって、+端子の電圧が出力のHとLで
変化してヒステリシスが生まれるのです。

さて、トランジシタを使ったシュミット回路、あれこれ
ありますがどうしても入力インピーダンスが低くなって
しまいます。
比較電圧の基となるのがTrのベース・エミッタ間電圧です。
温度変化もあるし・・・

代表例を示しておきます。

H12

そんな中、0~5Vや0~12Vを検出するのに役立つのが、
RS-232C用レシーバーIC。
代表品番が75189と75189A。
14ピンにこんな回路が4つ入っています。

H13
189と189AでR1の値が違っていてヒステリシス電圧が
異なります。
H14
  (TIのデータシートより)

今は、シュミットICといえばC-MOSの4584やHC14で、
入力インピーダンスが高いので、時間遅延などの用途
では時定数の抵抗を大きくできます。
ただ、ヒステリシス幅や検出電圧が自由に設計できません。

※「シャカシャカ・ホイップ」 最終(ほぼ)回路
6

これで、衝撃センサーを使った10秒ゲームが同じ
ソフト・ハードで動きます。
「ボコスカ」「シャカシャカ」「炎のターゲット」の3種
はこれでOK。

※バックアップがわりに現在のスケッチ
   ・ダウンロード - piko_boko1b.zip

※Arduino UNOでとりあえず動かしてみるつなぎ方
C001_20220211151001

スタートしてINT0にパルスを入れると得点が上がります。
「ピコピコ」の場合はINT0とINT1交互に入力。
A4、A5にテスト用のパルスを出力してますので、これを
INT0(ピコピコならINT1にも)につなげば得点パルスに
なります。
  ※計測中にSTART SWを押すと、このパルス周期が
   変わりますので、得点が進む速さが変わります。

■画面の様子 横32dot × 24line
・ゲームのタイトル表示
   ----    ----
  | シャカシャカ |  |ピコピコ|
  |ホイップ|  |スイッチ|
   ----    ----
   ----    ----    ----
  |ボコスカ|  | 炎の |  |ぱたぱた|
  |ハンマー|  | ターゲット |  |プロペラ|
   ----    ----    ----
・合格点とゲーム時間表示(起動時)
   ----
  |100合|
  | 10秒|
   ----
・開始、秒読み、カウント
   ----    ----    ----
  | よ~い |  | それ~ |  | 23 |
  |321 |  |■■■■|  |■■  |
   ----    ----    ----
               10秒の残時間バーが減少
      最初のパルス入力が来るまで計時しない。
      パルス無し2秒が続いたら計時開始。      
・結果表示
   ----    ----    ----
  | 89×|  |123Hi|  |102ok|
  |ざんねん|  | ハイスコア |  | 合格 |
   ----    ----    ----
   合格点=0の時は合格表示はしない。
・スタンバイ、スタート待ち
   ---- 
  |123Hi| ←新ハイスコア Hi点滅
  |119Hi| ←旧ハイスコア 次ゲーム開始で新に更新
   ---- 
・モードスイッチ操作
   ----    ----    ---- 
  | Select |  | Select |  | Select |
  | ゲーム |  | 合格点 |  | チャタリング| 設定項目を選ぶ
   ----    ----    ---- 
・ゲーム種別設定
   ---- 
  | ゲーム |
  |ピコピコ| ←5種から選択
   ---- 
・合格点設定
   ---- 
  | 合格点 |
  | 10点| ←0~150まで10点ピッチで設定
   ---- 
・チャタリング除去処理の有無を設定
   ----    ---- 
  | チャタリング|  | チャタリング|
  | なし  |  |あり:1c |
   ----    ---- 


※ビデオ出力回路
Bb1_20220218163101
なぜトランジシタでバッファしているのかと
出力にコンデンサをいれている理由の説明。
Bb2_20220218163101
「大声」と「ボコスカ」でビデオ出力を2系統に
して作ったのがあります。
競技者が見るテレビと観客が見るテレビ(例えばプロジェクタ)
を別に置くとき回路の分岐が便利だから。

|

« 「トランジスタ技術2022年3月号」に「ニッ水電池」の記事を掲載してもらいました | トップページ | Behzad Razavi 著「アナログCMOS集積回路の設計」 »

電子工作」カテゴリの記事

Arduino」カテゴリの記事

10秒ゲーム」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« 「トランジスタ技術2022年3月号」に「ニッ水電池」の記事を掲載してもらいました | トップページ | Behzad Razavi 著「アナログCMOS集積回路の設計」 »