BLE のワイヤレス通信を使って加速度センサのデータを送信しますが、演習中に micro:bit が動作を停止することがあります。その場合は micro:bit 裏面のリセットスイッチで再起動してください。micro:bit が止まってしまう原因は、加速度センサーとBLE通信を同時に動作させることによるリソース不足と思われます。この演習は micro:bit の能力ギリギリまで使っており、マイコンの物理的な制約があることを認識してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
#include <Adafruit_Microbit.h> #include <LSM303AGR_ACC_Sensor.h> #define DEV_I2C Wire Adafruit_Microbit microbit; LSM303AGR_ACC_Sensor Acc(&DEV_I2C); void setup() { Serial.begin(9600); Serial.println("accX,accY,accZ"); microbit.BTLESerial.begin(); microbit.BTLESerial.setLocalName("microbit"); microbit.begin(); DEV_I2C.begin(); Acc.begin(); Acc.Enable(); } void loop() { microbit.BTLESerial.poll(); int32_t accelerometer[3]; Acc.GetAxes(accelerometer); Serial.print(accelerometer[0]); Serial.print(","); Serial.print(accelerometer[1]); Serial.print(","); Serial.println(accelerometer[2]); microbit.BTLESerial.print(accelerometer[0]); microbit.BTLESerial.print(","); microbit.BTLESerial.print(accelerometer[1]); microbit.BTLESerial.print(","); microbit.BTLESerial.println(accelerometer[2]); delay(100); } |
まず micro:bit をUSBケーブルでパソコンに接続した状態で、[ツール]>[シリアプロッタ] で加速度センサーの値が表示されることを確かめてください。通信速度は9600bpsです。
次は Bluefruit Connect を micro:bitと接続し、Plotter を起動してください。加速度センサーの値が表示されます。
課題1
micro:bit内蔵の温度センサーの値をスマホでモニターしてください。
コメント