arduino logoArduino ABX00087 UNO R4 WiFi arendusplaat

ABX00087 UNO R4 WiFi arendusplaat

Kriketilöögi tuvastamine Arduino UNO R4 WiFi + ADXL345 + Edge abil
Impulss
See dokument annab täieliku töövoo kriketilöögi tuvastamise süsteemi loomiseks, kasutades Arduino UNO R4 WiFi-d koos ADXL345 kiirendusmõõturi ja Edge Impulse Studioga. Projekt hõlmab kiirendusmõõturi andmete kogumist, masinõppe mudeli treenimist ja treenitud mudeli juurutamist Arduinosse reaalajas löökide klassifitseerimiseks.
Selles projektis arvesse võetud kriketilöögid:
– Kaaneajam
– Sirge sõit
– Tõmba lask

1. samm: riistvaranõuded

– Arduino UNO R4 WiFi
– ADXL345 kiirendusmõõtur (I2C)
– Hüppajajuhtmed
– Paberplaat (valikuline)
– C-tüüpi USB-kaabel

2. samm: tarkvaranõuded

– Arduino IDE (uusim)
– Edge Impulse Studio konto (tasuta)
– Edge Impulse'i käsurealiidese tööriistad (vajalik Node.js)
– Adafruit ADXL345 teek

3. samm: ADXL345 juhtmestik

Ühendage ADXL345 andur Arduino UNO R4 WiFi-ga järgmiselt:
VCC → 3.3 V
GND → GND
SDA → SDA (A4)
SCL → SCL (A5)
CS → 3.3 V (valikuline, I2C režiimi jaoks)
SDO → ujuv või GNDArduino ABX00087 UNO R4 WiFi arendusplaat - üleview

4. samm: IDE-anduri ettevalmistamine

Kuidas paigaldada anduriteeke Arduino IDE-sse?
Ava Arduino IDE
Ava Tööriistad → Halda teeke… ja installi: Adafruit ADXL345 Unified Adafruit Unified Sensor
(Kui teil on hoopis LSM6DSO või MPU6050: installige vastavalt SparkFun LSM6DSO, Adafruit LSM6DS või MPU6050.)

5. samm: Arduino visand andmete kogumiseks

Laadi see visand üles oma Arduino UNO R4 WiFi-le. See edastab kiirendusmõõturi andmeid CSV-vormingus (x, y, z) sagedusel ~18 Hz Edge Impulse'i jaoks.
#kaasa
#lisa
Adafruit_ADXL345_Ühendatud kiirendus =
Adafruit_ADXL345_Unified(12345);
void setup() {
Serial.begin(115200);
kui (!kiirendus.begin()) {
Serial.println(“ADXL345 ei tuvastatud”);
samas (1);
}
kiirendus.setRange(ADXL345_RANGE_4_G);
}
void loop() {
sensors_event_t e;
kiirendus.getEvent(&e);
Serial.print(e.kiirendus.x);
Seerianumber.print(“,”);
Serial.print(e.kiirendus.y);
Seerianumber.print(“,”);
Serial.println(e.acceleration.z);delay(55); // ~18 Hz
}

Edge Impulse'i seadistamine

Arduino ABX00087 UNO R4 WiFi arendusplaat - seadistamine

6. samm: Edge Impulse'iga ühenduse loomine

  1. Sulge Arduino jadamonitor.
  2. Käivita käsk: edge-impulse-data-forwarder –frequency 18
  3. Sisestage telgede nimed: accX, accY, accZ
  4. Nimeta oma seade: Arduino-Cricket-Board
  5. Kinnitage ühendus Edge Impulse Studios jaotises „Seadmed”.

Arduino ABX00087 UNO R4 WiFi arendusplaat - ühendamine Edge Impulse'igaArduino ABX00087 UNO R4 WiFi arendusplaat - ühendamine Edge Impulse 1-ga

7. samm: andmete kogumine

Edge Impulse Studios → Andmete kogumine:
– Seade: Arduino kriketilaud
– Andur: kiirendusmõõtur (3 telge)
– Sampfaili pikkus: 2000 ms (2 sekundit)
– Sagedus: 18 Hz
Salvesta vähemalt 40 sekunditamparv klassi kohta:
– Kaaneajam
– Sirge sõit
– Tõmba laskArduino ABX00087 UNO R4 WiFi arendusplaat - andmete kogumineKoguge andmeidamples
Kattedraiv
Seade: Arduino kriketilaud
Silt: Cover Drive
Andur: 3 teljega andur (accX, accY, accZ)
Sampfaili pikkus: 10000 ms
Sagedus: 18 Hz
ExampToorandmed:
accX -0.32
konto 9.61
accZ -0.12
Sirge sõit
Seade: Arduino kriketilaud
Silt: Sirge sõit
Andur: 3 teljega andur (accX, accY, accZ)
Sampfaili pikkus: 10000 ms
Sagedus: 18 Hz
ExampToorandmed:
accX 1.24
konto 8.93
accZ -0.42
Tõmba lask
Seade: Arduino kriketilaud
Silt: Pull Shot
Andur: 3 teljega andur (accX, accY, accZ)
Sampfaili pikkus: 10000 ms
Sagedus: 18 Hz
ExampToorandmed:
accX 2.01
konto 7.84
accZ -0.63 Arduino ABX00087 UNO R4 WiFi arendusplaat - andmete kogumine 1

8. samm: impulssdisain

