Get Ready for the Electronics Design Jobs You Want


Experience hands-on learning in PCB and hardware design with Altium's Student license, cloud access & comprehensive curriculum.

Launch Your Career in Electronics Design


Gain the skills top employers look for. Start mastering PCB design with the Altium Student Lab today!

Lay Out Your Track: Prepare for a Career in PCB Design


Develop the electronics design expertise that employers look for with Altium’s free Student Lab!

Get Ready for the PCB Design Job of Your Dreams


Start your electronics design career with Altium's free Student Lab, comprehensive curriculum & certificates

When NASA Calls, Will You Be Ready?


Prepare for a stellar career in electronics and hardware design with Altium’s free Student Lab.

When Tesla Calls, Will You Be Ready?


Get ready for a fast-track career in PCB and hardware design with Altium's free Student Lab.

Altium Designerのプロジェクト

Filter
0 SelectedClear ×
Clear
ATmega328Pの基本:Arduinoなしで始める方法 Altium Designer Projects ATmega328Pの基本: Arduinoなしで始める方法 Arduino Unoボードをかなりの期間使用してきましたが、多くの記事の例としても使用しています。古いUnoボードに使用されている元のチップであるATmega328Pを、完全に独立して動作させるにはどうすればよいか、いつも疑問に思っていました。Arduinoがそのブートローダー、使いやすいGUIソフトウェア、C++の抽象化を通じてアクセスしやすくしているので、なぜこの試みをしたいのか不思議に思うかもしれません。しかし、時には、他人が行ったことを評価するためには、自分でやってみることが重要です。このプロジェクトは、Arduinoの開発者がどれほど多くの作業を行い、そのフレンドリーな製品で世界を変えたかを本当に示してくれました。 この記事では、外部電源と Atmel-ICEプログラマのみを使用して、チップを完全に独立して起動する方法を説明します。オンボードのシリアルインターフェースを介してチップと通信する方法と、LEDを1つまたは2つ点滅させる方法をデモンストレーションします。 環境設定 ATmega328Pを設定する方法はいくつかあります。タイトルからもわかるように、意図的にカバーされていない方法の1つは、ATmega328PチップをArduino Unoに挿入してプログラミングし、その後ブレッドボードに移動させる方法です。フォーラムのフィードバックに基づき、一部の人々はArduinoのプロセスをスキップして、 MicrochipのAtmel-ICEなどのプログラマーを使用したより伝統的なアプローチを使用したいと考えています。Microchip(旧Atmel)マイクロプロセッサを始める最も簡単な方法は、 Microchip Studioをインストールすることです。この記事を書いている時点で、Microchip StudioスイートのフルバージョンはWindowsでのみサポートされています。CI(継続的インテグレーション)でビルド環境をすべて実行したいと考えているため、代替のアプローチを選択しました。 C言語に対する最も人気のあるコンパイラの1つにGNU Compiler Collection(GCC)があります。これは特定のプラットフォームとアーキテクチャをコンパイルしますが、AVR(ATmega)ファミリーのチップには対応していません。しかし、AVRおよび他のMicrochipファミリー用のコンパイラセットが 彼らのウェブサイトにホストされています。幸いなことに、親切な人々がこれらのコンパイラをDebianパッケージにまとめ、DebianやUbuntuで簡単にインストールできるようにしてくれました: $ apt-get install gcc-avr binutils-avr
オープンソースプロジェクトの概要:ラップトップとRaspberry Pi CM4モジュール Podcasts Altium Designer Projects オープンソースプロジェクト概要:ラップトップとRaspberry Pi CM4モジュール このエピソードのAltium OnTrackポッドキャストでは、ホストのZach PetersonがOpen Visions TechnologyのLukas Henkelと座談し、オープンソースのノートパソコンとRaspberry Pi CM4モジュールの代替品となる2つの画期的なオープンソースプロジェクトを探求します。 オープンソースハードウェアの最新進歩を発見し、これらの革新的なプロジェクトがDIYコンピューティングの限界をどのように押し広げているかを学びましょう。 エピソードを聴く: エピソードを見る: エピソードのハイライト: ウェブカメラデザイン:ノートパソコン用のオープンソースウェブカメラを設計する際の課題と革新。 ノートパソコンデザインの課題:オープンソースノートパソコンの開発中に直面した主要な障害。 ノートパソコンプロジェクトから学んだ教訓:オープンソースノートパソコンプロジェクトに取り組む中で得た洞察と教訓。 この種のプロジェクトを始めるためのアドバイス:同様のプロジェクトを始めようとしている個人への推奨事項とガイダンス。 オープンソースRaspberry Piの概要とデモ:オープンソースプロジェクトでRaspberry Piを使用する概要とデモンストレーション。 さらに多くのリソース:
エンベデッドシステムのアーキテクチャ:製品に複数のPCBがある場合 Altium Designer Projects 組み込みシステムのアーキテクチャ:製品に複数のPCBがある場合 組み込みシステムは、今日の技術主導の世界で至る所に存在します。インターネットに接続されたシェーバーであれ、複雑な自動車であれ、私たちが今日使用しているほとんどの電子デバイスの中心には組み込みデバイスがあります。1つまたは複数のマイクロプロセッサで構成される組み込みシステムは、複雑さをソフトウェアによって処理させることで、電子機器を簡素化することができます。組み込みデバイスが大きく複雑になるにつれて、プリント回路基板(PCB)も同様に大きく複雑になります。しばしばこれらのデバイスは複数の基板に成長し、当初意図されたよりも大きなアセンブリになることがあります。 この記事では、複数のPCBで構成される組み込みシステムのアーキテクチャのトレードオフと考慮事項について見ていきます。複数のPCBシステムに関連する利点、設計上の考慮事項、および課題について説明します。 なぜ複数のPCBを使用するのか? デバイスを単一のPCBに保つことが理想的な選択肢です(単純さとコストの両方のために)、しかし、設計目標を達成するためには、設計を2つ以上のPCBに分割する必要があることもあります。製品を複数の基板に分割したい理由のいくつかは以下の通りです: モジュラリティ: アセンブリを複数の基板に分けることで、必要に応じて製品の一部だけを交換できます。例えば、単一のPCBが故障した場合、システム全体に影響を与えることなく交換することができます。これは、正しく行われた場合、製造業者のコストと時間を削減することができます。 スペースの最適化: 複数の基板にコンポーネントを分割することで、デザイナーはよりコンパクトで効率的なレイアウトを実現できます。パッケージングのために高さが問題にならない場合の、非常に長く狭い単一の基板と比較して、いくつかの短く積み重ねられた基板を考えてみてください。 熱管理: 多くの熱を発生させるコンポーネントは、熱の放散を改善するために異なるPCBに分割することができます。アセンブリ全体にわたって熱を均等に分散することで、システムの信頼性を大幅に向上させることができます。 スケーラビリティ: 複数のPCBを使用して設計することで、単一の基板で交換可能なインクリメンタルな機能追加が可能になります。全体のコンピューティングシステムを交換することなく、アップグレードされたセンサーやカメラを考えてみてください。 これらの理由(およびその他)から、複数のPCBで構成されるアセンブリを設計することを考慮しますが、組み込みファームウェア側の課題も複雑さを持っています。 複数のPCBアセンブリのための組み込み設計の考慮事項 複数のPCBを使用する場合(該当する場合)のケースを確立した今、組み込みシステムをアーキテクチャする際の設計上の考慮事項を理解することが重要です。ハードウェアとソフトウェアの両方の観点から、単一の基板にすべてを載せるときにはあまり慎重に考慮しないニュアンスがあります。 最初に頭に浮かぶべき考慮事項は、ボード間通信です。各ボードはどのようにして互いに通信するのでしょうか?どのような処理能力(もしあれば)が各ボードに存在するのでしょうか?もしかすると、1枚のボードが脳の役割を果たし、他のボードがセンサーの役割を果たしているのかもしれませんね。I2C、SPI、UART、Ethernetなど、慎重に伝送プロトコルを選び出す際には、伝送線、信号の整合性、そして最も重要な、ボード間コネクタを通じた信号の伝送も考慮しなければなりません。設計者にとって最悪なこと(そして信じてください、私もそこにいました)は、システム全体を設計し、製造業者からPCBを受け取った後で、クロック信号を1つや2つ見落としていたことに気づくことです。また、ボード間コネクタのスペアピンを確保することを忘れがちで、ピン数を最大限に活用しようと試みます。これは最終的に私たちを苦しめることになります。 Altium Designerのマルチボードアセンブリ機能のように、多数の通信ラインをPCB間でルーティングする際には、マルチボードプロジェクトを念頭に置いて設計することが必須です。 また、特にマイクロプロセッサで電力バスを監視する場合、電力の分配方法についても考える必要があります。「脳」へのアクセスを容易にして、任意の壊滅的なイベントを監視できるようにしたいですが、スイッチング供給のノイズ、重負荷のための電力分配、そしてボード間コネクタのピンがその種の電力に耐えられるかどうかも考慮する必要があります。 最後に、組み込みシステムのソフトウェア自体とは直接関係ありませんが、機械設計も重要な役割を果たします。プッシュボタン、タッチスクリーン、およびその他のユーザーへの物理的インターフェースは、マイクロプロセッサに接続されており、考慮されなければなりません。配線はマイクロプロセッサが入力にアクセスできるようにルーティングできるでしょうか?ボード間を通過する際の高速デジタル出力の信号整合性を考慮しましたか?これらは、組み込みデバイスを設計する際に考えなければならないことです。
Generative AIを使用して組み込みコードを書き込み、実行する Altium Designer Projects Generative AIを使用して組み込みコードを書き込み、実行する ハードウェアと会話するカスタムGPTアクションの構築方法と AIラボアシスタントの構築で、Generative AIを使用してハードウェアを制御する方法を学びました。ChatGPT内でカスタムGPTアクションを利用することで、ChatGPTにラズベリーパイからLEDを点滅させるだけでなく、実験室の機器を制御しデータを取得する能力を与えることができました。これは、人工知能をラボアシスタントとして使用し、機器から取得したデータを処理することができることを意味します。この記事では、Generative AIによってコードを書くだけでなく、組み込みターゲット上で実行し、その過程でフィードバックを受け取ることによって、さらに一歩進んでいます。 背景 Generative AIを使用してコードを書くことは、組み込みシステムでさえ、新しいことではありません。既にコードを一から完全に書くか、提案するだけの多くのツールがあります。ChatGPT、Gemini、Claudeなどの最も人気のある大規模言語モデルは、すべてコードを書くのがかなり得意になっています(比較については、 Gemini vs. ChatGPT: どちらがより良いコードを書くかを参照してください)。私は1年以上前からChatGPTがコードを生成することについて書いてきました( ChatGPTを使用した自動テストを参照)し、それが今日の開発の唯一の方法であると説教してきました。本当の挑戦は、開発のループにAIを取り入れることです。 コード生成はある程度までしか役立ちませんが、Generative AIを使用する場合、それが機能することを検証し保証するには異なるアプローチが必要です。ChatGPTとのコードインタープリターは、ある程度、生成されたコードを実行し、それがあなたのために機能することを検証できるカプセル化されたPython環境を提供します。私はそれをさらに一歩進め、組み込みシステムで同じことを達成できるかどうかを見てみたいと思いました。OpenAIのChatGPTを使用するには2つのルートがあります。最も一般的なルートは、OpenAI APIを使用するクローズドループアプリケーションを作成することです。それはAPIを使用して大規模言語モデル(LLM)からコードをプロンプトして取得し、それをコンパイルし、Arduinoにロードし、生成されたコードの機能を検証するために追加のカスタムコードを使用します。私はGPTアクションを使用して、「コードペアリング体験」にすることで異なるアプローチを取ることにしました。その体験は次のようなものです: 図1: GPTアクションの例 例は単純かもしれません(つまり、オンボードLEDの点滅)が、上記のデモンストレーションで全てがまとまっています。私はカスタムGPTに明確な指示を与えることができ、期待通りに指示に従ってくれました。また、実際にデバイスにアップロードされ、LEDが1秒ごとに点滅することも確認できました。カスタムGPTを閉じたループシステムと比較して使用する良い点は、プロンプト内でかなり簡単に繰り返し作業ができることです: 図2: Arduinoスケッチの反復
Altium Need Help?