USBケーブルにスイッチを付ける

# 概要
ON/OFFスイッチの付いたUSB延長ケーブルを自作します。
といっても既存のUSBケーブルにスイッチを付けるだけです。
・標準的なA(オス)-A(メス)タイプ
・電源供給だけでなくデータ通信もON/OFF制御できる
・ケーブル中間部分にスイッチを組み込む

# 準備
・USBケーブル
手頃なUSBケーブルを用意。
オス側はA-Bタイプ(プリンターとか繋ぐやつ)、
メス側はピンヘッダ-Aタイプ(マザーボードに繋ぐやつ)
がそれぞれあったので使用。

・スイッチ
![68F8EC6B-FBFE-493F-9C8E-F960FB91EBC1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/0d6678a5-ac94-6ad6-085b-133b5916e357.jpeg)
「PS004-L22NPS2KTUGXX」
https://www.marutsu.co.jp/pc/i/240414/
2極双投、LED付プッシュスイッチでオルタネイト型(ロックあり)。
自分のような初心者向けにわかりやすく言うと、
・A/Bを切り替える回路が2つ入っていて、2つの回路が同時に切り替わる
・LED内蔵(ただLEDが入ってるだけ、スイッチと連動とか抵抗とかない)
・押した後にその状態が維持される(↔押している間だけ切り替わる)
・押すとスイッチがへこんだままになる(↔スイッチが元に戻る)
というスイッチです。

スイッチについては下記を参照。
『こたつぁーの電子工作-スイッチについて知ろう』
http://www.kotaden.com/stage2_1_index.html
『NKKスイッチズ株式会社-今さら人に聞けないスイッチの基礎1』
https://www.nkkswitches.co.jp/support/klg/knowledge.html

・ケース
![1AAAEC79-1487-4C4B-B89F-9ECE7BF7CE48.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/d2f4e177-e42c-e3ce-7188-410dce0ec2de.jpeg)
「プラケース [I43X22X11B]」
http://www.aitendo.com/product/5189
USBコネクタぐらいのサイズの平べったいやつに変更しました。
面積は増えて高さが抑えられたのでサイズは理想的。
ケーブル用の穴も加工済です。

（使用予定だったもの）
![1F8EE4EE-547E-4CDB-BC1E-F191D4A25923.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/70d42f76-90ec-2af1-dd21-bd4af0f9e6d4.jpeg)
~~「SW20B」~~
~~https://www.marutsu.co.jp/pc/i/4734/~~
~~スイッチが入る小さめのケース。ちょっと小さすぎたかも。~~
~~このシリーズは、ケースに合うサイズの基板が販売されているらしい。~~

・抵抗
スイッチのLED用に150Ωの抵抗を購入。

・基板
![DB521A6D-1A77-4D2A-8E05-D5F2B6F0A2D1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/811dabf5-ddb6-0faa-a998-3772625e6d56.jpeg)
基板は上記ケース対応サイズの基板があったので購入。
端の2列と1列は縦に繋がっています。
これをうまく活用できるかが肝な気がする。

・リード線
![198DC244-6A2E-4A59-A823-B702076F57AC.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/9b4b372a-5647-813d-d4b5-657e640fc922.jpeg)
スズメッキ線と迷ったが、圧倒的に安かったので購入。
結果的に被膜のあるこっちにして正解だった。

# ケーブル動作チェック
・導通チェック
ケーブルを剥いて対応する4色のケーブルをそれぞれ繋ぎます。
チェックなのではんだ付け等はせずに簡易的に接続。
![B4D6040D-AF30-4471-AD67-1AA664E2090B.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/7014e730-fb1d-5318-2151-3b16dc687d31.jpeg)

テスターでUSBコネクタの各ピンを当たり、導通を確認します。
オス側とメス側のピンがちゃんと対応している事。
レガシーなUSBは4ピンで以下の配列となっており、配色も大体以下のようになっています。

*USBピン配列
　1(赤)：VBUS (4.75 - 5.25 V)
　2(白)：D−
　3(緑)：D+
　4(黒)：GND

