Help us understand the problem. What is going on with this article?

グラスをスマートにする技術~その1:OSC通信~

More than 1 year has passed since last update.

概要:

 家庭の食卓を賑やかに盛り上げたい。そんなことを思ったことはありませんか?
 私が所属するaNo研は、会話するグラス「スマートグラス e幹事」を発表しました。
 この記事は、「スマートグラス e幹事」に使われている技術を紹介します。

・実施例


システム構成

181125_ekanji.png

スマートグラス e幹事は、OSC通信(OpenSound Control)というインターフェイスを使って、RasberryPIと相互に通信しています。OSC通信はもともと、音楽データ通信に使われていましたが、その通信の柔軟さなどからさまざまなケースに利用されるようになってきています。M5stackでもArduinoのライブラリを使うことで、OSC通信を使うことができます。

RasberryPIでOSC通信準備

 RasberryPIでOSC通信するために、今回は、aike氏が作成された、oscer を利用させてもらいました。

 まず、goの開発環境をインストールします。

 # sudo apt-get install golang-go

goのversionを確認して、インストールができているか、確認します。

 $ go version
 go version go1.6.2 linux/amd64

 oscerをコンパイルします。

 $ git clone https://github.com/aike/oscer.git
 $ cd oscer/src
 $ make

 コンソールを二つ立ち上げ、RasberryPIの中で通信できているか、確認してみましょう。

送信側

 $ ./oscer localhost 10000 /hello

受信側

 $ ./oscer receive 10000
  ./hello

M5StackでOSC通信準備

M5StackでOSC通信をするために、hideakitai氏が作成された、ArduinoOSCを利用します。
Arduinoのライブラリマネージャーから、ArduinoOSCを選択し、インストールします。

181125_ekanji_2.png

実装例

以下に、RasberryPIから、M5Stackへ、メッセージを送るサンプルを示します。
OSC通信によって、任意の端末へ、メッセージを簡単に送ることが可能になります。

RasberryPIでのOSC通信

 $ ./oscer m5stack_hostname 10000 /msg hogehoge

M5StackでのOSC通信

#include <M5Stack.h>
#include <ArduinoOSC.h>

WiFiUDP udp;
ArduinoOSCWiFi osc;
const char* ssid = "yourwifi";
const char* password = "wifi_password";
const int recv_port = 10000;

void messageCb(OSCMessage& m) {
  String str = m.getArgAsString(0);
  int len = str.length(); 
  Serial.println(str);
}

void setup() {
  Serial.begin(115200);
  Serial.print("Connecting to " + String(ssid));

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.print("Connected! IP address: ");
  Serial.print(WiFi.localIP());
  osc.begin(udp, recv_port);
  osc.addCallback("/msg", &messageCb);

}

void loop() {
  osc.parse();
  delay(1000);
}


aNo研:https://anoken.jimdo.com/

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away