電子工作シミュレータ「123d circuits」を使ってみよう!
はじめに
前回は、テスターを使って温度センサや照度センサの電圧、周波数やデューティーの検出などを行いました。少し地味な作業でしたが、「テスターは電子工作の基本中の基本」なので、しっかりと解説しました。
今回からは、いよいよ実際のマイコンボード(Arduino)を使用した電子工作の解説に入りたいと思います。
Web上で電子工作をシミュレーション!「123d circuits」とは?
「電子工作」というと、こまごましたたくさんの電子部品をくっつけて、線を繋げて……というイメージを持っている人もたくさんいると思いますが、実は実際の部品やボードを使わなくてもできてしまいます。
「123d circuits」は、CADメーカーAutoDesk社が提供する簡易シミュレーションソフトです。前回で説明したような実体配線図の作成やWeb上で簡易的な動作確認(シミュレーション)ができます。
「123d circuits」による電子工作のデモ動画
シミュレーションといっても、実際にWeb上でLEDを点灯させたり、センサで値を検出したり、テスターで電圧を測定したりすることも可能です。
部品を組み立てる前に動作確認ができれば、無駄なパーツを買わなくて済みますね(本連載で使用するパーツは「電子工作キット」として販売しています))!
123d circuitsを使ってみよう!
123d circuitsを使用するには、アカウントを登録する必要があります。まずは、新規アカウントから作成していきましょう。
123d circuitsのWebサイトから、画面右上にある「Sign up for free」をクリックします。
「国」と「生年月日」を入力するダイアログが表示されるので、選択して「次へ」をクリックします。
続いて「メールアドレス」と「パスワード」を入力するダイアログが表示されるので、それぞれ入力して「アカウントを作成」をクリックします。
アカウントの登録が完了すると、以下の画面に切り替わります。
画面右上から「+New」-「New Electronics Lab」をクリックすると、ブレッドボードが表示されます。この画面にさまざまな部品を配置してシミュレーションを進めていきます。
「+Components」をクリックすると、さまざまな部品が表示されます。この中から使いたい部品を選択します。見当たらない場合は検索ボックスから探すこともできます。
今回使用する部品は、以下のとおりです。まずは、この5つの部品を使って動作させてみます。
「Components」の一覧から部品を探して、見つけたら画面上にドラッグ・アンド・ドロップしてください。部品を回転させるにはクリックして選択状態にした後、画面左上の「回転ボタン」をクリックします。
バッテリーの端子部やLEDの足にカーソルを合わせると(+)か(−)の極性がわかります。Positive(Anode)が(+)、Negative(Cathode)が(−)です。
部品を配線するには、ブレッドボードの穴や各パーツの端子をクリックしてマウスを動かすと、自動的にジャンパワイヤが表示されます。
その状態のまま1回クリックすると折り返し点が作れます。一度作成したワイヤは任意の地点でダブルクリックすると折り返し点が作成できます。
ワイヤの色を替えるには、ワイヤをクリックして選択すると画面右上に表示される「Breadboardwire」の「Color」設定を変更します。
抵抗をクリックして選択すると、画面右上に表示される「Resistor」の「resistance」で容量を「330Ω」に変更します。単位に注意してください。
それでは、下記の実体配線図に従って、配線してみましょう。皆さん自身でやってみてください。
配線して画面右上の「Start Simulation」をクリックするとLEDが点灯します。いかがですか。皆さんのお手元でもLEDが点灯したでしょうか。
ここで、下記のように配線図にテスター(MultiMeter)を組み込んでみましょう。回路上の電流の電圧を計測できます。大よそ1.7~1.9Vの数値が表示されると思います。
Arduino Unoの基礎知識
今度は、Arduino Unoでシミュレーションをしてみましょう。その前に、少しだけArduinoについて説明します。
Arduinoってなに?
Arduinoはイタリア生まれのマイコンボードです。この「マイコン」とは「MCU(Micro Controler Unit)」のことです。むき出しのボード基板上にMCUを搭載したものをマイコンボードと呼びます。「ワンチップマイコン」とも呼ばれます。
MCUはICチップ
MCU(Micro Controler Unit) は大まかに言うとCPU(演算)、RAM(メモリ機能)、ROM(ストレージ機能)、I/O(入出力)などの機能が1つに集約されたICチップです。MCUがなかった時代、「マイコン」はマイクロ・コンピューター(小さなコンピューター)のことを指していましたが、現在ではマイコンといえばMCUのことを指します。
Arduinoでできること
Arduinoを含むマイコンボードには「GPIO(General Purpose Input/Output:汎用入出力)」が搭載されています。GPIOはデジタル信号の入力/出力等を制御します。デジタル信号はセンサやスイッチからの入力(センサが検出したかどうか、スイッチが押されたかどうか)などを判断するための信号です。ArduinoではGPIOの電圧を5Vか0Vにすることで「HIGH(1)」か「 LOW(0)」をデジタル※注で判断します。
また、Arduinoはアナログ信号の入力も可能であるという特長があります(Raspberry Piではアナログ信号は入力できない。別途パーツが必要)。
※ デジタルとはデータ(情報)を「0」と「1」の「2つの値(2値)」で扱う方式のことです。正確には「離散的な値」と表現されます。要するにとびとびの値のことです。
Arduino Unoの基盤を見てみよう!
Arduino Unoの基盤上にはさまざまなチップやデジタル/アナログ入出力ピン、USBジャックなどがあります。数字の横に「〜」がついているものはアナログ出力に切り替えが可能です。
【補足】Arduino運営母体の分裂と利用する開発環境(IDE)について
ここ数年でArduinoの認知度は一気に上がりましたが、一方で2015年度にはArduinoの運営母体がArduino SRL(イタリア)とArduino LLC(米国)の2つに分裂する事態になりました(商標上の問題から米国Arduinoは日本ではGenuinoと記載)。
ところが、先日10月1日(現地時間)、米国で開催された「Maker Faire」にて、Arduinoが和解して1つになることがArduino LLCとArduino SRL双方の代表により発表されました。営利企業のArduino Holdingと非営利団体のArduino Foundationが設立されるようです。Arduino IDEについてはArduino Foundationでメンテナンスがされるようです。
現在は双方のArduino側で独自ボードの開発やIDEのアップデートを提供している状況です。今後IDEなどは細かい部分で差異が生じることも考えられるので、利用には注意が必要です。次回以降のArduinoを用いた電子工作ではArduino LLC(米国)のIDEを利用していきます。
Arduino Unoでシミュレーションしてみよう!
それでは、先ほどと同様にArduino UnoでLEDを点灯させてみましょう。画面右上の「Components」から「Arduino Uno R3」をドラッグ&ドロップして、先ほどのバッテリーと交換しましょう。
次に、実体配線図のとおりArduinoの13番ピン(右側)とGND(左側)をブレッドボードに接続します。デジタルマルチメーターも接続しましょう。
配線ができたら、画面右上の「Code Editor」をクリックし、Arduino言語のプログラム(「スケッチ」と呼ばれるC/C++ライクの言語)を作成します。と言っても既にテンプレートのスケッチが作成されているので、そのまま使用します。
ここで、簡単にスケッチを説明します。
- setup():Arduinoの電源を入れた時に1度だけ実行
- pinMode():ArduinoのI/Oピンの入出力設定をする
- loop():ループ処理。main実行したいプログラムを記述する
- delay():待ち時間を発生させる。単位はmsec(ミリ秒)
「Upload & Run」をクリックすると実行します。LEDが点滅します。画面右上の「Start Simulation」をクリックしても同様の動作をします。スケッチのdelayの値を変更すると、きちんとLEDの点灯時間にも反映されます。
今度は、プッシュボタン(タクトスイッチ)を追加してLEDを点灯させてみましょう。「Components」からプッシュボタンと抵抗(「resistance」を「10kΩ」に設定)を追加し、実体配線図のとおりに接続します。
接続が終わったら、「Code Editor」をクリックして、スケッチの中身を以下のように書き換えます。
プッシュボタンから読み込んだ値が「LOW」ならLEDが点灯します。実体配線図に10kΩの抵抗を追加したことで電圧を「プルアップ(引き上げ)」しています。実は、この抵抗を入れないとLEDが点灯しっぱなしになってしまいます(試しに実行してみてください)。
まずは、シミュレーションを実行してみましょう。「Start Simulation」をクリックしてプッシュボタンを長押しするとLEDが点灯します。
感覚的にはHIGHになったときに点灯する感じがしますが、実体配線図のようにデジタルマルチメーターを組み込んで電圧を見てみましょう。ボタンをプッシュする前にはHIGH(5V)の状態になっています。
ボタンをプッシュするとLOW(0V)になり、LEDには4.6Vの電圧がかかっています。
ちなみに、スケッチを以下のようにするとプルアップ抵抗を入れた場合と同じにできます(実際にはArduino側が持つ内部抵抗を「ON」することで可能になっています)。
実際に抵抗を抜いて、直接プッシュスイッチに2番ピンを接続して動作させると、プルアップが有効になっていることを確認できます。
はじめはプルアップについて少し混乱するかもしれませんが、シミュレーターやデジタルマルチメーターを使うことで徐々に理解できるようになると思います。
おわりに
いかがでしたか。123d circuitsを使用すると簡単にシミュレーションできるので、実際のボードや部品で工作する前に試すことができます。特にデジタルマルチメーターを複数同時に設置できる点はありがたいです。
さて、次回は実際のArduino(Uno互換ボード)に触れていきたいと思います。実機と平行して123d Circuitsも活用していきます。機会があれば、ぜひシミュレーターでいろいろと遊んでみてください。
本連載で紹介した電子工作をスグに試せる電子工作キットを販売しています。
記事内の画像や説明だけではもの足りない、という方は、本キットを通してお手元で確認してみてはいかがでしょうか。きっと、電子工作の楽しさをもっと実感できるはずです!
電子工作キットは、下記のWebサイトから購入できます!
商品サイトはこちら→→https://blooomin.stores.jp/