Логото на АрдуиноArduino ABX00087 UNO R4 WiFi развојна плочка

ABX00087 UNO R4 WiFi развојна плоча

Препознавање на удари од крикет со Arduino UNO R4 WiFi + ADXL345 + Edge
Импулс
Овој документ обезбедува комплетен работен тек за градење систем за препознавање удари од крикет со користење на Arduino UNO R4 WiFi со акцелерометар ADXL345 и Edge Impulse Studio. Проектот вклучува собирање податоци од акцелерометарот, тренирање на модел за машинско учење и распоредување на обучениот модел назад во Arduino за класификација на удари во реално време.
Шутеви од крикет земени предвид во овој проект:
– Покривен погон
– Прав погон
– Повлечете го ударот

Чекор 1: Хардверски барања

– Arduino UNO R4 WiFi
– ADXL345 Акцелерометар (I2C)
– Кабли за скокање
– Лебна плоча (опционално)
– USB тип-C кабел

Чекор 2: Барања за софтвер

– Arduino IDE (најнова верзија)
– Сметка на Edge Impulse Studio (бесплатна)
– Edge Impulse CLI алатки (потребно е Node.js)
– Библиотека Adafruit ADXL345

Чекор 3: Поврзување на ADXL345

Поврзете го сензорот ADXL345 со Arduino UNO R4 WiFi на следниов начин:
VCC → 3.3V
GND → GND
СДА → СДА (A4)
SCL → SCL (A5)
CS → 3.3V (опционално, за I2C режим)
SDO → лебдечки или GNDArduino ABX00087 UNO R4 WiFi развојна плочка - повеќеview

Чекор 4: Подгответе го IDE сензорот

Како да инсталирате библиотеки на сензори во Arduino IDE?
Отвори Arduino IDE
Отворете Алатки → Управување со библиотеки… и инсталирајте: Adafruit ADXL345 Unified Adafruit Unified Sensor
(Ако наместо тоа имате LSM6DSO или MPU6050: инсталирајте SparkFun LSM6DSO, Adafruit LSM6DS или MPU6050 соодветно.)

Чекор 5: Скица на Arduino за собирање податоци

Поставете ја оваа скица на вашиот Arduino UNO R4 WiFi. Таа ги стримува податоците од акцелерометарот во CSV формат (x,y,z) на ~18 Hz за Edge Impulse.
#вклучи
#вклучи
Adafruit_ADXL345_Unified забрзување =
Adafruit_ADXL345_Unified(12345);
празнина поставка() {
Serial.begin(115200);
ако (!accel.begin()) {
Serial.println(“Не е откриен ADXL345”);
додека (1);
}
accel.setRange(ADXL345_RANGE_4_G);
}
празнина јамка() {
сензори_настан_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
}

Поставување на Edge Impulse

Arduino ABX00087 UNO R4 WiFi развојна плоча - Поставување

Чекор 6: Поврзување со Edge Impulse

  1. Затвори го серискиот монитор на Arduino.
  2. Извршете ја командата: edge-impulse-data-forwarder –frequency 18
  3. Внесете имиња на оски: accX, accY, accZ
  4. Именувајте го вашиот уред: Arduino-Cricket-Board
  5. Потврдете ја врската во Edge Impulse Studio под „Уреди“.

Arduino ABX00087 UNO R4 WiFi развојна плочка - Поврзување со Edge ImpulseArduino ABX00087 UNO R4 WiFi развојна плочка - Поврзување со Edge Impulse 1

Чекор 7: Собирање податоци

Во Edge Impulse Studio → Собирање податоци:
– Уред: Ардуино-Крикет-Табла
– Сензор: Акцелерометар (3 оски)
– Сampдолжина на сликата: 2000 ms (2 секунди)
– Фреквенција: 18 Hz
Снимајте најмалку 40 секундиampпомалку по час:
– Покривен погон
– Прав погон
– Повлечете го ударотArduino ABX00087 UNO R4 WiFi развојна плочка - Собирање податоциСобирање податоци на пр.ampлес
Покријте го Drive
Уред: Ардуино-Крикет-Табла
Ознака: Покривен диск
Сензор: Сензор со 3 оски (accX, accY, accZ)
Sampдолжина на сликата: 10000ms
Фреквенција: 18 ​​Hz
ExampСуровите податоци:
accX -0.32
accY 9.61
accZ -0.12
Правен погон
Уред: Ардуино-Крикет-Табла
Ознака: Прав погон
Сензор: Сензор со 3 оски (accX, accY, accZ)
Sampдолжина на сликата: 10000ms
Фреквенција: 18 ​​Hz
ExampСуровите податоци:
accX 1.24
accY 8.93
accZ -0.42
Повлечете го ударот
Уред: Ардуино-Крикет-Табла
Ознака: Повлечете го ударот
Сензор: Сензор со 3 оски (accX, accY, accZ)
Sampдолжина на ле: 10000 ms
Фреквенција: 18 ​​Hz
ExampСуровите податоци:
accX 2.01
accY 7.84
accZ -0.63 Arduino ABX00087 UNO R4 WiFi развојна плочка - Собирање податоци 1

Чекор 8: Импулсен дизајн

