Raspberry PiとArduinoは、アプリケーションと構造の点で2つの異なるハードウェアですが、どちらも2つの競合するオープンソースハードウェアプラットフォームと見なされています。どちらも非常に強力なコミュニティとサポートを持っています。今日は少し変更して、両方を活用する方法を紹介します。ArduinoとRaspberrypiの両方のボードをお持ちの場合、この記事では、RaspberrypiとPythonを使用してArduinoを制御する方法を説明します。
PyFirmataファームウェアを使用して、Raspberry Pipythonスクリプトを使用してArduinoにコマンドを提供します。PyFirmataは、基本的にPythonプログラムのビルド済みライブラリパッケージであり、Arduinoにインストールして、任意のコンピューター上のPythonスクリプトとArduino間のシリアル通信を可能にします。このPythonパッケージは、Arduinoの任意のピンの読み取りと書き込みへのアクセスを提供できます。したがって、ここでは、Raspberrypiを使用してArduinoでPythonプログラムを実行します。
したがって、このチュートリアルでは、このライブラリを利用し、これをArduinoボードで使用して、RaspberryPiを使用してArduinoを制御します。
要件
- RaspbianOSがインストールされたRaspberryPi
- ArduinoUnoまたはその他のArduinoボード
- ArduinoUSBケーブル
- 導いた
このチュートリアルでは、HDMIケーブルを使用した外部モニターを使用してRaspberryPiに接続しています。モニターがない場合は、SSHクライアント(Putty)またはVNCサーバーを使用して、ラップトップまたはコンピューターを使用してRaspberrypiに接続できます。問題が発生した場合は、RaspberryPiガイドをご覧ください。
RaspberryPiを使用してArduinoにPyFirmataをインストールする
ArduinoにPyFirmataファームウェアをアップロードするには、RaspberryPiにArduinoIDEをインストールする必要があります。次の手順に従ってインストールします。
ステップ1: -RaspberryPiをインターネットに接続します。コマンドターミナルを開き、次のコマンドを入力してEnterキーを押します
須藤のapt -取得 - yは arduinoのインストールのpythonを-シリアル水銀
数分お待ちください。時間がかかります。このコマンドは、ArduinoIDEをRaspberryPiにインストールします。
ステップ2:- 次に、指定されたgithubを使用してpyFirmataファイルをインストールします。
git clone https://github.com/tino/pyFirmata
次に、次のコマンドを実行します。
cd pyFirmata sudo python setup.py install
ステップ3:- 必要なすべてのファイルとセットアップをインストールしました。
次に、USBケーブルを使用してArduinoボードをRaspberry Piに接続し、ターミナルウィンドウに arduino と入力して ArduinoIDEを起動 します。
ステップ4:- 次に、 lsusb コマンドを入力して、Arduinoがラズベリーパイに接続されているかどうかを確認します。
Arduino IDEで、ツールに移動し、ボードとシリアルポートを選択します。
ステップ5:- [ファイル] -> [例]-> [Firmata]-> [Standard Firmata]をクリックして、ArduinoにPyFirmataファームウェアをアップロードし、 [アップロード]ボタンをクリックします。以下に示すように。
ArduinoボードにpyFirmataファームウェアが正常にインストールされました。これで、RaspberryPiを使用してArduinoを制御できます。
デモンストレーションのために、Raspberry PiでPythonコードを記述して、ArduinoのLEDを点滅およびフェードさせます。
コードの説明
コーディング部分については、理解を深めるためにpyFirmataのドキュメントを読む必要があります。pyFirmata関数を使用してコードを記述します。リンクをたどると、pyFirmataのドキュメントを見つけることができます。
それでは、コードを書き始めましょう
Raspberry Piでお気に入りのテキストエディタを開き、pyFirmataライブラリをインポートします。
pyfirmataをインポートします
LEDを接続するためのArduinoのピンを定義します
led_pin = 9
ここで、pyfirmata.Arduino()関数を使用してArduinoボードが接続されているシリアルポート名を記述し、 ボード 変数にポートを割り当ててインスタンスを作成する必要があります。
board = pyfirmata.Arduino( "/ dev / ttyACM0") print "コードが実行されています"
で しばらく ループ、使用してピンのハイとローを率いて作る board.digital.write() 関数と使用して所与の遅延 board.pass_time() 関数を。
Trueの場合: board.digital.write(0) board.pass_time(1) board.digital.write(1) board.pass_time(1)
コードの準備ができました。ファイル名に .py 拡張子を付けて、このコードを保存してください。
コマンドターミナルを開き、 python flash.py と入力して、Arduinoボードでコードを実行します。ArduinoボードがUSBケーブルを使用してRaspberryPiボードに接続されていることを確認してください。
これで、ArduinoボードにLEDの点滅が表示されます。
最後に、pyFirmataを使用してLEDを点滅させるための完全なコードを示します。
pyFirmataを使用したArduinoのフェージングLED
ここで、pyFirmata関数に慣れるために、LEDをフェードするコードを記述します。このコードは前のコードと同じように簡単です。2つの for ループを使用する必要があります。1つ は 輝度を上げるため、もう1つは輝度を下げるためです。
このコードでは、led = board.get_pin( 'd:9:p')のようにさまざまな方法でピンを定義しています。ここで、dはデジタルピンを意味します。これはpyFirmataライブラリの機能です。詳細については、ドキュメントをお読みください。
最後に、pyFirmataを使用したフェージングLEDの完全なコードを示します。
これで、システムにセンサーを追加してよりクールにすることができます。他のArduinoプロジェクトを確認し、Raspberrypiとpythonスクリプトを使用してそれらを構築してみてください。