Orodha ya maudhui:
- Hatua ya 1: Zana na Vifaa
- Hatua ya 2: Kuunda Jaribio
- Hatua ya 3: Kuendesha Jaribio
- Hatua ya 4: Jaribio: Kiwango cha Mfano
- Hatua ya 5: Jaribio: Kuonyesha Kelele
- Hatua ya 6: Jaribio: Punguza kelele na Wastani wa Kusonga
- Hatua ya 7: Jaribio: Kusonga Wastani na Kiwango cha Sampuli
- Hatua ya 8: Jaribio: Kuingia na Trigger
- Hatua ya 9: Jaribio: Kuingia na Trigger - Kelele ya sauti
- Hatua ya 10: Fanya Majaribio Yako Mwenyewe
- Hatua ya 11: Kutumia Mbinu katika Programu yako ya Uwekaji miti
Video: Majaribio ya Uwekaji wa Takwimu za Juu (Kutumia Chatu): Hatua 11
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:49
Kuna mafundisho mengi ya ukataji wa data, kwa hivyo wakati nilitaka kujenga mradi wa kukata miti mwenyewe niliangalia karibu na kundi. Zingine zilikuwa nzuri, zingine sio nyingi, kwa hivyo niliamua kuchukua maoni bora na kufanya maombi yangu mwenyewe. Hii ilisababisha mradi kuwa wa hali ya juu zaidi na ngumu zaidi kuliko vile nilivyotarajia mwanzoni. Sehemu moja yake ikawa safu ya majaribio katika usindikaji wa data ya sensorer. Mafundisho haya hukuruhusu kujaribu majaribio sawa au yanayofanana.
(Unaweza kutazama nambari yote na kuipakua kwa: Nambari kwenye GitHub Unaweza kuingia kutazama, labda kwenye dirisha lingine, kwa kubofya mara 2 tu)
Uwekaji wa data kawaida unajumuisha yafuatayo:
- Upataji wa data: Soma data kutoka sensa. Mara nyingi hii ni kusoma tu analojia kwa kibadilishaji cha dijiti (ADC) kwenye kifaa kama Arduino.
- Usindikaji wa data: Wakati wa kusoma dhamana ya ADC pato la waongofu kawaida huhitaji kupandishwa kwa vitengo sahihi. Kunaweza pia kuwa na hitaji la kufanya marekebisho kadhaa ili kusawazisha maadili ili kurekebisha makosa ya sensorer.
- Kuchuja: Takwimu kawaida huwa na kelele, hii inaweza kuchujwa kwa hivyo unatafuta ishara katika data yako, sio kelele.
- Uhifadhi wa data: Takwimu zimehifadhiwa, labda kwa faili ya maandishi, labda kwa wingu. Takwimu zinapaswa kuishi hata kama umeme unazima. Ni rahisi kuokoa data nyingi, tuna hila kidogo kupunguza nafasi ya kuhifadhi data.
- Uonyesho wa data: Njia za kuangalia data yako, sio ukataji wa data kweli, lakini ikiwa haufanyi aina fulani ya onyesho la data kwanini uikusanye?
- Ufikiaji wa mbali: Sio lazima lakini ni nzuri kuwa nayo.
Mafundisho mengi ni pamoja na zingine lakini sio yote hapo juu, au zifanye kwa njia rahisi sana. Mafundisho haya yatashughulikia 2 ya maswala ya kukata magogo mara nyingi na kama bonasi inakupa njia ya kuchora data yako bila kutumia huduma ya wingu. Unaweza kutumia kitu kizima au kuvuta vipande na vipande na kuzibadilisha kuwa mradi wako mwenyewe.
Hatua ya 1: Zana na Vifaa
Mfano huu uko katika Python kwa hivyo itaendelea, na vifaa vinaweza kutumika, OS yoyote ikiwa ni pamoja na Mac, PC, Linux na Raspberry Pi.
Kwa hivyo kutumia hii inayoweza kufundishwa unachohitaji ni mazingira ya Python 3.6, na pakua nambari iliyoambatanishwa. Baada ya kutumia nambari niliyoweka, unaweza kuibadilisha kwa majaribio yako mwenyewe. Kama ilivyo kawaida na Python unaweza kuhitaji kuongeza vifurushi / moduli ili kila kitu kifanye kazi. Mazingira yangu ya Spyder huja na sehemu zote zinazohitajika mahali hapo (tazama: Maoni yanayoweza kupangiliwa na Grafu na Kuharibu Screen ya Python). Unapoanza kutazama ujumbe wowote wa hitilafu watakujulisha juu ya sehemu zozote zinazokosekana kwenye mazingira yako.
Hatua mbili zifuatazo zitakuambia jinsi ya kujenga na kujaribu jaribio lako mwenyewe, lakini labda ni bora kusubiri hadi uanze majaribio yaliyojumuishwa kabla ya kujaribu yako mwenyewe.
Ili kuelewa nambari utahitaji kuwa na uzoefu kidogo na Chatu inayolenga kitu, kuelezea hiyo ni zaidi ya upeo wa hii inayoweza kufundishwa, lakini Google inapaswa kukupa msaada wowote ambao unaweza kuhitaji.
Kumbuka nambari: (Nambari katika GitHub Unaweza kuingia kutazama, labda kwenye dirisha lingine, kwa kubonyeza mara 2 tu) sasa iko kwenye Python 3.6, kwa hivyo kuwa na 3.6 itakuwa bora. Toleo la zamani la nambari liko hapa kwenye viungo hapa chini.
Hatua ya 2: Kuunda Jaribio
Kuna hatua tatu za programu (na mistari) katika kujenga jaribio. Kila jaribio ni kazi katika kitu cha LoggingSim kwenye faili simulate_logging.py. Hebu tuangalie jaribio 1 (tu grafu ya kwanza) ambayo tutatumia katika hatua inayofuata:
def majaribio_with_sample_rate (binafsi):
chapa "" "Jaribu na Viwango vya Mfano Kuangalia viwango tofauti vya sampuli kwa kubadilisha delta T" "" self.start_plot (plot_title = "Viwango vya Sampuli - Sehemu ya 1/3: Delta T = 1.0") self.add_sensor_data (name = "dt = 1. ", amplitude = 1., sauti_amp =.0, delta_t = 1., max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot ()
Kila jaribio limeandikwa kama kazi yake mwenyewe kwa hivyo tuna mstari unaofafanua kazi (jaribio la def…..)
Mstari unaofuata, usio wa maoni, (start_plot (….) Huunda kitu cha jaribio na kukipa jina.
Mstari unaofuata, usio wa maoni, (add_sensor_data (…) umegawanywa katika mistari kadhaa. Inafananisha sensa inayopima ishara na uwezekano wa kelele na usindikaji fulani. Hoja za kazi ni kama ifuatavyo:
- jina: jina lililowekwa kwenye grafu ya mwisho ili kutambua data
- amplitude: ishara ni kubwa kiasi gani, tutatumia kila mara amplitude ya 1. katika hii inayoweza kufundishwa.
- kelele_ya sauti: kelele ni kubwa kiasi gani, 0. hakuna kelele, tutaanza hapa.
- delta_t: wakati kati ya vipimo, hudhibiti kiwango cha sampuli.
- max_t: wakati wa juu zaidi wa kukusanya data, tutatumia 10 kila wakati katika hii inayoweza kufundishwa.
- run_ave: usindikaji kwa kutumia wastani wa kukimbia, 0 inamaanisha hakuna usindikaji.
- trigger_value: usindikaji kwa kutumia kuchochea, 0 inamaanisha hakuna usindikaji
laini ya mwisho, isiyo ya maoni, (self.show_plot ……) inaonyesha grafu.
Ili kufanya mambo kuwa ngumu zaidi unaweza kuwa na mistari mingi kwenye grafu au grafu nyingi katika jaribio, hii inapaswa kuwa wazi kutoka kwa majaribio yanayofuata.
Hatua ya 3: Kuendesha Jaribio
Hii ndio nambari ya kuendesha jaribio. Kama kawaida katika Python imewekwa mwisho wa faili.
sim_logging = LoggingSim ()
sim_logging.experiment_with_sample_rate ()
Hii ni mistari 2 tu:
- Unda simulator ya kukata miti (LoggingSim ())
- Endesha (sim_logging.experiment_with_sample_rate ())
Katika nambari iliyopakuliwa nina mistari machache zaidi na maoni, inapaswa kuwa rahisi kugundua.
Hatua ya 4: Jaribio: Kiwango cha Mfano
Simulator, kama imewekwa hapa, kila wakati hutoa wimbi laini laini la saizi ya 1. Kwa jaribio hili tutachanganya na kiwango cha sampuli, kama ilivyobadilishwa na delta_t, tofauti ya wakati kati ya sampuli. Hatutakuwa na kelele au usindikaji mwingine. Nambari hiyo hutumia viwango vya sampuli 3 (delta_t = 1.0, 0.1 na 0.01.) Kwa kuwa grafu zinaanguka juu ya kila mmoja jaribio limewekwa ili kutoa grafu 3 tofauti. Grafu zinazosababishwa ni picha za hatua hii.
def majaribio_with_sample_rate (binafsi):
chapa "" "Jaribu na Viwango vya Mfano Kuangalia viwango tofauti vya sampuli kwa kubadilisha delta T" "" self.start_plot (plot_title = "Jaribio la Viwango vya Sampuli 1/3: Delta T = 1.0") self.add_sensor_data (jina = "dt = 1. ", amplitude = 1., sauti_amp =.0, delta_t = 1., max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot () # ------------- -------------------------- T = 0.1 ") self.add_sensor_data (jina =" dt = 1. ", amplitude = 1., noise_amp =.0, delta_t = 0.1, max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot () # ------------------------------------------------ binafsi start_plot (plot_title = "Sampuli ya Viwango vya Sampuli 3/3: Delta T = 0.01") self.add_sensor_data (name = "dt = 1.", amplitude = 1., noise_amp =.0, delta_t = 0.01, max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot ()
Ili kuiendesha tumia laini: sim_logging.experiment_with_sample_rate ()
Hitimisho linalowezekana:
- Kiwango cha chini sana cha sampuli ni mbaya sana.
- Viwango vya juu mara nyingi ni bora.
(Nambari ya Python 3.6 kwenye kiunga cha GitHub hapa chini kwa kufundisha, 2.7)
Hatua ya 5: Jaribio: Kuonyesha Kelele
Katika jaribio hili tunaweka ishara sawa, tumia kiwango cha wastani cha sampuli, na tuna kelele nyingi tofauti (noise_amp =.0,.1, 1.0.) Endesha na: sim_logging.experiment_showing_noise (). Pato ni grafu moja na mistari 3.
Hitimisho linalowezekana:
Kelele hufanya iwe ngumu kuona ishara, punguza ikiwa unaweza
Nambari:
# ------------------------------------------------
def experiment_showing_noise (self): chapa "" "Jaribio la kuonyesha kelele Kuangalia kelele tofauti kwa kubadilisha ukubwa wa kelele." ", amplitude = 1., noise_amp =.0, delta_t =.1, max_t = 10., run_ave = 0, trigger_value = 0) self.add_sensor_data (jina =" kelele = 0.1 ", amplitude = 1., sauti_amp =. 1, delta_t =.1, max_t = 10., run_ave = 0, trigger_value = 0) self.add_sensor_data (name = "noise = 1.0", amplitude = 1., noise_amp = 1., delta_t =.1, max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot ()
Hatua ya 6: Jaribio: Punguza kelele na Wastani wa Kusonga
Wastani wa kusonga (kwa mfano na urefu wa 8) huchukua vipimo 8 vya mwisho na kuzipima wastani. Ikiwa kelele ni ya nasibu tunatumai itakuwa wastani wa karibu 0. Tumia jaribio na: sim_logging.experiment_showing_noise (). Pato grafu moja.
Hitimisho linalowezekana:
- Wastani wa kusonga huondoa kelele nyingi
- Kadiri wastani wa kusonga unavyopungua ndivyo upunguzaji wa kelele zaidi
- Wastani wa kusonga kwa muda mrefu unaweza kupunguza na kupotosha ishara
Nambari:
# ------------------------------------------------
def experiment_with_moving_average (self): chapa "" "Jaribio la KusongaWastani Kuangalia wastani wa Kusonga tofauti kwa kubadilisha urefu. Wote wana kelele sawa." "" # ------------------ ----------------------.add_sensor_data (jina = "ave len = 0", amplitude = 1., noise_amp =.1, delta_t =.1, max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot () self.start_plot (plot_title) = "Kusonga Wastani-Sehemu ya 2/2: Len 8 na 32") self.add_sensor_data (jina = "ave len = 8", amplitude = 1., noise_amp =.1, delta_t =.1, max_t = 10., run_ave = 8, trigger_value = 0) self.add_sensor_data (jina = "ave len = 32", amplitude = 1., noise_amp =.1, delta_t =.1, max_t = 10., run_ave = 32, trigger_value = 0) self.show_plot ()
Hatua ya 7: Jaribio: Kusonga Wastani na Kiwango cha Sampuli
Katika jaribio hili tunalinganisha ishara mbichi na kelele na tofauti 2 tofauti juu ya kupunguza kelele.
- Kiwango cha sampuli ya kati na wastani wa kukimbia
- Kiwango cha juu cha sampuli na wastani wa urefu mrefu
Endesha na: sim_logging …… Pato ni grafu moja. Nadhani ni wazi kwamba # 2 inafanya kazi bora kupunguza kelele ili tuweze kuhitimisha kuwa:
Kiwango cha juu cha sampuli na wastani wa urefu wa juu ni nzuri
Lakini lazima ukumbuke kuwa kuna gharama. # 2 inachukua usindikaji zaidi na husababisha data nyingi zaidi kuokolewa. Gharama inaweza kuwa ya thamani au haifai. Katika jaribio linalofuata tutaongeza kichocheo, kifaa cha kupunguza idadi ya data iliyohifadhiwa.
Nambari:
def majaribio_na_kusonga_ wastani_na_sampuli_pima (binafsi):
chapisha "" "Jaribio la Kusonga Wastani na Kiwango cha Sampuli, dt, wastani wa kukimbia kuwa tofauti" "" # ---------------------------- -------------- 0 ", amplitude = 1., noise_amp =.1, delta_t =.1, max_t = 10., run_ave = 0, trigger_value = 0) self.add_sensor_data (jina =" dt =. 1 ra = 10 trig = 0 ", amplitude = 1., noise_amp =.1, delta_t =.1, max_t = 10., run_ave = 10, trigger_value = 0) self.add_sensor_data (jina = "dt =.01 ra = 100 trig = 0", amplitude = 1., sauti_amp =.1, delta_t =.01, max_t = 10., run_ave = 100, trigger_value = 0) self.show_plot ()
Hatua ya 8: Jaribio: Kuingia na Trigger
Katika jaribio hili tunaongeza kichocheo. Kwanza, ninamaanisha nini na kichocheo? Kichocheo ni mbinu ambapo tunakusanya data lakini tuihifadhi baada ya mabadiliko kadhaa kubadilika kwa kiwango kikubwa. Katika majaribio haya niliweka kichocheo kwa ubadilishaji wa saa (x axis). Kwa kutumia kichochezi ninaweza kuchukua kiwango cha juu cha data kutoka kwa sampuli ya haraka na kuipunguza kwa data inayofaa zaidi. Umuhimu ni muhimu na viwango vya juu vya sampuli na wastani wa mbio ndefu.
Nimechukua # 2 laini kutoka kwa jaribio la mwisho ambalo lilikuwa "nzuri" kichocheo kilichoongezwa. Endesha na: sim_logging …… Pato ni grafu moja, x mistari.
Nini kinatokea? Tunapata njama "nzuri" na idadi inayofaa ya data (sawa na # 1). Kumekuwa na gharama katika usindikaji wa hali ya juu. Kwa ujumla, hata hivyo, matokeo ni sawa na # 1 kiwango cha chini cha sampuli na uchujaji mdogo. Unaweza kuhitimisha:
- Wastani wa kukimbia kwa muda mrefu na kuchochea kunaweza kutoa upunguzaji mzuri wa kelele na idadi inayofaa ya data.
- Usindikaji wa ziada hauwezi kutoa matokeo bora zaidi na huja na gharama.
Nambari:
# ------------------------------------------------
def experiment_with_trigger (self): chapisha "" "Jaribio la Kuchochea, dt, wastani wa kukimbia na kuchochea yote kuwa tofauti" "" # ----------------------- -----------.1 ra = 10, trig = 0 ", amplitude = 1., sauti_amp =.1, delta_t =.1, max_t = 10., run_ave = 10, trigger_value = 0) self.add_sensor_data (name =" dt =.01 ra = 100, trig =.1 ", amplitude = 1., sauti_amp =.1, delta_t =.01, max_t = 10., run_ave = 100, trigger_value =. 1) self.show_plot ()
=
Hatua ya 9: Jaribio: Kuingia na Trigger - Kelele ya sauti
Wacha tuchukue jaribio sawa na hatua ya mwisho na tuongeze kelele. Endesha na: sim_logging …… Pato ni grafu moja, mistari 2.
Sasa usindikaji wa ziada unaonekana kuwa wa thamani zaidi wakati. Hitimisho linalofaa hapa linaweza kuwa:
Kuchukua kiasi na aina ya usindikaji wa kupunguza kelele inategemea ishara yako na kelele
Nambari:
def majaribio_ na_trigger_louder_noise (ubinafsi):
chapa "" "Kelele kali kuliko jaribio la awali" "self.start_plot (plot_title =" Jaribio la Kelele ya Kuchochea -Uzito ") self.add_sensor_data (name ="… dt =.1 ra = 10 ", amplitude = 1., kelele_mpira sauti_amp =.5, delta_t =.01, max_t = 10., run_ave = 100, trigger_value =.1) self.show_plot ()
Hatua ya 10: Fanya Majaribio Yako Mwenyewe
Kwa wakati huu natumahi unaona kuwa mbinu katika hii inayoweza kufundishwa inaweza kuwa na manufaa katika ukataji wa data, lakini kwamba lazima pia zitumiwe na mawazo fulani. Kujaribu nao kunaweza kusaidia mchakato huo.
Maneno mengine juu ya majaribio na vitu ambavyo unaweza kutazama:
- Mawimbi ya Sine sio tu aina ya ishara ya kuvutia, jaribu zingine, mawimbi mengine au njia panda au…..
- Nilitumia usambazaji wa kawaida kwa kelele, kuna aina nyingi za kelele; unapaswa kuzingatia wengine
- Wastani wa kukimbia ni njia rahisi, lakini sio njia pekee ya kuangalia kelele
Kumbuka: picha za magogo kutoka Wikipedia.
Hatua ya 11: Kutumia Mbinu katika Programu yako ya Uwekaji miti
Nambari yangu imeelekezwa kwa kitu na usindikaji wa wastani wa kutumia na kichocheo unaweza kunakiliwa tu katika mazingira yako ya Python kisha utumiwe. Vitu ni:
- DataTrigger katika data_trigger.py
- Kusonga Wastani wa kusonga_ wastani.py
Kitu changu kuu LoggingSim in simulate_logging.py inapaswa kukupa mfano mzuri wa jinsi ya kutumia. Ikiwa unatumia lugha nyingine unaweza kusoma nambari yangu na kutekeleza katika lugha yako.
Nambari hii inaweza kuwapa mradi wako ukataji data bora, jaribu.
Grafu hapo juu imetoka kwa Grafu Nguvu yako ya jua na russ_hensel ambayo hutumia kitu sawa cha wastani cha kukimbia.
Ilipendekeza:
Majaribio ya Majaribio: Hatua 13
Jaribio la Majibu: Watu ambao hujibu pole pole katika nyanja zote, iwe ni kucheza michezo au maswali, wote wana shida, kwa hivyo nataka kubuni mchezo wa kufundisha majibu. Zifuatazo ni sheria za mchezo: bonyeza kwanza kitufe cha kuweka upya, subiri
Kusoma Takwimu za Ultrasonic (HC-SR04) Takwimu kwenye LCD ya 128 × 128 na kuiona kwa kutumia Matplotlib: Hatua 8
Kusoma Takwimu za Utambuzi wa Ultrasonic (HC-SR04) kwenye LCD ya 128 × 128 na Kuiona Ukitumia Matplotlib: Katika hii inayoweza kufundishwa, tutatumia MSP432 LaunchPad + BoosterPack kuonyesha data ya sensa ya ultrasonic (HC-SR04) kwenye 128 × 128 LCD na tuma data kwa PC mfululizo na uione kwa kutumia Matplotlib
Kituo cha hali ya hewa na Uwekaji wa Takwimu: Hatua 7 (na Picha)
Kituo cha hali ya hewa na Uwekaji wa Takwimu: Katika hii inayoweza kufundishwa nitakuonyesha jinsi ya kutengeneza mfumo wa kituo cha hali ya hewa na wewe mwenyewe. Unachohitaji tu ni maarifa ya kimsingi katika vifaa vya elektroniki, programu na wakati kidogo.Mradi huu bado unaendelea. Hii ni sehemu ya kwanza tu. Maboresho yatakuwa
Ushauri juu ya Mbinu ya Sauti ya Sauti na Uwekaji wa Sauti: Hatua 5
Ushauri juu ya Mbinu ya Sauti ya Sauti na Uwekaji wa Sauti: Kwa wasio na uzoefu, kutumia kipaza sauti mwanzoni inaweza kuonekana kuwa kazi rahisi. Unazungumza tu au kuimba kwa sauti ya juu hapo juu na sauti nzuri iliyo wazi na yenye usawa itatolewa kutoka kwa spika ili kusifiwa sana kutoka kwa
Majaribio ya Majaribio: Hatua 4
Reaction Tester: Kwa jina hili la jina unaweza kujaribu majibu yako. Unachohitaji: 1x Arduino Uno1x Breadboard1x Buzzer (5V) 3x LED (Nilitumia rangi ya samawati, lakini unaweza kuchukua rangi / rangi yako mwenyewe) Vifungo 3x 1x MDF (au nyenzo zingine. unataka kutumia kujenga nyumba yako)