熟練したプログラマーArduinoか何か他の人のために?


11

私の背景:

私はかなり前からソフトウェアを開発してきましたが、C、C ++、Java、Ruby、Erlang、Haskell、Lua、およびPythonに多かれ少なかれ熟練しています。私もラボの電子工学のクラスを受講しましたが、ポンプを備えた1つの簡単なラボとは別に、信号をA / Dに、そこからLabViewを使用してx86に信号を取得することがすべてです(プログラミング環境の選択ではありません)。ホームオートメーションに目を向けて、ハードウェアをいじくり回すことに戻ります。(私はこれよりも$ 500以下でもっとうまくできると思います)

質問:

私はArduinoで歯を切るつもりでしたが、読むほど、そのシステムの主な利点はプログラミングが簡単であるという感じがします。これは、ソフトウェア(まだはんだごてを購入する必要がある)の人が始めるのに良い場所ですか、それとも私に適したものがありますか?

(PS私はお金より多くの時間を持っています)

回答:


4

すぐに使用できるマイクロコントローラー評価ボードに関する限り、もちろんarduinoファミリーがあります。msp430ランチパッドも$ 4.30です。優れた命令セットと低パフォーマンス/低コストに傾いたAVRと同様のパフォーマンス。20ドルでstm32f4ディスカバリーを取得できます(stm32バリューラインディスカバリーまたはstm8ファミリーと混同しないでください)。これは通常、使用可能なarduino(35ドルから50ドル)に対して支払うよりも少ないですが、arduino 168Mhz、浮動小数点の周りに円を実行しますユニット、キャッシュなど。Arduinoの価格帯の上端には、mbed(mbed.org)という別のアームがあります。これは、おそらくarduinoサンドボックスエクスペリエンスに最も近いものです。

スタンドボックスにとどまり、api呼び出しを行うだけで、おそらくarduinoが住みたい場所である場合は、パフォーマンスを向上させるためのメガがあります。または、アームベースであるが、arduinoサンドボックスエクスペリエンスを提供しようとするリーフラボメープルを使用します。

何が起こっているかについてもう少し責任と知識を身に付ければ、より多くのパフォーマンスを得ることができます。3つのプラットフォームすべて(avr、msp、arm / thumb)と複数のベンダー(avrとmspは固定されていますが、armは周辺機器とI / Oが異なるすべての人が販売しています)をお勧めします。たとえば、gpioラインにプルアップがないプラットフォームに慣れていて、別のチップまたはベンダーが同等の価格/パフォーマンスポイントでオンチップを提供する外部コンポーネントを使用する必要がある場合があります。同様に、シリアルポートまたはSPIバスをビットバンギングするのが好きかもしれませんが、同じお金、電力、サイズなどで、他のベンダーがそのインターフェイスを支援するハードウェアを持っていることに気づくでしょう。

他に何もなければ、それはプログラマーとして、そして趣味の電子機器に乗り込み、サンドボックスの外側で何が起こっているのかをもっと知りたいと思っている人にとってあなたの最善の利益になります。この趣味のエレクトロニクスの世界に入る方法として、arduinoは、オペレーティングシステムのアプリケーションプログラミングから非常に快適に移行できます。sparkfunには、シリアルインターフェイスを含むいくつかのキットがあり、Lilypadキット(Arduinoプラットフォーム)とプロキットがいくつかありますが、問題がある場合、どちらもArduinoシールドフォームファクターではありません。sparkfunは、小売用の箱入りおよびその他の多くのarduinos、unoなどのフレーバーを販売しています(上記のstおよびmspボードは、tiまたはstのWebサイトから開始するか、github.com / dwelch67にアクセスする必要があります。さまざまなボードへのリンクがあります。例)。


8

私も日頃はソフトウェアの人です。約10年前にパララックスのBASICスタンプを使い始めましたが、長い時間をかけて組み込みプロジェクトに戻りました。最初、私はArduinoとそのさまざまな部品を見て、Arduinoボードの値札をスキップして、いくつかのATMega168を手に入れて、もう一度始められることに気づきました。これはほとんどの部分で機能しましたが、基本的なアセンブリをねじ込むことができなかったので、ビルド済みのボードがあればいいという問題に頻繁に遭遇しました。

私は最終的にArduinoを注文し、ボードとライブラリのすべてを気に入っています。私は "IDE"のファンではないので、[Use External Editor]をクリックして、IDEを純粋にコンパイルしてボードにフラッシュするためにIDEを使用します。通常、私はArduinoボードでプロジェクトまたはアイデアを開始し、それをメガチップに移植します。これは、プロジェクトに必要なパーツのみを使用することでコストを抑えるのに役立ちますが、それでもプロトタイプをすばやく思いつくことができます。

幸運を!


6

