ArduinoのラズベリーPiはpyFirmataによる制御を実現します

著者:Rishabhジャイナ教の
コンパイル:トニー

ラズベリーパイコントロールのArduino

その応用および構造の点が、ラズベリーPiとArduinoのは、二つの異なるハードウェアですが、彼らは2つの競合するオープンソースのハードウェアプラットフォームであると考えられています。彼らは両方とも非常に強力なコミュニティとサポートを持っています。今日、我々はいくつかの変更を行い、それらを使用する方法を紹介します。あなたは両方のArduinoとラズベリーパイボードを持っている場合は、この記事では、あなたが表示されますラズベリーパイとPythonコントロールのArduinoを使用する方法

私たちは、使用するPyFirmataファームウェアをラズベリーパイのPythonスクリプトによってアルドゥイーノにコマンドを送信します。PyFirmataは、本質的に、Arduinoの上に取り付けることができ、ライブラリパッケージのpythonプログラムの構築物は、Pythonと任意のコンピュータ上のArduinoのスクリプト間のシリアル通信を可能にします。Pythonのパッケージには、Arduinoの上のピンのいずれかにアクセスすることができます。だから、ここではArduinoの上で実行されているラズベリーパイのpythonプログラムを使用します。

このように、このチュートリアルでは、我々はライブラリを使用し、かつますラズベリーでのArduinoのArduinoパイボードの開発を制御するためにそれを使用します

請求

  • Raspbianオペレーティングシステムインストールラズベリーパイ
  • Arduinoの宇野またはその他のArduino開発ボード
  • Arduino USB线
  • LED

このチュートリアルでは、私は、HDMIケーブルを介して外部モニタを使用してラズベリーパイに接続します。ノーモニターする場合は、(パテなど)SSHクライアントを使用することができるか、VNCサーバは、ラズベリーパイやラップトップコンピュータに接続されています。

ラズベリーパイPyFirmataはArduinoの中で使用されて取り付けられました

PyFirmata Arduinoのファームウェアアップロードするには、我々は、ラズベリーパイでArduinoのIDEをインストールする必要があります。以下の手順に従ってインストールします。

  • *ステップ1:インターネットに接続**ラズベリーパイ。ターミナルを開き、次のコマンドを入力し、Enterキーを押します
sudo apt-get -y install arduino python-serial mercurial

数分待って、それはいくつかの時間がかかります。このコマンドは、あなたのラズベリーパイでArduinoのIDEをインストールします。

  • **ステップ2:**今、私たちは、指定されたgithubのpyFirmataインストールファイルを使用します。
git clone  https://github.com/tino/pyFirmata

そして、次のコマンドを実行します。

cd pyFirmata 
sudo python setup.py install
  • ステップ3:我々は必要なすべてのファイルと設定がインストールされています。

さて、USBケーブルのArduinoラズベリーパイボードと接続を使用して、ターミナルウィンドウを起動するのArduino IDE Arduinoの中に入力します。

スタートアルドゥイーノ

  • **ステップ4: - **とArduinoのラズベリーパイとの接続をかどうかを確認するlsusbがコマンドを入力します。

ArduinoのIDEには、ボードとシリアルポートを選択し、[ツール]。

  • ステップ5 **:**ファイルをクリックして - >例 - >ファームウェア - >標準ファームウェア、その後、以下に示すように、ArduinoのPyFirmataのファームウェアをアップロードするには、アップロードボタンをクリックしてください。

ファームウェアのアップロード

私たちは、pyFirmataのArduinoボードのファームウェアが正常にインストールされています。今、私たちは、ラズベリーパイコントロールのArduinoを使用することができます。

実証するために、我々は、Arduinoの上のLEDとラズベリーパイにPythonコードを記述することによって等級分け点滅になります。

コード説明

セクションを符号化するために、あなたがよりよく理解するためにpyFirmataのドキュメントを読んでください、私たちはpyFirmata機能コードを使用します。

あなたのラズベリーパイの上にお好みのテキストエディタを開き、pyFirmataライブラリをインポートします。

import pyfirmata

LEDを接続するピンで定義されているアルドゥイーノ

led_pin = 9

今、私たちが使用する必要がpyfirmata.Arduino()ボードのArduinoの書き込み接続に機能をシリアルポート名し、ボードの変数によってポート割り当てのインスタンスを作成します。

board = pyfirmata.Arduino("/dev/ttyACM0")
print "Code is running”

whileループでは、使用board.digitalを[]。書き込み()関数LEDピンを使用して設定ハイとローである board.pass_timeの遅延を提供する機能が。

while True:
    board.digital[led_pin].write(0)
    board.pass_time(1)        
    board.digital[led_pin].write(1)
    board.pass_time(1)

私たちのコードは、の.py拡張子によってコードにファイルを保存する準備ができています。

コマンド端子を開き、型のpython blink.pyコードのArduinoボードを実行します。Arduinoのラズベリーパイボードボードの開発に接続されたUSBケーブルを使用してください。

今、あなたは、LEDはArduinoのボードを点滅さ見ることができます。

PyFirmataはアルドゥイーノにLEDを使用して等級付け

今、私たちはpyFirmata機能を持つあなたがより身近にするLED勾配のためのコードを記述します。このコードは、単純なコードと同じです。あなたは、ループのための2つ、低輝度のための明るさと1を上げるための1つを使用する必要があります。

このコードでは、我々は、次のような様々な方法でピンを定義:LED = board.get_pin(「P D :. 9」) Dはデジタルピンを表します。これは以下のように、コードの一部機能pyFirmataライブラリです:

led = board.get_pin('d:9:p')            
while True:
# increase
    for i in range(0, 10):
        brightness = brightness + 0.1
        print "Setting brightness to %s" % brightness
        led.write(brightness)
        board.pass_time(delay)

今、あなたはそれらを構築するためにラズベリーパイやPythonスクリプトを使用しようとすると、システム内の複数のセンサを追加することができます。

現象

完全なコードを接続します。

#Python code for LED blink:
import pyfirmata
led_pin = 9
board = pyfirmata.Arduino("/dev/ttyACM0")

while True:
    board.digital[led_pin].write(0)
    board.pass_time(1)
    board.digital[led_pin].write(1)
    board.pass_time(1)

#Python code for Fading LED:
import time
import pyfirmata

delay = 0.3
brightness = 0
board = pyfirmata.Arduino("/dev/ttyACM0")
led = board.get_pin('d:9:p')    
        
while True:
# increase
    for i in range(0, 10):
        brightness = brightness + 0.1
        print "Setting brightness to %s" % brightness
        led.write(brightness)
        board.pass_time(delay)

# decrease
    for i in range(0, 10):
        print "Setting brightness to %s" % brightness
        led.write(brightness) 
        brightness = brightness - 0.1     
        board.pass_time(delay)

マイクロチャンネル公衆数に焦点:TonyCode
Arduinoの学習交換基:868 283 450

もっと、私は公共の数の関心を歓迎します。Fangerウェイコードに従うようにマイクロチャネルを掃引:
マイクロチャンネルスキャンコードは、公開番号を追加しました:TonyCodeを

63元記事公開 ウォンの賞賛250 ビューに23万+を

おすすめ

転載: blog.csdn.net/TonyIOT/article/details/103108413