ソフトウェアエンジニアが電子エンジニアになるにはどのようなプロジェクトが役立ちますか?[閉まっている]


17

私は電子機器のバックグラウンドがほとんどないソフトウェア開発者ですが、私がやっていること(インフォテインメントシステム開発)に関連しているので、これに興味があります。私はソフトウェアエンジニアであり、電子エンジニアではありません。そのため、私のバックグラウンド/経験は、アプリケーションレベルのプログラミング、およびおそらくシステム/ネットワークプログラミングに関係しています。

Arduinoが柔軟なプロジェクトプラットフォームだと聞いたことがありますが、マイクロプログラミングから始めて、Bluetoothなどの他の種類の周辺機器をいじるのは、私のプロジェクトのバックグラウンドを持つ人がどのように電子工学に取り組むのに役立つのでしょうか? 、zigbee、wifi、オーディオ、ビデオ、わかりません...コース中の電子技術者にとって典型的なプロジェクトのようなものかもしれません。

要するに、私が探しているのは、ソフトウェアエンジニアがソフトウェアレベルで電子工学のスキルセットを開発するのに役立つ典型的/人気のあるプロジェクト(アカデミックまたはその他)です。


iverilogバックエンドへのテクノロジーマッピングアルゴリズムの場合があります。
標準サンダン

1
555タイマープロジェクトから始めることをお勧めします。インターネットには数え切れないほどあり、抵抗、コンデンサー、場合によってはインダクターの基本的な理解を与えてくれます。マイクロコントローラーのプログラミングなど。その後、Arduino、PICAXE、またはあなたが面白いと思うプラットフォームで遊ぶことができます。その後、勇気を持って面白いと思う少し大きなプロジェクトに取り組み始め、途中でgiveめないようにしてください。
-AndrejaKo


1
私は同じ立場にいます。ハードウェアをいじくり回したかっただけです。ArduinoとおもちゃのRCカーを持ち込み、一緒に接続しました。方法はわかりませんが、どのように機能するのでしょうか?
TJHeuvel

どんなプロジェクト?エレクトロニクスプロジェクトを提案します。
-joeforker

回答:


10

以下は、ソフトウェア開発者にとって難しいことではないプロジェクトの提案です。それらはすべてかなり難しく見えるかもしれませんが、私は自分のスキルの範囲をはるかに超えたプロジェクトを試みることの大ファンです。彼らが楽しく魅力的なプロジェクトであれば、彼らは学習プロセスを通してあなたを喜んで引きずります。そして、覚えておいてください、私たちは皆助けに来ています。


LEDマトリクス

LED Matrix

これは完全にデジタルなプロジェクトですが、多くの楽しみがあります(LEDは好きではありません)。ULN2803などのドライバーとマイクロコントローラーが必要です。マトリックスを取得して時間を伝えるか、写真を表示します。16x16の緑のマトリックスにビョークの写真を表示することができたところです。


ジャイロ安定化フォームプレーン

フォームプレーンといくつかのマイクロエルロンを入手します。

Foam plane micro ailerons

また、アナログ出力といくつかの小さなオペアンプを備えMEMSジャイロも必要です。それらをすべて混ぜ合わせて、ジャイロ安定化ゴムバンドフォームプレーンを作成します。


ロボット

誰もがロボットを愛しています。このような小さなロボットの素晴らしいところは、非常にシンプルなもの(ただ前進する)から始めて、徐々に多くの機能(センサーと意思決定)を追加し、その間ずっと学習できることです。

Robot


5

あなたがすでにソフトウェア開発者であれば、マイクロコントローラのプログラミング自体は本当に難しいことではありません。それについてはほとんど電子的ではありません。少なくとも、さまざまな種類のコンポーネントを処理する必要があり、何かを機能させるために電圧と電流を計算する必要はありません。

ただし、マイクロコントローラーキットを使用すると、制御が得られる場合があります。デジタル、アナログ、および出力のすべての種類の入力を扱うことができます。たとえば
、ユビキタスサーモスタットを試してください。

入力
温度センサー(種類を問わない)、アンプ、オペアンプ、そしてトランジスター(コンデンサーと抵抗器のほか)について理解する必要があります。オペアンプ、特にトランジスタは基本的なものであり、すべての回路で使用されています。

出力
リレーを駆動するには、トランジスタがスイッチとしてどのように機能するかを知る必要があります(これが最も理解しやすいアプリケーションです)。

