לוגו של ארדואינולוח פיתוח WiFi של ארדואינו ABX00087 UNO R4

לוח פיתוח WiFi ABX00087 UNO R4

זיהוי זריקות קריקט באמצעות Arduino UNO R4 WiFi + ADXL345 + Edge
דַחַף
מסמך זה מספק תהליך עבודה מלא לבניית מערכת לזיהוי זריקות קריקט באמצעות Arduino UNO R4 WiFi עם מד תאוצה ADXL345 ו-Edge Impulse Studio. הפרויקט כולל איסוף נתוני מד תאוצה, אימון מודל למידת מכונה ופריסת המודל המאומן בחזרה לארדואינו לסיווג זריקות בזמן אמת.
זריקות קריקט שנלקחו בחשבון בפרויקט זה:
– כונן כיסוי
– כונן ישר
– יריית משיכה

שלב 1: דרישות חומרה

– ארדואינו UNO R4 WiFi
מד תאוצה ADXL345 (I2C)
חוטי גשר
– קרש לחם (אופציונלי)
- כבל USB Type-C

שלב 2: דרישות תוכנה

– IDE של ארדואינו (החדש ביותר)
– חשבון ב-Edge Impulse Studio (חינם)
– כלי ממשק שורת פקודה (CLI) של Edge Impulse (נדרש Node.js)
– ספריית Adafruit ADXL345

שלב 3: חיווט ה-ADXL345

חבר את חיישן ADXL345 ל-Arduino UNO R4 WiFi באופן הבא:
VCC → 3.3V
GND → GND
SDA → SDA (A4)
SCL → SCL (A5)
CS → 3.3V (אופציונלי, עבור מצב I2C)
SDO → צף או GNDלוח פיתוח WiFi של ארדואינו ABX00087 UNO R4 - מעלview

שלב 4: הכנת חיישן IDE

כיצד להתקין ספריות חיישנים בארדואינו IDE?
פתח את IDE של ארדואינו
פתח כלים ← ניהול ספריות… והתקן: Adafruit ADXL345 Unified Adafruit Unified Sensor
(אם יש לכם LSM6DSO או MPU6050 במקום זאת: התקינו את SparkFun LSM6DSO, Adafruit LSM6DS או MPU6050 בהתאם.)

שלב 5: סקיצה של ארדואינו לאיסוף נתונים

העלה את הסקיצה הזו ל-Arduino UNO R4 WiFi שלך. היא משדרת נתוני מד תאוצה בפורמט CSV (x,y,z) במהירות של ~18 הרץ עבור Edge Impulse.
#לִכלוֹל
#לִכלוֹל
Adafruit_ADXL345_מאוחד אקסל =
Adafruit_ADXL345_Unified(12345);
void setup() {
Serial.begin(115200);
אם (!accel.begin()) {
Serial.println("לא זוהה ADXL345");
בעוד (1);
}
accel.setRange(ADXL345_RANGE_4_G);
}
void loop() {
חיישנים_אירוע_t e;
accel.getEvent(&e);
הדפסה סריאלית (e.acceleration.x);
סידורי.הדפסה(",");
Serial.print(e.acceleration.y);
סידורי.הדפסה(",");
Serial.println(e.acceleration.z);delay(55); // ~18 הרץ
}

הגדר אימפולס קצה

לוח פיתוח WiFi של ארדואינו ABX00087 UNO R4 - התקנה

שלב 6: חיבור ל-Edge Impulse

  1. סגור את צג הארדואינו הסידורי.
  2. הפעל את הפקודה: edge-impulse-data-forwarder –frequency 18
  3. הזינו שמות צירים: accX, accY, accZ
  4. תן שם למכשיר שלך: Arduino-Cricket-Board
  5. אשר את החיבור ב-Edge Impulse Studio תחת 'מכשירים'.

