ソフトウェアエンジニアのためのIoT自由研究(第2回)・・・HW編その1

0. はじめに

三菱総研DCSデジタル企画推進部の田口です。第1回から半年以上が経ってしまい、大変申し訳ありませんでした。この連載でご紹介するものは、我が家ではとっくの昔に安定運用に入っており、連載が進まないのはひとえに私の不徳の致すところでございます。

本連載、「ソフトウェアエンジニアのためのIoT自由研究」では、多機能センサーを接続した小型デバイスを開発し、収集した情報を活用して実生活で役立てる、を目標に、ハードウェアとソフトウェアを開発する過程をわかりやすく説明いたします。
具体的には、高機能マイコンであるESP32にBME280という温湿度気圧センサーを接続したデバイスを自宅に複数設置して定期的にセンシングし、PC上のWebブラウザで計測結果をグラフ表示したり、AmazonのスマートスピーカーEchoから最新の計測値を確認できるようにします。私の自宅は湿気の多い谷戸にあるため、これらの計測値を常にチェックし、除湿機やエアコンを適切に動作させるようにしています。

前回の第1回スマートホーム準備編では、開発の全体像とともにESP32を使ったデバイスを開発することをご説明しました。

さて、第2回目はHW編ということで、マイ・オリジナルデバイスを作成するところから開始したいと思います。世の中には便利で素敵でお安いデバイスも販売されているので、あえて手作りする必要もないのですが、単純にとても楽しい作業ですから、ぜひチャレンジしてみてください。私みたいにHWの特別な専門教育を受けていない人間でも、とりあえず趣味の電子工作の範囲でやる分には、まったく問題ありません。
ソフトウェアエンジニアとしては早くプログラミングに取り掛かりたいところなのですが、IoTなのでハードがなければ始まりません。未知の分野ですが頑張っていきましょう!

    目次
  1. 電子工作の流れ
  2. 必要な道具の紹介
  3. おわりに

1. 電子工作の流れ

さて、オリジナルデバイスを作成するためには、何をすればいいのでしょう。どんなイメージをお持ちですか?
もし、Lチカ(「えるちか」と読みます)くらいは普通にできるよ!という方であれば、基本的なことは押さえていらっしゃるという事でしょうから、いわゆるマイコン(今回ですとESP32)を使った回路製作におもむろに突入してもよろしいかと思います。もし「えるちか?何それ、おいしいの?」という方は、まずは、ArduinoやラズパイにLED(発光ダイオード)を接続して光らせる(=Lチカ)実験からスタートしてください。

具体的なやり方や細かい話は、すでに世の中に親切なお勉強サイトがごまんとありますのでそこに譲るとして、ここではイメージだけを記したいと思います。
手順としましては、

  1. どんな回路にするか考える。(設計)
  2. とりあえずブレッドボードなどで回路を組んで、動作を確認してみる。
  3. ユニバーサル基盤などで回路を実装する際の物理的な設計を考える。(物理設計)
  4. 実装。(はんだ付けなど)

という流れになります。

1.1 設計はキモです

実装作業は、慣れてしまえばすぐ終わってしまいますが、もっとも時間がかかって、かつ重要なのは、最初の設計の部分です。このフェーズで、大まかなコンセプト、どういう機能が欲しいか、重要部材については具体的にどの電子部品を前提に設計するかを決めて、各電子部品の接続方法について考えます。
この時、回路図設計ソフトを使うと効率的に設計作業が進みます。ソフトによっては、プリント基板作成の発注までできてしまいます。フリーで有名なのはKiCadとEAGLE(現在はAutodesk社に買収されています)で、書籍も出版されています。また昨今の、ファブレス型製造業の起業ブームや、テレワーク進展に伴って、SaaS型の設計ツールなども出てきており、けっこう熱い状況のようです。
ちなみに私はAutodesk社のFusion360という3D CADソフトを非商用の無償ライセンスで使用しております。Fusion360は統合3D CADソフトですが、電子回路設計については買収したEAGLEがベースとなっております。無償ライセンスですので機能制限はありますが、少なくとも私の用途であれば問題が無いことと、部品ライブラリが世界中に蓄積されていること、情報が豊富、などの理由から選択しました。ちなみに私はDIYでもFusion360を設計ソフトとして使っておりますが、3D立体モデルから2D設計図面が出力できたり、便利で楽しいソフトです。(もう少し安価な個人向け有償ライセンスがあればうれしいのですが)

1.2 動作確認で練り上げる

設計が出来たら実際に動作確認をします。この段階はまだ試行錯誤や実験的な作業をすることもありますから、簡単に回路を組みなおせるブレッドボードというものを利用します。

[ブレッドボード]

この写真の左側の穴だらけのボードがブレッドボードというもので、ここに電子部品や配線などを刺すことによって、簡易な回路を作成することが出来ます。抜き差しだけで回路の変更が可能ですので、実験には最適です。

ブレッドボードによる実験で正常動作が確認出来たら、はんだ付けをして実装していくための設計をします。オリジナルのプリント基板などを起こすことも最近は比較的簡単にできるようになってきましたが、個人が気軽に回路を作成する場合は、やはりほとんどの場合ユニバーサル基盤を使用することになるでしょう。

[ユニバーサル基盤(表)]

