Arduino / Processing Topics

※HTML5対応ブラウザでの閲覧推奨(あなたのブラウザは非対応です)

ゼミ内容

Topics

※大学の研究室ゼミで作った資料を使いまわしているため、サーバーを個人用に変更したとき、容量制限などの条件から、まだサンプルソースzipがupできていません。
随時、調整していきます。

第1回 「Arduinoを使ってみよう」

サンプル

メニューバーより、以下を選択。
File > Examples > 1.Basics > Blink
以下、調整中…

第2回 「Processingを使ってみよう」

サンプル

解凍したファイルは、以下のディレクトリにおいてください。
マイドキュメント
└─Processing
  └─bounce_ball_sample
    ├─bounce_ball1
    │ └─bounce_ball1.pde
    ├─bounce_ball2
    │ └─bounce_ball2.pde
    ├─bounce_ball3
    │ └─bounce_ball3.pde
    └─bounce_ball4
      └─bounce_ball4.pde

bounce_ball_sample

画面上をボールがバウンドするプログラムです。
徐々に機能が追加されています。
次に、各ファイルの特徴を示します。

bounce_ball1

  • 画面上を1つのボールがバウンドするシンプルなプログラム

bounce_ball2

  • クラスを用いてボールを定義

bounce_ball3

  • 配列クラスを用いてボールを定義
  • コンストラクタを利用して初期設定を行なう
  • ボール色(Ball.b_fill)を乱数設定

ここまでが目標。
他にも、重力や風の影響、反発係数の設定など、プラスの機能を各自で考えてみてください。

bounce_ball4 (おまけサンプル)

  • 重力、風の影響、反発係数を実装

第3回 「ArduinoとProcessingを連携させてみよう(1)」

サンプル

解凍したファイルは、以下のディレクトリにおいてください。
マイドキュメント
├─Arduino
│ ├─serial_test
│ │ └─serial_test.pde
│ └─button_serial
│   └─button_serial.pde
│ 
└─Processing
  ├─serial_test
  │ └─serial_test.pde
  └─button_serial
    ├─button.pde
    ├─button_serial.pde
    ├─sketch.properties
    └─data
      └─MS-Gothic-48.vlw

serial_test

Arduinoの動作 通信方向 Processingの動作
「0、1、2、…255」を繰り返し送信 ―> 受信値をx座標とする円(上段)を出力
D11ピンにPWM出力 <― 「0、2、4、…254」を繰り返し送信
受信値をx座標とする円(下段)を出力

※下段の円しか動かない場合、通信がうまくいっていません。
Processingのスケッチで、

myPort = new Serial(this,Serial.list()[2],9600);

の値を変えてみてください。
この値は、PCでアクティブなCOMポートの内、何個目を使用するかを指定するものです。

button_serial

Arduinoの動作 通信方向 Processingの動作
D12ピンの状態を取得し、HIGHなら1、LOWなら2を送信 ―> 受信した値により、背景色を変更
受信した値+2番(D2~D6)のピンをHIGHにする
※D0,D1は、シリアル通信に使用中のため、使用不可
<― 押されたボタン番号(0~4)を送信

※別途、「Button.pde」のButtonクラスにより、ボタン色を制御

第4回 「ArduinoとProcessingを連携させてみよう(2)」

作品製作の準備

  • まず、作品の概要(何を作るか)を決めよう
  • ハードウェア(回路、機械)は、何が必要?
  • ソフトウェアに必要な機能(関数=メソッド、クラス)は?
  • 以上から作成した設計図を元に、ブレッドボード上で動かしてみよう
  • (必要なら修正を行なって、)基板上に組み立てよう

※ユニバーサル基板については、「27×17 片面スルーホール基板」(4隅がネジ穴のため、3つずつ穴が減っている)を使用する予定です。
 その他、抵抗、線材、ギヤボックス、タイヤ、ユニバーサルプレート等、基本的な部品に関しては、研究室に在庫があります。

サンプル - ブロック崩しの基本:ボールのバウンドとボードの接触判定

マウスにボードがついて動きます。
また、クリックで初期化されます。
※接触判定は簡単にしか行なっていないので、ボールの縁でなく中心を基準に(半分めりこんで)バウンドしたり、ときどきボードにボールがハマります…
(作る人は是非、そんなことのない作品を作ってくださいね)

HTML5<canvas>タグが有効なブラウザを利用してください

この操作を、Arduinoを用いたコントローラで行なうとして、シリアル通信で送るデータは、

  • 「右へ、左へ」というコマンドを送る?
  • 「傾けた値」を送る?(毎回、同じだけジョイスティックを傾けると、同じ位置へ移動する)

などが考えられると思います。
各自、面白い方法を考えても楽しいかと思いますので、試行錯誤してみてください。

第5回 「作品制作 / パワーポイント作成」

参考資料を、当サイトの「Appendix」に掲載したので、参考にしてください。