Logo ng ArduinoArduino ABX00087 UNO R4 WiFi Development Board

ABX00087 UNO R4 WiFi Development Board

Cricket Shot Recognition gamit ang Arduino UNO R4 WiFi + ADXL345 + Edge
Simbuyo ng damdamin
Nagbibigay ang dokumentong ito ng kumpletong workflow para sa pagbuo ng cricket shot recognition system gamit ang Arduino UNO R4 WiFi na may ADXL345 accelerometer at Edge Impulse Studio. Ang proyekto ay nagsasangkot ng pagkolekta ng data ng accelerometer, pagsasanay ng isang machine learning model, at pag-deploy ng sinanay na modelo pabalik sa Arduino para sa real-time na pag-uuri ng shot.
Ang mga cricket shot ay isinasaalang-alang sa proyektong ito:
– Cover Drive
- Tuwid na Pagmaneho
– Pull Shot

Hakbang 1: Mga Kinakailangan sa Hardware

– Arduino UNO R4 WiFi
– ADXL345 Accelerometer (I2C)
- Mga wire ng jumper
– Breadboard (opsyonal)
– USB Type-C cable

Hakbang 2: Mga Kinakailangan sa Software

– Arduino IDE (pinakabago)
– Edge Impulse Studio account (libre)
– Mga tool sa Edge Impulse CLI (kinakailangan ang Node.js)
– Adafruit ADXL345 library

Hakbang 3: Pag-wire sa ADXL345

Ikonekta ang ADXL345 sensor sa Arduino UNO R4 WiFi tulad ng sumusunod:
VCC → 3.3V
GND → GND
SDA → SDA (A4)
SCL → SCL (A5)
CS → 3.3V (opsyonal, para sa I2C mode)
SDO → lumulutang o GNDArduino ABX00087 UNO R4 WiFi Development Board - tapos naview

Hakbang 4: Ihanda ang IDE Sensor

Paano Mag-install ng Mga Sensor Libraries sa Arduino IDE?
Buksan ang Arduino IDE
Buksan ang Mga Tool → Pamahalaan ang Mga Aklatan… at i-install: Adafruit ADXL345 Unified Adafruit Unified Sensor
(Kung mayroon kang LSM6DSO o MPU6050 sa halip: i-install ang SparkFun LSM6DSO , Adafruit LSM6DS o MPU6050 nang naaayon.)

Hakbang 5: Arduino Sketch para sa Pagkolekta ng Data

I-upload ang sketch na ito sa iyong Arduino UNO R4 WiFi. Nag-stream ito ng data ng accelerometer sa CSV format (x,y,z) sa ~18 Hz para sa Edge Impulse.
#isama
#isama
Adafruit_ADXL345_Pinag-isang accel =
Adafruit_ADXL345_Unified(12345);
void setup() {
Serial.begin(115200);
kung (!accel.begin()) {
Serial.println("Walang ADXL345 na nakita");
habang (1);
}
accel.setRange(ADXL345_RANGE_4_G);
}
void loop() {
sensors_event_t e;
accel.getEvent(&e);
Serial.print (e.acceleration.x);
Serial.print(“,”);
Serial.print(e.acceleration.y);
Serial.print(“,”);
Serial.println(e.acceleration.z);delay(55); // ~18 Hz
}

I-set Up ang Edge Impulse

Arduino ABX00087 UNO R4 WiFi Development Board - I-set Up

Hakbang 6: Pagkonekta sa Edge Impulse

  1. Isara ang Arduino Serial Monitor.
  2. Patakbuhin ang command: edge-impulse-data-forwarder –frequency 18
  3. Ilagay ang mga pangalan ng axis: accX, accY, accZ
  4. Pangalanan ang iyong device: Arduino-Cricket-Board
  5. Kumpirmahin ang koneksyon sa Edge Impulse Studio sa ilalim ng 'Mga Device'.

Arduino ABX00087 UNO R4 WiFi Development Board - Kumokonekta sa Edge ImpulseArduino ABX00087 UNO R4 WiFi Development Board - Kumokonekta sa Edge Impulse 1

Hakbang 7: Pangongolekta ng Data

Sa Edge Impulse Studio → Data acquisition:
– Device: Arduino-Cricket-Board
– Sensor: Accelerometer (3 axes)
– Samphaba: 2000 ms (2 segundo)
– Dalas: 18 Hz
Magtala ng hindi bababa sa 40 samples bawat klase:
– Cover Drive
- Tuwid na Pagmaneho
– Pull ShotArduino ABX00087 UNO R4 WiFi Development Board - Pangongolekta ng DataMangolekta ng Data Halamples
Cover Drive
Device: Arduino-Cricket-Board
Label: Cover Drive
Sensor: Sensor na may 3 axes (accX, accY, accZ)
Samphaba: 10000ms
Dalas: 18 Hz
Exampang Raw Data:
accX -0.32
accY 9.61
accZ -0.12
Straight Drive
Device: Arduino-Cricket-Board
Label: Straight Drive
Sensor: Sensor na may 3 axes (accX, accY, accZ)
Samphaba: 10000ms
Dalas: 18 Hz
Exampang Raw Data:
accX 1.24
accY 8.93
accZ -0.42
Pull Shot
Device: Arduino-Cricket-Board
Label: Pull Shot
Sensor: Sensor na may 3 axes (accX, accY, accZ)
Samphaba: 10000 ms
Dalas: 18 Hz
Exampang Raw Data:
accX 2.01
accY 7.84
accZ -0.63 Arduino ABX00087 UNO R4 WiFi Development Board - Pangongolekta ng Data 1

Hakbang 8: Impulse Design

