अर्डिनो लोगोArduino ABX00087 UNO R4 वाइफाइ विकास बोर्ड

ABX00087 UNO R4 वाइफाइ विकास बोर्ड

Arduino UNO R4 WiFi + ADXL345 + Edge प्रयोग गरेर क्रिकेट शट पहिचान
आवेग
यो कागजातले ADXL345 एक्सेलेरोमिटर र एज इम्पल्स स्टुडियोको साथ Arduino UNO R4 WiFi प्रयोग गरेर क्रिकेट शट पहिचान प्रणाली निर्माण गर्न पूर्ण कार्यप्रवाह प्रदान गर्दछ। यस परियोजनामा ​​एक्सेलेरोमिटर डेटा सङ्कलन गर्ने, मेसिन लर्निङ मोडेललाई तालिम दिने र वास्तविक-समय शट वर्गीकरणको लागि प्रशिक्षित मोडेललाई Arduino मा फिर्ता तैनाथ गर्ने समावेश छ।
यस परियोजनामा ​​विचार गरिएका क्रिकेट शटहरू:
- कभर ड्राइभ
- स्ट्रेट ड्राइभ
- पुल शट

चरण 1: हार्डवेयर आवश्यकताहरू

- Arduino UNO R4 वाइफाइ
- ADXL345 एक्सेलेरोमिटर (I2C)
- जम्पर तारहरू
- ब्रेडबोर्ड (वैकल्पिक)
- USB टाइप-सी केबल

चरण 2: सफ्टवेयर आवश्यकताहरू

- Arduino IDE (पछिल्लो)
– एज इम्पल्स स्टुडियो खाता (नि:शुल्क)
- एज इम्पल्स CLI उपकरणहरू (Node.js आवश्यक)
- Adafruit ADXL345 पुस्तकालय

चरण ३: ADXL345 को तार लगाउने

ADXL345 सेन्सरलाई Arduino UNO R4 WiFi मा निम्नानुसार जडान गर्नुहोस्:
VCC → ३.३V
GND → GND
SDA → SDA (A4)
SCL → SCL (A5)
CS → 3.3V (वैकल्पिक, I2C मोडको लागि)
SDO → फ्लोटिंग वा GNDArduino ABX00087 UNO R4 वाइफाइ विकास बोर्ड - समाप्तview

चरण ४: IDE सेन्सर तयार पार्नुहोस्

Arduino IDE मा सेन्सर लाइब्रेरी कसरी स्थापना गर्ने?
Arduino IDE खोल्नुहोस्
उपकरणहरू खोल्नुहोस् → पुस्तकालयहरू व्यवस्थापन गर्नुहोस्... र स्थापना गर्नुहोस्: Adafruit ADXL345 Unified Adafruit Unified Sensor
(यदि तपाईंसँग LSM6DSO वा MPU6050 छ भने: तदनुसार SparkFun LSM6DSO, Adafruit LSM6DS वा MPU6050 स्थापना गर्नुहोस्।)

चरण ५: डेटा सङ्कलनको लागि Arduino स्केच

यो स्केच तपाईंको Arduino UNO R4 WiFi मा अपलोड गर्नुहोस्। यसले Edge Impulse को लागि ~18 Hz मा CSV ढाँचा (x,y,z) मा एक्सेलेरोमिटर डेटा स्ट्रिम गर्दछ।
#समावेश गर्नुहोस्
#समावेश गर्नुहोस्
Adafruit_ADXL345_एकीकृत गति =
एडफ्रुट_एडीएक्सएल३४५_युनिफाइड(१२३४५);
शून्य सेटअप() {
Serial.begin(115200);
यदि (!accel.begin()) {
Serial.println(“ADXL345 पत्ता लागेन”);
जबकि (1);
}
एक्सेल.सेटरेन्ज(ADXL345_RANGE_4_G);
}
शून्य पाश() {
सेन्सर_घटना_टी;
एक्सेल.गेटइभेन्ट(&e);
सिरियल.प्रिन्ट (e.acceleration.x);
सिरियल.प्रिन्ट(“,”);
सिरियल.प्रिन्ट(e.acceleration.y);
सिरियल.प्रिन्ट(“,”);
Serial.println(e.acceleration.z);delay(55); // ~18 Hz
}