Arduinoは、マイクロコントローラーのプログラミングの優れた入門書です。

PC用のソフトウェアを書くこととマイクロコントローラー用のファームウェアを書くことの間には大きな違いがあります。

Arduinoは、特定のチップの癖などに対処するのに行き詰まる必要なしに、周辺機器などとのインターフェースに頭を悩ませるための良い出発点になります。

しかし、私が言うように、それは導入です。

Arduinoから始めて、より大きくより良いものに移ります。

私はPICファミリーのマイクロコントローラーをかなり使用していますが、信頼できるli'l Arduinoを持っているので、アイデアを試したり、物事をすばやくテストしたりできます。


6

「Arduino」はいくつかの要素で構成されているので、それらを個別に見ると役立つと思います。

  • ハードウェア側では、Arduino互換デバイスは基本的に、特定のブートローダーを備えたATMegaマイクロコントローラーです。通常、既製のArduino互換ボードには、USBまたはシリアルポートインターフェイス、電圧レギュレーター、ピンに簡単にアクセスできるピンヘッダーなど、他のサポート電子機器も含まれます。USB機能が必要な場合、ハードウェアデバイスは非常に手頃な価格です。事前にプログラムされたブートローダーと一緒に使用すると、ソフトウェアをアップロードするために別のプログラマーを購入する必要がなくなります。したがって、はい、Arduino(および互換性のあるクローン)は、プロトタイピング中のハードウェアデバイスとして役立ちます。最終ビルドでは、必要なパーツだけを使用して独自のビルドを作成することができます。そのため、1つの完全なArduinoをすべてのプロジェクトに配置する必要はありません。

  • ソフトウェアの面では、Arduinoライブラリは他のプログラミングライブラリと同様であり、その有用性はニーズによって異なります。個人的には、迅速なプロトタイピング(シリアルポート機能など)に役立つことが時々ありますが、経験豊富なプログラマーとして、多くの簡略化(特にピン番号付け)が嫌いです。いずれの場合でも、Arduinoデバイス用にプログラムしたり、Arduino IDEを使用したりしても、Arduinoライブラリの代わりに、またはArduinoライブラリに加えて、元のAVRライブラリを簡単に使用できます。したがって、特にプロトタイピングの際に役立つArduinoライブラリを使用してください。ただし、基礎となるAVRを学習しながら進めてください(ArduinoソースとATMegaデータシートを参照)。

  • 最後に、Arduino IDEは、シンプルなエディター、シリアルポートコンソール、「make」のようなビルドシステム(ユーザーから隠されている)、およびソフトウェアを実際のデバイスにアップロードするための(フロントエンド)ツールを備えたグラフィカルプログラミング環境です。 。個人的には私はIDEが嫌いで決して使用せず、コマンドラインで作業することを好みますが、明らかにこれは個人的な好みの問題です。


1
彼らがどのようにしてその怪物をIDEと呼ぶことができるのか私は知りません。これは、想像しうる限り[ひどい削除]の最も恐ろしい部分です。私はAnjutaのは、持っている、ほぼ今のArduinoの(あまり)IDEがないことを私のために全力を尽くすために設定します。
Majenko、2011

4

あなたの質問は正直な回答には余りにも開いているので、私たちにできることはトレードオフを示すことだけです。

adruinoは、糖衣で覆われたマイクロコントローラーで、大衆のためにだまされています。最小限の知識で最小限の基本的な作業を行うために最適化されています。

arduinoの中心には、直接使用できる通常のマイクロコントローラーがあります。利点は、自分がやりたいことにぴったり合ったマイクロを選択できること、自分とマイクロの間で何をすべきかについて他の人が何も考えていないこと、そしてベアマイクロで可能なことは何でもできることです。 Arduinoの抽象化を通じて浮上した以上の多くのこと。欠点は、実際に何かを学ばなければならないことであり、数100ページのデータシートを読むことはほんの始まりに過ぎず、すぐに満足することはありません。

あなただけがあなたのために良いことを言うことができます。あなたは自分の内面の独り言を抱きしめ、「ハァッ」、「何を」、「ああ、とてもかわいい!」電子的なものに?それとも、長い暗黒の道をたどって、多くの苦労とトラブルの後で、LEDが1回点滅するのを見つけますか?車を運転するだけですか、それともエンジンがどのように機能するかを学び、最大限のパフォーマンスを得て自分で調整したいですか?


1
オリン、あなたは古い学校です!ほめ言葉としてそれを絶対に意味します...しかし、私はこの問題に関してあなたに敬意を表しません。思いがけないオペレーティングシステムで平凡に設計されたソフトウェアを扱うことで、電子機器の理解にゼロが加わりました。実際、私があなたのような知識のある人から役立つものを学ぶことができたかもしれない貴重な時間を何日も浸しました。「Arduinoが長生きします!」
Kaelin Colclasure、2011

