ProtoPieを使ったArduinoプロトタイピング

2024/06/18

Arduinoプロトタイピング
Arduinoプロトタイピング

Update 2021: 以前、ArduinoとProtoPieの使い方を説明した、初心者のためのソフトウェアとハードウェアを統合したプロトタイプに関する別の記事を書きました。まずはそちらをご確認ください。

最近では、ソフトウェアのインタラクションがハードウェアのインタラクションと一緒に有機的に行われることが多く、場合によっては両者の間に明確な境界線がないこともあります。しかし、私自身がデザイナーであるため、ソフトウェアとハードウェアの間には、伝統的に簡単には乗り越えられない大きな壁があることを知っています。ソフトウェア設計者は通常、ハードウェアをどのように扱えばいいのか、ハードウェアに入力される信号を使ってソフトウェアのインタラクションをどのように作ればいいのかわかりません。同様に、ハードウェア設計者は通常、ハードウェアに組み込まれたソフトウェアをテストするためにコーディングに頼る必要があります。

そこでArduinoとProtoPieの出番です。

ProtoPie Connect経由

ProtoPieはモバイル、ウェブ、ダッシュボード、デジタルスクリーンなどのためのハイファイなプロトタイピングツールです。その拡張機能であるProtoPie Connectは、これらのプロトタイプを実用化するのに役立ちます。スマートデバイス間のインタラクションを作成したり、IoTデバイスやArduinoのような物理コンピューティングツール間で通信したりすることができます。ProtoPie Connectを使って作成したいくつかのデモは、ProtoPie YouTubeチャンネルでご覧いただけます。

ProtoPie Connectは、socket.ioシグナルをサポートするハードウェアと直接通信できます。つまり、他のブリッジアプリを開発する必要はなく、ProtoPie ConnectとArduinoを接続するだけでOKです。この記事では、さらに簡単な方法を紹介します。それは USBで通信する方法です。この方法では、ブリッジアプリのコードを書く必要はありません。

ProtoPie Connectの仕組み

この例では、Arduinoデバイスを使って、UNOボード上のLED、Pushボタン、ピエゾブザー、光センサーで自動車を模倣します。

  • スイッチを押すと車のエンジン音が鳴り、Android携帯の画面が運転席に変わる。

  • ホーンを叩くとピエゾブザーが鳴る。

  • 画面上のボタンを押すとLEDが点灯する。

  • 光センサーを覆う(または周囲を暗くする)と、車内の窓の景色が暗くなる。

下のビデオで、このプロトタイプの動きをご覧ください。

ProtoPieのセットアップ

ProtoPieでは、Receive TriggerとSend Responseを使って他のデバイスと通信することができます。Arduinoデバイスと通信するために必要なのは、チャンネルを "ProtoPie Studio "に設定し、メッセージを好きなものに設定することだけです。

ProtoPie Studio の設定

参考までに、この例では以下のメッセージを使用します。

Arduino Sketch example

Arduinoのセットアップ

Arduinoをセットアップするには、フォト・レジスタ、LED、ピエゾ・ブザー、スイッチ、抵抗2本(LEDは330Ω、フォト・レジスタは10kΩ)が必要です。



Arduinoプロトタイピング

上記で紹介したMessagesを使って、以下のコードをまとめてみた。Arduino Sketchの例です。

// pin numbers
const int LED = 13;
const int PIEZO = 12;
const int SWITCH = 8;

const int LIGHT_VAL_CRITERIA = 600;

int lastSwVal = 0;
int lastBright = -1; // -1: unkown, 0: dark, 1: bright

void setup() {
  pinMode(PIEZO, OUTPUT);
  pinMode(LED, OUTPUT);
  pinMode(SWITCH, INPUT_PULLUP);

  Serial.begin(9600);
}

void loop() {
  // Read from the switch
  int swVal = digitalRead(SWITCH);
  if (swVal != lastSwVal) {
    if (swVal == 0) {
      Serial.println("SWITCH");
    }
    lastSwVal = swVal;
  }

  // Read from the light sensor
  int lightVal = analogRead(A4);
  if (lastBright != 0 && lightVal < LIGHT_VAL_CRITERIA) {
    lastBright = 0;
    Serial.println("BRIGHT"); // Send "BRIGHT" to ProtoPie
  } else if (lastBright != 1 && lightVal >= LIGHT_VAL_CRITERIA) {
    lastBright = 1;
    Serial.println("DARK"); // Send "DARK" to ProtoPie
  }

  // Read from ProtoPie-Connect
  while (Serial.available() > 0) {
    int b = Serial.read();
 
    if (b == 'O') { // Turn on the LED
      digitalWrite(LED, HIGH);
    } else if (b == 'X') { // Turn off the LED
      digitalWrite(LED, LOW);
    } else if (b == 'B') { // Play a beep
      tone(PIEZO, 1047, 100);
    }
  }
}

組み立て

  1. ノートパソコンとArduino UnoをUSBケーブルで接続。

  2. Arduino Sketch(Arduino IDE)で作成したArduinoコードをArduino Unoに送信。

  3. ノートパソコンとモバイルを同じネットワーク環境で接続。

  4. ProtoPie ConnectでArduinoを接続します。"... "をクリックし、USBポートを選択(ポート名は私のものと異なる可能性があります)、ボーレートに9600を入力。

💡 Arduino IDEでシリアルモニターがオンになっていると接続できないので、まずシリアルモニターをオフにしてください。

Arduinoプロトタイピングの組み立て
  1. 次に、NEWボタンをクリックしてパイファイルをProtoPie Connectにアップロード。

  2. 最後のステップは、モバイルでProtoPie Playerを開き、ProtoPie Connectに表示されたQRコードをスキャン。プロトタイプがConnectからPlayerに同期されたことが確認。

💡 PlayerとConnectをQRコードで接続するには、両者が同じネットワークで接続されていることを確認する必要があります。そうでない場合は、USBで接続することを紹介します。

Arduinoを利用する準備は万端です!

ProtoPie Connectを使えば、ArduinoはAndroidやiOSデバイスと通信できます。Arduinoの物理的なボタンを押すと、携帯電話に反応が起こり、携帯電話のタッチスクリーンをタップすると、Arduinoに反応が起こります。

ProtoPieはソフトウェア・プロトタイピング・ツールで、ソフトウェア・プロトタイプをハードウェア・デバイスと通信させることができます。上記の手順に従って、革命的なデザインの可能性を今日から取り入れてください。

ただし、最初にProtoPie Connectが必要ですので、ご注意を!

© 2023 Studio XID. All rights reserved.
Address : ProtoPie Building, 37-6, Hoenamu-ro 13ga-gil, Yongsan-gu, Seoul 04344, Republic of Korea

CEO : Tony Kim

© 2023 Studio XID. All rights reserved.

© 2023 Studio XID. All rights reserved.

© 2023 Studio XID.

© 2023 Studio XID.