ここでは、コンピュータを活用していろいろな事にチャレンジしていきたいが、何から始めて良いか分からない人の為におすすめのモデルケースをご紹介します。環境を整えてデジタルによるモノづくりを楽しんで下さい!
コンピュータの時代、何をどのように勉強していくか?
Fabshopではパーソナル・ファブリケーション(個人でのものづくり)を応援しています。DIYでもマイコンやコンピュータを活用した次世代のものづくりはこれからの時代に必要な趣味になってくるでしょう。今やコンピュータは当たり前の世界になってきました。コンピュータと言うとパソコンを思い浮かべる人が多いと思いますが、今では家電品や日用品などあらゆるところにコンピュータが搭載されています。
インターネットに接続されるという事も当たり前になってきました。スマートフォンの登場によりどこでも手軽にインターネットにアクセスし、情報を得ることができます。ソフトウェアや音楽、本もインターネットからダウンロードして取得するようになっています。もっと言えばダウンロードすらせずにそのままインターネット上で利用する「クラウド」に移行してきています。
そして、コンピュータが様々な「モノ」に搭載されるようになってきました。これをIoT(Internet of Things)といい、今までは人がインターネットを活用する「ヒトのインターネット」だけでしたが、更にモノがインターネットを活用する「モノのインターネット」の時代がやってきました。
今後はIoTで私たちの暮らしが変わっていきます。
現在IoTを自作するための部品やツールが沢山リリースされています。これらの知識を増やしていく事で自分だけのオリジナルなIoTグッズを作ることも夢ではありません。今回はその環境づくりをご紹介します。
IoT時代の学習に最低限必要なもの
これからマイコンやIoTを学習していく際に必要なものを紹介していきますが、WindowsやMacのようにいわゆる「パソコン」は一番最初に必要なものになります。すでにこのサイトを見ている方なら皆さんパソコンは持っているのではないでしょうか?インターネットを検索したり、OSイメージのダウンロードをしたり、基本として必要です。
開発用の第2のコンピュータは「Linux系」で。
開発用に第2のコンピュータが必要です。ウェブの検索や、この第2のコンピュータのメンテナンス用にパソコンを利用して、プログラミングやIoTマイコン開発はLinux系のコンピュータで行います。最近ではWindows 10でUbuntuが動くようになりましたが(詳しくはこちらから)もう少しいろいろな実験ができるハードウェアを持っていると便利です。
新品や中古、または自分で組み立てたコンピュータを購入してきて、インターネット上からLinuxOSをダウンロードしてインストールしても良いのですが、もっと手軽に、しかも開発向きで価格を抑えて利用できるコンピュータがあります。それがRaspberry Pi やJetson nanoのような開発キットです。
Raspberry Pi
手のひらサイズのコンピュータで、microSDにLinux系OS「Raspbian」を入れて起動します。HDMIでモニタ出力でき、GPIOポートを搭載していてジャンパーピンで配線して電子回路や他のマイコンなどと接続して開発ができます。最も低価格なGUIコンピュータです。詳しくは当サイトの「RaspberryPiコーナー」をご覧ください。
NVIDIA Jetson nano
GPUでお馴染みのNVIDIAからリリースされた開発キット。Linux系OS「Ubuntu」が動作し、RaspberryPi同様にmicroSDにOSをインストールして起動できます。RaspberryPiとの大きな違いはGPUを搭載しているため、AIや決まった処理を繰り返し行うような動作をさせる場合に向いています。その分価格は高め。詳しくはJetsonの紹介記事をご覧ください。
Raspberry Pi もJetson nanoどちらもキーボードとマウスを繋いでGUIで操作が可能です。まるでパソコンを使っているのと変わらない操作性で、かつLinuxの基本性能を搭載しているため、プログラミングツールなどはある程度最初にそろっています。
どちらもGPIOと呼ばれるピンを搭載し、ブレットボードなどに配線すると他の回路に接続してプログラムを動かせます。パソコンにLinuxをインストールするよりもはるかに簡単に用意出来ます。ボードがむき出しで、このまま使ってもよいですが、ケースなども別途販売されています。
IoTの最終系は小さなマイコン!
パソコンと、Linuxが動作する第二のコンピュータもそろえたところで、プログラミングしたり、電子部品やモーターなどのアクチュエータを用意して開発がすすめられます。ここまででも十分開発はできますが、最終的にこれらを1つの箱に入れて使えるようにするにはちょっとコストがかかりすぎです。もちろんAIなどの高度な処理の場合はそのままJetson nanoなどを完成品に組み込んだりしますが、もう少し簡単に作れるIoT製品などではコストを抑えるためにもより低価格なモジュールにその仕事をまかせます。
そこで、第二のコンピュータはあくまで開発段階までで、ここから先はマイコンに任せるべきです。マイコンはそれ自体でプログラムのコードを書いたり、GUI画面を出したりすることはできませんが、先ほどのRaspberry PiやJetsonなどで開発したプログラムをマイコンに書き込んで動作させることで、余計な処理を行わず、それ専用に安定して動作させることができます。
良く使われるIoTマイコンとして以下のものがあります。
Arduino UNO
C言語風のArduino言語によってプログラムし、そのプログラムを実行可能形式にしてArduino本体に書き込むことで入出力ポートに接続された周辺機器を動かすことができます。ブレットボードへの配線もしやすく、拡張ボードなども沢山発売されています。
ESP32
WiFiやBluetoothなどの標準で搭載したマイコン。実勢価格も700円前後と非常に安く、ブレットボードに刺して開発が可能。Arduinoより低価格で開発に必要な回路も搭載されていて簡単にIoTの開発ができるので人気を集めています。
例えば、人感センサーなどを搭載して人が通ったらスマートフォンなどに知らせてくれるようなものを作りたいと思った時、Raspberry PiやJetsonなどのGPIOに人感センサを繋いで作ることもできます。でもこれに第二のコンピュータを使ってしまったらまた購入するようです。しかもプログラムの練習などで他のいらないアプリケーションも入っていたり、余計なサービスが起動したりしています。であれば、このような仕事はESP32などの低価格なマイコンに任せれば格安で、しかも余計な処理をせずに少ない電力で作ることが可能です。
上記2つのマイコンは、マイコンの周辺回路が搭載されていて開発がしやすいようになっています。このほかにもマイコンは沢山ありますが、入門として使いやすい2つの開発キットが搭載されたマイコンをここでは紹介しました。Fabshop内にもこれらをより詳しく紹介したサイトがありますので、そちらもあわせてご覧ください。
もっと開発をすすめていくと、ArduinoならAtmelというマイコンが搭載されているので、開発キットになっていないマイコン部分と最低限必要な部品だけを使って回路を構成して大きさも価格も無駄のない開発をしていきます。
最終的にはモーターや電子回路を動かします。
最終的にはLEDランプやカメラ、モーター、センサその他電子回路などを動かすわけです。
その際には、電子部品や各種センサーなどを搭載した回路をブレットボードで構築して試し、最終的には基板にしたりして完成を目指すわけです。
IoTの最低限の開発環境をまとめると
パソコンがあることが大前提で、それは情報検索や開発用の第2のコンピュータをメンテナンスするために使います。開発用のコンピュータでは最終的な完成品を作るためにマイコンに搭載するプログラムを作ったりします。パソコンから直接プログラムを送ることもできるのですが、プログラミング環境を変えたりする場合はLinux系OSの方が優れています。また電子回路などのハードを別途作ったりする場合のテストや試作品の開発などもGPIOを搭載してる第二のコンピュータはブレットボードなどに直接ジャンプワイヤーなどで敗戦できるためとても便利です。
この開発環境のそろえ方はあくまで1つの例ですが、この開発の良いところは低価格で同時に様々なマイコンが学べて、かつ安全に開発ができるというところです。
例えば上の図にある真ん中の開発環境を抜いて、パソコンでそのまま開発することを考えてみましょう。慣れている人ならあまりミスがないかもしれませんが、パソコンで開発環境を整える場合、パソコン自体の環境設定をいろいろいじることがあります。その際に設定を間違えてしまったり、または作ったプログラムにバグがあってコンピュータ上で変な動作を起こしてしまうと、パソコンのシステムの再インストールが必要になったりすることも考えられます。Raspberry PiやJetson nanoなどをその開発環境においておけば万が一それらコンピュータのシステムが壊れてもパソコンで簡単にmicroSDの内容をセットアップしなおせます。
IoTの開発をまず始めるにはこのような理由からも今回のような構成をおすすめします。これらを使っているうちに自分に最適な環境も見つかってくることでしょう。