2
@KaelinColclasureあなたのコメントは私を混乱させるものです。あなたは貧弱なソフトウェアとOSに問題を抱えていますが、Olinはそれについてまったく対処していません。OSが抽象化レイヤーであるかのように、Arduinoが抽象化レイヤーのために何をするかを考えることができます。arduinoの使用法を習得しても、オーバーヘッドによって不要な追加コストが発生するため、優れたエンジニアになるのにほとんど役立ちません。そうは言っても、Arduinoは素晴らしいプラットフォームだと思いますが、組み込みエレクトロニクスの世界を真に理解するための代替品と考えるべきではありません。
Kellenjb 2011

車のアナロジー!オリン、多くの人にとって、これは、エレクトロニクスの核心をざっくりと学んで、エンジニアになろうとしていることではありません。多くの人は、目標を達成して問題を解決できるツールを選びたいだけです。電子機器を学ぶことは多くの場合、目的を達成するための手段であり、目的そのものではありません。あなたと同じ理由で誰もがこのゲームに参加しているわけではありません。
nemik 2011

2
うん?では、「あなたの内なる愚痴を抱きしめる」とはどういう意味ですか おいおい。Real Man™のような独自のOSを作成する代わりに、Windows、Linux、またはOS Xを実行している内部のmoronを採用していますか?それらは大衆のために馬鹿げた糖衣オペレーティングシステムです。
nemik '30 / 12/30

1
@nemik:あなたの内側のバカを抱きしめることは、長い暗い道をたどるように冗談のようなものでした...もちろん、どちらにもいくつかの真実があります。
Olin Lathrop、2011

4

プログラマーとして、私は他の多くの人々が使用している言語でプログラミングすることを好みます。そのため、学習に役立つ本、記事、ピアなどがたくさんあります。

シングルボードコンピュータの世界では、Arduinoは最も人気があり、最高のサポートを提供しています。初めてのマイクロコンピュータに最適です。

これらのものがどれほど安いか(ほとんどが50ドル未満)を考えると、複数のタイプを取得することを検討する必要があります。

Microsoft Visual StudioとC#に精通している人にとって、Netduinoはすでに知っているツールチェーンを備えているため、優れた選択肢です。

使用する環境がUnixの場合、2012年1月にリリース予定のRaspberry Piのようなボードが好きかもしれません。

Raspberry Piとは何ですか?Raspberry Piは、テレビとキーボードに接続できるクレジットカードサイズのコンピューターです。これは、スプレッドシート、ワープロ、ゲームなど、デスクトップPCが実行する多くのことを実行できる小さなPCです。また、高解像度ビデオを再生します。私たちは、世界中の子供たちがプログラミングを学ぶためにそれを使用することを望んでいます。

デバイスはいつ購入できますか?2011年末までにRaspberry Piを注文できるようにしたいと考えていました。ベータ版の最初のバッチの一部は、年末までにオークションにかけられると予想しています(クリスマス後もサイトをチェックしてください)。1月から本番に移行します。

いくらかかるでしょうか?モデルAは25ドル、モデルBは35ドルです。

本当に良いニュースは、常により多くのものが出てくる低価格のマイクロコントローラーがたくさんあることです。

最後に、Texas Instruments MSP-430 Launchpadがあり、送料無料で$ 4.30で入手できます。そんなに安い価格で、どれを買わないのか。


4

Arduinoから始めて、アイデアを具体化し、最小限の実用的なプロトタイプを作成し、製品に必要な基本(モーター、センサー、通信用シリアル)とのインターフェースについて学びます。

より多くの機能(USBデバイス、イーサネット)が必要になると、後でARM Cortex Mシリーズチップに移行します。32ビットARMは、それらが非常に強力であり、AVRやPICのようなハイエンドの8ビットまたは16ビットチップよりも多くの場合より安価で、多くの周辺機器を備えていることを意味します。NXPのmbed(http://mbed.org)は、Arduinoから来ている場合、そのプラットフォームの非常に穏やかな紹介です。


2

Arduinoが「プログラミングが簡単」だと人々が言うとき、彼らが実際に意味するのは、ツールチェーンが基本的には機能するということです。Macでも、Windowsでも、Linuxでも動作します。ボードを接続し、コードを記述し、アップロードして実行します。

少し逸話的なコントラストを提供するために、私自身はAtmelのSTK600と彼らのAVR Studio 5開発環境に「アップグレード」しました。これはWindowsでのみ機能するため、VMwareをインストールしてMacで実行する必要がありました。それから私は気の利いたJengo USBドライバーをインストールする必要がありました。次に、なぜIDEから開発ボードと通信できるのか、STK600に付属のATmega2560ドーターカードとは通信できないのかを理解する必要がありました(JTAGケーブルが間違って接続されていました。逆に接続されたケーブルを示す画像があることが判明したWeb)

これまでのところ、AVR Studio 5でコード行を記述していませんが、Arduino IDEを使用する合計時間よりも、おそらくそれをいじるのに多くの時間を費やしました。そして、私は数十のArduinoスケッチを書きました。

あなたがプログラミングしている言語は基本的にC ++であり、ほんの少し前処理が行われています。あなたの背景があれば、後で必要になった場合に、必要なスケッチを「プロ」環境に移植する方法を理解するのに問題はありません。私にとって、Arduinoハードウェアをいじくり回して自分のボードの設計を始めたときに初めて、必要性が生じました。YMMV、もちろん...

お役に立てれば。:-)


