EXAMPLES

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

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

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

두근두근 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 (두근두근용)


                    

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

3. 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