フューチャー技術ブログ

ソフトとハードの垣根を越えろ - IoTハードウェアの開発をソフト屋視点で解説します

はじめまして。筒井と申します。

簡単に自己紹介をさせていただくと、新卒でフューチャーに入社後にフューチャーグループのTrexEdgeへ出向しました。現在は右手に半田ごて、左手にHHKBでハード・ソフトにこだわらず仕事をしています。

TrexEdgeでは、「スマートビレッジ」という言葉をキーとして、テクノロジーを用いて地方の価値を最大化することを目指しています。

具体的には、地方における主産業である「農業」に目を向け、農業経営を支援するアプリ「Agrion」の運営をメインの事業としています。

https://www.agri-on.com/

今回は農業の話ではなく、また別の地方特有の課題を技術で解決しようとしている話をさせていただきます。

獣害問題

獣害問題と言っても都会の方にはあまり馴染みのない話かもしれません。イノシシやシカを見かけるのはジビエ料理店くらいでしょうか。

しかし農村部では、多くの農家が獣害に頭を悩ませており、その被害額は年間160億円以上との報告も出ています。
http://www.maff.go.jp/j/seisan/tyozyu/higai/h_zyokyo2/h29/181026.html

そのため獣害被害は農家にとってはとても大きな問題なのですが、この対処を行う猟友会員(ハンター)もまた、高齢化というまた別の問題に直面しています。

今回紹介する京都府の与謝野町という街においても、猟友会の平均年齢は毎年1歳ずつ高くなっている状況です。

害獣檻センサーについて

害獣の管理捕獲の方法には銃猟、網猟、わな猟とあるのですが、TrexEdgeではわな猟に用いる箱罠に取り付けるセンサー端末を開発しました。

与謝野町は海と山に囲まれた風光明媚な土地なのですが、イノシシやシカを捕らえる箱罠は、彼らが人里へ降りてこないよう山中に設置されています。

これがまた、四駆の軽トラじゃないと入っていけないような、すごいところに設置されています。

こんなすごいところに設置している訳ですから獣がかかっているかどうかの見回りもまた一苦労で、この負担を軽減するために、箱罠にセンサーを設置することになりました。
(ここはまだ舗装されているのでマシな方だったりします。)

センサー端末の開発方法

「ここはテックブログだぞ」という天の声が聞こえてきましたので、前置きはここまでにして、ここからは技術の話をします。

さて、「ハードウェアを作る」という目的を持ったとき、その実現方法は多種多様です。

ものすごくざっくりですが、IoTセンサー端末の構成要素は主に以下の四つになります。

  1. センサー
    箱罠の作動を検知するセンサー類です。今回は開閉センサー(マグネット式)を使いました。
  2. バッテリー
    電源が確保出来る場所ならば不要ですが、今回は山林部への設置なのでバッテリーが必要です。
  3. 基板
    無線のコントローラーや、制御用のマイコンを載せる基板です。
  4. 筐体
    上記を収めるケースですね。

これらの要素をそれぞれ揃えていく必要があるのですが、ここで「自分で作る」と「買ってくる」という選択肢が出てきます。
フルスクラッチで作るか、何らかのパッケージ等を導入するかといったところです。

非常に悩ましい二択ですが、仕様を満たせるかどうか、コストはどうかという観点で決めていきます。

センサー、バッテリー

センサーを自分で作ることはなかなか難しい話です。バッテリーは言わずもがなでございます。

レモン数個に銅板と亜鉛板でリチウムイオン電池並の性能が出ればとってもエコなのですが。

開閉センサーは、リードスイッチと永久磁石を買ってきて構成することも可能ではありますが、出来合いの開閉センサーが特別高いものでもなく、またこれらを組み立てる手間のほうが高コストとなるので、買ってきて済ませることにしました。

筐体

筐体を「自分で作る」ことにした場合、金型を起こす、3Dプリンタでプリントする、切削加工で作る…などまた様々な選択肢が現れます。

一方「買ってくる」ことにした場合は、筐体メーカーさんのプリメイドなケースを購入し、目的に合わせて追加工を施すことになります。

3Dプリンタは、意匠性の高い筐体を1点から気楽に作れることがメリットです。
一方で、イニシャルコストが低い代わりに多量生産するとそのコストメリットが薄れます。
また安価なFDM方式では寸法精度や強度を出すことが難しいという問題もあります。

