Arduino101에서 BLE MIDI L 치카
Arduino101은 무엇입니까?
Arudino의 플랫폼에 Intel 사제의 칩 Curie를 실어 Bluetooth나 각종 센서를 간편하게 사용할 수 버리는 Arudino입니다.
의식: L치카
현인 계기로 Arduino101을 얻었는데, 봉인도 비우지 않고 왠지 방치하고 소중히 보관하고 있었습니다. 그렇다고는 해도, 이것도 현인 계기로 만지고 싶어집니다.
그리고, 한다면 「L치카」가 되는 것입니다만 조금 색을 붙여 BLE MIDI L치카를 해 보았습니다.
샘플
Arudino의 좋은 곳은 샘플이 IDE에 짜넣어져 있어, 아빠와 팩하는 참고로 할 수 있는 곳. 이번은 BLE MIDI입니다만, 실은 아직 샘플에는 짜넣어지고 있지 않고, 이것도 또 현인 계기로부터 Github로부터 샘플을 파내고 있었습니다.
샘플 파일은 여기에 있습니다.
그래서 샘플을 다시 씁니다.
BLE MIDI L치카코드
거의 샘플 의 유용으로 midiCharacteristicWritten()
의 Method만을 변경했습니다. 거동은 모처럼 MIDI이므로 MIDI감을 맛볼 수 있도록 이하와 같이 변경하고 있습니다.
- 0x90: 점등
- 그 외 : 꺼짐
그리고 L치카이므로 PIN의 번호라든지 지정도 하고 있습니다.int LED_PIN=13;
pinMode(LED_PIN, OUTPUT);
그리고 L치카를 컨트롤하는 앱은 물론 Web MIDI API를 사용한 것을 준비했습니다.
MIDI 메시지를 발행하는 웹 앱
( 두 소스는 여기에 있습니다. )
#include <CurieBLE.h>
#define TXRX_BUF_LEN 20 //max number of bytes
#define RX_BUF_LEN 20 //max number of bytes
uint8_t rx_buf[RX_BUF_LEN];
int rx_buf_num, rx_state = 0;
uint8_t rx_temp_buf[20];
uint8_t outBufMidi[128];
//Buffer to hold 5 bytes of MIDI data. Note the timestamp is forced
uint8_t midiData[] = {0x80, 0x80, 0x00, 0x00, 0x00};
BLEPeripheral midiDevice; // create peripheral instance
BLEService midiSvc("03B80E5A-EDE8-4B33-A751-6CE34EC4C700"); // create service
// create switch characteristic and allow remote device to read and write
BLECharacteristic midiChar("7772E5DB-3868-4112-A1A9-F2669D106BF3", BLEWrite | BLEWriteWithoutResponse | BLENotify | BLERead, 5);
int LED_PIN=13;
void setup() {
Serial.begin(9600);
BLESetup();
Serial.println(("Bluetooth device active, waiting for connections..."));
}
void BLESetup()
{
// set the local name peripheral advertises
midiDevice.setLocalName("Auxren");
midiDevice.setDeviceName("Auxren");
// set the UUID for the service this peripheral advertises
midiDevice.setAdvertisedServiceUuid(midiSvc.uuid());
// add service and characteristic
midiDevice.addAttribute(midiSvc);
midiDevice.addAttribute(midiChar);
// assign event handlers for connected, disconnected to peripheral
midiDevice.setEventHandler(BLEConnected, midiDeviceConnectHandler);
midiDevice.setEventHandler(BLEDisconnected, midiDeviceDisconnectHandler);
// assign event handlers for characteristic
midiChar.setEventHandler(BLEWritten, midiCharacteristicWritten);
// set an initial value for the characteristic
midiChar.setValue(midiData, 5);
// advertise the service
midiDevice.begin();
pinMode(LED_PIN, OUTPUT);
}
void loop() {
}
void midiDeviceConnectHandler(BLECentral& central) {
// central connected event handler
Serial.print("Connected event, central: ");
Serial.println(central.address());
}
void midiDeviceDisconnectHandler(BLECentral& central) {
// central disconnected event handler
Serial.print("Disconnected event, central: ");
Serial.println(central.address());
}
void midiCharacteristicWritten(BLECentral& central, BLECharacteristic& characteristic) {
if((midiChar.value())[2]==0x90) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
}
작동 중 영상
흔들리고 스미마 센> <
Mac과 BLE MIDI로 연결하는 것이 조금 번거롭기 때문에 영상을 참고하십시오. (이미지를 클릭하면 동영상을 볼 수 있습니다)
덤
웹 앱은 무엇입니까? 그리고 신경이 쓰이는 분은 여기를 참조하십시오.
- MIDI 디바이스의 준비 불필요, Web MIDI API의 기초(HTML5 Experts.jp)
- Web MIDI API 사용 자습서
Reference
이 문제에 관하여(Arduino101에서 BLE MIDI L 치카), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ryoyakawai/items/e8aaeade1cdc3618929a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
현인 계기로 Arduino101을 얻었는데, 봉인도 비우지 않고 왠지 방치하고 소중히 보관하고 있었습니다. 그렇다고는 해도, 이것도 현인 계기로 만지고 싶어집니다.
그리고, 한다면 「L치카」가 되는 것입니다만 조금 색을 붙여 BLE MIDI L치카를 해 보았습니다.
샘플
Arudino의 좋은 곳은 샘플이 IDE에 짜넣어져 있어, 아빠와 팩하는 참고로 할 수 있는 곳. 이번은 BLE MIDI입니다만, 실은 아직 샘플에는 짜넣어지고 있지 않고, 이것도 또 현인 계기로부터 Github로부터 샘플을 파내고 있었습니다.
샘플 파일은 여기에 있습니다.
그래서 샘플을 다시 씁니다.
BLE MIDI L치카코드
거의 샘플 의 유용으로 midiCharacteristicWritten()
의 Method만을 변경했습니다. 거동은 모처럼 MIDI이므로 MIDI감을 맛볼 수 있도록 이하와 같이 변경하고 있습니다.
- 0x90: 점등
- 그 외 : 꺼짐
그리고 L치카이므로 PIN의 번호라든지 지정도 하고 있습니다.int LED_PIN=13;
pinMode(LED_PIN, OUTPUT);
그리고 L치카를 컨트롤하는 앱은 물론 Web MIDI API를 사용한 것을 준비했습니다.
MIDI 메시지를 발행하는 웹 앱
( 두 소스는 여기에 있습니다. )
#include <CurieBLE.h>
#define TXRX_BUF_LEN 20 //max number of bytes
#define RX_BUF_LEN 20 //max number of bytes
uint8_t rx_buf[RX_BUF_LEN];
int rx_buf_num, rx_state = 0;
uint8_t rx_temp_buf[20];
uint8_t outBufMidi[128];
//Buffer to hold 5 bytes of MIDI data. Note the timestamp is forced
uint8_t midiData[] = {0x80, 0x80, 0x00, 0x00, 0x00};
BLEPeripheral midiDevice; // create peripheral instance
BLEService midiSvc("03B80E5A-EDE8-4B33-A751-6CE34EC4C700"); // create service
// create switch characteristic and allow remote device to read and write
BLECharacteristic midiChar("7772E5DB-3868-4112-A1A9-F2669D106BF3", BLEWrite | BLEWriteWithoutResponse | BLENotify | BLERead, 5);
int LED_PIN=13;
void setup() {
Serial.begin(9600);
BLESetup();
Serial.println(("Bluetooth device active, waiting for connections..."));
}
void BLESetup()
{
// set the local name peripheral advertises
midiDevice.setLocalName("Auxren");
midiDevice.setDeviceName("Auxren");
// set the UUID for the service this peripheral advertises
midiDevice.setAdvertisedServiceUuid(midiSvc.uuid());
// add service and characteristic
midiDevice.addAttribute(midiSvc);
midiDevice.addAttribute(midiChar);
// assign event handlers for connected, disconnected to peripheral
midiDevice.setEventHandler(BLEConnected, midiDeviceConnectHandler);
midiDevice.setEventHandler(BLEDisconnected, midiDeviceDisconnectHandler);
// assign event handlers for characteristic
midiChar.setEventHandler(BLEWritten, midiCharacteristicWritten);
// set an initial value for the characteristic
midiChar.setValue(midiData, 5);
// advertise the service
midiDevice.begin();
pinMode(LED_PIN, OUTPUT);
}
void loop() {
}
void midiDeviceConnectHandler(BLECentral& central) {
// central connected event handler
Serial.print("Connected event, central: ");
Serial.println(central.address());
}
void midiDeviceDisconnectHandler(BLECentral& central) {
// central disconnected event handler
Serial.print("Disconnected event, central: ");
Serial.println(central.address());
}
void midiCharacteristicWritten(BLECentral& central, BLECharacteristic& characteristic) {
if((midiChar.value())[2]==0x90) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
}
작동 중 영상
흔들리고 스미마 센> <
Mac과 BLE MIDI로 연결하는 것이 조금 번거롭기 때문에 영상을 참고하십시오. (이미지를 클릭하면 동영상을 볼 수 있습니다)
덤
웹 앱은 무엇입니까? 그리고 신경이 쓰이는 분은 여기를 참조하십시오.
- MIDI 디바이스의 준비 불필요, Web MIDI API의 기초(HTML5 Experts.jp)
- Web MIDI API 사용 자습서
Reference
이 문제에 관하여(Arduino101에서 BLE MIDI L 치카), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ryoyakawai/items/e8aaeade1cdc3618929a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
거의 샘플 의 유용으로
midiCharacteristicWritten()
의 Method만을 변경했습니다. 거동은 모처럼 MIDI이므로 MIDI감을 맛볼 수 있도록 이하와 같이 변경하고 있습니다.- 0x90: 점등
- 그 외 : 꺼짐
그리고 L치카이므로 PIN의 번호라든지 지정도 하고 있습니다.
int LED_PIN=13;
pinMode(LED_PIN, OUTPUT);
그리고 L치카를 컨트롤하는 앱은 물론 Web MIDI API를 사용한 것을 준비했습니다.
MIDI 메시지를 발행하는 웹 앱
( 두 소스는 여기에 있습니다. )
#include <CurieBLE.h>
#define TXRX_BUF_LEN 20 //max number of bytes
#define RX_BUF_LEN 20 //max number of bytes
uint8_t rx_buf[RX_BUF_LEN];
int rx_buf_num, rx_state = 0;
uint8_t rx_temp_buf[20];
uint8_t outBufMidi[128];
//Buffer to hold 5 bytes of MIDI data. Note the timestamp is forced
uint8_t midiData[] = {0x80, 0x80, 0x00, 0x00, 0x00};
BLEPeripheral midiDevice; // create peripheral instance
BLEService midiSvc("03B80E5A-EDE8-4B33-A751-6CE34EC4C700"); // create service
// create switch characteristic and allow remote device to read and write
BLECharacteristic midiChar("7772E5DB-3868-4112-A1A9-F2669D106BF3", BLEWrite | BLEWriteWithoutResponse | BLENotify | BLERead, 5);
int LED_PIN=13;
void setup() {
Serial.begin(9600);
BLESetup();
Serial.println(("Bluetooth device active, waiting for connections..."));
}
void BLESetup()
{
// set the local name peripheral advertises
midiDevice.setLocalName("Auxren");
midiDevice.setDeviceName("Auxren");
// set the UUID for the service this peripheral advertises
midiDevice.setAdvertisedServiceUuid(midiSvc.uuid());
// add service and characteristic
midiDevice.addAttribute(midiSvc);
midiDevice.addAttribute(midiChar);
// assign event handlers for connected, disconnected to peripheral
midiDevice.setEventHandler(BLEConnected, midiDeviceConnectHandler);
midiDevice.setEventHandler(BLEDisconnected, midiDeviceDisconnectHandler);
// assign event handlers for characteristic
midiChar.setEventHandler(BLEWritten, midiCharacteristicWritten);
// set an initial value for the characteristic
midiChar.setValue(midiData, 5);
// advertise the service
midiDevice.begin();
pinMode(LED_PIN, OUTPUT);
}
void loop() {
}
void midiDeviceConnectHandler(BLECentral& central) {
// central connected event handler
Serial.print("Connected event, central: ");
Serial.println(central.address());
}
void midiDeviceDisconnectHandler(BLECentral& central) {
// central disconnected event handler
Serial.print("Disconnected event, central: ");
Serial.println(central.address());
}
void midiCharacteristicWritten(BLECentral& central, BLECharacteristic& characteristic) {
if((midiChar.value())[2]==0x90) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
}
작동 중 영상
흔들리고 스미마 센> <
Mac과 BLE MIDI로 연결하는 것이 조금 번거롭기 때문에 영상을 참고하십시오. (이미지를 클릭하면 동영상을 볼 수 있습니다)
덤
웹 앱은 무엇입니까? 그리고 신경이 쓰이는 분은 여기를 참조하십시오.
- MIDI 디바이스의 준비 불필요, Web MIDI API의 기초(HTML5 Experts.jp)
- Web MIDI API 사용 자습서
Reference
이 문제에 관하여(Arduino101에서 BLE MIDI L 치카), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ryoyakawai/items/e8aaeade1cdc3618929a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
웹 앱은 무엇입니까? 그리고 신경이 쓰이는 분은 여기를 참조하십시오.
- MIDI 디바이스의 준비 불필요, Web MIDI API의 기초(HTML5 Experts.jp)
- Web MIDI API 사용 자습서
Reference
이 문제에 관하여(Arduino101에서 BLE MIDI L 치카), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryoyakawai/items/e8aaeade1cdc3618929a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)