が、念のため電圧も確認し、ピン配列が正しいかチェックします。
仮止めなのでショートさせないように注意し、PCにケーブルを接続。
テスターで各ケーブルの電圧をチェック。
赤がおおよそ+5Vである事を確認。同様に残りの3本もざっくり確認します。

導通が確認出来たら実際のUSBメモリでPCと通信出来るか確認。
通信の確認が取れたところで、赤ケーブルをショートさせたり離したりして、PCでの認識がON/OFFされる事を確認。
![DA963B66-479B-4AF4-AC28-9A307E8F3942.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/bfba524c-28f2-b0d3-61c2-61459de67b94.jpeg)

スイッチでのON/OFFはVBUS(赤)のみで良いという動作確認が取れたので、スイッチの取り付けに進みます。

# スイッチ動作チェック
機能とデザインだけで購入した結果、初心者には少々難解なスイッチを購入してしまいました。足が多い。
でも調べればなんとかなります。多分。
まずは型番で検索し、データシートを入手。
ピン配列とか回路図が書いてあるので、頑張って読み取ります。

『PS004-L22NPS2KTUGXXデータシート』
https://www.marutsu.co.jp/contents/shop/marutsu/datasheet/PS004-L22NPS2KTUGXX.pdf

![スイッチ回路図20190723.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/c361bdc0-ad52-b604-02ce-5bf6f6c26b64.jpeg)
とりあえず通電させて動作を確認したくなるのがエンジニアの性。
PCから+5Vを取ってLEDとスイッチの動作を確認。
![8872A3C3-092E-400C-8585-7700469C4C43.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/a0f666cf-7709-d359-3adb-077e1cb4353e.jpeg)
まずは抵抗を付け忘れてLEDを一つ壊します。焦げ臭い。
回路図の通り動作確認が取れたので、情報と課題を整理。

・押し込んだ時にONにするには、2-3か5-6を使用する
・内蔵LEDはこのままの状態ではスイッチと連動しないので、回路を考える
　・直列or並列
　・抵抗値を調べる
　・そもそもLEDいる？
・基板を使うか検討、使う場合はレイアウトを考える
・ケースを加工する

# LEDの抵抗値を調べる
LEDと電源の間には抵抗を入れる必要があります。
理由はさっき燃やしたからです。
シンプルなON/OFFのみのスイッチにしていれば今ごろ完成していたかもしれません。
さて、まずは先ほどのデータシートを確認。
![LED_VF20190724.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/e40de4a5-b166-21fa-20cc-a5a5673389eb.jpeg)
はい、見方なんてわかりません。うまいことググります。
ググった結果、VFを見れば良いらしい。Maxは超えちゃいけないラインで、基本的にはTypに基づけばOK。

なので、2.1V@20mAがこのLEDの仕様と思って良さそう。

で、これを元に抵抗値を調べます。
普通は計算します、という所をあえて調べます、と言っているのは計算する気がないからです。
値を入れると計算してくれるサービスがいくつも見つかりました。
で、私はこちらを使用。

『LED抵抗値計算』
https://calculator.jp/science/led/

ありがたい事に、参考としてデフォルトで近い値が入っている。
「LEDにかかる電圧」に「.1」を付け足して計算。

・電流(mA):20
・電源電圧(V):5
・LEDにかかる電圧(V):2.1

145Ωとの事。
しかしここで疑問が。

電流って、LEDの電流値でいいの・・・？

調べました。良いみたいです。
「流したい電流値」が正解。
ちなみにUSB2.0までの仕様では5V@500mAが仕様。測ったらなぜか300mAだったけど。
詳しくは以下を参照。

『LEDの抵抗値の計算方法』
http://www.sousin.net/design/sousin/contents/teikou_keisan.htm
『ITmedia PC USER - 第3回　USBからの電源で動作するパーツを作る (2/3)』
https://www.itmedia.co.jp/pcupdate/articles/0408/10/news002_2.html

