스위치를 누를 때 가속도 값을 Bluetooth로 전송
제스처 게임을 목표로 하고 있으므로,
필수적입니다.
동작의 잘라내기는 역치를 지정해 하는 것으로 해결할 수 있습니다만, 이번은 Wii의 볼링을 견습해 버튼(스위치)로 잘라내고 싶습니다.
스위치를 누르고 있는 동안의 움직임을 제스처로 인식합니다.
회로
이런 느낌↓
코드
acc_ble.ino
#include <SparkFunLSM9DS1.h>
#include "BluetoothSerial.h"
#define LSM9DS1_M 0x1E
#define LSM9DS1_AG 0x6B
#define SW_PIN 7 //pin番号を指定する
LSM9DS1 imu;
BluetoothSerial SerialBT;
float x,y,z;
uint16_t connectionState = 0;
void setup()
{
Serial.begin(115200);
SerialBT.begin("ESP32"); //Bluetoothの名前を指定
pinMode(SW_PIN, INPUT);
imu.settings.device.commInterface = IMU_MODE_I2C;
imu.settings.device.mAddress = LSM9DS1_M;
imu.settings.device.agAddress = LSM9DS1_AG;
if (connectionState == 0)
{
connectionState = imu.begin();
while (connectionState == 0)
{
Serial.println("Failed to communicate with LSM9DS1.");
Serial.println("Double-check wiring.");
Serial.println("Default settings in this sketch will "
"work for an out of the box LSM9DS1 "
"Breakout, but may need to be modified "
"if the board jumpers are.");
Serial.print("Connection Status: ");
Serial.println(imu.begin());
delay(1000);
connectionState = imu.begin();
Serial.println("------------------------------------------------------\n");
}if(connectionState!=1){
Serial.print("connectionState: ");
Serial.println(connectionState);
}
}
}
void loop()
{
imu.readAccel();
x=imu.calcAccel(imu.ax)*10;
y=imu.calcAccel(imu.ay)*10;
z=imu.calcAccel(imu.az)*10;
if(digitalRead(SW_PIN) == 1){ //スイッチが押されたら1、離すと0
SerialBT.print("x=");
SerialBT.print(x);
SerialBT.print(", y=");
SerialBT.print(y);
SerialBT.print(", z=");
SerialBT.println(z);
}
delay(500);
}
Bluetooth 연결
쓰기가 끝나면 ESP32는 블루투스 연결을 기다리는 상태가 됩니다.
PC측에서 접속해 봅시다.
완료되면 PC와 분리하여 모바일 배터리 등의 전원에 연결되어 있으면 괜찮습니다.
수신된 값 보기
방법은 몇 가지 있습니다만, 모처럼 Arduino IDE를 사용하고 있으므로 그쪽의 시리얼 모니터(돋보기의 아이콘)로 봅시다.
방금 쓴 포트인 채로 되어 있으므로, "도구"→ "시리얼 포트"에서 Bluetooth의 포트(얼마 전 아니었던 포트)를 찾아 변경합시다.
이상입니다!
뭔가 모르는 것이 있으면 질문 부탁!
Reference
이 문제에 관하여(스위치를 누를 때 가속도 값을 Bluetooth로 전송), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Shun141/items/6f75ab644482902b746e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)