एज इम्पल्स सेटअप गर्नुहोस्

Arduino ABX00087 UNO R4 वाइफाइ विकास बोर्ड - सेटअप

चरण ६: एज इम्पल्समा जडान गर्दै

  1. Arduino सिरियल मनिटर बन्द गर्नुहोस्।
  2. आदेश चलाउनुहोस्: edge-impulse-data-forwarder –frequency 18
  3. अक्षका नामहरू प्रविष्ट गर्नुहोस्: accX, accY, accZ
  4. तपाईंको उपकरणको नाम दिनुहोस्: Arduino-Cricket-Board
  5. 'उपकरणहरू' अन्तर्गत एज इम्पल्स स्टुडियोमा जडान पुष्टि गर्नुहोस्।

Arduino ABX00087 UNO R4 वाइफाइ विकास बोर्ड - एज इम्पल्समा जडान गर्दैArduino ABX00087 UNO R4 वाइफाइ विकास बोर्ड - एज इम्पल्स १ मा जडान गर्दै

चरण ३: डेटा सङ्कलन

एज इम्पल्स स्टुडियो → डेटा अधिग्रहणमा:
- उपकरण: Arduino-क्रिकेट-बोर्ड
- सेन्सर: एक्सेलेरोमिटर (३ अक्ष)
- एसampलम्बाइ: २००० मिलिसेकेन्ड (२ सेकेन्ड)
- आवृत्ति: ५० हर्ट्ज
कम्तिमा ४० सेकेन्ड रेकर्ड गर्नुहोस्ampप्रति कक्षा कम:
- कभर ड्राइभ
- स्ट्रेट ड्राइभ
- पुल शटArduino ABX00087 UNO R4 वाइफाइ विकास बोर्ड - डेटा सङ्कलनडेटा सङ्कलन गर्नुहोस् पूर्वampलेस
कभर ड्राइभ
उपकरण: Arduino-क्रिकेट-बोर्ड
लेबल: कभर ड्राइभ
सेन्सर: ३ अक्ष भएको सेन्सर (accX, accY, accZ)
Sampलम्बाइ: १०००० मि.से.
आवृत्ति: 18 हर्ट्ज
Exampकच्चा डेटा:
accX -०.३२
खाता ९.६१
accZ -०.१२
स्ट्रेट ड्राइभ
उपकरण: Arduino-क्रिकेट-बोर्ड
लेबल: स्ट्रेट ड्राइभ
सेन्सर: ३ अक्ष भएको सेन्सर (accX, accY, accZ)
Sampलम्बाइ: १०००० मि.से.
आवृत्ति: 18 हर्ट्ज
Exampकच्चा डेटा:
accX १.२४
खाता ९.६१
accZ -०.१२
पुल शट
उपकरण: Arduino-क्रिकेट-बोर्ड
लेबल: पुल शट
सेन्सर: ३ अक्ष भएको सेन्सर (accX, accY, accZ)
Sampलम्बाइ: १०००० मिलिसेकेन्ड
आवृत्ति: 18 हर्ट्ज
Exampकच्चा डेटा:
accX १.२४
खाता ९.६१
accZ -०.१२ Arduino ABX00087 UNO R4 वाइफाइ विकास बोर्ड - डेटा सङ्कलन १

चरण ८: आवेग डिजाइन

