Arduinoで早押しボタンを作る 【その1 準備編】
はじめに
ここではなぜArduinoを使おうと思ったかなど部品の選定理由も含めてお話ししたいと思います
そんなことはいいから早く必要なものの一覧を見せろという方はこちら
こちら
最低限のパーツリスト
ボタンを4つ作ることを想定した場合の個数です
商品名 | 個数 | 単価 | 小計 |
---|---|---|---|
3.5mmステレオミニジャックMJ-073H パネル取付用 | 1 | ¥75 | ¥75 |
3.5mm4極ミニジャック(4極パネル用) MJ-064H パネル取付用 | 8 | ¥70 | ¥560 |
3Pトグルスイッチ 1回路2接点 パネル取付用 | 1 | ¥80 | ¥80 |
耐熱電子ワイヤー 2m×7色 外径1.22mm(UL3265 AWG24) | 1 | ¥480 | ¥480 |
プラスチックケース TW5-3-9B | 4 | ¥170 | ¥680 |
プラスチックケース SW-120S | 1 | ¥210 | ¥210 |
2.1mm標準DCジャック パネル取付用 22234 | 1 | ¥50 | ¥50 |
超小型スイッチングACアダプター9V1.3A 100V~240V GF12-US0913 | 1 | ¥800 | ¥800 |
パネル用押しボタンスイッチ モーメンタリ 丸型 赤 | 4 | ¥90 | ¥360 |
パネル用押しボタンスイッチ モーメンタリ 丸型 白 | 1 | ¥90 | ¥90 |
パネル用押しボタンスイッチ モーメンタリ 丸型 緑 | 1 | ¥70 | ¥70 |
L型ピンソケット 1×6(6P) | 1 | ¥20 | ¥20 |
ドライバ内蔵リレーモジュールキット | 4 | ¥200 | ¥800 |
パワーLED用レンズ一体型ホルダー OEHW2045GF | 4 | ¥40 | ¥160 |
1W赤色パワーLED 625nm OSR5XNE1C1E | 4 | ¥150 | ¥600 |
パワーLED用放熱(アルミ)基板 | 4 | ¥40 | ¥160 |
CH340E USBシリアル変換モジュール Type-C | 1 | ¥480 | ¥480 |
AE-ATMEGA328-MINI (Arduino Pro Mini上位互換) | 1 | ¥950 | ¥950 |
LED組立ブラケットセット 青色 (2セット入) | 1 | ¥100 | ¥100 |
カーボン抵抗(炭素皮膜抵抗) 1/4W10kΩ (100本入) | 1 | ¥100 | ¥100 |
合計 | ¥6,825 |
その他使用した工具など
- テスター
- はんだごて
- はんだ
- 3.5mmステレオミニケーブル
- ブレッドボード
- ジャンパーピン
- ミニルーター
- ドリルピット
- スコヤ
- ポンチ
- パソコン
どうやって作るのか
本体
まず本体ではどのような機能を実装する必要があるのか考えます
今回制作したいものを実現するためには、
- ボタンが押されたことを検知する(電圧変化を検知する)ことができる
- 排他やリセットなどのロジックを実装できる
ことが少なくとも必要な条件と考えられます。これを実現する本体の候補としては
- PC[1]
- Arduino等の汎用マイコンボード
- 専用のマイコンボード、工作キット(例.早押し判定2キットHA-808)
あたりがパッと思い浮かびます
「早押しボタン 自作」等のキーワードで検索すると、まずこちらの方のブログがヒットします
そんなこともあり当初は私もこちらを参考にしてHA-808を採用しようと考えていましたでは、なぜ今回Arduinoを採用することにしたのか理由はいくつかありますが一番大きいのは
- ソフトの方が得意だから
こちらの方のブログを読んでいくとわかりますがHA-808は微妙に物足りない部分があり、そういった部分をこの方は回路を自作するなどして解決しています
正直、ここら辺を自分で工夫してなんとかする自信はありませんでした。載ってるICもどういうロジックで動いてるのか不明ですし、ハードの制限でやりたいことができないと嫌だなーと考えました
というわけで、より応用が利きそうで、自分で何とかできそうなArduinoを選びました
流行りものなので情報が多いというのも大きな判断材料の一つです
[2]
Arduinoの選び方今回、AE-ATMEGA328-MINI (Arduino Pro Mini上位互換)を選んだのは、
- 小さい、安い
- デジタル入/出力が十分(14個)ある[3]
今回は早押しボタンが4つぐらい繋がれば十分かなと思っているので、4 * ( ボタン入力用 + LED点灯用 )で8個あれば足りると考えました - 9V~12Vで動作する
後述しますが、高輝度のLEDを点灯するために9~12VのACアダプタを電源として使おうと考えていたので、USB接続の5V電源にしか対応していないボードは候補から外しました
早押しボタン
ボタン
パネル用押しボタンスイッチ モーメンタリ 丸型 赤
モーメンタリースイッチならなんでもよいです
本体の操作用としても同じものを使うので複数色選びました。好きな色で大丈夫です
早押しボタンとしては心臓部なので、一般に使われるものや押し感が近いものがあればそれが良いのですが、調べた限りでは特に定番品もなさそうなので今回は比較的大きめで押しやすそうなものを選びました
(良いボタンの情報をお持ちの方のコメントお待ちしております)
ランプ
こちらも一般的なLEDランプならなんでもよいです
早稲田式早押しボタンのランプは大きくて見やすくて良さそうなので同じようなものを探したのですが、「回転灯 カバー」「パトランプ カバー」「LED 拡散」「LED カバー」などのキーワードで検索しても同じようなものを見つけることができませんでした
(こちらも情報をお持ちの方のコメントお待ちしております)
今回はこちらのLEDレンズを使うこととして、それにあうLEDと専用基板をセットで購入しました
こちらも好きな色で大丈夫です。ただし、W数には注意した方がよいです
リレー
今回採用したLEDは高輝度のもので点灯のために大きな電流が必要となります(定格350mA)
Arduinoのデジタル端子は5Vの電圧をON/OFFするもので5Vの電圧を出せますが、供給電流は最大で20mAなので[4]、これでは十分な輝度でLEDを点灯させることはできないと考えられます
したがって、今回はLEDの点灯にはArduinoの供給する電圧ではなく、外部の9~12Vの電源を利用することにしました。この時必要になるのがリレー回路です
簡単に言うと電圧で操作できるスイッチです。細かい原理などはこちらの記事
接続
- 3.5mm4極ミニジャック(4極パネル用) MJ-064H パネル取付用
- ステレオミニケーブル オス-オス(なんでもよい)
親機と早押しボタンの接続にはステレオミニケーブルを使うことにしました
理由は以下です
- ケーブルの入手が容易
- どこでも売ってる
- 安い
- 長さも自由
- ジャックの入手も容易
今回は4極のジャックの方が3極のジャックよりなぜか安かったので4極のものを購入しましたが、いまのところボタン用信号線、LED点灯用線、グランド線の3極しか使用する予定がないので、ケーブルは3極のものを使用しています。ジャックも3極が安く入手できるならで大丈夫です
電源
ランプのところで述べた通り9~12V, 1A~程度ならなんでもいいと思います
(私自身はArduinoのスターターキットに付属していた9V1Aのものを使用しています)
その他
めんどくさくなってきたのでまとめて紹介します
-
3.5mmステレオミニジャックMJ-073H パネル取付用
音声再生用(スピーカーをつなぐ用)です
ボタンのジャックと色で識別するため3極を選びました -
3Pトグルスイッチ 1回路2接点 パネル取付用
本体の電源スイッチ用です。要らなければ不要です -
LED組立ブラケットセット 青色 (2セット入)
本体の電源の表示用です。要らなければ不要です -
2.1mm標準DCジャック パネル取付用 22234
本体の電源用供給です。お好みでUSBなどを採用してもよいかもしれません -
耐熱電子ワイヤー 2m×7色 外径1.22mm(UL3265 AWG24)
配線用です。なんでもいいです -
プラスチックケース TW5-3-9B
ボタン用のケースです。これもなんでもいいです
HAMMOND 1590B, 1590Aあたりにしてもかっこいいかなーと思います -
プラスチックケース SW-120S
本体用のケースです
もしかしたら入らないんじゃないかと思っています
みなさんはもう少し大きいのを選んでください -
カーボン抵抗(炭素皮膜抵抗) 1/4W10kΩ (100本入)
LEDの負荷、デジタルピンのプルアップ用です
LEDを光らせてみて光量で選びました。適宜計算してください
プルアップ抵抗の計算は厳密にやると結構大変です。詳しく知りたい方はこちら
https://ana-dig.com/pull-up/
さいごに
めちゃくちゃ長くなってしまいました
各自で必要なところだけ参考にしていただければと思います
説明不足な部分もあると思いますので、質問などは歓迎です
次回からはようやく製作に入っていこうと思います
まずはボタンの入力動作の部分から
-
PCで開発するためには結局インターフェース部分をArduino等で作る必要があると考え、初めに候補から外しました。Raspberry PiのようなGPIOがあるPCがうちにはなかったので ↩︎
-
こちらを参考に選びました https://share-lab.net/arduino-matome2 ↩︎
-
アナログピン8個も必要に応じてデジタルピンとして利用できるので最大20個(早押しボタン10個)まではいけます(たぶん) ↩︎
Discussion