[ユニバーサル基盤(裏)]

1.3 本実装のための設計

この設計フェーズでは、どのように部品を配置し、どのように配線するかを設計します。ちなみにここにあげているユニバーサル基盤(茶色の穴だらけの板)の写真は、私がESP32の動作テストをするために作成した、テストベッド基盤になります。本番用はもっとコンパクトに作りこんでいく必要があります。当初はブレッドボードを使用してテストしていたのですが、接続端子の接触が不安定で、マイコンの意図しない再起動が頻発したため、はんだ付けをした回路を作成した次第です。
裏の配線を見ていただくとわかると思いますが、どのように配線をするかは、ほとんどパズルの世界です。なるべく効率的に、かつ作業に失敗しにくいような配線を考えて部品を配置していくのは、けっこう難しいものです。運用用途の基盤になると、さらにコンパクトに、また実用上必要な部品配置も考慮する必要があるので(動作をあらわすLEDランプやオンオフスイッチが変なところにあるとダメですよね?)、さらに大変です。
オリジナルデバイスの場合、基盤にとどまらず、それを収めるケースも好みのものを選択することが出来ますので、ぜひ見た目も満足できるようなものを考えてみてください。

1.4 実装!(詳細は次の章で)

物理的な設計が終わったらいよいよ実装に進むわけですが、いろいろと道具が必要となってきます。「これは仕事のための勉強なんだ!」とか言い訳し言いながら、買いそろえていきましょう。

2. 必要な道具の紹介

次に、実装のために必要な道具類をご紹介しましょう。まずは電子部品を基板に実装するためのはんだごて類です。

[はんだごてなど]

写真左から、はんだごてスタンド、はんだごて、はんだ、はんだ吸取線、フラックス、絶縁テープ(ポリイミドテープ)、ルーペとなります。はんだ吸取線は、はんだ付けに失敗した際に、はんだを吸い取るために使用します。フラックスという液体はなくてもなんとかなりますが、特に細かいはんだ付けが必要な場合は、はんだ付けを容易にしてくれます。絶縁テープは作業時に部品を固定しておくなどの用途で利用します。ルーペについては、大きい電子部品をはんだ付けする場合は無くとも問題ありませんが、表面実装部品(チップ部品)を使用する場合は必須と言っていいでしょう。表面実装部品については、後でご紹介いたします。

[各種ハンドツール]

ハンドツールもいくつか必要となります。左から、クリッププライヤー、精密圧着ペンチ、ワイヤーストリッパー、ニッパー、精密ペンチ、ピンセット(横置きしているもの)です。
ソフトウェアエンジニアであっても、LANケーブルを自作する方はいらっしゃると思いますが、電子工作ではコネクタ類もすべて自作します。クリッププライヤーは、接続したコネクタを外す際に使用します。使う頻度は少ないですが、どうしても必要な場面も出てきます。圧着ペンチやワイヤーストリッパーも、コネクタの自作などで必須です。ニッパーやペンチは説明の必要はありませんね。

[デジタルマルチメーター]

次はデジタルマルチメーターです。いわゆるテスターですね。私が子供のころ学校の図工の時間で使ったのはアナログテスターでしたが、今はデジタルです。
一番使うのは導通試験でしょうか。電子部品を基板に実装していくわけですが、はんだ付けがしっかりできているか確認する際に、導通試験が必要です。また、電子部品は過大な電流、電圧をかけてしまうと壊れてしまいますから、メーターで測って問題が無いことを確認することも必要です。(電源回路を間違って組んでしまって、一瞬でラズパイの電源部が燃えたこともありました。。)

[電子部品たち]

最後に表面実装部品についてご紹介しましょう。写真にはいくつかの部品が写っていますが、上の3つはおそらく多くの人が想像するサイズの電子部品で、左から発光ダイオード(LED)、抵抗器、三端子レギュレータ(定電圧を出力する)です。これらでも十分小さいのですが、さらに小さい表面実装部品(SMD)というものがあり、下の3つは、それぞれ上の3つに対応する表面実装部品です。LEDと抵抗器については、小さな四角いもの1つ1つが部品になります。サイズ的には1.6mm x 0.8mmであり、ここまで超精密になってきますと、ルーペなしの作業は不可能です。
私も最初のころは大きいサイズの電子部品を使って電子工作していたのですが、小型デバイスを作るためにはSMDが必要となってきますので、今回はSMDを採用します。

3. おわりに

今回はHW編その1ということで、電子工作一般についてお話しました。Lチカもやったことないよ!という方の場合、先を急がず、とりあえずE=RI(オームの法則)から勉強しなおしてみましょう。(新田恵利E=RI、で覚えました)
えっ、そんなところから!と絶望的な気持ちになるかもしれませんが、あるていど基本の「き」を勉強した後は、あまり神経質にならずに、親切な人がネットに公開してくれている回路図を参考にしたりして、大体で進めていっても何とかなります。あまりにも大間違いすぎると回路が燃えて火事になってしまいかねませんので、そこは注意が必要ですが、あまり時間をかけすぎても、わかるものはわかる、わからないものはわからないですから、大きな気持ちで、楽しんで取り組んでいいきましょう。

次回の連載では、ESP32の回路作成について紹介してまいりますので、引き続きよろしくお願いいたします。