金型は、ほぼ3Dプリンタの逆です。
イニシャルコストは非常に高くなりますが、量産時のコストはとても安くなります。

最後に買ってきて追加工をするパターンですが、出来合いのものを買うためケースの大きさ・見た目に自由は効かなくなりますが、ひとつあたりのコストも安く、お手軽です。

今回の害獣檻センサーでは、防水性が求められるために3Dプリンタでは製作が難しいこと、また現時点で金型への投資を回収するだけの製造数を予定していないことから、タカチ電機工業さんのケースを購入しました。

基板

さて、今回の主題となる基板についてすが、これもまた、買ってくるのか、自分で作るのかが選べます。あ、よく間違えている方がいるので書いておきますが、「基盤」では無く「基板」です。基板がCircuit Boardで、基盤はInfrastructureです。

基板を買ってくる場合は、Arduinoを始めとするマイコンボードに、Groveのような各種モジュールを組み合わせて使うことが考えられます。このパターンでは、初期投資を小さく抑えて、素早くプロトタイピング、機能の検証が行えるのが魅力です。

一方で、Arduinoは万人に使いやすいように作られているために、特定の目的で性能・コストを突き詰めようとした場合には小回りが利かなくなってきます。その最たるところのひとつが消費電力です。Arduinoは常時点灯する電源LEDやUSBシリアル変換ICなどが搭載されているため、消費電力は大きくなってしまっています。

今回の害獣檻センサーは見回りの負担軽減が目的ですので、バッテリー交換の頻度も極力抑えることが求められます。そのため、低消費電力化はひとつの大きな課題であり、基板を作ることに決めました。基板を自分で作るとなった場合には、プリント基板を製作するか、ユニバーサル基板に手半田で回路を作成するか、といった選択肢が現れます。

ユニバーサル基板のメリットは、基板をすぐに作り始められること、初期コストが小さく済むことです。プリント基板を製作するとなった場合には、(自前で製造設備を持っている方は別ですが)外部に基板を発注することになるため、製造のための時間がかかってしまいます。また回路にミスがあって修正をいれる場合にも、修正→再製造とさらに時間・お金がかかってしまいますが、その点ユニバーサル基板では配線の修正も容易です。ソフトウェアの開発に無理やり例えれば、「デバッグ・デプロイが容易なスクリプト言語」と言ったところでしょうか。

一方ユニバーサル基板のデメリットは、製造に技量が求められること、一点あたりの製造時間が長いこと、複数台の製造時に品質を安定させることが難しいことです。この方のようなユニバーサル基板の達人になれば、ワンオフで基板を作るにはとても良い選択肢なのですが、複数の基板を製造するには割に合わなくなってきます。

これに対してプリント基板は、「ビルドに時間はかかるが性能の良いコンパイル言語」という感じです。

基板のアートワーク(後述します)にこそ時間はかかりますが、一度デザインが出来てしまえばエンジニアの手を離れて製造が進んでいきます。最近は中国(主に深セン)のプリント基板製造メーカーさんが台頭しており、基板製造だけならば1,000円未満から始めることが出来るため、お金の面で言えばユニバーサル基板と対等になってきています。

長々と書いてきましたが、目的に応じた手段をまとめると以下のようになると思います。

Q. 目的はプロジェクトのコンセプト検証やデモで、何より早く検証を進めたい?

  • Yes
    Arduinoと各種モジュールを組み合わせたプロトタイプを作る。
    またはユニバーサル基板で製作する。
  • No, コンセプトの検証は済んでいて、更に小型化したい / コストを下げたいなど
    ユニバーサル基板 or プリント基板の製作

Q. 必要な台数はせいぜい数台で、今後仕様変更が入る可能性が大きい?

  • Yes
    ユニバーサル基板で製作する。
  • No, 仕様もほぼ固まっていて台数も必要
    プリント基板で製作する。

害獣檻センサーの開発では、すでにコンセプト検証は済んでおり、また数十台の製造が必要なことから、プリント基板を製造することに決定しました。

プリント基板の設計から製造まで

ここからは、害獣檻センサー製造時の具体的なプリント基板設計・製造の話をしていきます。