לוח פיתוח WiFi של ארדואינו ABX00087 UNO R4 - חיבור ל-Edge Impulseלוח פיתוח WiFi של ארדואינו ABX00087 UNO R4 - חיבור ל-Edge Impulse 1

שלב 7: איסוף נתונים

ב-Edge Impulse Studio → איסוף נתונים:
– מכשיר: ארדואינו-קריקט-לוח
– חיישן: מד תאוצה (3 צירים)
– שampאורך קובץ: 2000 מילישניות (2 שניות)
– תדר: 18 הרץ
להקליט לפחות 40 שניותampמספרים לכל כיתה:
– כונן כיסוי
– כונן ישר
– יריית משיכהלוח פיתוח WiFi של ארדואינו ABX00087 UNO R4 - איסוף נתוניםאיסוף נתונים לדוגמהamples
Cover Drive
מכשיר: ארדואינו-קריקט-לוח
תווית: כונן כיסוי
חיישן: חיישן עם 3 צירים (accX, accY, accZ)
Sampאורך: 10000ms
תדר: 18 הרץ
Exampהנתונים הגולמיים:
accX -0.32
חשבון 9.61
accZ -0.12
ישר דרייב
מכשיר: ארדואינו-קריקט-לוח
תווית: הנעה ישרה
חיישן: חיישן עם 3 צירים (accX, accY, accZ)
Sampאורך: 10000ms
תדר: 18 הרץ
Exampהנתונים הגולמיים:
accX 1.24
חשבון 8.93
accZ -0.42
יריית משיכה
מכשיר: ארדואינו-קריקט-לוח
תווית: יריית משיכה
חיישן: חיישן עם 3 צירים (accX, accY, accZ)
Sampאורך: 10000 מילישניות
תדר: 18 הרץ
Exampהנתונים הגולמיים:
accX 2.01
חשבון 7.84
accZ -0.63 לוח פיתוח WiFi של ארדואינו ABX00087 UNO R4 - איסוף נתונים 1

שלב 8: עיצוב אימפולסיבי

פתח יצירת דחף:
בלוק קלט: נתוני סדרות זמן (3 צירים).
גודל חלון: 1000 אלפיות שנייה הגדלת חלון (צעד): 200 אלפיות שנייה הפעלה: צירים, גודל (אופציונלי), תדר 18.
בלוק עיבוד: ניתוח ספקטרלי (aka תכונות ספקטרליות לתנועה). גודל חלון: 1000 אלפיות שנייה הגדלת חלון (צעד): 200 אלפיות שנייה הפעלה: צירים, גודל (אופציונלי), שמירה על כל ברירות המחדל תחילה.
בלוק למידה: סיווג (קרס).
לחץ על שמור אימפולס. לוח פיתוח WiFi של ארדואינו ABX00087 UNO R4 - Impulse Design

יצירת תכונות:
עבור אל ניתוח ספקטרלי, לחץ על שמור פרמטרים ולאחר מכן צור תכונות עבור קבוצת האימון.

לוח פיתוח WiFi של ארדואינו ABX00087 UNO R4 - ערכת אימון

אימון מודל קטן
עבור אל Classifier (Keras) והשתמש בתצורה קומפקטית כמו:
רשת נוירונים: 1-2 שכבות צפופות (למשל, 60 → 30), ReLU
תקופות: 40–60
קצב למידה: 0.001–0.005
גודל אצווה: 32
חלוקת נתונים: 80/20 (אימון/בדיקה)
שמור ואמן את הנתוניםלוח פיתוח WiFi של ארדואינו ABX00087 UNO R4 - שמירה ואימון של הנתונים

הערכת ובדיקת בדיקות מודל עם קבוצת ה-holdout.
בדוק את מטריצת הבלבול; אם העיגול והמעלה חופפים, אסוף נתונים מגוונים יותר או תקן אותם
פרמטרים ספקטרליים (גודל חלון / רצפת רעש).

שלב 9: פריסה לארדואינו

