【Processing×Arduino】Processingの導入~Lチカ

Arduino

Arduino×Processing

みなさんはProcessingをご存じでしょうか?

Arduinoとシリアル通信をすることでセンサなどを値を可視化できたり、逆にProcessing側からArduinoを操作することが出来たりと活用の幅はとても広いクリエイティブなツールなのですが、もともとは電子アートやビジュアルデザインのために開発された言語のようです。

今回は導入編としてProcessingの開発環境を整えて、ProcessingからArduinoを操作してLチカを行っていこうと思います。

Processing開発環境を整える

まずは下記サイトよりソフトウェアのダウンロードを行いましょう。

Processing公式サイト

1.Download Processingをクリック

2.自身のOSのタイプを選択(ダウンロードが始まります)

3.ダウンロードしたzipファイルを解凍

Processingのサンプルコードで動作確認

まずはサンプルコードで遊んでみましょう。

Processingのアプリケーションを開いて、【ファイル】⇒【Javaサンプル】から様々なサンプルコードを選択可能です。

今回は【Math】⇒【Map】を試してみました。

このコードはマウスのX軸の移動範囲を円の大きさと円の色にマッピングするもののようです。

  • fill(RED, GREEN, BLUE) 各0~255で指定可能
  • ellipse(x, y, width, height)

このようにProcessingは描画のための関数が多く用意されているので、Arduinoなどと組み合わせることで様々な表現が可能になります。

次章では実際にArduinoと連携して動かしてみましょう。

Arduinoと連携(Processing⇒Arduino)

ArduinoとProcessingの連携として、まずはProcessingからArduinoを操作してみたいと思います。

初めてという事でHello worldをProcessing側で表示するのは簡単なので、ProcessingからArduinoを操作してLチカを行いたいと思います。

前提として互いのシリアルポートは同じポートに合わせましょう(Processingはコード内でシリアルポートを指定します)。

プログラムの構想としては、Processing側でボタンを作成し、ボタンをクリックするとLEDが点灯。再度クリックするとLEDが消灯するイベントを作成します。作成にはArduino側とProcessing側でコードを書く必要があります。

■Arduino側

■Processing側

Buttonクラスを作成しているためにコードが長くなっていますが、定常的に動いているところはdraw()の部分です。draw関数とはArduinoでいうloopの部分になります。

動き的にはbutton.isPush()関数でマウスのクリックを検知し、その都度sceneフラグをインクリメントしてswitchで分岐させています。

Arduinoへの通信はシリアル通信を使用しており【processing.serial.*】をインポートする必要があります。LEDをONしたいときは【port.write(‘a’)】でaをシリアル書き込みを行い、OFFしたいときは【port.write(‘b’)】bをシリアル書き込みしています。

POINTProcessingでシリアル通信を行うときは【import processing.serial.*】をインポートすること

 

一旦今回はここで区切って、次回はArduino⇒Processingへ値を渡し可視化してみようと思います。

コメント

タイトルとURLをコピーしました