プリント基板を作るには、一般に下記のような手順で進めていきます。

  1. 仕様を定義する
  • 何はともあれ仕様を決めるところからです。これはソフトウェアもハードウェアも変わりませんね。
    業務要件を基板の仕様へブレークダウンしていきます。
  1. 回路を設計する
  • 仕様を満たすための回路を設計します。
    システム開発に例えるならば、詳細設計のフェーズにあたるかと思います。
  1. 部品を選定する
  • 設計した回路に用いる部品を選定します。
    同じ目的を満たすためにも、様々なメーカーから複数の電子部品が出ています。
    システム開発に例えるならば、技術スタックを選定するフェーズにあたるかと思います。
  1. アートワークを描く
  • 3で選定した部品をプリント基板上に配置し、
    配線を描いて2の回路を作り上げていく作業です。
    システム開発に例えるならば、コーディングにあたるかと思います。
  1. 基板を製造する
  • 4で描いたアートワークを基にプリント基板を製造します。
  1. 部品を実装する
  • 5で出来上がったプリント基板に、3で選定した部品を実装していきます。
    5と6はシステム開発に例えるのが難しいのですが・・・強いて言うならコンパイル・ビルドでしょうか。

これらについてすべて紹介してしまうと指輪物語並の大作になってしまうため、
この投稿では4のアートワークと5の基板製造に絞って詳しく紹介させていただきます。

アートワークを描く

基板のアートワークを描くには、専用の基板CADと呼ばれるソフトウェアが必要です。
有名どころではEagleOrCADなどがあります。

今回は、オープンソースのKiCADを使用しました。
小規模なプリント基板の製作には十分な機能を備えていますし、Windows、macOS、Linuxの全てで動作するのも嬉しいところです。

アートワークを描き始めるにあたって、なんらかの制約条件が無いと効率的に進めていくのは難しいでしょう。
最も一般的な制約は、基板の大きさ・形状かと思います。
既に筐体の大きさが定められていて、基板形状もそれに縛られるパターンです。
特に制約が無い場合は、はじめに基板の大きさを決めてしまうのがおすすめです。
プリント基板の製造コストはほぼ大きさで決まるため、小さいに越したことはありません。

これは害獣檻センサーのものではありませんがKiCADでのアートワーク中のキャプチャです。

アートワーク作業は、端的に言うと「終わりのないパズル」です。
大電流が流れる配線は太く短くなど様々な考慮をしつつ、部品と配線の配置を描いては消し、描いては消し…を繰り返していきます。

鼻歌交じりに部品を配置し、配線を進めていくと、「基板の中に収まらない~~!!!」ということも多々生じます。
お茶を飲んで一息ついてから、部品の配置を改善して配線をやり直します。
終わりのないパズルは、非常に泥臭い作業です。

基板の中に収めるだけでなく、以下のような点を心に留めながらアートワークを描いていく必要があります。

  • 電源ラインは太く短く
  • パスコンはICの近くに配置する
  • コネクタ類はケースに収めたときに作業性が良いように配置する
  • 手半田で実装する場合はコテ先を取り回しやすいように部品を配置する
  • 電解コンデンサは発熱する部品から離して配置する
  • GNDループが出来ないように
  • ベタGNDがアンテナ状にならないように
  • etc…

また、一通り配線を終えた後にも、「ここはもう少しスマートに配線出来そうだな…」とか、「この部品配置は性能が悪くなりそうだな…」という点が出てきます。
これはソフトウェアで言うところのリファクタリングに近い作業になります。
全くやらないのも問題ですが、気を付けないと沼にはまります。
(本職の基板屋さんは良い方法論をお持ちかもしれません。教えてほしいです。)

手戻り

  1. 回路を設計する
  2. 部品を選定する
  3. アートワークを描く

基板づくりの手順を上記のように順序付けて紹介していましたが、私の場合は4から2へ、3から2へと何度か戻っていました。

アートワークを描く中でどうしても部品が基板に収まらないので一回り小さい部品に変更する、部品選定と見積もりを進めていたら部品コストが思ったよりも高くなったので、部品の削減・共通化のために回路を修正する、
といったことを行っていました。
他にもマイコンを使った回路の場合、配線をスマートにするために使用するピンを変更することもあります。

それぞれの手順で担当者が違う場合には大変なことかもしれませんが、私の場合は回路設計から部品調達までを一人で担当していたので、
はじめから手戻り覚悟で、ある程度「えいや」で回路を決めたりしていました。