Ava Loo impulss:
Sisendplokk: Ajaseeria andmed (3 telge).
Akna suurus: 1000 ms Akna suurenemine (samm): 200 ms Luba: teljed, magnituud (valikuline), sagedus 18.
Töötlusplokk: Spektrianalüüs (ehk liikumise spektraaltunnused). Akna suurus: 1000 ms Akna suurenemine (samm): 200 ms Luba: Teljed, Suurus (valikuline), kõik vaikesätted säilita esimesena.
Õppeplokk: Klassifikatsioon (Keras).
Klõpsake nuppu Salvesta impulss. Arduino ABX00087 UNO R4 WiFi arendusplaat - Impulse Design

Funktsioonide genereerimine:
Mine spektraalanalüüsi juurde, klõpsa nupule „Salvesta parameetrid“ ja seejärel „Genereeri treeningkomplekti tunnused“.

Arduino ABX00087 UNO R4 WiFi arendusplaat - õppekomplekt

Väikese mudeli treenimine
Mine klassifikaatorisse (Keras) ja kasuta kompaktset konfiguratsiooni, näiteks:
Neuraalvõrk: 1–2 tihedat kihti (nt 60 → 30), ReLU
Ajastu: 40–60
Õppimiskiirus: 0.001–0.005
Partii suurus: 32
Andmete jaotus: 80/20 (treening/test)
Andmete salvestamine ja treenimineArduino ABX00087 UNO R4 WiFi arendusplaat - andmete salvestamine ja treenimine

Hinnake ja kontrollige mudeli testimist kinnituskomplektiga.
Kontrollige segadusmaatriksit; kui ring ja ülespoole suunatud maatriks kattuvad, koguge mitmekesisemaid andmeid või kohandage seda.
Spektraalsed parameetrid (akna suurus / müratase).

9. samm: Arduinosse juurutamine

Mine juurutamise juurde:
Vali Arduino teek (sobib ka C++ teek).
Mudeli suuruse vähendamiseks luba EON-i kompilaator (kui see on saadaval). Arduino ABX00087 UNO R4 WiFi arendusplaat - juurutamine ArduinosseLaadige alla .zip-fail ja seejärel Arduino IDE-s: Sketch → Include Library → Add .ZIP Library… See lisab näiteksampnäiteks staatiline puhver ja pidev File → Ntamples →
Teie projekti nimi – Edge Impulse. Järelduse skeem Arduino UNO EK R4 WiFi + ADXL345 jaoks.

10. samm: Arduino järelduste visand

#kaasa
#lisa
#lisa // Asenda Edge Impulse'i päisega
Adafruit_ADXL345_Ühendatud kiirendus =
Adafruit_ADXL345_Unified(12345);
staatiline bool debug_nn = false;
void setup() {
Serial.begin(115200);
samal ajal kui (!Serial) {}
kui (!kiirendus.begin()) {
Serial.println("VIGA: ADXL345 ei tuvastatud");
samas (1);
}
kiirendus.setRange(ADXL345_RANGE_4_G);
}
void loop() {
ujukoopia puhver[EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE] = {0};
jaoks (suurus_t ix = 0; ix < EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE; ix +=)
3) {
uint64_t next_tick = mikros() + (EI_KLASSIFITSEERI_INTERVALL_MS *
1000);
sensors_event_t e;
kiirendus.getEvent(&e);
puhver[ix + 0] = e.kiirendus.x;
puhver[ix + 1] = e.kiirendus.y;
puhver[ix + 2] = e.kiirendus.z;
int32_t oota = (int32_t)(järgmine_tick – mikros());
kui (oota > 0) viivitusMikrosekundid(oota);
}
signaal_t signaal;
int err = numpy::signal_from_buffer(puhver,
EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE, (&signaal);
kui (viga != 0), tagasta;

ei_impulse_result_t tulemus = {0};
EI_IMPULSE_ERROR res = run_classifier(&signaal, &tulemus,
silumis_nn);
kui (res != EI_IMPULSE_OK), siis tagastatakse;

for (size_t ix = 0; ix < EI_CLASSIFIER_SILT_COUNT; ix++) {
ei_printf("%s: %.3f", tulemus.klassifikatsioon[ix].label,
tulemus.klassifikatsioon[ix].väärtus);
}
#kui EI_CLASSIFIER_HAS_ANOMALY == 1
ei_printf(“anomaalia: %.3f”, tulemus.anomalia);
#endif
ei_printf(“\n”);
}

Väljund ntample:

Arduino ABX00087 UNO R4 WiFi arendusplaat - Arduino järelduste eskiisNõuanded:
Hoidke EI_CLASSIFIER_INTERVAL_MS sünkroonis oma andmeedastussagedusega (nt 100 Hz → 10 ms). Edge Impulse'i teek määrab selle konstandi teie impulsi põhjal automaatselt.
Pideva tuvastuse (libiseva akna) korral alustage pideva tuvastuse funktsioonist.ampEI teeki kaasasolev fail ja ADXL345 lugemiste vahetus.
Lisame peagi videoõpetusi; seni püsige lainel – https://www.youtube.com/@RobuInlabs
Ja kui teil on endiselt kahtlusi, saate vaadata seda Edged Impulse'i videot: https://www.youtube.com/watch?v=FseGCn-oBA0&t=468s

arduino logo

Dokumendid / Ressursid

Arduino ABX00087 UNO R4 WiFi arendusplaat [pdfKasutusjuhend
R4 WiFi, ADXL345, ABX00087 UNO R4 WiFi arendusplaat, ABX00087, UNO R4 WiFi arendusplaat, WiFi arendusplaat, Arendusplaat, Plaat

Viited

Jäta kommentaar

Teie e-posti aadressi ei avaldata. Kohustuslikud väljad on märgitud *