マイクロコントローラ開発ボードには、多くの場合、LCDまたはLEDが表示されているか、ディスプレイモジュールに接続できます。これは(デバッグなどに)便利で楽しいものですが、電子機器の理解には役立ちません。LEDマトリックスのような独自のディスプレイを作成し、ソフトウェアとハ​​ードウェアの両方の観点から、多重ディスプレイを駆動する方法を学ぶ必要があります。

マイクロコントローラボードとは別に、簡単な回路を作成するための基本部品のほとんどを含む電子スターターキットを入手してください。そして、良いハンドブック、もちろん。エレクトロニクスのアートはここで非常に人気がありますが、前回見たときは更新の予定でした。


1
サーモスタットにうんざりしている場合は、PIDコントローラーの実装にアップグレードできます。:)
ニックジョンソン

幅広い電気的および電子的概念を取り入れたきちんとしたプロジェクトのアイデア。あなたが同じ仕事をし、そのマイクロコントローラの長所(柔軟性)と短所(比較コスト)を学ぶためにマイクロコントローラに移動することになりますディスクリート部品でこのプロジェクトをやったら
SimonBarker

5

PSoC開発キットを入手してください。PSoCは、再構成可能なデジタルおよびアナログブロックを含むマイクロコントローラです。基本的に、IDEを使用してデジタルおよびアナログの回路図を接続できます。これらの回路図は、PSoCチップ内に実装されます。

PSoC Creator

デジタルとアナログの回路設計を心ゆくまで試して、すべてを同じIDEで作成されたソフトウェアと組み合わせることができます。


2
これは開始する珍しい場所です。PSoCは非常に複雑で珍しいシステムです。これを出発点として他の人をトレーニングすることに成功しましたか?
ケビンフェルメール

内部は複雑かもしれませんが、使用するのは夢です。彼らはすべてをスムーズに統合し、多くの素晴らしいチュートリアルビデオとドキュメントを作成するという素晴らしい仕事をしました。
Rocketmagnet

1
これらすべての周辺機器がPSoCに統合されているという事実は、PSoCに反するケースです。学習したい場合は、これらのシステムを自分で構築することになっています。
-stevenvh

2
@stevenvhまったくありません。チップ内のゲートの配線と回路図のゲートの配線の違いは何ですか?概念的には同じです。
Rocketmagnet

@sandundhammika問題ありません。これらのことに関するアプリケーションを開発することは、誰もがどんな喜びであるかを発見すべきだと思います。
Rocketmagnet

5

プロテウスは、ソフトウェア駆動型の優れたプロトタイピングプラットフォームです。ここに記載されているMCUのすべてではないにしても、ほとんどを使用してPCBボードと回路図を構築できます。そして何よりも、実際のハードウェアで実行されているかのようにソースコードをシミュレートできます。

このソフトウェアの最大の利点は、水晶、コンデンサ、抵抗などの変数をはんだ付け、はんだ除去、注文をせずに変更し、最終的にプロトボードやシールドをいじるのを待つことができることです。完全にエミュレートします。

また; Osciliscopesのような仮想ツールを入手できます。.良いオシロスコープコストがいくらであるか知っていますか?幸運!それは、事実上、他の多くの機能と仮想ツールに含まれています。

それは無料ではありませんが、実際のハードウェアをいじるのではなく、時間とフラストレーションを軽減するために価格は絶対に合理的です。


この方法で実際の回路を作ることができますか?
Rocketmagnet

はい、Proteusでh-brideのattiny 861などの回路を作成し、AVR Studioがコンパイルする16進ファイルにリンクします。ソースを変更してAVRStudioでコンパイルするたびに、Proteusでアニメーション化します。変更はすぐに反映されます。そして、正確な測定値を持つスコープ、プローブ、または電圧計を使用して、H-brideからの出力を測定できます。そのかなり良い
ウィリーウォンカ

3

すべてを学ぼうとすると、多くの混乱と時間の損失につながると思います。私見、あなたはあなたの興味に集中しようとするべきです:あなたは、あなたが正しいインフォテインメントシステムのためにそれを必要とすると言った?

アプローチは、それらのシステムの1つが何かを知ることです。

  • 処理装置(おそらくマイクロコントローラーまたは単純なコンピューター)。

  • ディスプレイ用のいくつかのドライバー。

  • ユーザーインタラクション用のI / Oインターフェイス。

  • 通信インターフェース(ネットワーキング、他のデバイスとのインターフェース...)

これらのサブドメインはすべて、プロジェクトとして調査および設計できる完全なシステムです。それらのいくつかは、より低い抽象化レベルで、コンポーネントレベルまで、より多くのサブサブドメインに分割することもできます。