今回の害獣檻センサーの製造で最も大変だった手戻りは、1608と呼ばれるサイズのMLCC(チップ積層セラミックコンデンサ)が世界的な品薄で手に入らず、
すべて1005と呼ばれるサイズのものに変更したことです。
そこに関わる配線はすべて引き直しです・・・。
※ 1005のMLCCも品薄ではあるのですが、P板.comさんに実装をお願いする場合は無料でP板.comさんの標準在庫品を使ってもらえます。

基板製造・発注

アートワークが完成したら、いよいよ発注です。

感光基板を使えば自前で基板を作ることも可能ですが、
設備や薬品が必要で大変なので今回は外注しました。

先述しましたが、最近はElecrowさんやPCBgogoさんなど、中国のプリント基板製造メーカーさんが台頭しています。
こういったところに頼めば格安で基板の製造が可能ですが、
今回の部品の自動実装まで頼みたかったため、P板.comさんを利用しました。

自動実装を利用する理由は、選定した部品の中にとても手半田ができそうに無い部品があり、
機械での実装・半田をせざるを得なかったことと、数十台分の半田付けを手作業で行うにはそれなりの時間がかかってしまうためです。
(個人差があるかもしれませんが、私は長時間半田付けをしていると目がショボショボになります)

基板を発注する前には、必ずアートワークのダブルチェックを行いましょう。
基板のサイズと実際の部品や筐体のサイズが合わない、なんてことになったら大惨事です。

私は普段は、完成したアートワークを原寸大で紙に印刷し、実際に部品をあてがってみて大きさに問題が無いかなどを確認しています。
基板CADにもDRC(Design Rule Check)やERC(Electrical Rule Check)というLinterのような機能がついていますが、これに頼り切らずきちんと自分の目で確認します。

完成!

さあ、苦労して設計した基板が手元に届いたときの感動はひとしおです。
プリント基板とユニバーサル基板の比較を長々と書いたりもしましたが、メーカーさんに頼んで作ってもらったプリント基板は何よりも美しく、「製品」として見栄えするものになります。
ケースの蓋を閉めたら、見えなくなってしまいますが…。

※ 一部お見せできないシリアルなどにボカシを入れています。

この基板が、檻の状態を検知する各種センサーの情報を処理し、LoRaWANという無線通信を経由してクラウドへデータを送信します。
試算ではありますが、バッテリー(単1乾電池)は1年ほどは持つ予定のため、猟友会の方の見回りにかかる負担を大きく軽減できるはずです。

完成した害獣檻センサーの設置とこぼれ話

以上のような苦労を経て完成した害獣檻センサーは、現在与謝野町でイノシシ・シカの捕獲を検知しています。

(設置の様子を京都新聞さんなどに取り上げていただきました。写真右の”業者”が私です。)

これは設置の後日談になるのですが、イノシシ・シカを捕獲するための罠に、まれにクマがかかることがあります。
そのクマに害獣檻センサーを壊されてしまいました。

害獣檻センサーは、ケース内蔵の人感センサーおよび振動センサーと、ケースからケーブルで引き伸ばした開閉センサーからなっているのですが、このケーブルをクマに引きちぎられてしまいました。

外に出ているケーブルが痛みやすいであろうことは認識していてコルゲートチューブで保護していたのですが、まさかクマに切られてしまうとは・・・恐ろしいパワーです。

こうしたこともあり現在は、壊れやすい開閉センサーを使わず、人感センサーと振動センサーのみの値で捕獲の検知が出来ないかどうか、機械学習の利用も含めてバージョンアップの検討を進めています。

おわりに

このテックブログを見ている方のほとんどはソフトウェアエンジニアの方と思い、ところどころソフトウェア開発に例えて解説をしてみました。

その例え話を考える中で自分自身、こと開発手法という点においてはハード・ソフトの垣根を越えて活かせる知見が数多くあるんじゃないか?と思いました。
それぞれの分野のエンジニア同士が知見を共有する機会があれば面白いかもしれません。

プリント基板づくりはまだまだ奥が深い話なのですが、「脱ブレッドボード!まずは簡単に作ってみよう」というだけなら、さほどコストもかかりません。
皆さんにも挑戦していただけたら幸いです。