Buksan ang Lumikha ng impulse:
Input block: Data ng serye ng oras (3 axes).
Laki ng window: 1000 ms Pagtaas ng bintana (stride): 200 ms Paganahin: Axes, Magnitude (opsyonal), frequency 18.
Processing block: Spectral analysis (aka Spectral Features for motion). Laki ng window: 1000 ms Window increase (stride): 200 ms Enable: Axes, Magnitude (opsyonal), panatilihin muna ang lahat ng default.
Learning block: Classification (Keras).
I-click ang I-save ang impulse. Arduino ABX00087 UNO R4 WiFi Development Board - Impulse Design

Bumuo ng mga tampok:
Pumunta sa Spectral analysis, i-click ang I-save ang mga parameter, pagkatapos ay Bumuo ng mga feature para sa training set.

Arduino ABX00087 UNO R4 WiFi Development Board - set ng pagsasanay

Sanayin ang isang maliit na modelo
Pumunta sa Classifier (Keras) at gumamit ng compact config tulad ng:
Neural network: 1–2 siksik na layer (hal., 60 → 30), ReLU
Mga Panahon: 40–60
Rate ng pagkatuto: 0.001–0.005
Laki ng batch: 32
Hati ng data: 80/20 (tren/pagsusulit)
I-save at sanayin ang dataArduino ABX00087 UNO R4 WiFi Development Board - I-save at sanayin ang data

Suriin at Suriin ang pagsubok ng Modelo gamit ang hanay ng holdout.
Suriin ang confusion matrix; kung magkakapatong ang bilog at pataas, mangolekta ng mas magkakaibang data o mag-tweak
Mga spectral na parameter (laki ng bintana / ingay sa sahig).

Hakbang 9: Pag-deploy sa Arduino

Pumunta sa Deployment:
Piliin ang Arduino library (gumagana rin ang C++ library).
I-enable ang EON Compiler (kung available) para paliitin ang laki ng modelo. Arduino ABX00087 UNO R4 WiFi Development Board - Deployment sa ArduinoI-download ang .zip, pagkatapos ay sa Arduino IDE: Sketch → Isama ang Library → Magdagdag ng .ZIP Library… Nagdaragdag ito ng examptulad ng Static buffer at Continuous under File → Halamples →
Pangalan ng Iyong Proyekto – Edge Impulse. Inference sketch para sa Arduino UNO EK R4 WiFi + ADXL345.

Hakbang 10: Arduino Inference Sketch

#isama
#isama
#isama // Palitan ng Edge Impulse header
Adafruit_ADXL345_Pinag-isang accel =
Adafruit_ADXL345_Unified(12345);
static bool debug_nn = false;
void setup() {
Serial.begin(115200);
habang (!Serial) {}
kung (!accel.begin()) {
Serial.println(“ERROR: ADXL345 not detected”);
habang (1);
}
accel.setRange(ADXL345_RANGE_4_G);
}
void loop() {
float buffer[EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE] = {0};
para sa (size_t ix = 0; ix < EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE; ix +=
3) {
uint64_t next_tick = micros() + (EI_CLASSIFIER_INTERVAL_MS *
1000);
sensors_event_t e;
accel.getEvent(&e);
buffer[ix + 0] = e.acceleration.x;
buffer[ix + 1] = e.acceleration.y;
buffer[ix + 2] = e.acceleration.z;
int32_t wait = (int32_t)(next_tick – micros());
kung (wait > 0) delayMicroseconds(wait);
}
signal_t ​​signal;
int err = numpy::signal_from_buffer(buffer,
EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE, &signal);
kung (err!= 0) bumalik;

ei_impulse_result_t resulta = {0};
EI_IMPULSE_ERROR res = run_classifier(&signal, &result,
debug_nn);
kung (res!= EI_IMPULSE_OK) bumalik;

para sa (laki_t ix = 0; ix < EI_CLASSIFIER_LABEL_COUNT; ix++) {
ei_printf(“%s: %.3f “, result.classification[ix].label,
resulta.klasipikasyon[ix].halaga);
}
#if EI_CLASSIFIER_HAS_ANOMALY == 1
ei_printf("anomalya: %.3f", resulta.anomalya);
#endif
ei_printf(“\n”);
}

Output example:

Arduino ABX00087 UNO R4 WiFi Development Board - Arduino Inference SketchMga tip:
Panatilihing naka-sync ang EI_CLASSIFIER_INTERVAL_MS sa dalas ng iyong data forwarder (hal., 100 Hz → 10 ms). Ang Edge Impulse library ay awtomatikong nagtatakda ng pare-parehong ito mula sa iyong impulse.
Kung gusto mo ng tuloy-tuloy na pagtuklas (sliding window), magsimula sa Continuous example kasama sa EI library at swap sa ADXL345 reads.
Magdaragdag kami ng mga video tutorial sa lalong madaling panahon; hanggang noon, manatiling nakatutok - https://www.youtube.com/@RobuInlabs
At Kung mayroon ka pa ring ilang mga pagdududa, maaari mong tingnan ang video na ito ni Edged Impulse: https://www.youtube.com/watch?v=FseGCn-oBA0&t=468s

Logo ng Arduino

Mga Dokumento / Mga Mapagkukunan

Arduino ABX00087 UNO R4 WiFi Development Board [pdf] Gabay sa Gumagamit
R4 WiFi, ADXL345, ABX00087 UNO R4 WiFi Development Board, ABX00087, UNO R4 WiFi Development Board, WiFi Development Board, Development Board, Board

Mga sanggunian

Mag-iwan ng komento

Ang iyong email address ay hindi maipa-publish. Ang mga kinakailangang field ay minarkahan *