글라스를 스마트하게 하는 기술~그 1:OSC 통신~

개요:



가정의 식탁을 활기차게 고조시키고 싶다. 그런 생각을 한 적 없습니까?
내가 소속하는 aNo연은, 대화하는 글라스 「스마트 글라스 e 간사」를 발표했습니다.
 이 기사는, 「스마트 글라스 e 간사」에 사용되고 있는 기술을 소개합니다.

・실시예

여러분 안녕하세요! 오늘은 특히 더운 하루였지만 여러분은 어떻습니까? #MFTokyo2018 까지 앞으로 2일! aNo연부스에서는 대표작인 다도로보를 소개해 주는 컵들도 참전 예정! 여러분의 방문을 기다리고 있습니다! 출점 장소 Food Maker 부스 「D-02-02」피 c. 라고 r. 코 m / 어 2 24 어 PDS — aNo研 (@anoken2017).

시스템 구성



2018년 8월 2일



스마트 글래스 e 간사는 OSC 통신(OpenSound Control)이라는 인터페이스를 사용하여 RasberryPI와 상호 통신하고 있습니다. OSC 통신은 원래 음악 데이터 통신에 사용되었지만, 통신의 유연성 등에서 다양한 경우에 이용되고 있습니다. M5stack에서도 Arduino 라이브러리를 사용하여 OSC 통신을 사용할 수 있습니다.



RaspberryPI로 OSC 통신 준비



RasberryPI로 OSC 통신하기 위해 이번에는 이 작성된 oscer를 이용하게 했습니다.



  우선 go 개발 환경을 설치합니다.



 # sudo apt-get install golang-go


go 버전을 확인하여 설치가 완료되었는지 확인합니다.



 $ 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 통신을 하기 위해 aike씨이 생성된 ArduinoOSC를 이용합니다.

Arduino의 라이브러리 관리자에서 ArduinoOSC를 선택하고 설치합니다.



hideakitai씨



구현 예



다음은 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 연구:


좋은 웹페이지 즐겨찾기