आवेग सिर्जना गर्नुहोस् खोल्नुहोस्:
इनपुट ब्लक: समय श्रृंखला डेटा (३ अक्षहरू)।
विन्डो आकार: १००० मिलिसेकेन्ड विन्डो वृद्धि (स्ट्राइड): २०० मिलिसेकेन्ड सक्षम गर्नुहोस्: अक्ष, परिमाण (वैकल्पिक), फ्रिक्वेन्सी १८।
प्रशोधन ब्लक: स्पेक्ट्रल विश्लेषण (गतिको लागि स्पेक्ट्रल सुविधाहरू पनि भनिन्छ)। विन्डो आकार: १००० मिलिसेकेन्ड विन्डो वृद्धि (स्ट्राइड): २०० मिलिसेकेन्ड सक्षम गर्नुहोस्: अक्ष, परिमाण (वैकल्पिक), पहिले सबै पूर्वनिर्धारितहरू राख्नुहोस्।
सिकाइ खण्ड: वर्गीकरण (केरा)।
सेभ इम्पल्समा क्लिक गर्नुहोस्। Arduino ABX00087 UNO R4 वाइफाइ विकास बोर्ड - इम्पल्स डिजाइन

सुविधाहरू उत्पन्न गर्नुहोस्:
स्पेक्ट्रल विश्लेषणमा जानुहोस्, प्यारामिटरहरू बचत गर्नुहोस् मा क्लिक गर्नुहोस्, त्यसपछि प्रशिक्षण सेटको लागि सुविधाहरू उत्पन्न गर्नुहोस्।

Arduino ABX00087 UNO R4 वाइफाइ विकास बोर्ड - प्रशिक्षण सेट

सानो मोडेललाई तालिम दिनुहोस्
क्लासिफायर (केरास) मा जानुहोस् र कम्प्याक्ट कन्फिग प्रयोग गर्नुहोस् जस्तै:
स्नायु सञ्जाल: १-२ बाक्लो तहहरू (जस्तै, ६० → ३०), ReLU
युगहरू: ४०-६०
सिकाइ दर: ०.००१–०.००३
ब्याच साइज: ३२
डेटा विभाजन: ८०/२० (ट्रेन/परीक्षण)
डेटा बचत गर्नुहोस् र तालिम दिनुहोस्Arduino ABX00087 UNO R4 वाइफाइ विकास बोर्ड - डेटा बचत र तालिम दिनुहोस्

होल्डआउट सेटको साथ मोडेल परीक्षणको मूल्याङ्कन र जाँच गर्नुहोस्।
कन्फ्युजन म्याट्रिक्सको निरीक्षण गर्नुहोस्; यदि सर्कल र माथि ओभरल्याप हुन्छ भने, थप विविध डेटा सङ्कलन गर्नुहोस् वा ट्वीक गर्नुहोस्
स्पेक्ट्रल प्यारामिटरहरू (झ्यालको आकार / आवाज भुइँ)।

चरण ९: Arduino मा तैनाती

तैनाथीमा जानुहोस्:
Arduino लाइब्रेरी छान्नुहोस् (C++ लाइब्रेरीले पनि काम गर्छ)।
मोडेलको आकार घटाउन EON कम्पाइलर (यदि उपलब्ध छ भने) सक्षम गर्नुहोस्। Arduino ABX00087 UNO R4 वाइफाइ विकास बोर्ड - Arduino मा तैनाती.zip डाउनलोड गर्नुहोस्, त्यसपछि Arduino IDE मा: स्केच → लाइब्रेरी समावेश गर्नुहोस् → .ZIP लाइब्रेरी थप्नुहोस्... यसले ex थप्छampजस्तै Static buffer र Continuous under File → उदाहरणampलेस →
तपाईंको परियोजनाको नाम - एज इम्पल्स। Arduino UNO EK R4 WiFi + ADXL345 को लागि अनुमान स्केच।

चरण १०: अर्डिनो इन्फरन्स स्केच