したがって、私の提案は、この複雑なアーキテクチャをブロックに分割し、単純な回路を作成することです(LEDドライバーから開始することもあります)が、それをより大きな計画に挿入することができます。それは最終作業の一部になり、エレクトロニクスについて学ぶ方法になるので、あなたはそれをする動機を持つでしょう。

事前に作成された回路図と一般的な経験則に頼るのではなく、あなたが何をしているかを研究し、理解するようにしてください。


2

私も同じ問題を抱えていました。そして最終的に、エレクトロニクスを学ぶ近道はないことを知りました。大学の学位はあなたを助けることができます。

それ以外の場合は、次の書籍を試すことができます。

ステップ1。

ここに画像の説明を入力してください

ステップ2。

ここに画像の説明を入力してください

ソフトウェアNI Multisimとともに

ここに画像の説明を入力してください


1

ソフトウェア開発者として、あなたは2つの主要な利用可能なプラットフォームのいずれかにいます。

PHPまたは.NET?

あなたは.NETている場合、私は強くに提案することができます.NETマイクロフレーム IDEとNetDuino

ここに画像の説明を入力してください

他にも多くのハードウェアがありますが、価格が手頃であり、Arduinoや他の多くのプロトタイプボードの醸造と非常によく似ているため、いくつかのキットを使いこなすのに役立ちます。

.NETもPHPも組み込みプログラミングとは実際には関係ありませんが、PHP構文は非常に近くC、知っておくと便利です。.NETは、使い慣れた環境にとどまるのもいいことであり、Microsoft Learningでこの資格を取得することもできます。

私がお勧めする別のプラットフォームは、Atmels AVR XMegaです。 これは基本的にはarduinoですが、はるかに新しく、より高性能です。

これらの両方の人の重要な部分は、開発環境が無料であることです!はい、Microsoftは無料のVisual Studio for Micro Frameworkを提供し、AtmelにはAVR Studio 5(バージョン5のVisual Studioに基づいています)があります

また、各開発キットの機能を実現する必要があります。

ここに画像の説明を入力してください

Atmegaチップに基づいていますが、低クロック速度のもの(8mhz、16mhz)を使用しますが、さまざまなビットやボップを実行できます。無料のIDEがあり、大量のコードとライブラリを備えた大規模なコミュニティがあるため、電気工学を学ぶ上で素晴らしい出発点です。ここから学べば、構文とコードの移植に関して、他のAVRベースのチップに移行するのが簡単になります。

たとえば、内部のマイクロWebサーバーを介してインターネットにビデオデータを中継することは想定していません。これらのMCUは、一度だけでも一度はやるべきことやデータの量を処理できません。そのレベルに到達したら、.NETまたは32Bit AVRのいずれかにステップアップするとよいでしょう。

  • AVR 32

これらの人は、LCD、ビデオ、Webサーバー、ワイヤレス、および多くのものを自分で処理できます。また、処理速度がはるかに速くなり始めます。しかし、これらを確認する前に、特定の機能を実行する製品がいくつかあることを理解する必要があります。タッチセンス、ワイヤレス通信、超低電力など、いくつかは混在しており、使用するには適切な研究開発プロセスが必要ですこれらの悪い男の子。

  • テキサス・インスツルメンツ

それらに非常に注意してください、

彼らはあなたがそれらについて読んだときに驚くべき素晴らしい市場をリードするチップを提供します。残念ながら無料のIDEはなく、ライセンス料が数千ドルかかります。ただし、MSP430などの一部の製品には無料のIDEがありますが、それらの多くはそれらとの境界線であり、不明確です。また、いくつかのTIチップのライブラリを学ぶことは絶対に悪夢です。しかし、それはニッチ市場であり、ここで良い給料を得ることができます。

そこには多くの開発キットがありますが、.NET認定を取得した私自身の経験についてお話ししただけです。私は実際にArduino Mega256から始めました。

今日、私はTIのすばらしいSystemOnChipを使用して、最大2年間コイン型セルを実行する1.5cmx1.5cmの小さなPCBを作成しています。しかし、そこにたどり着くまでに多くの時間と忍耐が必要であり、組み込みシステムについて何も知らない気がします...

幸運を :-)


10
...すべてのソフトウェア開発者が.NETまたはPHPを使用することを真剣に提案していますか?
ニックジョンソン

大多数の@NickJohnson .... Webホストプロバイダーに移動すると、サーバータイプの選択肢が2つあります。Windows .NET-または-Linux LAMP with PHP ..それは私だけではありません..あなたはレール上のルビーやC ++のように見えますか?Webテクノロジーのみを参照していることはわかっていますが、アプリケーションは昨日です。
ピョートルクラ

