中学生でもわかる電子工作教室

入門書はあってもその次がない電子工作の学びを助けたいという思いで作られたブログです

小学生でもできる(Arduinoを使わない)電子工作の始め方!

 どうも、どんぐりです。
 僕は小5でプログラミング(Java)を学び、独学で電子工作を始めました。
 作ったものはラジオやアンプ、電源装置、ICレコーダーといったものから、電気ショックタイマーや水中ドローンといった変わったものまで作っています。

 しかし、そのような変わったものを作るためには、ArduinoRaspberry Pi(ちっさいコンピュータみたいなやつ)に頼らず、自分で回路の設計もできないと難しいです。(ちなみにプログラミングも僕はPICという小型のICをお勧めしています。)

 今回は、小学生でもできるそのような電子工作のやり方を説明しましょう!

小学生でもできる(Arduinoを使わない)電子工作のやり方

 電子工作は、1.アイデア出し→2.回路設計(とプログラミング)→3.基板作り→4.ケース加工→完成というステップがあります。それぞれのステップを詳しく説明しましょう。

1.アイデア出し

 作りたいものを考えます。電気ショックタイマーを作りたい、とか、水中ドローンを作りたい、とかです。

具体例

電気ショックタイマーを作りたい。イメージはこんな感じ。

f:id:donguri0912:20210802110947p:plain

①液晶表示器(LCD):残り時間の表示。
②ケース:売られているケースは直方体型が多く、加工もしやすいので直方体型にする。
③押しボタン:スタート/ストップ(残り時間の設定モード時はカウントアップ)、セット(残り時間の設定)。
④腕時計の腕に巻き付ける部分:100均の腕時計を分解してつける。先端は切るのではなく描いてないだけ。
⑤電気ショック用の端子:このタイマーを腕時計のようにつければ、端子が腕に密着する。

2.回路設計(とプログラミング)

 回路は多くの場合次のような構成になります。

f:id:donguri0912:20210802171530p:plain

センサー回路:外界からの情報をコンピュータが扱いやすい形にして伝える部分。マイクや赤外線センサー、ボタンやスイッチ等と、その制御回路。
コンピュータ回路:センサー回路からの情報を処理し、アクチュエータ回路に伝える。初心者はここにPIC(後述)を使うのがおすすめ。コンピュータ回路という名付けているがただのアナログ回路でもよい。
アクチュエータ回路:コンピュータ回路からの情報を外界に伝える部分。LEDや液晶表示器、モーターやスピーカー等と、その制御回路。

 そして、それぞれの部分にはテンプレートがあり、それらを組み合わせることに作ることができることがほとんどです。
 テンプレートについては別の記事で紹介します。

 また、部品の調達の仕方は次の記事で紹介しています。

denkyo.hatenablog.com

 部品には機能を持つ回路を集積したICやモジュール(例:電源IC、ラジオIC、距離測定モジュール、無線モジュール…)という部品もあるので、そのような部品の存在を知っておけば回路設計はとても楽になります。

 また、部品にはデータシートと言って、部品のスペックが書かれたファイルがあります(秋月電子マルツオンライン)が、ICやモジュールは回路例がついていることが多く、回路設計で考えることを大幅に減らすことができます。

 ちなみに、PICとはプログラムを書き込めるICのこと(小さいコンピュータみたいなもの)です(ArduinoRaspberry Piと違って電源部分やインターフェイス部分がない分、小型で安価)。

具体例

 電気ショックタイマーは次のような構成にしました。

f:id:donguri0912:20210805104642p:plain

