シリーズ全体を読む
この記事は、Quilterの物理法則に基づくレイアウト自動化を使い、NXP i.MX 8M Mini搭載コンピューターを再現した過程を詳しく紹介するシリーズの一部です。
Arduino Unoは、電子工作の愛好家から専門家まで、試作プロジェクトで広く使われているオープンソースのマイクロコントローラ基板です。この分野に足を踏み入れた人が最初につくるプロジェクトになることも多く、さまざまな意味で、電気工学の世界における「Hello World」プログラムといえます。
そのため、Arduino Unoの設計は、Quilterにとって格好の出発点です!Quilterの生成設計が、人の介入なしに、Arduino Unoのレイアウト全体をゼロからコンパイルした過程をご紹介します。

入力の準備
私たちはQuilterを、PCB用のコンパイラとして捉えています。回路図はコンパイルされる「コード」であり、基板が実行する論理を定義します。そしてレイアウトは、その論理を実行する物理的な装置を製造業者がつくるための命令群です。Cが機械語にコンパイルされるのと、よく似ています。
Arduino Unoには既存のオープンソース設計があるため、公式ウェブサイトで公開されている回路図を、そのまま使えます。

回路図で記述される論理的な制約に加え、コンパイラにはいくつかの物理制約も指定する必要があります。具体的には、希望する基板外形と、コネクタの位置です。これにより、今回のUno設計は、元のUno向けにつくられた既存のシールドや筐体との互換性を維持できます。
これらを定義するには、外形を指定し、コネクタを希望の位置に配置した基板ファイルを作成するだけです。

この入力ファイルを詳しく確認したい方は、こちらからダウンロードできます。
Quilterの実行
ここからは簡単です!入力ファイルをQuilterのオンラインダッシュボードにドラッグ&ドロップし、魔法のような処理が進むのを見守るだけです。約1時間で、Quilterは数千の設計候補を検討し、最良の候補を提示します。

この設計を詳しく確認したい方は、こちらからダウンロードできます。なお、これは2023/03/09時点の最新設計であり、画像の設計とは一致しません。
設計ルールは どうなるのでしょうか?
コンパイラの例えを続けるなら、基板設計は機械語、製造業者はその機械語を実行する「プロセッサ」と考えられます。
異なるプロセッサを対象にコードをコンパイルできるように、Quilterも、製造業者ごとの具体的な製造能力を対象としてPCBレイアウトをコンパイルできます!
現在、QuilterはJLCPCB、PCBWay、OSHParkという3社の製造能力を対象にし、製造先の選択肢が最も柔軟な候補を提示します。上に示した基板は、このいずれの製造業者でも製作できます!
Quilterは出力ファイルに設計ルールを自動設定するため、ユーザーは独立してDRCを実行し、エラーがないことを確認できます。
製作してみましょう!
ハードウェアがなければ、ソフトウェアは面白くありません!もちろん、人の介入なしですべてのDRCを通過する、製造可能な設計ができると、すぐにガーバーファイルを製造業者へ送りました。Quilterが完全自律でコンパイルした最初の基板なので、どのように動くか、気が気ではありませんでした!




注:この設計は2022/09/14に、PCBWayのみを対象にできた旧バージョンのコンパイラで完成しました。この基板そのものの設計ファイルはこちらです。
テストしてみましょう!
「Hello World」の基板には、「Hello World」のスクリプトが欠かせません!Quiltuino Unoで実行してみましょう。

Quiltuino Unoが起動し、コンピューターに接続され、簡単なプログラムを実行できました!ただし、これではUnoのIO機能をあまり試せていません。そこで、これらをテストするため、Unoをタッチスクリーンシールドと組み合わせることにしました。
