#समावेश गर्नुहोस्
#समावेश गर्नुहोस्
#समावेश गर्नुहोस् // एज इम्पल्स हेडरले बदल्नुहोस्
Adafruit_ADXL345_एकीकृत गति =
एडफ्रुट_एडीएक्सएल३४५_युनिफाइड(१२३४५);
स्थिर बुल debug_nn = गलत;
शून्य सेटअप() {
Serial.begin(115200);
जबकि (!सिरियल) {}
यदि (!accel.begin()) {
Serial.println(“त्रुटि: ADXL345 पत्ता लागेन”);
जबकि (1);
}
एक्सेल.सेटरेन्ज(ADXL345_RANGE_4_G);
}
शून्य पाश() {
फ्लोट बफर[EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE] = {0};
(आकार_t ix = ०; ix <EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE; ix += को लागि
६) {
uint64_t अर्को_टिक = माइक्रोस() + (EI_CLASSIFIER_INTERVAL_MS *
८);
सेन्सर_घटना_टी;
एक्सेल.गेटइभेन्ट(&e);
बफर[ix + ०] = e.acceleration.x;
बफर[ix + १] = e.acceleration.y;
बफर[ix + २] = e.acceleration.z;
int32_t पर्खनुहोस् = (int32_t)(अर्को_टिक - माइक्रोस());
यदि (पर्खनुहोस् > ०) ढिलाइ छ भने माइक्रोसेकेन्ड (पर्खनुहोस्);
}
संकेत_टी संकेत;
int error = numpy::signal_from_buffer(बफर,
EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE, र सिग्नल);
यदि (त्रुटि != ०) फर्काउँछ भने;

ei_impulse_result_t नतिजा = {0};
EI_IMPULSE_ERROR res = रन_क्लासिफायर(&सिग्नल, &परिणाम,
डिबग_एनएन);
यदि (res != EI_IMPULSE_OK) फिर्ता हुन्छ भने;

(आकार_t ix = ०; ix <EI_CLASSIFIER_LABEL_COUNT; ix++) को लागि {
ei_printf(“%s: %.3f“, परिणाम.वर्गीकरण[ix].लेबल,
परिणाम.वर्गीकरण[ix].मान);
}
#यदि EI_CLASSIFIER_HAS_ANOMALY == १
ei_printf(“विसंगति:%.3f”, परिणाम.विसंगति);
#endif
ei_printf(“\n”);
}

आउटपुट पूर्वampLe:

Arduino ABX00087 UNO R4 वाइफाइ विकास बोर्ड - Arduino अनुमान स्केचसुझावहरू:
EI_CLASSIFIER_INTERVAL_MS लाई तपाईंको डेटा फर्वार्डर फ्रिक्वेन्सी (जस्तै, १०० हर्ट्ज → १० एमएस) सँग सिङ्कमा राख्नुहोस्। एज इम्पल्स लाइब्रेरीले तपाईंको इम्पल्सबाट यो स्थिरांक स्वचालित रूपमा सेट गर्छ।
यदि तपाईं निरन्तर पत्ता लगाउन चाहनुहुन्छ (स्लाइडिङ विन्डो), निरन्तर पूर्वबाट सुरु गर्नुहोस्ampEI लाइब्रेरीसँग समावेश गरिएको छ र ADXL345 रिडहरूमा स्वैप गरिएको छ।
हामी चाँडै नै भिडियो ट्युटोरियलहरू थप्नेछौं; त्यतिन्जेल, सम्पर्कमा रहनुहोस् - https://www.youtube.com/@RobuInlabs
र यदि तपाईंलाई अझै पनि केही शंका छ भने, तपाईं एज्ड इम्पल्सको यो भिडियो हेर्न सक्नुहुन्छ: https://www.youtube.com/watch?v=FseGCn-oBA0&t=468s

अर्डिनो लोगो

कागजातहरू / स्रोतहरू

Arduino ABX00087 UNO R4 वाइफाइ विकास बोर्ड [pdf] प्रयोगकर्ता गाइड
R4 वाइफाइ, ADXL345, ABX00087 UNO R4 वाइफाइ विकास बोर्ड, ABX00087, UNO R4 वाइफाइ विकास बोर्ड, वाइफाइ विकास बोर्ड, विकास बोर्ड, बोर्ड

सन्दर्भहरू

एक टिप्पणी छोड्नुहोस्

तपाईंको इमेल ठेगाना प्रकाशित गरिने छैन। आवश्यक क्षेत्रहरू चिन्ह लगाइएका छन् *