Отвори Креирај импулс:
Влезен блок: Податоци од временски серии (3 оски).
Големина на прозорец: 1000 ms Зголемување на прозорецот (чекор): 200 ms Овозможи: Оски, Магнитуда (опционално), фреквенција 18.
Блок за обработка: Спектрална анализа (позната и како Спектрални карактеристики за движење). Големина на прозорец: 1000 ms Зголемување на прозорецот (чекор): 200 ms Овозможи: Оски, Магнитуда (опционално), задржи ги сите стандардни вредности прво.
Блок за учење: Класификација (Керас).
Кликнете на Зачувај импулс. Arduino ABX00087 UNO R4 WiFi развојна плочка - Impulse Design

Генерирај карактеристики:
Одете во Спектрална анализа, кликнете на Зачувај параметри, потоа Генерирај карактеристики за множеството за обука.

Arduino ABX00087 UNO R4 WiFi развојна плочка - тренинг сет

Обучете мал модел
Одете во Класификатор (Keras) и користете компактна конфигурација како:
Нервна мрежа: 1–2 густи слоеви (на пр., 60 → 30), ReLU
Епохи: 40–60
Стапка на учење: 0.001–0.005
Големина на серија: 32
Поделба на податоци: 80/20 (обука/тест)
Зачувајте ги и обучете ги податоцитеArduino ABX00087 UNO R4 WiFi Development Board - Зачувајте ги и обучете ги податоците

Оценете и проверете го тестирањето на моделот со множеството holdout.
Проверете ја матрицата за конфузија; ако кругот и нагоре се преклопуваат, соберете поразновидни податоци или изменете
Спектрални параметри (големина на прозорецот / под на бучава).

Чекор 9: Распоредување на Arduino

Одете на Распоредување:
Изберете ја библиотеката Arduino (библиотеката C++ исто така работи).
Овозможете го компајлерот EON (доколку е достапен) за да ја намали големината на моделот. Arduino ABX00087 UNO R4 WiFi развојна плочка - Распоредување на ArduinoПреземете го .zip, потоа во Arduino IDE: Sketch → Include Library → Add .ZIP Library… Ова додава ексampпомалку како статички бафер и континуиран под File → Прamples →
Име на вашиот проект – Edge Impulse. Скица за инференција за Arduino UNO EK R4 WiFi + ADXL345.

Чекор 10: Скица за инференција на Arduino

#вклучи
#вклучи
#вклучи // Замени со заглавие Edge Impulse
Adafruit_ADXL345_Unified забрзување =
Adafruit_ADXL345_Unified(12345);
статички bool debug_nn = false;
празнина поставка() {
Serial.begin(115200);
додека (!Сериски) {}
ако (!accel.begin()) {
Serial.println(“ГРЕШКА: ADXL345 не е откриен”);
додека (1);
}
accel.setRange(ADXL345_RANGE_4_G);
}
празнина јамка() {
лебдечки бафер[EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE] = {0};
за (големина_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);
бафер[ix + 0] = e.acceleration.x;
бафер[ix + 1] = e.acceleration.y;
бафер[ix + 2] = e.acceleration.z;
int32_t чекај = (int32_t)(next_tick – микрос());
ако (чекај > 0) delayMicroseconds(чекај);
}
сигнал_т сигнал;
int err = numpy::signal_from_buffer(бафер,
EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE, &сигнал);
ако (err != 0) врати;

ei_impulse_result_t резултат = {0};
EI_IMPULSE_ERROR res = run_classifier(&сигнал, &резултат,
debug_nn);
ако (res != EI_IMPULSE_OK) врати;

за (големина_t ix = 0; ix < EI_CLASSIFIER_LABEL_COUNT; ix++) {
ei_printf(“%s: %.3f “, резултат.класификација[ix].ознака,
резултат.класификација[ix].вредност);
}
#ако EI_CLASSIFER_HAS_ANOMALY == 1
ei_printf(“аномалија: %.3f”, резултат.аномалија);
#крај
ei_printf(“\n”);
}

Излез прampле:

Arduino ABX00087 UNO R4 WiFi развојна плочка - Arduino Inference SketchСовети:
Одржувајте го EI_CLASSIFIER_INTERVAL_MS синхронизирано со фреквенцијата на вашиот пренасочувач на податоци (на пр., 100 Hz → 10 ms). Библиотеката Edge Impulse ја поставува оваа константа автоматски од вашиот импулс.
Ако сакате континуирано откривање (лизгачки прозорец), започнете од Континуиранотоample вклучено во библиотеката EI и замена во читањата на ADXL345.
Наскоро ќе додадеме видео упатства; дотогаш, следете не – https://www.youtube.com/@RobuInlabs
И ако сè уште имате некои сомнежи, можете да го погледнете ова видео од Edged Impulse: https://www.youtube.com/watch?v=FseGCn-oBA0&t=468s

Логото на Ардуино

Документи / ресурси

Arduino ABX00087 UNO R4 WiFi развојна плочка [pdf] Упатство за корисникот
R4 WiFi, ADXL345, ABX00087 UNO R4 WiFi развојна плочка, ABX00087, UNO R4 WiFi развојна плочка, WiFi развојна плочка, развојна плочка, плочка

Референци

Оставете коментар

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *