気の向くままに辿るIT/ICT
webzoit.netウェブサイトホームページ
IoT・電子工作

Autodesk CircuitsでArduinoをシミュレーション

ウェブ造ホーム前へ次へ
サイト内検索
カスタム検索
Arduinoって?

Autodesk CircuitsでArduinoをシミュレーション

Autodesk CircuitsでArduinoをシミュレーション

2017/03/03

 Autodesk Circuitsは、オープンソースのオンライン・ウェブ(ブラウザ)で利用できる回路設計ソフトウェアの1つです。

 同じく回路設計ソフトウェアには、Fritzing(ウェブ版・ダウンロード版)もあります。

 何れも電子工作をより手軽に身近にしたハンダ付け不要の(ソルダレス)ブレッドボードにも対応しており、ソフトウェアやウェブ上でブレッドボードに部品を並べ、つなげれば、回路図とプリント基板図も(どれか1つ作れば、他も)作成してくれるというスグレモノです。(必要なら、それを基に回路組み込み済みプリント基板を購入することもできるようになっています。)

 が、Autodesk Circuitsの方が優れている点を挙げるとすれば、最大のポイントは、シミュレーションができることでしょう。

 必要パーツ購入前でも実機検証前でも、好きな回路を組んでシミュレーションすることができるので電子工作やIoTに興味はあるけど。。。という向きにもうれしく有用なわけですが、例えば、さらに実機不要でArduinoのシミュレーションもできてしまうのでArduino初心者とか、Arduinoに興味はあるけど、できるかどうか不安でしり込みしているという向きにもうってつけな機能と言えます。

 (ちなみにAutodesk Circuitsでは、Arduinoの実機は使えませんが、シミュレーションができることが有用なのであって実機には無償のArduino IDEを使えば済みます。)

Autodesk Circuitsの利用

 Autodesk Circuitsは、[Sign up for free]や[Sign up]をクリックし、メールアドレスとパスワード、生年月日をオンライン登録するだけで利用できます。

 登録後は、Autodesk Circuitsのページ上の[Sign In]をクリック、登録済みメールアドレスとパスワードでログイン、少し待つとホームとなる画面が表示されます。

Autodesk Circuitsのブレッドボード図における操作方法

 (検証時)画面右上にある[+ New]をクリックすると右側に[New Electronics Lab](新しいブレッドボード図を作成)、[New PCB Design](新しい回路図を作成)、[New PCB Component](新しいプリント基板コンポーネントを作成)、[New Circuitscribe](新たに基板を発注)が表示されるので必要に応じたボタンをクリック、しばらくすると画面が表示されます。

 ここで[+ New]、[New Electronics Lab](新しいブレッドボード図を作成)をクリックするとブレッドボードのある画面が表示されます。

 直感的に操作できるように工夫されているので適当に触っている内にわかることもあるでしょうし、ホーム画面などから文書や動画(YouTubeから探しても可)を見つけて眺めれば、仮に音声が外国語でも理解できるでしょうが、敢えて書いてみると下記のような感じです。

 (検証時)画面左上に左から[回転]、[ゴミ箱]、[全体像を画面に合わせる]、[1つ前の状態に戻す/やり直し]、[1つ先の状態に進める/やり直しのやり直し]といった意味合いのアイコンが、画面右上には、[Code Editor](コード編集)、[+ Components](コンポーネント)、[Start Simulation](シミュレーション開始)というボタンがあります。

 [+ Components]をクリックすると画面下部に[Search]欄とパーツのアイコン(設定でリストなどに変更可)が表示され、[Search]欄に適切なキーワードを指定、マッチする文字数に達すると該当するパーツが表示され、ドラッグ&ドロップするとその位置にパーツが置かれます。(そこにArduinoもあります。ブレッドボード上以外にも配置可能。)

 [Code Editor]は、[+ Components]からArduinoを追加した場合にのみ有効でクリックするとデフォルトでは、Lチカ(LED点滅)コードが書かれた編集用画面が表示されます。

 なお、[+ Components]や[Code Editor]クリックによる当該表示領域は、メイン表示領域の境界線あたりをドラッグすることで拡大/縮小することもできます。

 ブレッドボード上に置いたパーツをクリックし、[回転]用アイコンをクリック(またはキーボードの[r]キーを押下)すると約30度ずつ右回転します。

 ブレッドボード上に置いたパーツをクリックし、[ゴミ箱]用アイコンをクリック(またはキーボードの[del]キーを押下)すると表示領域からパーツが削除されます。(ジャンパワイヤの場合、他のパーツとつながっていると一緒に削除される模様。)

 画面上に表示しきれなくなった場合、[全体像を画面に合わせる]旨のアイコンをクリックすると、全体像を良きサイズに調整してくれます。(尤もマウスホイールがあれば、マウスで拡大縮小自由自在。)

 [1つ前の状態に戻す/やり直し]の旨のボタンや[1つ先の状態に進める/やり直しのやり直し]の旨のボタンをクリックすると操作をやり直して1つ前の状態に戻すことができます。

 ジャンパワイヤは、[+ Components]内にあるわけではなく、ブレッドボード上や各種パーツの接点をクリック&ドラッグ&クリックで結ぶことで表示され、未選択状態ならクリックで選択状態になり、移動可能、線上の任意の位置でダブルクリックすると折り返しポイント?を好きなだけ作成でき、目的のジャンパワイヤを選択した状態で当該ポイントをクリック&ドラッグ&クリックするとジャンパワイヤのレイアウトを柔軟に調整することができます。

 各パーツの属性(プロパティ)は、ブレッドボード図編集画面かつ、シミュレーションを実行してない状態でパーツをクリックして選択状態にするとポップアップ表示され、例えば、ジャンパワイヤなら色を、抵抗なら抵抗値を変更することができます。

 そうこうしている間に同時に回路図やプリント基板図もできているというのが、(必要なら発注もできてしまうのが、)またすごい。

ブレッドボードの構造

 ソルダレス(はんだ付け不要の)ブレッドボード(本来の意味は『パン生地をこねる為の台』で最初に電子工作した人がこれを利用したことに由来するらしい)し、単にブレッドボードと呼ばれることもありますが、実際には、ハンダ付けが必要なものとそうでないものがあるものの、単にブレッドボードと言えば、多くの場合、ソルダレスブレッドボードと認識されることが多いようです。

 従前、電子工作においては、電極にリード線を巻きつける方法などもありますが、そうでなければ、はんだ付けするのが当然の状況の中、ブレッドボードの登場は、電子工作の垣根を下げると同時に、既存ユーザーの間でも検証、試作時に手間なく何度でもやり直せるメリットは、その前後を知る人たちの中では特に大きな旋風を巻き起こしたことでしょう。

 試作に限らず、特に趣味の範囲ならブレッドボード上の回路をそのまま常用するケースも少なくないようです。

 仮想とはいえ、シミュレーションできるAutodesk Circuitsに至っては尚のこと便利で簡単。

 ブレッドボードには、一定の規則で電気的につながる一連の組み合わせからなる多くの穴が空いており、400穴、800穴、1600穴前後の他、ミニサイズもあります。

 ミニサイズ以外のブレッドボードは、大きく2列から成る外側の両端と内側の2つの領域の独立した4ブロックに分かれているものが一般的な模様で、外側は1列ずつ、それぞれが、電気的につながっており、内側は、1ブロックごとでかつ、これと垂直方向の各列が電気的につながっています。

 電気的につながるという表現はわかりにくいですが、入力電圧のピンを挿し、そこと電気的につながった列の穴に複数のパーツのリード線を挿し込んだ時、これらパーツを電気的につながった列の穴に挿せば、その間には、電流の通り道となりますが、そうでないブロックはもちろんのこと、同じブロック内であっても違う列の穴に挿してみたところで、その電流は、いつまで待っても流れてはこないという意味です。(その間をジャンパケーブルで繋げば別ですけどね。)

 ここでは、何れも『列』と表現しましたが、見る方向によって横は『行』、縦は『列』と呼ぶのが普通です。

Autodesk CircuitsでLED点灯

 LEDを点灯させる(Lテンとは言わないみたい?)には、『バッテリ』(battery)と『LED』、安全上、基本とも言える『抵抗器』(resistor)と『ジャンパワイヤ』(jump wire)があれば、これらを順次プラスからマイナスに正しくつなぐだけで完成し、LEDを点灯させることができます。

 バッテリには、1本から4本程度の電池ボックス入り電池やボタン電池などがあり、他にも定電圧装置などを使うことができます。

 ただし、Autodesk Circuitsの抵抗器の抵抗値は、初期値が1kΩとなっており、1つのLEDを点灯させるにあたっては抵抗が大きすぎる為、点灯を確認するには、例えば、数値を300とか200とか、それ以下にして単位をkΩからΩに変更する必要があります。

 ちなみに抵抗器自体種類が多く、他にも抵抗器となり得るものや現象はありますが、LEDを1つ点灯させるだけなら、リード線のついた普通の(現実世界では金属皮膜/きんぴ、カーボン等の)抵抗器で十分です。

Autodesk CircuitsでLチカ

 電子工作においてとかく初心者の入り口とされることの多いLチカ(LEDを点滅させる)には、手動、物理的・機械的、ソフトウェア的など何れかで何らかの手を加える必要があります。

 (電子工作でも手作業も機械的操作もありますが、)手動や機械的操作では、電子工作らしくないので、ここはソフトウェア的にプログラムを使って点滅させてみることにし、プログラムを読み込んで実行してくれるArduino(ここでは仮想Arduino Uno)を使うことにします。(マイコンを使ってこそ、プログラミングしてこその電子工作という意味合いでLチカが入り口とされるのでしょうね。)

 Autodesk Circuitsのブレッドボード上にバーチャルなArduino(ここではUno)を置くと[Code Editor]をクリックで編集画面を開くことができ、そこには、デフォルトでLチカのプログラムが書いてあります。

 Arduino言語は、C/C++ベースなのでプログラムコードもこれらに似ており、Arduinoにおいては、共通エリア(関数の外側)、更に戻り値不要のvoid setup(){}関数と同じく戻り値不要のvoid loop(){}関数の利用が基本パターンであるようです。

 一応眺めてみると共通の領域にあってプログラム全体に有効な[int led=13;](整数型の変数ledに値13を代入)という行があり、pinMode(led, OUTPUT);の行で[13]に設定した[led]というint(整数型)の値なら何でも入れられる変数と内部的にどこかで定義され電気的に電圧出力をするものとして決められた定数であると想定される[OUTPUT]を指定することでArduinoの[13]端子を[OUTPUT](出力)として使用するものとし、中に書かれた処理を繰り返すloop()関数内で[digitalWrite(led, HIGH);]の[HIGH]はON(電圧5V)、[digitalWrite(led, LOW);]の[LOW]はOFF(電圧0V)、ON/OFFが速すぎると点灯しているようにしか見えず、点滅を確認できない為、ON/OFF間に[delay](遅延)時間を設定することによって処理を繰り返し、結果、LEDを点滅させる計画であるという意味になります。

 つまり、これは、Arduinoの[13]と書かれた端子をプラスとして[ブレッドボード]上の[抵抗器]と[LEDランプ]を介してArduinoの[GND]と書かれた端子を適切な順序で接続すれば、Lチカするということを意味しています。

 結果、この通りに配線すれば、ここでは、プログラムをいじる必要すらないわけですが、[delay]の数値を変更するだけで点滅の仕方が変わるので試してみるとよいでしょう。

 ちなみにバッテリ直ではなく、ArduinoでLEDを点灯させる場合、Arduino Unoには5V、3.3Vの出力端子とマイナス側をつなぐアースとなる[GND](GrouND)端子があるのでそこにつなぎ、デフォルトのプログラムはLチカ用なのでdelay行と[digitalWrite(led, LOW);]行を削除するか、delayを限りなくゼロに近づければ、LEDが点灯状態になったり、点灯しているように見えるようになったりします。

とても便利なAutodesk Circuits

 というわけでAutodesk Circuitsは、かなり便利で重宝します。

 ただし、PCのスペックは高いに越したことはなく、シングルコアCPU Celoron 1.60GHz/RAM2GB、デュアルコアCPU 1.80GHz 1.60GHz/RAM2GBのマシン何れもAUTODESK CIRCUITSを利用できましたし、プロジェクトが開いた後はスムースですが、共に他に作業をしていなくてもプロジェクトを開く際、JavaScriptの処理を中断するか継続するかを問うポップアップが表示され、継続すると後者は比較的すぐにプロジェクトが開くものの、前者は開くまでに時間がかかります。