かわいい質問でした。私の主な専門的な経験は(よく書かれた)PHPにありますが、Java、C&C ++、Javascriptにも堪能です。
dukeofgaming

12
「...昨日はアプリケーションがとても...」 -そこにいる何十万人もの非Webアプリ開発者にそれを教えてください。「追いつこう」の代わりに、「本物になりましょう」はどうですか?.NETとPHPがソフトウェアを書くための唯一の選択肢であるなら、私はPCを橋の上に投げるでしょう。Webアプリケーションだけがアプリケーションではありません。
ジャスティン

1
@ppumkin、私はまだ、ユーザーがアセンブリを読んで、それが愚かなことをしていることを確認することを学ぶべきだと強く考えています。
Kortuk

1

あなたの質問はかなり広範であり、多くの良い可能性があります。小型コンピューターを物理的なものと相互作用させる方法のより高いレベルにもっと集中している場合、レゴマインドストームキットのようなものを見ることをお勧めします。これにより、ロボットを構築およびプログラムできます。これは、プラグアンドプレイのさまざまなセンサーなどの高レベルになります。

また、「真の」EEがセンサーを設計および構築する電気工学の重要な、より基本的なレベルがあります。ArduinoやNetduinoなどのシングルボードコンピューターと、抵抗器、LEDなどのさまざまなコンポーネントをブレッドボードに接続して回路を構築するブレッドボードを使用すると、このより基本的なレベルに近くなります。この時点で、「LEDと直列に接続して、LEDやマイクロコントローラーが煙にならないように電流を制限するためにどの値の抵抗を配置する必要がありますか?」などの質問に対処します。

Legoキットを使用すると、コンポーネントを簡単に接続するだけで、バカにならないようにすることができます。


1
実際、「真の」EEは、おそらくArdunioとブレッドボードを使用しないでしょう。
ジャンヌピンダー

@Jeanne -確かに、しかし、我々はすべてのジェリ・エルスワースをすることはできませんし、私たち自身のトランジスタを作る:youtube.com/watch?v=w_znRopGtbE
JonnyBoats

1

PC用に作成されたソフトウェアと組み込みアプリケーション用に作成されたファームウェアの違いに注目することをお勧めします。Cをブラッシュアップします。embedddlinuxの人気が高まるにつれて、ファームウェアエンジニアとソフトウェア開発者の違いは急速に縮小しています。オープンソースの組み込みドライバーを見てください。

2つの専門分野はまったく異なるため、EEのようになりたいという願望に少し疑問を呈します。はい、たくさんのオーバーラップがありますが、ドライバー側に焦点を合わせ、電子機器の細部に行き詰まってはいけません。


彼は電子機器に乗りたいと言っています!
-stevenvh

私が提案しているのは、回路図から始めてIOピンから戻るのではなく、トップダウンのソフトウェア側のアプローチです。これは、「ソフトウェアレベルで設定された電子工学スキル」をファームウェア開発に焦点を当てると解釈しているため、理にかなっているようです。
スピアソン

1

エレクトロニクスのバックグラウンドから来ていなければ、まず第一に本当に素晴らしいことです。チップを設計するつもりはありませんか?

しかし、エレクトロニクスを学ぶつもりなら、抵抗、ダイオード、トランジスタなどの基本を最初に入手することをお勧めします。ラジオシャックまたは他のベンダーのエレクトロニクスホビーキットは、次にマイクロコントローラに進みます。それは本当に簡単ですが、私はあなたが既に簡単にされていないものを使うことをお勧めします、Arduinoは本当に簡単で、そのユーザーの前に多くの挑戦を置きません.. AVR、PICまたは8051マイクロコントローラー、マイクロコントローラーを購入、点滅LEDプログラム(エレクトロニクス部門の「Hello World」)から始まる本とsrartのコーディング。ご覧のとおり、マトリックスキーパッドとセブンセグメントディスプレイを使用して、より基本的なことを学んでください。作業、デバイスを他のICおよびセンサーネットワーク(作業に関連するもの)と接続します。開発ボードにはすでにこれらの機能の一部が搭載されており、それらがなければ、いつでも簡単に利用できるシェルドやブレイクアウトブラッドを購入できます。

また、使用しているプラ​​ットフォームについて会社に確認することをお勧めします。これにより、マイクロコントローラーで学習する方向性が得られます。すでにプログラマーであるため、これは本当に簡単で、ロボットのような趣味のプロジェクトを常に行う必要がありますそしてLEDマトリックスなど、これはあなたが退屈しないだろう主題にあなたを気に留めるでしょう!!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.