ちなみに、リード線型抵抗にはカラーコードが描いてあり、それを読み取ると抵抗値等の情報がわかる仕組み。
どっちが右でどっちが左かわかりませんね。
覚えておいて損はないと思うが測った方が早そう。
カラーコードについては以下を参照。
『株式会社赤羽電具製作所 - 抵抗器のカラーコード・表示の読み方、覚え方』
https://www.akaneohm.com/column/marking/

で、早速スイッチのLEDの前に抵抗を噛まして点灯してみます。
あいにく145とか150とかいう都合のいい抵抗は持ち合わせていないので、もう少し大きい抵抗で代用。
220と330があったので、上記ITmedia PC USER様の記事にあった、
”いにしえの知識では「LEDを5ボルトで光らせるときは330Ωぐらいの抵抗を入れろ」”
という格言を試してみる。

うーん、薄暗い。
でも220も感覚的には大差ないです。
オマケ機能だしこんなもんでいいかと割り切ります。

次の課題は、
・150Ω抵抗を調達
・ブレッドボード上でスイッチの配線をテスト

# 配線テスト
![82011915-E874-4B78-9F3F-24D6BE5D6BAC.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/2073e2a4-5d0a-bd28-dc18-630ac859c7dd.jpeg)
配線テスト。雑。
スイッチとLEDの連動を確認。
動いたのでよし。
ワニ口じゃないクリップを使いましたが何とかなりました。
二度と使いたくないぐらいやりづらかったので土日で速攻ワニ口クリップを買いました。

# 回路図作成
一応勉強という名目だし、描けるようになりたいし、頭の中の整理に丁度良いので回路図を作成。
![61D9ECF6-7FAA-4802-94E8-6EDA228C0157.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/0ddb7192-3c2a-19c6-3b02-2c248bce61a6.jpeg)
電子工作とか初めてなので及第点とする。
で、こいつを基板のレイアウトにしたのが以下。
![BAC4BF3E-162A-4610-9E51-64389D43DFD3.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/b4975d5a-395a-5f5d-f9ee-678b557d6d03.jpeg)
配置の関係で、抵抗の位置と対応するスイッチの回路を変えました。
基板上のパターンに"5V"とか書いてあるとその通りに使いたくなっちゃう性。

# ケース加工
当たりをつけて、
![02ECD798-4AC3-4EF7-8592-E5467408C1C5.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/923edd71-add2-2088-2a57-d97273808445.jpeg)
小さい穴を開け、
![22C53F4E-69EF-4586-97BA-BA3A4B2A9E09.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/6f5cb4d3-cb48-bcab-59d3-6e1faaffa797.jpeg)
くり抜く。
スイッチが入って引っかかればOK。
![26545834-7D26-4CE4-A801-CF9ABC399DAD.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/c981be1d-d009-d021-a1a2-f10f84819f1c.jpeg)
スイッチの固定方法は考える気力が残ってなかったので省略。
こういう電気的なこと以外の工作の方が勉強する必要ありそう。

# スイッチの取り付け
さて、いよいよ組み立てです。
こんなシンプルな電子工作に苦節半月もかけてしまいましたがこれで最後。

まず、スイッチはケースとの兼ね合いがあるため最後にはんだ付けします。
最初はスイッチ以外の部品から。
抵抗→基板上の配線→ケーブルの順に取り付けていきます。
一部前後したような気がしますが、そこは臨機応変、加工しやすいようにやります。

抵抗を差し込んだ裏面。
![97003B46-9261-4C01-A35C-93390C8A6FD8.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/82b2f7e0-e3ce-6853-70ed-eb8ca5b7cc32.jpeg)
以前、他の人がユニバーサル基板で作った工作を見たことがあったんですが、裏の配線は何だ？はんだ線？とか思ってましたが、
こういう部品の余った足とか使うのが定番なんですね？
確かに加工しやすいし合理的。

