iPhone의 가속도 센서 값을 BLE를 통해 Edison에 보내 컬러 LED를 빛나게 해 본다

8949 단어 EdisonSwiftgpioBLE
소위 L 치카입니다.
간단하지만 움직이는 데 필요한 것이 무엇입니까?
Xcode8 (swift3)에서 조금 쓰는 방법이 바뀌기 때문에 그 근처도 포함.

LED와의 접속은 Intel Edison board for Arduino의 GPIO를 이용

구성



X축 Acceralation -> Red
Y축 Acceralation -> Green
Z축 Acceralation -> Blue

라고 하는 상태에, 3축을 색에 매핑 해 보아, 흔들어 놀 수 있도록 한다

컬러 LED는 수중에 있던 베스트 센서 모듈 킷의 것을 사용, Edison으로부터 GPIO를 이용해 빛나게 한다.
Edison의 GPIO 번호와 MRAA의 번호의 관련은, 이하의 사이트를 참고에.
htp // 이오 tdk. 그렇다면 l. 이 m/도 cs/마s r/m 라아/에아 응. HTML

연결은 다음과 같은 구성



(최종 동영상에서는 10k 저항을 넣고 풀다운합니다 .. 직접 연결하면 너무 밝습니다)

Edison 측 프로그램



컬러 LED를 무작위로 빛나게 한다



우선, Edison측은 PWM을 3개 사용해, 접속한 칼라 LED를 랜덤하게 빛낸다.
BLE 경유로 iPhone으로부터 받은 것을 이용하는 것은 다음.

Edison측의 프로그램은 XDK를 사용해 개발. 컬러 LED를 빛낸다.
새 프로젝트를 만들고 main.js를 다음과 같이 만들었습니다.

main.js
var mraa = require('mraa'); //require mraa

var r = new mraa.Pwm(5);
var g = new mraa.Pwm(3);
var b = new mraa.Pwm(6);

r.enable(true);
r.period_us(2000);
r.write(0.5);

g.enable(true);
g.period_us(2000);
g.write(0.5);

b.enable(true);
b.period_us(2000);
b.write(0.5);

periodicActivity();

var count = 0;
function periodicActivity()
{
  setTimeout(periodicActivity,100);

  // 乱数で適当に色を生成して設定
  var rcolor = (count*Math.random()*10)%255 / 255;
  var gcolor = (count*Math.random()*10)%255 / 255;
  var bcolor = (count*Math.random()*10)%255 / 255;

  r.write(rcolor);
  g.write(gcolor);
  b.write(bcolor);

  count ++;
}

edison에서 컬러 LED 피 c. 라고 r. 코 m / TFgl 뻬 W — Motokazu Nishimura (@motokazu) 2016년 10월 22일


BLE로 기다려 컬러 LED를 빛나게



이 사이트가 매우 도움이됩니다.
h tp : // 에아 음- b. jp/bぉg/2015/07/ぇts-마케-에아 그런 p호네-bぇ. HTML

edison 측면 설정



bluez5-dev 설치
opkg update
opkg install bluez5-dev

블루투스 사용
블루투스 소프트웨어가 차단되어 차단 해제
rfkill list
rfkill unblock bluetooth
rfkill list

코드 설정
git clone https://github.com/motokazu/led-edison-ble.git
cd led-edison-ble
npm i
node main.js 
stateChange : poweredOn
start advertising ...

계속해서 iOS 측 설정



iOS 측은 가속도 센서 값을 얻고 BLE를 통해 데이터를 보냅니다. 이번에는 간이적으로 텍스트를 쉼표로 구분하여 보내기로 했다.
timestamp,acceleration.x,acceleration.y,acceleration.z

코드는 여기
htps : // 기주 b. 코 m / 모토 카즈 /
Xcode로 빌드하고 실제 기기에 설치
  • iOS에서 가속도 센서 값을 얻으려면 CoreMotion을 사용하십시오
  • iOS에서 BLE를 사용하려면 CoreBluetooth.framework를 사용하십시오

  • 완성된 버전의 동영상

    BLE 경유 L치카 피 c. 라고 r. 이 m/cPq2RqjpLK — Motokazu Nishimura (@motokazu) 2016년 10월 22일


    도중에 만난 문제



    개발 도중에, iOS로부터 BLE 경유로 writeValue 해 데이터를 보내고 있으면, 곧바로 송신이 정지해 Edison과의 접속이 Disconnect가 되어 버리는 문제가 발생.
    writeValue : 4743982319333547688,-0.382124,-0.409589,-14.219012
    writeValue : 4743982319333963817,-0.388445,-0.524466,-14.224679
    Disconnect!
    error: Optional(Error Domain=CBErrorDomain Code=7 "The specified device has disconnected from us." UserInfo={NSLocalizedDescription=The specified device has disconnected from us.})
    

    갑자기 연결이 끊어집니다 ....

    참고 페이지를 보고 있으면, "bluetoothd가 배후에서 기동하고 있으면 bleno에 간섭한다"라고 쓰고 있는데.. 이 순서를 날리고 있었다. 다음을 실행하면 연결이 끊어지지 않습니다.
    killall bluetoothd
    hciconfig hci0 up
    

    좋은 웹페이지 즐겨찾기