Përmbajtje:
- Furnizimet
- Hapi 1: Diagrami i Qarkut
- Hapi 2: Krijimi i grupit të të dhënave për makinën e zbulimit të kollës
- Hapi 3: Lidhu me telefonin celular
- Hapi 4:
- Hapi 5: Trajnimi i modelit dhe rregullimi i kodit
- Hapi 6:
- Hapi 7: Kodi
Video: Detektor i kollës me madhësi xhepi: 7 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:10
COVID19 është me të vërtetë një pandemi historike që prek gjithë botën shumë keq dhe njerëzit po ndërtojnë shumë pajisje të reja për të luftuar me të. Ne gjithashtu kemi ndërtuar një makinë sanitare automatike dhe Armë Termike për kontrollimin e temperaturës pa Kontakt. Sot do të ndërtojmë një pajisje tjetër për të ndihmuar në luftimin e Coronavirus. Shtë një sistem zbulimi i kollës, i cili mund të bëjë dallimin midis zhurmës dhe tingullit të kollës dhe mund të ndihmojë në gjetjen e të dyshuarit për Corona. Për këtë do të përdorë teknika të mësimit të makinerisë.
Në këtë tutorial, ne do të ndërtojmë një sistem të zbulimit të kollës duke përdorur Arduino 33 BLE Sense dhe Edge Impulse Studio. Mund të bëjë dallimin midis zhurmës normale të sfondit dhe kollitjes në audio në kohë reale. Ne përdorëm Edge Impulse Studio për të trajnuar një grup të dhënash të mostrave të kollitjes dhe zhurmës në sfond dhe për të ndërtuar një model TInyML shumë të optimizuar, që mund të zbulojë një tingull kollë në kohë reale.
Furnizimet
Hardware
- Arduino 33 BLE Sense
- Bluzë LED
- Telat
Softuer
- Studio Edge Impulse
- Arduino IDE
Hapi 1: Diagrami i Qarkut
Diagrami qarkor për zbulimin e kollës duke përdorur Arduino 33 BLE Sense është dhënë më lart. Pjesa e ngrirjes për Arduino 33 BLE nuk ishte e disponueshme, kështu që unë përdor Arduino Nano pasi të dy kanë të njëjtin pin-out.
Plumbi pozitiv i LED është i lidhur me kunjin dixhital 4 të Arduino 33 BLE sense dhe plumbi negativ është i lidhur me kunjin GND të Arduino.
Hapi 2: Krijimi i grupit të të dhënave për makinën e zbulimit të kollës
Siç u përmend më herët, ne po përdorim Edge Impulse Studio për të trajnuar modelin tonë të zbulimit të kollës. Për këtë, ne duhet të mbledhim një grup të dhënash që ka mostrat e të dhënave që ne do të donim të ishim në gjendje të njihnim në Arduino -n tonë. Meqenëse qëllimi është zbulimi i kollës, do t'ju duhet të mbledhni disa mostra të atij dhe disa mostra të tjera për zhurmë, në mënyrë që të bëjë dallimin midis Kollitjes dhe Zhurmave të tjera. Ne do të krijojmë një grup të dhënash me dy klasa "kollë" dhe "zhurmë". Për të krijuar një grup të dhënash, krijoni një llogari Edge Impulse, verifikoni llogarinë tuaj dhe më pas filloni një projekt të ri. Ju mund t'i ngarkoni mostrat duke përdorur celularin tuaj, bordin tuaj Arduino ose mund të importoni një grup të dhënash në llogarinë tuaj të impulsit buzë. Mënyra më e lehtë për të ngarkuar mostrat në llogarinë tuaj është duke përdorur telefonin tuaj celular. Për këtë, duhet të lidhni celularin tuaj me Edge Impulse. Për të lidhur telefonin tuaj celular, klikoni në "Pajisjet" dhe pastaj klikoni në "Lidhni një pajisje të re".
Hapi 3: Lidhu me telefonin celular
Tani në dritaren tjetër, klikoni në "Përdorni telefonin tuaj celular" dhe do të shfaqet një kod QR. Skanoni kodin QR me telefonin tuaj celular duke përdorur Google Lens ose aplikacionin tjetër të skanimit të kodit QR.
Kjo do të lidhë telefonin tuaj me studion Edge Impulse.
Me telefonin tuaj të lidhur me Edge Impulse Studio, tani mund të ngarkoni mostrat tuaja. Për të ngarkuar mostrat, klikoni në "Marrja e të dhënave". Tani në faqen e marrjes së të dhënave, futni emrin e etiketës, zgjidhni mikrofonin si sensor dhe futni gjatësinë e mostrës. Klikoni në 'Filloni marrjen e mostrave', për të filluar marrjen e mostrës së një mostre 40 sek. Në vend që të detyroheni të kolliteni, mund të përdorni mostra online të kollës me gjatësi të ndryshme. Regjistroni gjithsej 10 deri në 12 mostra kollë me gjatësi të ndryshme.
Hapi 4:
Pas ngarkimit të mostrave të kollës, tani vendosni etiketën në 'zhurmë' dhe mblidhni 10 deri në 12 mostra të tjera të zhurmës.
Këto mostra janë për Trajnimin e modulit, në hapat e ardhshëm, ne do të mbledhim të dhënat e testit. Të dhënat e testit duhet të jenë të paktën 30% të të dhënave të trajnimit, kështu që mblidhni 3 mostrat e "zhurmës" dhe 4 deri në 5 mostra të "kollës". Në vend që të grumbulloni të dhënat tuaja, mund të importoni grupin tonë të të dhënave në llogarinë tuaj Edge Impulse duke përdorur Edge Ngarkuesi Impulse CLI. Për të instaluar Ngarkuesin CLI, së pari, shkarkoni dhe instaloni Node.js në laptopin tuaj. Pas kësaj hapni komandën dhe futni komandën më poshtë:
npm install -g edge-impuls-cli
Tani shkarkoni grupin e të dhënave (Link Dataset) dhe nxirrni skedarin në dosjen e projektit tuaj. Hapni vijën e komandës dhe lundroni në vendndodhjen e të dhënave dhe ekzekutoni komandat e mëposhtme:
edge-impulse-uploader --cleanedge-impulse-uploader-trajnim i kategorisë së trajnimit/*. json
edge-impulse-uploader-trajnim i kategorisë së trajnimit/*. cbor
edge-impulse-uploader-testimi i testimit të kategorisë/*. json edge-impulse-uploader-testimi i testimit të kategorisë/*. cbor
Hapi 5: Trajnimi i modelit dhe rregullimi i kodit
Ndërsa grupi i të dhënave është gati, tani ne do të krijojmë një impuls për të dhënat. Për këtë, shkoni në faqen "Krijo impuls".
Tani në faqen "Krijo impuls", klikoni në "Shto një bllok përpunimi". Në dritaren tjetër, zgjidhni bllokun Audio (MFCC). Pas kësaj klikoni në 'Shto një bllok mësimi' dhe zgjidhni bllokun e Rrjetit Neural (Keras). Pastaj klikoni në 'Ruaj Impulsin'.
Në hapin tjetër, shkoni në faqen MFCC dhe më pas klikoni në 'Gjeneroni Veçoritë'. Do të gjenerojë blloqe MFCC për të gjitha dritaret tona të audios.
Pas kësaj, shkoni te faqja "NN Classifier" dhe klikoni në tre pikat në këndin e sipërm të djathtë të "Cilësimeve të Rrjetit Neural" dhe zgjidhni "Kaloni në modalitetin Keras (ekspert)".
Zëvendësoni origjinalin me kodin e mëposhtëm dhe ndryshoni 'Vlerësimi minimal i besimit' në '0.70'. Pastaj klikoni në butonin ‘Fillo stërvitjen’. Do të fillojë të trajnojë modelin tuaj.
import tensorflow si tffrom tensorflow.keras.modele import Sequential nga tensorflow.keras.layers import Dense, InputLayer, Dropout, Flatten, Reshape, BatchNormalization, Conv2D, MaxPooling2D, AveragePooling2D nga tensorflow.keras.optimonstrators Adams MaxNorm # model arkitekture model = Sekuenciale () model.add (InputLayer (input_shape = (X_train.shape [1],), emri = 'x_input')) model.add (Ndrysho ((int (X_train.shape [1] /) 13), 13, 1), input_shape = (X_train.shape [1],))) model.add (Conv2D (10, kernel_size = 5, activation = 'relu', padding = 'same', kernel_constraint = MaxNorm (3))) model.add (AveragePooling2D (pool_size = 2, padding = 'same')) model.add (Conv2D (5, kernel_size = 5, activation = 'relu', padding = 'same', kernel_constraint = MaxNorm (3))) model.add (AveragePooling2D (size_ pool = 2, padding = 'same')) model.add (Flatten ()) model.add (I dendur (klasa, aktivizimi = 'softmax', name = 'y_pred', kernel_constraint = MaxNorm (3))) # kjo kontrollon shkallën e të mësuarit opt = Adam (lr = 0.005, beta_ 1 = 0.9, beta_2 = 0.999) # trajnoni modelin e rrjetit nervor. Grumbull (humbje = 'kryqëzim kategorik', optimizues = zgjedh, metrikë = ['saktësi']) model.fit (X_train, Y_train, batch_size = 32, epoka = 9, validation_data = (X_test, Y_test), e folur = 2)
Hapi 6:
Pas trajnimit të modelit, ai do të tregojë performancën e trajnimit. Për mua, saktësia ishte 96.5% dhe humbja ishte 0.10 që është mirë të vazhdohet.
Tani pasi modeli ynë i zbulimit të kollës është gati, ne do ta vendosim këtë model si bibliotekë Arduino. Para se të shkarkoni modelin si bibliotekë, mund të testoni performancën duke shkuar në faqen "Klasifikimi i drejtpërdrejtë". Shkoni në faqen "Vendosja" dhe zgjidhni "Biblioteka Arduino". Tani lëvizni poshtë dhe klikoni në "Ndërto" për të filluar procesin. Kjo do të krijojë një bibliotekë Arduino për projektin tuaj.
Tani shtoni bibliotekën në IDE tuaj Arduino. Për këtë hapni Arduino IDE dhe pastaj klikoni në Skicë> Përfshi Bibliotekën> Biblioteka Shto. ZIP. Pastaj, ngarkoni një shembull duke shkuar te Skedari> Shembuj> Emri i projektit tuaj - Edge Impulse> nano_ble33_sense_microphone. Ne do të bëjmë disa ndryshime në kod në mënyrë që të mund të bëjmë një tingull alarmi kur Arduino zbulon kollën. Për këtë, një zile është e ndërlidhur me Arduino dhe sa herë që zbulon kollën, LED do të pulsojë tre herë. Ndryshimet bëhen në funksionet void loop () ku printon vlerat e zhurmës dhe kollës. Në kodin origjinal, po shtyp të dy etiketat dhe vlerat e tyre së bashku. për (size_t ix = 0; ix <EI_CLASSIFIER_LABEL_COUNT; ix ++) {ei_printf (" %s: %.5f / n", result.classification [ix].label, result.classification [ix].vlera); } Ne do të ruajmë vlerat e zhurmës dhe kollës në variabla të ndryshëm dhe do të krahasojmë vlerat e zhurmës. Nëse vlera e zhurmës bie nën 0.50 kjo do të thotë se vlera e kollës është më shumë se 0.50 dhe do të bëjë zhurmë. Zëvendësoni kodin origjinal për loop () me këtë: për (size_t ix = 1; ix <EI_CLASSIFIER_LABEL_COUNT; ix ++) {Serial.print (result.classification [ix].vlera); float Data = rezultati.klasifikimi [ix].vlera; nëse (Të dhënat <0.50) {Serial.print ("Kollë e Zbuluar"); alarm (); }} Pasi të keni bërë ndryshimet, ngarkoni kodin në Arduino tuaj. Hapni monitorin serik në 115200 baud.
Kështu mund të ndërtohet një makinë për zbulimin e kollës, nuk është një metodë shumë efektive për të gjetur ndonjë të dyshuar për COVID19, por mund të funksionojë mirë në disa zona të mbushura me njerëz.
Hapi 7: Kodi
Ju lutemi gjeni skedarin e bashkangjitur, Dhe nëse ju pëlqeu mos harroni të më votoni në konkursin më poshtë.
Recommended:
Altoparlant me madhësi xhepi: 3 hapa
Altoparlanti me madhësi xhepi: Mbajeni kudo që të shkoni! Muzikë që është në lëvizje! Përshëndetje të gjithëve në këtë udhëzues (i cili është i pari im) do t'ju tregoj se si e bëra këtë altoparlant me madhësi xhepi
Robot Arm MeArm V0.4 me madhësi xhepi: 20 hapa (me fotografi)
Krah Roboti Me Madhësi Xhepi MeArm V0.4: MeArm është një Krah Roboti me Madhësi Xhepi. It'sshtë një projekt i filluar në shkurt 2014, i cili ka pasur një udhëtim fantastik të shpejtë në gjendjen e tij aktuale falë tij Open Development si një Projekt Hardware i Hapur. Versioni 0.3 u shfaq në Instructables mbrapa
Si të kontrolloni një krah robot me madhësi të madhe 4dof me madhësi të madhe me telekomandë Arduino dhe Ps2?: 4 hapa
Si të kontrolloni një krah robot me madhësi të madhe 4dof me madhësi të madhe me telekomandë Arduino dhe Ps2?: Ky komplet përdor motor të fuqisë së lartë mg996, ka nevojë për rrymë të lartë, kemi testuar shumë hyrje të energjisë. Do të funksionojë vetëm përshtatësi 5v 6a. Dhe bordi arduino punon edhe në krahun robot 6dof gjithashtu.përfundoni: shkruani blej SINONING Një dyqan për lodra DIY
Minion xhepi me madhësi xhepi: 3 hapa
Minion Bot me madhësi xhepi: > Unë e bëra këtë bot minion ditëlindjeje nga hedhurina. Ky bot i ditëlindjes Minion shkon me dritë blici në Sytë e tij duke kënduar me këngën e ditëlindjes e bëra këtë për ditëlindjen e mikut tim. Juve gjithashtu do t'ju pëlqejë kjo
USB më e lezetshme L.E.D. Dritë me madhësi xhepi (Hyrje në madhësi xhepi): 6 hapa
USB më e lezetshme L.E.D. Dritë me madhësi xhepi (Hyrje me madhësi xhepi): Në këtë Udhëzues, unë do t'ju tregoj se si të bëni një L.E.D të mundësuar nga USB. dritë që mund të paloset në madhësinë e një kallaji X-it Mints dhe mund të futet lehtësisht në xhepin tuaj. Nëse ju pëlqen, sigurohuni që ta bëni + dhe të votoni për mua në konkurs! Materialet dhe