途中経過。
![F2A7EE61-4C0C-418B-A280-DFB160396704.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/073b2d5e-b8ad-327d-85ee-c65fefbaed06.jpeg)
緑のデータ線は、ケーブル加工経験者なら何度もやってる
「先に通しておくべき熱収縮チューブとかを入れ忘れる」
やつをやってしまいました。
開き直ってカプトンテープを巻きます。

VBUS→2,5ピンの配線は回路図では簡単でしたが基板上に配置するのは少し悩みました。
![6EF4CF8F-95CE-4F44-8A68-591404296725.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/9038f88c-7507-17b6-dbbc-4676dd1689d8.jpeg)
リード線を買っておいた事で、跨いで配線して即解決。
2,5ピンのはんだ付けはスイッチ取り付け時に一緒にやります。

そしていざ、スイッチのはんだ付け。
やりやすいL1→L2の順に取り付け。スイッチの両端が固定されて以降の加工もやりやすくなり一石二鳥。
で、完成形がこんな感じ。
![E8774491-3043-421A-B6EF-D8EB1DDE983E.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/c49120ae-ba83-ae7a-f4ba-cac6eaec0d2f.jpeg)
はんだ付けは65点ぐらい。
後半になるほど難易度が上がり集中力が下がっていったのでクオリティが落ちた。

ケースを閉じて完成。
![60792A42-062F-4785-9B8F-0343F453DE20.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/1295ab82-1aba-5752-75e5-6c49468dbbed.jpeg)
ケーブルとかスイッチに隙間があって手作り感がありますね。
やはり最大の課題は加工精度か。
![614A5FB1-523E-4C15-B6F6-CBD67F3183F4.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/72fd3123-1010-390d-0b52-51ca08236b9b.jpeg)
![A72E053A-64D6-46A3-A065-EED0423334E5.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/73c93b84-5f30-3fa7-cb22-5c3c04daa845.jpeg)

# 使ってみる
使ってこその電子工作。
動作チェックも兼ねてPCへ接続し、USBメモリを繋いでスイッチをON/OFFします。
![14D2C963-5C31-4AC8-B149-DFB14B8DC758.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467163/6e2487a0-d050-9d4a-a8e9-2401f41ec93d.jpeg)
ちゃんと認識してくれました。
使ってて心許ないのは加工力の賜物。
ちゃんとバランス良く勉強していきます。
あとやっぱりLED暗いね。

# あとがき
これにて「USBケーブルにスイッチを付ける」はひとまず終了。
次回からはまた別の工作に入ります。

追記するスタイルは面倒なのでやめようと思いました。
特に次回からは難易度が上がり、書く内容もだいぶ増えそうなので。

この記事については、ぶっ壊れて修理する時とかにまた追記します。
遠くない未来かも。

# 参考URL
・『こたつぁーの電子工作-スイッチについて知ろう』
http://www.kotaden.com/stage2_1_index.html
・『NKKスイッチズ株式会社-今さら人に聞けないスイッチの基礎1』
https://www.nkkswitches.co.jp/support/klg/knowledge.html
・『Wikipedia-ユニバーサル・シリアル・バス』
https://ja.wikipedia.org/wiki/ユニバーサル・シリアル・バス
・「PS004-L22NPS2KTUGXX」
https://www.marutsu.co.jp/pc/i/240414/
・『PS004-L22NPS2KTUGXXデータシート』
https://www.marutsu.co.jp/contents/shop/marutsu/datasheet/PS004-L22NPS2KTUGXX.pdf
・「SW20B」
https://www.marutsu.co.jp/pc/i/4734/
・『LED抵抗値計算』
https://calculator.jp/science/led/
・『LEDの抵抗値の計算方法』
http://www.sousin.net/design/sousin/contents/teikou_keisan.htm
・『ITmedia PC USER - 第3回　USBからの電源で動作するパーツを作る (2/3)』
https://www.itmedia.co.jp/pcupdate/articles/0408/10/news002_2.html
・『株式会社赤羽電具製作所 - 抵抗器のカラーコード・表示の読み方、覚え方』
https://www.akaneohm.com/column/marking/
「プラケース [I43X22X11B]」
http://www.aitendo.com/product/5189