電源部:小型化のためにボタン電池を用いました。データシートによれば液晶表示器が3Vで動くとのことだったので、3Vのボタン電池を使い、特に電源回路は挟まないことにしました。f:id:donguri0912:20210805105510p:plainf:id:donguri0912:20210805105621p:plainの記号はそれぞれ全てつなげるという意味で、ここを通して他の部分に電源からの電流が流れています。特にf:id:donguri0912:20210805105621p:plainはGND(グラウンド)といい、回路で0Vと数えるところです。(ちなみに、電流を流すには+と-の電圧が必要ですが、基本-の電圧はGNDで共通とします。例えば、PICの7,6,5,4番ピンから(に)液晶表示器に(から)電流が流れていますが、その電流は液晶表示器のGND(PICのVSS端子)から出てくるようになっています。)
アクチュエータ部液晶表示器秋月電子で「液晶表示器」と検索し、最も小型で安価なものを選びました。電気ショック回路のところが空欄になっていますが、電撃蚊取りラケットというものを分解して基板をそのまま使うことにしました。ただし、そのままだと痛すぎるので(というか人体に使うのは推奨されていないのでやる場合は自己責任でお願いします)、回路(参考サイト)を見てみて、強度の調整に関係ありそうなベース抵抗(トランジスタのベース電流が流れる抵抗)に半固定抵抗(回路図でRという素子)を挟んで調整してみると見事弱めることができました。(実験は自己責任でお願いします。)
コンピュータ部:データシートによればPICは1.8V~5.5Vで動くので、VDD(3V)をそのまま電源として使います。液晶表示器がSPI通信(SDI(SDO)、SCK、/CSという3本の信号線を使う)という通信でデータのやり取りを行うため、小型化のため8ピンタイプのPICの中で、SPI通信に対応していて最も安価なPIC12F1822を用いることにしました。なお、データシートによれば 液晶表示器はSPI通信用以外にRSという信号線が必要で、PICのピン数が少ないので、電源を入れた時しか使わないSPI通信用の/CSという信号線を電気ショックのON/OFF用の信号線として兼ねることにしました(結果電源を入れた直後一瞬だけ電気ショックが流れてしまいますが、それはご愛敬ということで)。(なお、8ピンの次に多いピン数のPICは14ピンで、急に大きくなってしまうため8ピンとしました。)
センサー部:PICの端子が2つしか余らなかったので、センサー部の押しボタンの数は2つにしました(本当は3つスイッチがあった方が操作性は良い)。ちなみに、センサー部にVDDが接続されていないように見えますが、PICのプルアップ抵抗という機能をONにすることで、PIC内部でVDDに接続されています。

※ここでは電気ショックタイマーの作り方の説明が目的ではないので、細かいことは割愛します。ちなみに、PICのデータシートはとても親切で、SPI通信がどのような通信であるかということも説明してくれます。英語が苦手な場合は日本語データシートもあります。

プログラミングについて

 PICの場合はC言語かPIC用のアセンブリ言語を用いてプログラミングを行います。
 アセンブリ言語は、文法がとても簡単なうえに、データシートにプログラミング例がたくさんあるため、他の言語を覚えた人にとってはとても覚えやすいと思います。

 しかし、完全な初学者がアセンブリ言語が理解できるかは分からないので、一旦アセンブリ言語に触れてみて意味の分からない抽象概念がたくさん出てきたら、分かりやすい本でC言語系(Javaもその一つ)を学ぶと良いでしょう。ちなみにこのとき、文法さえ分かっていればいいので、PIC用のC言語の本である必要はないと思います。

3.基板作り

 僕が良く使う基板にはユニバーサル基板感光基板の2種類があります。

 ユニバーサル基板はすでに部品の端子を通す穴が開いており、スズメッキ線とはんだ付けを行うことで、部品同士をつなげます。簡単に作れますが、ノイズが多かったり、自分の思うような配置は難しいのが特徴です。

 感光基板は自分の思うような配線(パターンという)の銅板を特殊な方法で描き、穴あけをして作ります。市販されている電子機器と同じプリント基板の一種です。パターン設計をしたり特殊な薬品を使わないといけませんが、ノイズに強い回路や両面基板も作れます。

 詳しくは別の記事で紹介します。

具体例

 この時は時間がなかったので(夏休みの自由研究として提出した)ユニバーサル基板を使いました。なお、電気ショック部の基板はそのまま使い、半固定抵抗やユニバーサル基板との接続は配線で行いました。液晶表示器やボタン等もケースに取り付けるため、配線で基板とつなぎました。

4.ケース加工

ただいま製作中です。