3
あなたを選ぶつもりはありません...しかし、私は再びあなたに同意しません。Arduinoのプログラミングが簡単であると人々が言っ​​ている理由は、そうしないと得られない抽象化レイヤーが本質的に追加されているためです。また、C ++を起動します。これは、組み込みの世界では非常にまれです。特定のプロジェクトで必要になる場合もありますが、すべてのペニーを削減しようとする場合には得られないオーバーヘッドも追加されます。
Kellenjb 2011

@Kellenjb、ほとんどオーバーヘッドなしでC ++をコーディングできます。セクションによっては10%にもなることがありますが、オーバーヘッドのないセクションは多数あります。しかし、そうです、あなたがあなたの言語で何をしているかにもっと注意を払わなければならないので、それはまれです、しかし待ってください、同じことがCでも当てはまります。
Kortuk、2011

1

Arduinoは、A / D、D / A(少なくともPWMとして)のデジタルI / O、ボード上のプログラム可能なLED、シリアルからUSB、および既製のモジュールを提供する柔軟なステッピングオフプラットフォームを実現します。他の多くの種類のハードウェア。自分で学習体験をしたい場合は、必要ありません。何かの楽しみのために、または何かの低コストのハードウェアバージョンを設計しているときに、プラットフォームで何かを立ち上げて実行したい場合は、いつでもすぐに使用できます。これらは、設計、戦略的、経済的決定であり、目的に合った方法で行うことが完全に有効です。トレードオフを作成することについて「モロニック」なことは何もありません-それはエンジニアが行うことであり、毎日行うことになっています。


1

ジョンの経験は、15年前にコンピュータサイエンス(基本的にはアセンブリ言語プログラミング、およびC)を学部生に教えるのをやめたときの私のものとほぼ同じです。当時、コンピューティングの進歩に追いつくには法外な費用がかかることに気づいたので、1950年代に電気技師になることを楽しんでいた私の妻は、趣味としてエレクトロニクスに戻ることを提案しました。私はそうしましたが、トランジスタに少し出会っただけで、オペアンプを見たことがなかったので、たくさんの楽しい学習ができました。私はアセンブリ言語への愛情を持ち続け、90年代半ばにMicrochip Picsが登場したとき、私はそれらに夢中になりました。

私が何も知らないArduinoと比較することはできませんが、Picsを使用する利点は、Microchipがすべての情報を無料で提供し、優れたIDEを備えているため、セットアップが簡単であり、それらを使用する方法を学ぶことができることです。 、私がしたように、彼らが出版したものから。あなたは自家製のプログラマー、インターネット上のたくさんのデザインから始めることができるので、いくつかのPicチップが最初から数ポンドしかかからないでしょう。しかし、プログラム開発を容易にするために多くの組み込み機能を備えたPicKit 2をお勧めします。おそらくPicKit 3ではないでしょう。

http://www.eevblog.com/2009/10/21/eevblog-39-pickit-3-programmerdebugger-review/これは更新されていますが、このリファレンスのメモを参照してください。

Picsには多数の本がありますが、一部はごみですので、注意してください。簡単に始めるために、Picの優れた紹介は次のとおりです。

"PICマイクロコントローラーを使用した組み込みシステムの設計:原則とアプリケーション" [ペーパーバック] Tim Wilmshurst、Amazonで£22-66、アセンブラーとCの両方を含むこれはアセンブラが提供しますが、マイクロチップが提供するCコンパイラを使用すると、生成されたアセンブラコードも確認できます。

現代の電子機器の全体的で、優れた、技術的な(数学を入れることを恐れない)カバレッジについて、私はお勧めします。

私は店頭でこれらの本にそれぞれ26ポンドから99ポンドと22ポンドから99ポンドを支払ったが、まったく後悔していない。

ここでは十分に説明できません。この件についてメールでご連絡させていただきます:417weston@gmail.com(そして、念のため、読んだり、ダウンロードしたり、答えたりすることに非常に注意しています)。

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