עבור אל פריסה:
בחר ספריית ארדואינו (ספריית ++C עובדת גם כן).
הפעל את מהדר EON (אם זמין) כדי להקטין את גודל המודל. לוח פיתוח WiFi של ארדואינו ABX00087 UNO R4 - פריסה לארדואינוהורד את קובץ ה-.zip, לאחר מכן ב-Arduino IDE: Sketch → Include Library → Add .ZIP Library… זה מוסיף קבצים נוספים.ampכמו חיץ סטטי ותחתית רציפה File ← דוגמהamples →
שם הפרויקט שלך - Edge Impulse. סקיצה של הסקה עבור Arduino UNO EK R4 WiFi + ADXL345.

שלב 10: סקיצת הסקה של ארדואינו

#לִכלוֹל
#לִכלוֹל
#לִכלוֹל // החלף בכותרת Edge Impulse
Adafruit_ADXL345_מאוחד אקסל =
Adafruit_ADXL345_Unified(12345);
סטטי bool debug_nn = false;
void setup() {
Serial.begin(115200);
בעוד (!סידורי) {}
אם (!accel.begin()) {
Serial.println("שגיאה: ADXL345 לא זוהה");
בעוד (1);
}
accel.setRange(ADXL345_RANGE_4_G);
}
void loop() {
מאגר צף[EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE] = {0};
עבור (size_t ix = 0; ix < EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE; ix +=)
3) {
uint64_t next_tick = micros() + (EI_CLASSIFIER_INTERVAL_MS *
1000);
חיישנים_אירוע_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 המתנה = (int32_t)(next_tick – מיקרוס());
אם (המתן > 0) delayMicroseconds(המתן);
}
אות_t אות;
int error = numpy::signal_from_buffer(buffer,
EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE, &אות);
אם (err != 0) מחזירים;

תוצאה ei_impulse_result_t = {0};
EI_IMPULSE_ERROR תוצאה = run_classifier(&signal, &result,
debug_nn);
אם (res != EI_IMPULSE_OK) החזרה;

עבור (size_t ix = 0; ix < EI_CLASSIFIER_LABEL_COUNT; ix++) {
ei_printf("%s: %.3f ", result.classification[ix].label,
תוצאה.סיווג[ix].ערך);
}
#אם EI_CLASSIFIER_HAS_ANOMALY == 1
ei_printf("אנומליה: %.3f", result.anomaly);
#endif
ei_printf("\n");
}

פלט למשלampעל:

לוח פיתוח WiFi של ארדואינו ABX00087 UNO R4 - סקיצת הסקה של ארדואינוטיפים:
שמרו על EI_CLASSIFIER_INTERVAL_MS מסונכרן עם תדר מעביר הנתונים שלכם (לדוגמה, 100 הרץ → 10 מילישניות). ספריית Edge Impulse קובעת קבוע זה באופן אוטומטי מהאימפולס שלכם.
אם ברצונך גילוי רציף (חלון הזזה), התחל מהחלון הרציף.ampהכלול בספריית EI והחלפה בקריאות ADXL345.
בקרוב נוסיף סרטוני הדרכה; עד אז, הישארו מעודכנים - https://www.youtube.com/@RobuInlabs
ואם עדיין יש לכם ספקות, אתם יכולים לצפות בסרטון הזה של Edged Impulse: https://www.youtube.com/watch?v=FseGCn-oBA0&t=468s

לוגו של ארדואינו

מסמכים / משאבים

לוח פיתוח WiFi של ארדואינו ABX00087 UNO R4 [pdfמדריך למשתמש
R4 WiFi, ADXL345, לוח פיתוח WiFi ABX00087 של UNO R4, ABX00087, לוח פיתוח WiFi של UNO R4, לוח פיתוח WiFi, לוח פיתוח, לוח

הפניות

השאר תגובה

כתובת האימייל שלך לא תפורסם. שדות חובה מסומנים *