Sadržaj:
- Korak 1: Naredba za provjeru opterećenja procesora za Linux
- Korak 2: Sheme
- Korak 3: NE555 Različita generacija takta
- Korak 4: Dijelovi
- Korak 5: Izrada crteža na PCB -u
- Korak 6: Lemljenje
- Korak 7: Sklapanje
- Korak 8: Revidiranje originalnog kola
- Korak 9: Promjena izvorne sheme
- Korak 10: Testiranje
- Korak 11: Python kod
- Korak 12: Relativnost između opterećenja sistema i temperature procesora
- Korak 13: Finalizacija
Video: Pokazatelj opterećenja Raspberry Pi CPU -a: 13 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
Kada pokrećete Raspberry Pi (RPI) kao bez glave bez monitora konzole, nisu dostupne posebne vizuelne indikacije za prepoznavanje da RPI zaista nešto radi.
Iako se udaljeni terminal koristi sa SSH -om, potrebno je povremeno izvršavanje Linux naredbe kako bi se provjerilo koliko opterećenje sistema trenutno opterećuje CPU
Dakle, ovo kolo je napravljeno da pomogne u prepoznavanju stvarnih aktivnosti CPU-a (možda polustvarnog ili skoro realnog) za izvršavanje trenutno primijenjenih sistemskih opterećenja.
Iako samo programiranje na pythonu i mnogo jednostavnije kolo mogu podržati istu funkcionalnost, bit će potrebno malo složenijih kodova pythona za simulaciju sofisticirane LED logike upravljanja koju zahtijeva ovo kolo.
Paradoksalno, povećana složenost Python koda dodatno će opteretiti CPU povećanjem opterećenja sistema.
Stoga će biti razborito učitavanje bilo koje funkcije indikacije na vanjsko hardversko kolo što je više moguće jer bi ova usluga trebala biti aktivna cijelo vrijeme i često, na primjer svakih 5 sekundi.
I ovo kolo će dodati malo smiješne karakteristike u RPI bez glave.
Korak 1: Naredba za provjeru opterećenja procesora za Linux
Dostupne su različite Linux naredbe za provjeru opterećenja procesora, poput top, iostat, sysstat i uptime.
Svaka naredba ima posebne prednosti u smislu raznolikosti informacija i prikaza jednostavnosti podataka.
Vrhunska naredba je informacijski najbogatija i dostupni su vrlo detaljni podaci za trenutno prepoznavanje opterećenja sistema.
Ali on radi kao iteracijski način (neprekidno prikazivanje podataka na ekranu) i format informacija je prilično složen za jednostavno izdvajanje samo potrebnih podataka o opterećenju procesora.
Naredba iostat pruža detaljne informacije o opterećenju sistema odvajanjem korisnika i sistema koji izvode poslove u redu čekanja koji trenutno opterećuju CPU.
Ali također je nepotrebno složeno dobiti trenutno CPU opterećenje na brz i intuitivan način.
U slučaju neprekidnog rada, dostupni su vrlo jednostavni podaci o opterećenju sistema u trajanju od 1 minute prosjeka, 5 minuta prosjeka i 15 minuta zbirnog prosjeka.
Kao što je gore spomenuto, pojednostavljivanje Python koda potrebno je jer bi ga trebalo izvršavati prilično često, na primjer svakih 5 ili 10 sekundi.
Kada Python kôd postane složen, to će znatno opteretiti CPU.
Paradoks je da opterećujete RPI da biste pratili njegovo opterećenje sistema.
Stoga odabirem naredbu neprekidnog rada za prikupljanje opterećenja procesora i interoperaciju sa krugom indikatora jer je to najjednostavnije.
Ali kako vrijeme neprekidnog rada pokazuje prosječno opterećenje sistema u trajanju od 1 minute, krug indikatora neće raditi samo u režimu stvarnog vremena.
Ipak, ovo kolo može pružiti koristan vizuelni savjet koji pokazuje kako RPI sada radi.
Korak 2: Sheme
Ovaj krug će primati 4 različita nivoa (npr. 00-> LOW, 01-> LIGHT, 10-> MEDIUM, 11-> HIGH) trenutnog opterećenja CPU-a iz RPI-a preko dva ulaza za optičku spregu.
74LS139 (2 do 4 dekoder i de-multiplekser) dekodira dva bitna ulaza u jedan od pojedinačnih izlaza među 4 moguća načina, poput 00 (LOW)-> B0, 01 (LIGHT)-> B1, 10 (MEDIUM)-> B2, 11 (VISOKO)-> B3.
Kako je izlaz 74LS139 obrnutog nivoa (ulaz 00 -> B0 postaje LOW, a druga 3 izlaza HIGH), pretvarač 74HC04 se koristi za još jedan povratak izlaza.
Kad je izlaz 74LS139 normalan HIGH, 74HC04 neće biti potreban.
Ali nekako je 74LS139 napravljen na takav način. (Molimo provjerite tabelu istinitosti 74LS139)
Kad je odabran bilo koji od 74LS139 izlaza, aktivirat će se jedan određeni analogni prekidač među 4 prekidača uključena u CD4066 IC.
CD4066 može podržati 4 analogna prekidača, a svaki prekidač se sastoji od 1 upravljačkog ulaza i 2 analogna izlaza.
Kada upravljački ulaz postane VISOK, dva izlazna priključka postaju niska impedancija (otpor postaje 0), a drugi postaju VISOKA impedancija (otpor između dva izlazna putanja postaje nekoliko stotina mega ohma).
Jednostavno kontrola 1 (pin 13) CD4066 postaje HIGH, put između izlaza 1 (pin 1) i izlaza 2 (pin 2) spojen, dok drugi izlazi nisu povezani (u stanju visoke impedanse).
Slično, HIGH ulaz kontrole 2 (pin 5) čini izlaz 1 (pin 4) i izlaz 2 (pin 3) spojenim dok su drugi izlazi isključeni.
Tada LM555 treperi s dvije LED diode različite brzine treptanja.
Kao što možete vidjeti na gornjoj shemi, NE555 će raditi s jednim od vrijednosti otpora među 4 (12k, 24k, 51k, 100k) mogućih nivoa otpora.
Korak 3: NE555 Različita generacija takta
Kao što je prikazano na shemi, NE555 će raditi s jednom od mogućih vrijednosti otpora, poput 12k, 24l, 51k i 100k.
Zapravo, dio vremenskog kruga NE555 glavni je vizuelni pokazatelj koji podržava dio kola.
Shema rada kola je sljedeća.
- Kada nema značajnog opterećenja procesora, python program instaliran u RPI će poslati 00 izlaza u krug indikatora. Zatim se aktiviraju dva izlazna putanja CD4066 i NE555 radi s vrijednošću otpornika od 12 k. Zbog toga LED diode trepere 1,5 puta u sekundi (trepere prilično brzo)
- CPU je lagano učitan (Tada dužina reda neprekidnog rada postaje nivo 0,1 ~ 0,9), python će poslati 01 u kolo. Zatim se aktivira CD4066 s izlazima spojenim na 24k otpornik. Kao rezultat toga, LED treperenje se smanjilo 1,2 puta u sekundi (LED treptanje se blago smanjilo, ali ipak malo brzo)
- Kada se opterećenje procesora značajno poveća (Tada dužina radnog vremena za vrijeme neprekidnog rada postaje nivo 1,0 ~ 1,9), python će poslati 10 u kolo. Tada se otvara priključna staza otpornika 51k i NE555 radi 0,8 puta u sekundi. Sada se stopa treptanja značajno smanjuje.
- Teška opterećenja koja opterećuju CPU i dužina čekanja za vrijeme izvođenja postaju sve duža (više od 2 posla će čekati da ih CPU izvrši, a vrijeme neprekidnog rada će prijaviti više od 2,0). Kako je odabrana veza otpornika od 100 k, NE555 će treptati LED 0,5 puta u sekundi (brzina treptanja postaje vrlo spora)
***
Uz povećano opterećenje sistema, LED brzina treptanja će se shodno tome smanjiti.
Kada LED lampica prilično sporo treperi, tada je RPI zasigurno značajno preopterećen.
Na ovaj način krug indikacije opterećenja izvještava o trenutnom nivou opterećenja RPI -a.
Korak 4: Dijelovi
Za izradu ovog kola koriste se različiti IC čipovi.
Iako spominjem 74LSxx, CD40xx tip starih IC čipova, možete koristiti najnovije tipove TTL i CMOS čipova poput 74HC4066 i 74ASxx kada je odabran IC čip DIP tipa.
Sićušni IC paket u obliku površinskog montiranja također se može koristiti kada male možete pravilno lemiti na univerzalnu PCB.
Drugi su uobičajeni dijelovi koje možete lako kupiti u internetskim e-trgovinama.
- 74LS139 (2 do 4 dekoder, de-multiplekser) x 1
- 74HC04 (6 pretvarača) x 1
- CD4066 (4 analogna prekidača IC) x 1
- NE555 Tajmer IC x 1
- Kondenzatori: 10uF x 1, 0,1uF x 1
-Opto-sprežnik PC817 x 2 (Može se koristiti bilo koji uobičajeni 4-pinski optički sprežnik)
- Otpornici: 220ohm x 4 (ograničenje LED struje), 4,7K (sučelje opto-spregača) x 2, 12K,/24K/51K/100K (kontrola vremena) x 1
- LED x 2 (sve različite boje, poput žute, zelene ili crvene, zelene)
- Univerzalna ploča veličine 30 (W) x 20 (H) rupa (Univerzalnu ploču možete izrezati bilo koje veličine kako bi odgovarala ovom krugu)
- Limena žica (Za izradu uzoraka ožičenja na univerzalnoj PCB -u)
- zatična glava (3 igle) x 3
- IC pin head (4 pina) x 4
- kablovi za ožičenje crvene/plave boje
***
Korak 5: Izrada crteža na PCB -u
Iako u svakom projektu prikazujem crtež PCB -a, dizajn ožičenja je samo referenca koja će vas uputiti da pravilno lemite svaki dio na univerzalnoj PCB -u.
Ali ne morate se pridržavati ove sheme ožičenja.
Kao što vidite gornji dijagram ožičenja, on je prilično složen i zahtijeva značajno veliku PCB.
Za povezivanje dijelova umjesto limene žice možete koristiti uobičajeni kabel kako biste smanjili veličinu lemljenog PCB -a.
Koristite samo crtež PCB -a za provjeru i potvrdu ispravnog lemljenja između dijelova.
Kada se poveća broj TTL ili CMOS IC -ova, obično crtanje PCB -a postaje prilično složeno izvan odgovarajuće integracije na jednoj strani PCB -a.
Stoga se višeslojna PCB-a obično koristi za industrijske razrede digitalnih kola koja uključuju puno TTL-a, CMOS-a i mikroprocesora.
Korak 6: Lemljenje
Koristim limenu žicu i zajednički kabel za ožičenje kako bih maksimalno smanjio veličinu PCB -a.
U usporedbi s crtežom na PCB -u, lokacija svakog dijela se potpuno mijenja.
No, ipak se crtež PCB -a koristi za provjeru ispravne povezanosti dijelova tijekom lemljenja.
Možete vidjeti da su otpornici 12k/24k/51k/100k umetnuti na IC pin glavu bez lemljenja.
Stoga možete kasnije zamijeniti otpornike na druge vrijednosti za prikladnu promjenu sheme rada kola.
Korak 7: Sklapanje
Kompletno kolo indikatora opterećenja (u daljem tekstu INDIKATOR) je instalirano na RPI okvir muzičkog playera kao što je prikazano na gornjoj slici.
Ovaj muzički player je instaliran sa DAC -om, a ja ga nedavno koristim za reprodukciju glazbenog spota.
O ovom RPI okviru ću objasniti kasnije, a sada se usredotočimo na INDIKATOR jer je krug glavna tema ovog projekta.
Nedavno sam kupio Raspberry Pi 4 model B 2 GB (u daljem tekstu RPI 4B) da podržim aplikaciju za reprodukciju video zapisa.
Kako je RPI 4B povećao performanse 4 -jezgrenog CPU -a, rukovanje sistemskim opterećenjima je značajno poboljšano sa RPI 3B+.
Stoga bi se dužina izvođenja u redu izvođenja trebala tretirati drugačije od RPI 3B+.
- Za vrlo konvencionalno opterećenje sistema, poput reprodukcije videa, dužina reda za pokretanje obično je manja od 0,5 (tako da će NISKO opterećenje sistema biti 0,0 ~ 0,5 nivo)
- Kad se doda lagano dodatno opterećenje sistema, poput reprodukcije videa i kopiranja datoteka iz lokalnog direktorija i u njega, vrsta radova dovodi do blagog opterećenja CPU -a. (Dakle, nivo opterećenja SVJETLOSTI bit će 0,5 ~ 1,0)
- Kada se primijene značajna opterećenja, poput reprodukcije videa u pregledniku na web stranici Youtube i pregledavanja weba na drugom pregledniku, brzina rada RPI 4 postaje blago spora (pa će SREDNJA razina opterećenja biti 1,0 ~ 2,0)
- Konačno opterećenje sistema RPI 4 postaje VELIKO pri pokretanju više web preglednika i kopiranju velike količine datoteka na drugi RPI server putem mreže (Tada dužina reda za pokretanje postaje veća od 2,0)
***
Ovi podaci o razini učitavanja će se koristiti pomoću bit će razvijen python kod u sljedećem koraku.
Korak 8: Revidiranje originalnog kola
Zbog nekoliko nedostataka originalnog dizajna kola, mijenjam krug kao što je prikazano na gornjoj slici.
Razlozi za promjenu su sljedeći.
- Sat impulsa NE555 sastoji se od visokog i niskog valnog oblika. Ali obično HIGH i LOW trajanje signala (t = 1/f) nije isto (na primjer HIGH je 70%, a LOW je 30% u izvornom krugu). Stoga brzina treptanja dviju LED dioda (zelena/žuta LED u originalnom dizajnu) nije ista (jedna LED svijetli duže od ostalih). Iz tog razloga vizualnu indikaciju LED treperenjem nije lako prepoznati. `
- Zbog toga dodajem još LED dioda i izrađujem kružni iteracijski uzorak s CD4017 radi lakšeg prepoznavanja operativnog stanja
- Također mijenjanje sheme LED treptanja obrnuto, poput sporog treptanja pri NISKOM opterećenju i bržeg treptanja pri VISOKOM opterećenju. (Originalni krug je napravljen da brže treperi pri NISKOM opterećenju i sporo trepće pri VELIKOM opterećenju). U slučaju visokog opterećenja, sve radnje RPI -ja postaju spore. Pokazivanje sporog LED treptanja neće vas usrećiti. (S psihološkog aspekta, biram pozitivniju shemu prikaza)
***
Iako je dio LED ekrana značajno izmijenjen, ukupna razina promjene s originalnim krugom nije velika kao što možete vidjeti u sljedećem koraku.
Korak 9: Promjena izvorne sheme
Dodatak CD4017 i 8 LED dioda su velika modifikacija.
Također za promjenu frekvencije takta NE555 i obrnutu shemu treptanja LED -a, vrijednosti otpornika se mijenjaju kako je prikazano na gornjoj shemi.
Budući da je dodani dio jednostavnog kruga za praćenje na bazi CD4017, preskočit ću druga detaljna objašnjenja modificiranog kruga.
Svi promijenjeni dijelovi kola mogu se napraviti kao pomoćna PCB ploča na koju su lemljene CD4017 i 8 LED dioda.
Pomoćna ploča se može pričvrstiti na matičnu ploču (matična ploča) kao što je prikazano na slici u koraku 8.
Korak 10: Testiranje
Video isječci svih operativnih faza (NISKO, SVJETLO, SREDNJE i VISOKO stanje opterećenja) prikazani su datotekom pohranjenom na google pogonu ispod.
***
drive.google.com/file/d/1CNScV2nlqtuH_CYSW…
***
U skladu sa trenutnim opterećenjem sistema, brzina treptanja će se promijeniti u jednom od 4 stanja prikazana u videu.
Korak 11: Python kod
Kako je većina kontrolnih logika uključena u vanjsko hardversko kolo, operativna logika python koda relativno je jednostavna uključujući sljedeće korake.
- Dobivanje podataka o temperaturi CPU -a za usporedbu relativnosti između opterećenja sistema i povećanja temperature
- Prikupljanje prosječnog opterećenja sistema od 1 minute iz produženja rada
-Izrada vremenske oznake kao format yy-mm-dh hh: mm: ss
- Temperatura pisanja, opterećenje sistema zajedno sa vremenskom oznakom
- Prema trenutnim izlaznim podacima opterećenja sistema (00, 01, 10, 11) u krug INDICATOR
- Spavajte 5 sekundi prije početka gore navedenih koraka
Budući da python programu treba strogo uvlačenje unutar izvornog koda, preuzmite izvornu datoteku s google pogona slijedeći donju vezu.
***
drive.google.com/file/d/1BdaRVXyFmQrRHkxY8…
***
Kako ne koristim RPI kao stolno računalo, pokretanje uredskih aplikacija ili web preglednika Libre vrlo je rijetko.
Obično puštam glazbeni video, kopiranje/premještanje datoteka ili programiranje na pythonu s novokupljenim RPI 4B 2 GB.
Stoga je prosječno opterećenje obično manje od 1,0 u mom slučaju i u skladu s tim mijenjam LOW/LIGHT/MEDIUM/HIGH nivoe u svom kodu. (U suprotnom možete promijeniti uslove testiranja)
No, kada obično gledate Youtube videozapise s RPI -jem, obično će se dogoditi više od 2,0 sistemskih opterećenja.
Korak 12: Relativnost između opterećenja sistema i temperature procesora
Obično pretpostavljam i siguran sam da će povećanje opterećenja sistema povisiti temperaturu procesora.
Ali do sada nemam jasnu sliku o međusobnoj interakciji među njima.
Kao što možete vidjeti na grafikonu iznad, oni su vrlo jaki međusobni odnosi, kako slijedi.
- Radi lakšeg poređenja, množim 10 na prosječno opterećenje sistema. Inače je skala opterećenja sistema vrlo mala (0,0 ~ 2,0), pa direktno poređenje postaje teško.
- Kako se rashladni ventilatorski krug instalira na Pi box za reprodukciju muzike, temperatura procesora nikada ne prelazi 50C
- Kada je opterećenje sistema unutar raspona od 0,0 ~ 1,0, temperatura unutar raspona od 45 ~ 48C (metalni poklopac CPU -a se lagano zagrijava)
- No primjenjuje se veliko opterećenje (obično web preglednik i reprodukcija Youtube videa), opterećenje raste i temperatura se povećava
***
Kako je RPI 4B instaliran sa 4 jezgrom CPU -a, teoretski se performanse neće mnogo smanjiti do nivoa učitavanja (red za neprekidno vrijeme izvođenja) 4.
Ali ipak ispod prosječnog nivoa opterećenja 4, bit će potrebna odgovarajuća kontrola temperature.
Korak 13: Finalizacija
Završavam ovaj projekt instaliranjem INDICATOR -a na Pi box kao na gornjoj slici.
Tokom povremene upotrebe ovog Pi box -a, INDICATOR rijetko prikazuje VISOK nivo i dinamičko LED treperenje.
Obično je ostao u sporo trepćućim LED diodama (tako LOW ili LIGHT nivo).
U svakom slučaju, dodatni vizuelni indikator čini malo smiješnim, barem pokazuje da RPI trenutno radi nešto.
Hvala vam što ste pročitali ovu priču ….
Preporučuje se:
Arduino kupaonska vaga s ćelijama opterećenja od 50 kg i pojačalom HX711: 5 koraka (sa slikama)
Arduino kupaonska vaga s ćelijama opterećenja od 50 kg i pojačalom HX711: Ova uputa opisuje kako napraviti vagu za mjerenje koristeći lako dostupne dijelove police. Potrebni materijali: Arduino - (ovaj dizajn koristi standardni Arduino Uno, ostale verzije Arduina ili klonovi bi trebali raditi takođe) HX711 na proboj boa
Arduino vaga s ćelijom opterećenja od 5 kg i pojačalom HX711: 4 koraka (sa slikama)
Arduino vaga s mjernom ćelijom od 5 kg i pojačalom HX711: Ova uputa opisuje kako napraviti malu vagu za vaganje koristeći lako dostupne dijelove police. Potrebni materijali: 1. Arduino - ovaj dizajn koristi standardni Arduino Uno, trebale bi raditi i druge Arduino verzije ili klonovi2. HX711 u prekidu
Bežični mjerač energije s kontrolom opterećenja: 5 koraka
Bežični mjerač energije s kontrolom opterećenja: UVOD Youtube kanal :::: https://www.youtube.com/channel/UC6ck0xanIUl14Oor…Ovaj projekt se temelji na Atmega mikrokontroleru Atmega16 kao glavnom mozgu za računanje. NRF24L01+ Bežični komunikacijski modul koristi se za bežične
Meki pokretač (ograničivač ulazne struje) za izmjenična i istosmjerna opterećenja: 10 koraka
Meki pokretač (Ograničivač ulazne struje) za izmjenična i istosmjerna opterećenja: Ulazna struja/Uključivanje je maksimalna trenutna ulazna struja koju električni uređaj vuče pri prvom uključivanju. Udarna struja je mnogo veća od stacionarne struje opterećenja i to je izvor mnogih problema kao što je osigurač bl
Nadogradnja BLE kontrole na opterećenja velike snage - nije potrebno dodatno ožičenje: 10 koraka (sa slikama)
Nadogradnja BLE kontrole na opterećenja velike snage - Nije potrebno dodatno ožičenje: Ažuriranje: 13. srpnja 2018 - dodano 3 -terminalni regulator toroidnom napajanjuOva instrukcija pokriva BLE (Bluetooth Low Energy) kontrolu postojećeg opterećenja u rasponu od 10W do> 1000W. Napajanje se daljinski prebacuje s vašeg Android mobitela putem pfodApp -a. Ne