

Bodi ya Maendeleo ya WiFi ya ABX00087 UNO R4
Utambuzi wa Risasi ya Kriketi kwa kutumia Arduino UNO R4 WiFi + ADXL345 + Edge
Msukumo
Hati hii inatoa utendakazi kamili wa kujenga mfumo wa utambuzi wa risasi za kriketi kwa kutumia Arduino UNO R4 WiFi yenye kipima kasi cha ADXL345 na Studio ya Edge Impulse. Mradi huu unahusisha kukusanya data ya kipima kasi, kutoa mafunzo kwa modeli ya kujifunza kwa mashine, na kupeleka kielelezo kilichofunzwa kwenye Arduino kwa uainishaji wa risasi katika wakati halisi.
Risasi za kriketi zinazozingatiwa katika mradi huu:
- Hifadhi ya Jalada
- Kuendesha moja kwa moja
- Vuta Risasi
Hatua ya 1: Mahitaji ya vifaa
- Arduino UNO R4 WiFi
Kipima kiongeza kasi cha ADXL345 (I2C)
- Waya za kuruka
- Ubao wa mkate (hiari)
- Kebo ya USB Type-C
Hatua ya 2: Mahitaji ya Programu
- Arduino IDE (ya hivi karibuni)
- Akaunti ya Edge Impulse Studio (bure)
- Vifaa vya Edge Impulse CLI (Node.js inahitajika)
- Maktaba ya Adafruit ADXL345
Hatua ya 3: Wiring ADXL345
Unganisha kihisi cha ADXL345 kwa Arduino UNO R4 WiFi kama ifuatavyo:
VCC → 3.3V
GND → GND
SDA → SDA (A4)
SCL → SCL (A5)
CS → 3.3V (si lazima, kwa hali ya I2C)
SDO → inayoelea au GND
Hatua ya 4: Tayarisha Kihisi cha IDE
Jinsi ya kufunga Maktaba za Sensor katika Arduino IDE?
Fungua IDE ya Arduino
Fungua Zana → Dhibiti Maktaba… na usakinishe: Sensore Iliyounganishwa ya Adafruit ADXL345
(Ikiwa una LSM6DSO au MPU6050 badala yake: sakinisha SparkFun LSM6DSO , Adafruit LSM6DS au MPU6050 ipasavyo.)
Hatua ya 5: Mchoro wa Arduino kwa Ukusanyaji wa Data
Pakia mchoro huu kwenye WiFi yako ya Arduino UNO R4. Inatiririsha data ya kipima kasi katika umbizo la CSV (x,y,z) kwa ~18 Hz kwa Edge Impulse.
#pamoja na
#pamoja na
Adafruit_ADXL345_Unified accel =
Adafruit_ADXL345_Unified(12345);
usanidi utupu() {
Serial.begin(115200);
ikiwa (!accel.begin()) {
Serial.println(“Hakuna ADXL345 iliyogunduliwa”);
wakati (1);
}
accel.setRange(ADXL345_RANGE_4_G);
}
kitanzi utupu() {
vitambuzi_tukio_t e;
accel.getEvent(&e);
Serial.print (e.acceleration.x);
Serial.print(“,");
Serial.print(e.acceleration.y);
Serial.print(“,");
Serial.println(e.acceleration.z);chelewesha(55); // ~18 Hz
}
Weka Msukumo wa Edge

Hatua ya 6: Kuunganisha kwa Edge Impulse
- Funga Kifuatiliaji cha Ufuatiliaji cha Arduino.
- Tekeleza amri: edge-impulse-data-forwarder -frequency 18
- Ingiza majina ya mhimili: accX, accY, accZ
- Kipe kifaa chako: Arduino-Cricket-Bodi
- Thibitisha muunganisho katika Studio ya Edge Impulse chini ya 'Vifaa'.


Hatua ya 7: Ukusanyaji wa Data
Katika Studio ya Edge Impulse → Upataji wa data:
- Kifaa: Bodi ya Kriketi ya Arduino
- Sensorer: Accelerometer (shoka 3)
- SampUrefu wa le: 2000 ms (sekunde 2)
- Mara kwa mara: 18 Hz
Rekodi angalau 40 sampchini kwa kila darasa:
- Hifadhi ya Jalada
- Kuendesha moja kwa moja
- Vuta Risasi
Kusanya Data Exampchini
Funika Hifadhi
Kifaa: Bodi ya Kriketi ya Arduino
Lebo: Hifadhi ya Jalada
Kihisi: Kihisi chenye shoka 3 (accX, accY, accZ)
Sampurefu wa: 10000ms
Mara kwa mara: 18 Hz
Example Data Raw:
accX -0.32
accY 9.61
accZ -0.12
Kuendesha moja kwa moja
Kifaa: Bodi ya Kriketi ya Arduino
Lebo: Hifadhi ya moja kwa moja
Kihisi: Kihisi chenye shoka 3 (accX, accY, accZ)
Sampurefu wa: 10000ms
Mara kwa mara: 18 Hz
Example Data Raw:
accX 1.24
accY 8.93
accZ -0.42
Vuta Risasi
Kifaa: Bodi ya Kriketi ya Arduino
Lebo: Vuta Risasi
Kihisi: Kihisi chenye shoka 3 (accX, accY, accZ)
Sampurefu wa 10000 ms
Mara kwa mara: 18 Hz
Example Data Raw:
accX 2.01
accY 7.84
accZ -0.63 
Hatua ya 8: Ubunifu wa Msukumo
Fungua Unda msukumo:
Kizuizi cha ingizo: Data ya mfululizo wa saa (shoka 3).
Ukubwa wa dirisha: 1000 ms Ongezeko la dirisha (hatua): 200 ms Washa: Vishoka, Ukuu (si lazima), marudio 18.
Kizuizi cha usindikaji: Uchambuzi wa Spectral (aka Sifa za Spectral kwa mwendo). Ukubwa wa dirisha: 1000 ms Ongezeko la dirisha (hatua): 200 ms Wezesha: Mishoka, Ukubwa (hiari), weka chaguo-msingi zote kwanza.
Kizuizi cha kujifunzia: Uainishaji (Keras).
Bofya Hifadhi msukumo. 
Tengeneza vipengele:
Nenda kwa uchanganuzi wa Spectral, bofya Hifadhi vigezo, kisha Unda vipengele vya seti ya mafunzo.

Treni mfano mdogo
Nenda kwa Kiainishaji (Keras) na utumie usanidi wa kompakt kama:
Mtandao wa Neural: 1-2 tabaka mnene (kwa mfano, 60 → 30), ReLU
Nyakati: 40-60
Kiwango cha kujifunza: 0.001-0.005
Ukubwa wa kundi: 32
Mgawanyiko wa data: 80/20 (treni/jaribio)
Hifadhi na ufunze data
Tathmini na Uangalie majaribio ya Muundo kwa kuweka kikomo.
Kagua tumbo la kuchanganyikiwa; ikiwa mduara na juu zinapishana, kukusanya data tofauti zaidi au tweak
Vigezo vya Spectral (saizi ya dirisha / sakafu ya kelele).
Hatua ya 9: Kupelekwa kwa Arduino
Nenda kwa Usambazaji:
Chagua maktaba ya Arduino (maktaba ya C++ pia inafanya kazi).
Washa Kikusanyaji cha EON (ikiwa kinapatikana) ili kupunguza ukubwa wa muundo.
Pakua .zip, kisha katika Arduino IDE: Mchoro → Jumuisha Maktaba → Ongeza Maktaba ya .ZIP… Hii inaongeza exampkama vile Bafa Tuli na Inayoendelea chini File → Kutampchini →
Jina la Mradi wako - Edge Impulse. Mchoro wa uelekezaji wa Arduino UNO EK R4 WiFi + ADXL345.
Hatua ya 10: Mchoro wa Maelekezo ya Arduino
#pamoja na
#pamoja na
#pamoja na // Badilisha na kichwa cha Edge Impulse
Adafruit_ADXL345_Unified accel =
Adafruit_ADXL345_Unified(12345);
tuli bool debug_nn = uongo;
usanidi utupu() {
Serial.begin(115200);
wakati (!Msururu) {}
ikiwa (!accel.begin()) {
Serial.println(“HItilafu: ADXL345 haijatambuliwa”);
wakati (1);
}
accel.setRange(ADXL345_RANGE_4_G);
}
kitanzi utupu() {
bafa ya kuelea[EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE] = {0};
kwa (size_t ix = 0; ix < EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE; ix +=
3) {
uint64_t next_tick = micros() + (EI_CLASSIFIER_INTERVAL_MS *
1000);
vitambuzi_tukio_t e;
accel.getEvent(&e);
bafa[ix + 0] = e.acceleration.x;
bafa[ix + 1] = e.acceleration.y;
bafa[ix + 2] = e.acceleration.z;
int32_t wait = (int32_t)(next_tick – micros());
ikiwa (subiri > 0) kuchelewaMicroseconds(subiri);
}
ishara_t ishara;
int err = numpy::signal_from_buffer(bafa,
EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE, &signal);
ikiwa (kosa != 0) kurudi;
ei_impulse_result_t matokeo = {0};
EI_IMPULSE_ERROR res = run_classifier(&signal, &result,
debug_nn);
ikiwa (res != EI_IMPULSE_OK) itarudi;
kwa (size_t ix = 0; ix < EI_CLASSIFIER_LABEL_COUNT; ix++) {
ei_printf(“%s: %.3f “, result.classification[ix].lebo,
matokeo.uainishaji[ix].thamani);
}
#kama EI_CLASSIFIER_HAS_ANOMLY == 1
ei_printf(“anomaly: %.3f”, result.anomaly);
#endif
ei_printf(“\n”);
}
Pato example:
Vidokezo:
Weka EI_CLASSIFIER_INTERVAL_MS katika usawazishaji na masafa ya kisambaza data chako (km, 100 Hz → ms 10). Maktaba ya Edge Impulse huweka hii mara kwa mara kiotomatiki kutoka kwa msukumo wako.
Ikiwa unataka ugunduzi unaoendelea (dirisha la kuteleza), anza kutoka kwa Ex Endeleaampimejumuishwa na maktaba ya EI na ubadilishane katika usomaji wa ADXL345.
Tutaongeza mafunzo ya video hivi karibuni; mpaka wakati huo, endelea kufuatilia - https://www.youtube.com/@RobuInlabs
Na ikiwa bado una shaka, unaweza kuangalia video hii na Edged Impulse: https://www.youtube.com/watch?v=FseGCn-oBA0&t=468s

Nyaraka / Rasilimali
![]() |
Arduino ABX00087 UNO R4 Bodi ya Maendeleo ya WiFi [pdf] Mwongozo wa Mtumiaji R4 WiFi, ADXL345, ABX00087 UNO R4 Bodi ya Maendeleo ya WiFi, ABX00087, UNO R4 Bodi ya Maendeleo ya WiFi, Bodi ya Maendeleo ya WiFi, Bodi ya Maendeleo, Bodi |
