Wio LTE로 놀아 본다(그 5:3축 디지털 가속도 센서와 GPS)
이번에는 3축 디지털 가속도 센서와 GPS를 사용해 본다.
〇센서
3축 디지털 가속도 센서
GPS
3축 디지털 가속도 센서와 GPS의 조합으로 무엇을 할 수 있는지 모르기 때문에 노 플랜으로 시작해 본다.
〇3축 디지털 가속도 센서
우선,
Download the Digital Accelerometer(±16g) Library
그리고 있기 때문에 전회 마찬가지로 전용 라이브러리를 DL하여 포함.
전회와 다른 것은 Git Hub에의 링크이므로, ZIP로 해 DL.
그리고는 그대로 인클루드 시키면 OK.
Step1: Plug it onto the I2C port of your Grove - Base Shield.
라고 쓰고 있으므로 I2C에 찔러 본다.#include <WioLTEforArduino.h>
#include <ADXL345.h> // https://github.com/Seeed-Studio/Accelerometer_ADXL345
#define INTERVAL (100)
WioLTE Wio;
ADXL345 Accel;
void setup()
{
delay(200);
SerialUSB.println("");
SerialUSB.println("____ START ____________________________________");
SerialUSB.println("### I/O Initialize.");
Wio.Init();
SerialUSB.println("### Power supply ON.");
Wio.PowerSupplyGrove(true);
delay(500);
Accel.powerOn();
SerialUSB.println("### Setup completed.");
}
void loop()
{
int x;
int y;
int z;
Accel.readXYZ(&x, &y, &z);
SerialUSB.print(x);
SerialUSB.print(' ');
SerialUSB.print(y);
SerialUSB.print(' ');
SerialUSB.println(z);
delay(INTERVAL);
}
위는 샘플 스케치 그대로.
실행해 보면 값 그 자체는 간단하게 표시된다.
하지만 의미를 모른다. .
아니, 스케치를 보면 X, Y, Z 축을 나타내고 있는 것은 알지만, 이 값을 보고 「어떻게 움직였는가?」를 도출하는 것은 또 한 단계 귀찮을 것 같다.
그래서, 우선 선반 올려.
흔들렸는지의 체크 정도에 사용할 수 있는 것이라고도 생각해 두면 좋은 것인가?
간이 진도계에도 사용할 수 있을까 생각하는 반면, 이것으로 「얼마나 흔들렸는가?」같은 것을 수집하려고 생각하면 고민할 것 같다.
※진동 체크에 사용하고 싶으면 이 근처의 사이트가 참고하게 해 줄 것 같은 기색
htps : // 아비다. 이오/사 mpぇs/ゔぃb라치온/ゔぃb라치온/
h tps : // / g w w. jp/레ゔぃえw/286/264527
그래서, 이 시점에서 지진등에서 흔들리면 그 지점의 GPS를 취득할 수 있잖아?
라는 아이디어가.
김에 그 정보도 Slack라든지 흘려보고 싶다.
다만, 진도 체크의 부분이 조금 다소 생기기 때문에, 먼저 GPS에.
〇GPS
···
바로 어디에 찌르는지 모르겠다.
일부 사이트를 흔들리고 있으면 아래에 [UART]라고 있으므로 찔러 본다.
h tps // 이오 t. 후 rst 후 r의 s. 코 m/우우오테/g로ゔぇ-gps/
우선 정보는 취득할 수 있었다. 창가가 아니면 역시 취득은 할 수 없다.
하지만 이것만으로는 읽기 어렵다.
그래서 위의 사이트를 그대로 참고로 TinyGPS++" 을 사용하여 읽을 수 있도록 한다.
#include <WioLTEforArduino.h>
#include <TinyGPS++.h>
//状態に対する色設定
#define COLOR_SETUP 0, 10, 0
#define COLOR_MEASURE 0, 0, 10
#define COLOR_MAGNETIC 10, 0, 0
#define COLOR_NONE_MAGNETIC 0, 0, 10
#define COLOR_NEAR 10, 10, 10
#define COLOR_NONE 0, 0, 0
WioLTE Wio;
TinyGPSPlus gps;
void setup()
{
delay(200);
SerialUSB.println("");
SerialUSB.println("____ START ____________________________________");
SerialUSB.println("### I/O Initialize.");
GpsBegin(&Serial);
Wio.Init();
Wio.LedSetRGB(COLOR_SETUP);
SerialUSB.println("### Power supply ON.");
Wio.PowerSupplyGrove(true);
delay(500);
SerialUSB.println("### Setup completed.");
Wio.LedSetRGB(COLOR_NONE);
}
void loop()
{
Wio.LedSetRGB(COLOR_MAGNETIC);
const char* data = GpsRead();
if (data != NULL && strncmp(data, "$GPGGA,", 7) == 0) {
SerialUSB.println(data);
}
Wio.LedSetRGB(COLOR_NONE);
}
////////////////////////////////////////////////////////////////////////////////////////
//
#define GPS_OVERFLOW_STRING "OVERFLOW"
HardwareSerial* GpsSerial;
char GpsData[100];
char GpsDataLength;
void GpsBegin(HardwareSerial* serial)
{
GpsSerial = serial;
GpsSerial->begin(9600);
GpsDataLength = 0;
}
void displayInfo()
{
SerialUSB.print(F("Location: "));
if (gps.location.isValid()) {
SerialUSB.println(gps.location.lat(), 6);
SerialUSB.println(gps.location.lng(), 6);
} else {
SerialUSB.println(F("INVALID"));
}
}
const char* GpsRead()
{
while (GpsSerial->available()) {
char data = GpsSerial->read();
if (gps.encode(data)) {
displayInfo();
}
if (data == '\r') continue;
if (data == '\n') {
GpsData[GpsDataLength] = '\0';
GpsDataLength = 0;
return GpsData;
}
if (GpsDataLength > sizeof (GpsData) - 1) { // Overflow
GpsDataLength = 0;
return GPS_OVERFLOW_STRING;
}
GpsData[GpsDataLength++] = data;
}
return NULL;
}
////////////////////////////////////////////////////////////////////////////////////////
※SETUP시에 LED를 붙이는 것이 알기 쉽고 조금 마음에 들었으므로 유용.
이런 느낌. 이해하기 쉽다.
간이 진도계까지는 앞으로 한숨 쉬는 느낌이지만, 우선 이번은 여기까지.
우선 스타트업으로서 따라 온 센서류는 한번 만져 보았던 것일까.
이들과 SORACOM의 통신도 조합해 「간이 진도계」를 목표로 해볼까 생각한다.
Reference
이 문제에 관하여(Wio LTE로 놀아 본다(그 5:3축 디지털 가속도 센서와 GPS)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryo_naka/items/5ab8f0374d68f0df7394텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)