Showing
2 changed files
with
52 additions
and
20 deletions
1 | // I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files | 1 | // I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files |
2 | // for both classes must be in the include path of your project | 2 | // for both classes must be in the include path of your project |
3 | // 전처리부 | 3 | // 전처리부 |
4 | -#include <SoftwareSerial.h> | 4 | +#include <SoftwareSerial.h> // 0,1번핀 제외하고 Serial 통신을 하기 위해 선언 |
5 | #include "I2Cdev.h" | 5 | #include "I2Cdev.h" |
6 | #include "MPU6050.h" | 6 | #include "MPU6050.h" |
7 | 7 | ||
... | @@ -11,8 +11,11 @@ | ... | @@ -11,8 +11,11 @@ |
11 | 11 | ||
12 | #define mpu_add 0x68 | 12 | #define mpu_add 0x68 |
13 | #define Pin_Relay 13 | 13 | #define Pin_Relay 13 |
14 | -#define BT_RXD 7 | 14 | +#define rxPin 7 |
15 | -#define BT_TXD 6 | 15 | +#define txPin 6 |
16 | + | ||
17 | +SoftwareSerial mySerial(6, 7); | ||
18 | + | ||
16 | MPU6050 mpu; | 19 | MPU6050 mpu; |
17 | 20 | ||
18 | 21 | ||
... | @@ -182,14 +185,13 @@ void Shock_Sensing(){ | ... | @@ -182,14 +185,13 @@ void Shock_Sensing(){ |
182 | } | 185 | } |
183 | 186 | ||
184 | // BLUETOOTH TRANSACTION | 187 | // BLUETOOTH TRANSACTION |
185 | -SoftwareSerial bluetooth(BT_RXD, BT_TXD); // 블루투스 모듈 | ||
186 | - | ||
187 | 188 | ||
188 | /*main 함수부*/ | 189 | /*main 함수부*/ |
189 | void setup() { | 190 | void setup() { |
190 | Serial.begin(9600); // 시리얼 속도 설정 | 191 | Serial.begin(9600); // 시리얼 속도 설정 |
192 | + mySerial.begin(9600); // 블루투스 통신 시작 | ||
191 | Serial.println("Initializing I2C devices..."); | 193 | Serial.println("Initializing I2C devices..."); |
192 | - bluetooth.begin(9600); // 블루투스 속도 설정 | 194 | + // bluetooth.begin(9600); // 블루투스 속도 설정 |
193 | Serial.println("Initializing Bluetooth devices..."); | 195 | Serial.println("Initializing Bluetooth devices..."); |
194 | 196 | ||
195 | mpu6050_init(); // 가속도 센서 초기화 | 197 | mpu6050_init(); // 가속도 센서 초기화 |
... | @@ -200,7 +202,7 @@ void setup() { | ... | @@ -200,7 +202,7 @@ void setup() { |
200 | digitalWrite(Pin_Relay , LOW); // HIGH - LED on, LOW - LED off (DEFAULT : OFF) | 202 | digitalWrite(Pin_Relay , LOW); // HIGH - LED on, LOW - LED off (DEFAULT : OFF) |
201 | } | 203 | } |
202 | 204 | ||
203 | -char char_maker(char x){ // 백그라운드 앱에 전송할 충격을 구분해서 char값으로 반환하는 함수 | 205 | +char char_maker(long x){ // 백그라운드 앱에 전송할 충격을 구분해서 char값으로 반환하는 함수 |
204 | if(x<=15000){ | 206 | if(x<=15000){ |
205 | return 'L'; | 207 | return 'L'; |
206 | } | 208 | } |
... | @@ -215,22 +217,36 @@ char char_maker(char x){ // 백그라운드 앱에 전송할 충격을 구분 | ... | @@ -215,22 +217,36 @@ char char_maker(char x){ // 백그라운드 앱에 전송할 충격을 구분 |
215 | 217 | ||
216 | void loop() { | 218 | void loop() { |
217 | value_init(); //가속도-각도 관련 초기값 선언 | 219 | value_init(); //가속도-각도 관련 초기값 선언 |
220 | + // softwareSerial.print("test"); | ||
218 | //---------dump--------------------do not erase yet- | 221 | //---------dump--------------------do not erase yet- |
219 | //unsigned long currentMillis = 0; | 222 | //unsigned long currentMillis = 0; |
220 | //previousMillis = currentMillis; | 223 | //previousMillis = currentMillis; |
221 | //if(currentMillis - previousMillis >= interval){ | 224 | //if(currentMillis - previousMillis >= interval){ |
222 | //if(currentMillis - previousMillis >= interval){ | 225 | //if(currentMillis - previousMillis >= interval){ |
223 | //-------------------------------------------------- | 226 | //-------------------------------------------------- |
224 | - | 227 | + |
228 | + | ||
229 | + | ||
230 | + | ||
231 | + | ||
232 | + | ||
225 | Shock_Sensing(); | 233 | Shock_Sensing(); |
226 | if(State_Parameter == true){ | 234 | if(State_Parameter == true){ |
227 | shock_sum += deltha; | 235 | shock_sum += deltha; |
228 | - //currentMillis = millis(); | 236 | + // currentMillis = millis(); |
229 | } | 237 | } |
230 | if(State_Parameter == false && shock_sum != 0){ | 238 | if(State_Parameter == false && shock_sum != 0){ |
231 | - bluetooth.write(char_maker(shock_sum)); // 블루투스로 충격정도 전송 (shock_maker 라는 char 리턴함수를 통해 진동강도 전송) | 239 | + if (Serial.available()){ // 블루투스로 충격정도 전송 (shock_maker 라는 char 리턴함수를 통해 진동강도 전송) |
240 | + mySerial.write(char(char_maker(shock_sum))); | ||
241 | + Serial.println(char_maker(shock_sum)); | ||
242 | + Serial.println("send complete"); | ||
243 | + } | ||
244 | + //bluetooth.write(char_maker(shock_sum)); | ||
232 | Serial.print("누적 충격값 : "); | 245 | Serial.print("누적 충격값 : "); |
233 | Serial.println(shock_sum); // 충격 누적값 전송 | 246 | Serial.println(shock_sum); // 충격 누적값 전송 |
234 | shock_sum = 0; // 충격의 지속이 끝났으니 원래값인 0으로 초기화 | 247 | shock_sum = 0; // 충격의 지속이 끝났으니 원래값인 0으로 초기화 |
235 | } | 248 | } |
249 | + if (mySerial.available()){ // 안드로이드 쪽에서 값을 아두이노로 가져오는 코드, 필요없을거 같아서 주석처리 | ||
250 | + Serial.write(mySerial.read()); | ||
251 | + } | ||
236 | } | 252 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
1 | // I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files | 1 | // I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files |
2 | // for both classes must be in the include path of your project | 2 | // for both classes must be in the include path of your project |
3 | // 전처리부 | 3 | // 전처리부 |
4 | -#include <SoftwareSerial.h> | 4 | +#include <SoftwareSerial.h> // 0,1번핀 제외하고 Serial 통신을 하기 위해 선언 |
5 | #include "I2Cdev.h" | 5 | #include "I2Cdev.h" |
6 | #include "MPU6050.h" | 6 | #include "MPU6050.h" |
7 | 7 | ||
... | @@ -11,8 +11,11 @@ | ... | @@ -11,8 +11,11 @@ |
11 | 11 | ||
12 | #define mpu_add 0x68 | 12 | #define mpu_add 0x68 |
13 | #define Pin_Relay 13 | 13 | #define Pin_Relay 13 |
14 | -#define BT_RXD 7 | 14 | +#define rxPin 7 |
15 | -#define BT_TXD 6 | 15 | +#define txPin 6 |
16 | + | ||
17 | +SoftwareSerial mySerial(6, 7); | ||
18 | + | ||
16 | MPU6050 mpu; | 19 | MPU6050 mpu; |
17 | 20 | ||
18 | 21 | ||
... | @@ -182,14 +185,13 @@ void Shock_Sensing(){ | ... | @@ -182,14 +185,13 @@ void Shock_Sensing(){ |
182 | } | 185 | } |
183 | 186 | ||
184 | // BLUETOOTH TRANSACTION | 187 | // BLUETOOTH TRANSACTION |
185 | -SoftwareSerial bluetooth(BT_RXD, BT_TXD); // 블루투스 모듈 | ||
186 | - | ||
187 | 188 | ||
188 | /*main 함수부*/ | 189 | /*main 함수부*/ |
189 | void setup() { | 190 | void setup() { |
190 | Serial.begin(9600); // 시리얼 속도 설정 | 191 | Serial.begin(9600); // 시리얼 속도 설정 |
192 | + mySerial.begin(9600); // 블루투스 통신 시작 | ||
191 | Serial.println("Initializing I2C devices..."); | 193 | Serial.println("Initializing I2C devices..."); |
192 | - bluetooth.begin(9600); // 블루투스 속도 설정 | 194 | + // bluetooth.begin(9600); // 블루투스 속도 설정 |
193 | Serial.println("Initializing Bluetooth devices..."); | 195 | Serial.println("Initializing Bluetooth devices..."); |
194 | 196 | ||
195 | mpu6050_init(); // 가속도 센서 초기화 | 197 | mpu6050_init(); // 가속도 센서 초기화 |
... | @@ -200,7 +202,7 @@ void setup() { | ... | @@ -200,7 +202,7 @@ void setup() { |
200 | digitalWrite(Pin_Relay , LOW); // HIGH - LED on, LOW - LED off (DEFAULT : OFF) | 202 | digitalWrite(Pin_Relay , LOW); // HIGH - LED on, LOW - LED off (DEFAULT : OFF) |
201 | } | 203 | } |
202 | 204 | ||
203 | -char char_maker(char x){ // 백그라운드 앱에 전송할 충격을 구분해서 char값으로 반환하는 함수 | 205 | +char char_maker(long x){ // 백그라운드 앱에 전송할 충격을 구분해서 char값으로 반환하는 함수 |
204 | if(x<=15000){ | 206 | if(x<=15000){ |
205 | return 'L'; | 207 | return 'L'; |
206 | } | 208 | } |
... | @@ -215,22 +217,36 @@ char char_maker(char x){ // 백그라운드 앱에 전송할 충격을 구분 | ... | @@ -215,22 +217,36 @@ char char_maker(char x){ // 백그라운드 앱에 전송할 충격을 구분 |
215 | 217 | ||
216 | void loop() { | 218 | void loop() { |
217 | value_init(); //가속도-각도 관련 초기값 선언 | 219 | value_init(); //가속도-각도 관련 초기값 선언 |
220 | + // softwareSerial.print("test"); | ||
218 | //---------dump--------------------do not erase yet- | 221 | //---------dump--------------------do not erase yet- |
219 | //unsigned long currentMillis = 0; | 222 | //unsigned long currentMillis = 0; |
220 | //previousMillis = currentMillis; | 223 | //previousMillis = currentMillis; |
221 | //if(currentMillis - previousMillis >= interval){ | 224 | //if(currentMillis - previousMillis >= interval){ |
222 | //if(currentMillis - previousMillis >= interval){ | 225 | //if(currentMillis - previousMillis >= interval){ |
223 | //-------------------------------------------------- | 226 | //-------------------------------------------------- |
224 | - | 227 | + |
228 | + | ||
229 | + | ||
230 | + | ||
231 | + | ||
232 | + | ||
225 | Shock_Sensing(); | 233 | Shock_Sensing(); |
226 | if(State_Parameter == true){ | 234 | if(State_Parameter == true){ |
227 | shock_sum += deltha; | 235 | shock_sum += deltha; |
228 | - //currentMillis = millis(); | 236 | + // currentMillis = millis(); |
229 | } | 237 | } |
230 | if(State_Parameter == false && shock_sum != 0){ | 238 | if(State_Parameter == false && shock_sum != 0){ |
231 | - bluetooth.write(char_maker(shock_sum)); // 블루투스로 충격정도 전송 (shock_maker 라는 char 리턴함수를 통해 진동강도 전송) | 239 | + if (Serial.available()){ // 블루투스로 충격정도 전송 (shock_maker 라는 char 리턴함수를 통해 진동강도 전송) |
240 | + mySerial.write(char(char_maker(shock_sum))); | ||
241 | + Serial.println(char_maker(shock_sum)); | ||
242 | + Serial.println("send complete"); | ||
243 | + } | ||
244 | + //bluetooth.write(char_maker(shock_sum)); | ||
232 | Serial.print("누적 충격값 : "); | 245 | Serial.print("누적 충격값 : "); |
233 | Serial.println(shock_sum); // 충격 누적값 전송 | 246 | Serial.println(shock_sum); // 충격 누적값 전송 |
234 | shock_sum = 0; // 충격의 지속이 끝났으니 원래값인 0으로 초기화 | 247 | shock_sum = 0; // 충격의 지속이 끝났으니 원래값인 0으로 초기화 |
235 | } | 248 | } |
249 | + if (mySerial.available()){ // 안드로이드 쪽에서 값을 아두이노로 가져오는 코드, 필요없을거 같아서 주석처리 | ||
250 | + Serial.write(mySerial.read()); | ||
251 | + } | ||
236 | } | 252 | } | ... | ... |
-
Please register or login to post a comment