2009-05-28 9 views
13

私は最近作成した小さなおもちゃをプログラミングするのに飽き始めており、プログラミングを始めてハードウェアとやりとりしたいと思っています。Pythonでハードウェアでプログラミングする

唯一の問題は、私が実際に他の言語を学んだり使用したりしていないパイソンの男です。私はまだPythonでハードウェアと対話できますか?

また、どのハードウェアと対話できますか?私は本当に私が使うことのできるものがないので、キットなどを買わなければならないでしょう。これには安価なオプションは何ですか?

答えて

13

を試すにはかなり簡単ですし、利用可能なPython Serial libraryがあります。 The roomba robot is controllable via a serial port。おそらくそこには他のロボットがいるかもしれませんが、これはあなたを動かすための簡単で小さなステップです。

個人的には、a PIC programmerを購入して、いくつか簡単にcircuits to flash LEDsとすることで多くを学びました。私はシリアルポート経由でこれらのPICを制御し、後でUSBを使って(libusb経由)に進みました。 CまたはアセンブラでPICをプログラミングする必要があるので、そこでは大きな学習曲線がありますが、基本を取り上げるとかなりの結果が得られます。

+1

pySerialは素晴らしい(そして爽やかなクロスプラットフォーム)。私は車内のECU(基本的には内蔵のコンピュータ、SuperHアーキテクチャ)と通信して点滅とロギングを行い、それはチャンピオンのように機能しています。ネイティブのシリアルポートなしでより現代的なハードウェアで作業している場合は、FTDI(http://www.ftdichip.com/)シリアル/ USBデバイスは非常に便利です。 pySerialを使用してそれらと話をすることはできますが、SWIGインターフェイスのAPIをいくらか提供するlibftdi(http://www.intra2net.com/en/developer/libftdi/)を使用することもできます。 – esm

+1

+1マイクロコントローラのアイデアのために。それでも監視可能な環境下で低レベルを開始するのは良い方法です。 –

+0

また、USBシリアルドングルやUSBマイクロコントローラーを使用しても、非同期シリアル(EIA232)ポートのように話し続けることができます。 – XTL

3

PCのシリアルポートとの対話BugLabまたはOpenMoko

+1

「これは安価なオプションは何ですか?」電話を購入することは安価ではない –

3

ハードウェアとのインターフェイスには、ctypesを使用できます。これは、ハードウェアとのインターフェイスに使用できます。ネイティブライブラリを呼び出すことができますので、C言語でできることは本質的に使えます。これはもちろん、Pythonを実行しているホストコンピュータを介してハードウェアと対話したいと仮定しています。

私はプロジェクトのカップルのためのctypesを使用しました:私は、それは一般的にかなり使いやすい見つけ

用USB/HIDのユーザランドドライバの作成しかし、私は既にC/C++を知っていました。

+0

+1キーボードLED&モールスコードのアイデア! –

2

レゴMindstormキットを購入してください。プログラミング言語は生き生きとしています - Pythonではありませんが、十分に近いです。実際のアクチュエータやセンサーを備えた実ロボットです。

+1

"安いオプション"はおそらく相対的です:) – XTL

11

間違いなくArduinoをご覧ください。

  • ハードウェア設計は、あなたが望むならば、あなたも、あなた自身を組み立てることができるように、オープンソースである
  • それはあなたがそれをプログラムし、いくつかのLEDが
  • 素早く点滅を取得するのは簡単ですので、ボードはデジタルとアナログの入力と出力を含み通常、PC側でのPIC

に使用されているCの複雑さの多くを隠したWiringと呼ば

上記のように「言語」で、あなたは、USBを介してボードとの通信にpySerialを使用することができます
+0

+1:Arduinoの言及。私はその名前を以前に考えようとしていて、それを覚えていませんでした。私はしばしば1つのことを考えていました:-) –

2

多くのPCにまだparellelポートがあり、私はそれを使用していませんが、interacting with the parallel portのpythonモジュールが存在します。

パラレルポートは、ハードウェアの制御を開始する最も簡単な方法です。最も簡単な電子機器を接続することができます。ちょうど導かれたあなたは何かをすぐに見ることができます。ジョン・ケージが言及として

その後、あなたはてきぱきと呼ばれるのPythonのサブセットを実行www.synapse-wireless.comでPic programmer

+0

+1:そうです、パラレルポートはおそらくより簡単に始めることができます。 –

+0

私はそれを使用しました。交換が困難なポートに過負荷をかけないように注意してください。また、USBパラレルポートはしばしばありません。パラレルポートプリンタを駆動するためにハードコードされています。 – XTL

1

ザ・SNAP無線ノードを得ることができます。 SNAPpy言語のpeek()およびpoke()組み込み関数を使用して、チップ内部のハードウェア(PWMなど)と直接対話できます。 SNAPpyにはI2C、SPI、シリアル用の組み込み機能もあり、外部ハードウェアを制御することができます。また、readPin()writePin()やreadAdc()のように、低レベルのI/O用の組み込み関数も備えています。 EK2500キットのようなものは、まずはうまくいくかもしれません。オンラインユーザーフォーラム(forums.synapse-wireless.com)も参照してください。

+0

私が見つけた価格:$ 180。ああ、devkitの場合でも。 – XTL

0

私は誰もBASICスタンプについて言及していません。再び - それは非常に限られていますが、そのSUPERは簡単に作業を開始します。そこには他にもいくつかのプロセッサがありますが、紹介として - 私はその素晴らしいデバイスだと思います。

Arduinoもいいですし、あなたはおそらくそのデバイスであなたのためのより多くのバングを得ることができます。

上記のように、私はPICプロセッサーを使い始めました。これは、最初は(実際には... haha​​ - 議論の余地がある)最も簡単なものではありませんが、マイクロコントローラ/ハードウェアの相互作用の世界

運が良ければ&ご不明な点がございましたら、お気軽にお問い合わせください。

+0

私も数年前にBASICスタンプを始めましたが、私は現代のマイクロコントローラが何をすることができないのかをよく表現していないと思います。どのようにばかばかしいほど高価なキットは言うまでもありません! –

4

新しいRaspberry Piデバイスは、優れたI/O範囲を持ち、Pythonが最も一般的に使用される言語のようです。

関連する問題