EXAMPLES

두근두근앱이 라즈베리파이를 두근거리도록 개발한 기록

두근두근에 블루투스 연결 기능을 넣고 라즈베리파이를 제어하도록 개발한 기록입니다.
- 라즈베리파이에서 소형 진동모터를 제어하는 방법
- 라즈베리파이에서 BLE를 동작시키고 다른 다비이스에서 검색되도록 하는 방법
- 안드로이드에서 라즈베리파이의 BLE(Advertising)신호를 검색하고 연결한 후 데이터를 전송하는 방법

웹브라우저에서 두근거림 패턴 진동시키기

두근두근 API를 통해 내려받은 두근거림 패턴을 웹뷰나 웹브라우저에서 진동시키는 예제입니다.
(현재는 안드로이드, 크롬 브라우저에서만 지원합니다)



                        function doVib(pattern_array) {

                                var hasVib = "vibrate" in navigator || "mozVibrate" in navigator;

                                if (hasVib == false){
                                  alert("진동기능을 지원하지 않는 환경입니다.");
                                  return;
                                }

                                if (!("vibrate" in navigator))
                                  navigator.vibrate = navigator.mozVibrate;

                                pattern_array.shift(); //두근두근앱에서 제작한 진동패턴일 경우는 배열의 첫번째 아이템을 삭제합니다
                                navigator.vibrate(pattern_array);
                        }

                        doVib([10,100,30,100,30,100,30,200,30,200,30,200,30,100,30,100,30,100]); //SOS (두근두근용)


                    

(현재는 안드로이드의 크롬 브라우저에서만 지원합니다)

Cordova에서 두근거림 패턴 진동시키기(IOS용)

두근두근 API를 통해 내려받은 두근거림 패턴을 Cordova에서 진동시키는 방법입니다.

1. 진동기능을 제공하는 Cordova 플러그인을 설치합니다.

                      cordova plugin add cordova-plugin-vibration
                      

2. 자동생성된 'Plugins' 폴더 아래 'CDVVibration.m' 파일의 코드를 아래와 같이 수정합니다.

                        - (void)vibrate:(CDVInvokedUrlCommand*)command
                        {
                            AudioServicesPlaySystemSoundWithCompletion(1520, NULL);
                        }
                      

3. 아래와 같이 두근거림 패턴을 입력으로 받아 진동하는 코드를 작성합니다. (IOS 용)


                        var cur_index = 0;
                        var cur_pattern;
                        var cur_size = 0;
                        var bVibStop = true;

                        function isVibRun() {
                          return !bVibStop;
                        }

                        function stopVib() {
                          bVibStop = true;
                        }

                        function startVib(pattern) {
                          cur_index = 0;
                          bVibStop = false;
                          cur_pattern = pattern;
                          cur_pattern.reverse(); //두근두근앱에서 제작한 진동일 경우는 전체 배열을 뒤집어야 합니다
                          cur_size = pattern.length;
                          if (cur_size <= 0) return;
                          VibFunc();
                        }

                        function VibFunc() {
                          if (bVibStop == true) {
                              return;
                          }

                          if (cur_index >= cur_size) {
                              cur_index = 0;
                          }

                          var item = cur_pattern[cur_index++];
                          var item_sleep = cur_pattern[cur_index++];
                          console.log("item:" + item + " , sl: " + item_sleep);

                          navigator.vibrate(item);
                          setTimeout(function() {
                                     VibFunc();
                                     }, item_sleep);
                        }

                      

4. 아래는 상기 함수들의 사용방법입니다.

                        //첫번째 호출시 진동기능을 시작하고 두번째 호출시 중단하는 예제입니다.
                        function runExample() {
                          if (isVibRun()) {
                              stopVib();
                              return;
                          }

                          console.log("진동시작");

                          startVib([550,
                                 20,
                                 350,
                                 20,
                                 550,
                                 20,
                                 350,
                                 20
                                 ]); //두근두근앱에서 기록한 두근거림 패턴 예제 데이터입니다
                        }
                      

개발 관련 문의하기




간단한 인사부터 개발에 관한 아이디어나 문제점에 대해
의견을 보내주세요. 언제나 환영입니다!

dkdk@aply.biz