Kazalo:

Kazalnik obremenitve procesorja Raspberry Pi: 13 korakov
Kazalnik obremenitve procesorja Raspberry Pi: 13 korakov

Video: Kazalnik obremenitve procesorja Raspberry Pi: 13 korakov

Video: Kazalnik obremenitve procesorja Raspberry Pi: 13 korakov
Video: The Choice is Ours (2016) Official Full Version 2024, November
Anonim
Indikator obremenitve procesorja Raspberry Pi
Indikator obremenitve procesorja Raspberry Pi

Ko izvajate Raspberry Pi (RPI) kot brez glave brez monitorja konzole, ni na voljo nobenih posebnih vizualnih oznak, ki bi prepoznale, da RPI dejansko nekaj počne.

Čeprav se s SSH uporablja oddaljeni terminal, je za preverjanje, koliko obremenitve sistema zdaj obremenjuje procesor, potrebna občasna izvedba ukaza Linux.

Tako je to vezje zasnovano tako, da pomaga takoj prepoznati dejansko aktivnost CPE-ja (morda polresničnega ali skoraj realnega) za izvajanje trenutno uporabljenih sistemskih obremenitev.

Čeprav lahko samo programiranje python in veliko enostavnejše vezje podpirata isto funkcionalnost, bodo za simulacijo prefinjene LED krmilne logike, ki jo zahteva to vezje, potrebne malce zapletene kode pythona.

Tudi paradoksalno povečana zapletenost kode python bo dodatno obremenila procesor s povečano obremenitvijo sistema.

Zato bo smiselno čim bolj naložiti vse indikacijske funkcije na zunanji tokokrog strojne opreme, saj bi morala ta storitev delovati ves čas in pogosto, na primer vsakih 5 sekund.

In to vezje bo dodalo malo smešno funkcijo brezžičnemu RPI.

1. korak: Ukaz za preverjanje obremenitve procesorja

Ukaz za preverjanje obremenitve procesorja v sistemu Linux
Ukaz za preverjanje obremenitve procesorja v sistemu Linux

Na voljo so različni ukazi za preverjanje obremenitve procesorja, kot so top, iostat, sysstat in uptime.

Vsak ukaz ima posebne prednosti v smislu raznolikosti informacij in prikaza enostavnosti podatkov.

Ukaz Top je najbolj informativen in na voljo so zelo podrobni podatki za takojšnje prepoznavanje obremenitve sistema.

Deluje pa kot način ponavljanja (neprekinjeno prikazovanje podatkov na zaslonu) in oblika zapisa informacij je precej zapletena, da preprosto izvleče le zahtevane podatke o obremenitvi procesorja.

Ukaz iostat zagotavlja poglobljene informacije o obremenitvi sistema z ločevanjem uporabniških in sistemskih opravil čakalne vrste, ki trenutno obremenjujejo procesor.

Vendar pa je tudi po nepotrebnem zapleteno, da se trenutna obremenitev procesorja izvede tako hitro in intuitivno.

V primeru neprekinjenega delovanja so na voljo zelo preprosti podatki o obremenitvi sistema za povprečje 1 minute, povprečje 5 minut in povzetek povprečja 15 minut.

Kot smo že omenili, je poenostavitev kode python nujna, ker jo je treba izvajati pogosto, na primer vsakih 5 sekund ali 10 sekund.

Ko koda pythona postane zapletena, bo CPU precej obremenjen.

Nekakšen paradoks je, da obremenjujete RPI za spremljanje njegove obremenitve sistema.

Zato za zbiranje obremenitve procesorja izbiram ukaz za neprekinjeno delovanje in medsebojno delovanje z indikatorskim vezjem, ker je to najpreprostejše.

Ker pa čas delovanja prikazuje 1 -minutno povprečje obremenitve sistema, indikatorsko vezje ne deluje tako strogo v realnem času.

Kljub temu lahko to vezje ponudi koristen vizualni namig, ki prikazuje, kako trenutno deluje RPI.

2. korak: Sheme

Sheme
Sheme

To vezje bo prejemalo 4 različne stopnje (npr. 00-> LOW, 01-> LIGHT, 10-> MEDIUM, 11-> HIGH) trenutne obremenitve procesorja iz RPI preko dveh vhodov za optično sklopko.

74LS139 (2 do 4 dekoder in de-multiplekser) dekodira dva bitna vhoda v enega od enojnih izhodov med 4 možnimi načini, na primer 00 (LOW)-> B0, 01 (LIGHT)-> B1, 10 (MEDIUM)-> B2, 11 (VISOKO)-> B3.

Ker je izhod 74LS139 obratna raven (00 vhod -> B0 postane NIZKA in drugi 3 izhodi VISI), se pretvornik 74HC04 uporabi za ponovno vzpostavitev izhoda.

Če je izhod 74LS139 normalen VELIK, 74HC04 ne bo potreben.

Ampak nekako je 74LS139 narejen tako. (Preverite tabelo resničnosti 74LS139)

Ko je izbran kateri koli od izhodov 74LS139, bo aktiviral eno določeno analogno stikalo med 4 stikali, vključenimi v CD4066 IC.

CD4066 lahko podpira 4 analogna stikala in vsako stikalo je sestavljeno iz 1 krmilnega vhoda in 2 analognih izhodov.

Ko krmilni vhod postane VISOK, dva izhoda postaneta nizka impedanca (upor postane 0), drugi pa postanejo VISOKA impedanca (upor med dvema izhodnima potma postane več sto mega ohmov).

Preprosto krmiljenje 1 (pin 13) CD4066 postane visoko, pot med izhodom 1 (pin 1) in izhodom 2 (pin 2) je priključena, medtem ko drugi izhodi niso povezani (v stanju visoke impedance).

Podobno HIGH vhod krmilnika 2 (pin 5) poveže izhod 1 (pin 4) in izhod 2 (pin 3), medtem ko so drugi izhodi odklopljeni.

Nato LM555 utripa dve LED z različno hitrostjo utripanja.

Kot lahko vidite na zgornji shemi, bo NE555 deloval z vrednostjo upora med 4 (12 k, 24 k, 51 k, 100 k) možnimi stopnjami upora.

Korak: NE555 Druga generacija ure

NE555 Druga generacija ure
NE555 Druga generacija ure

Kot je prikazano na shemi, bo NE555 deloval z eno od možnih vrednosti upora, kot so 12k, 24l, 51k in 100k.

Pravzaprav je del časovnega kroga NE555 glavna vizualna oznaka, ki podpira del vezja.

Shema delovanja vezja je naslednja.

- Ko ni večje obremenitve procesorja, bo program python, nameščen v RPI, poslal 00 izhodov v indikatorsko vezje. Nato se aktivirata dve izhodni poti CD4066 in NE555 deluje z vrednostjo upora 12k. Zato LED utripa 1,5 -krat na sekundo (utripa precej hitro)

- CPU je rahlo naložen (Nato dolžina čakalne dobe za neprekinjeno delo postane 0,1 ~ 0,9 ravni), bo python poslal 01 v vezje. Nato se CD4066 aktivira z izhodi, priključenimi na 24k upor. Posledično se je utripanje LED zmanjšalo 1,2 -krat na sekundo (utripanje LED se je nekoliko zmanjšalo, vendar še vedno nekoliko hitro)

- Ko se obremenitev procesorja znatno poveča (Nato dolžina čakalne dobe za čas delovanja postane raven 1,0 ~ 1,9), bo python dal 10 v vezje. Nato se odpre 51k uporna pot upora in NE555 deluje 0,8 -krat na sekundo. Zdaj se hitrost utripanja znatno zmanjša.

- Velike obremenitve, ki obremenjujejo procesor, in dolžina čakalne dobe za čas delovanja se podaljšajo (več kot 2 opravili bo čakali, da jih CPU izvede, čas delovanja pa bo poročal o več kot 2,0). Ko je izbrana povezava upora 100k, bo NE555 utripal LED 0,5 -krat na sekundo (hitrost utripanja postane zelo počasna)

***

Poleg povečanih obremenitev sistema se bo hitrost utripanja LED ustrezno zmanjšala.

Ko LED utripa precej počasi, je RPI zagotovo občutno preobremenjen.

Na ta način je poročilo o indikatorju obremenitve o trenutni stopnji obremenitve RPI.

4. korak: Deli

Za izdelavo tega vezja se uporabljajo različni čipi IC.

Čeprav omenjam stare IC čipe 74LSxx, CD40xx, lahko uporabite najnovejše vrste čipov TTL in CMOS, kot sta 74HC4066 in 74ASxx, če je izbran IC čip tipa DIP.

Vrhunski paket majhnega IC paketa lahko uporabite tudi, če lahko majhne pravilno spajkate na univerzalno tiskano vezje.

Drugi so skupni deli, ki jih lahko preprosto kupite v spletnih e-trgovinah.

- 74LS139 (2 do 4 dekoder, de-multiplekser) x 1

- 74HC04 (6 pretvornik) x 1

- CD4066 (4 analogna stikala IC) x 1

- NE555 Časovnik IC x 1

- Kondenzatorji: 10uF x 1, 0,1uF x 1

-optični sklopnik PC817 x 2 (Uporabite lahko kateri koli običajni 4-polni optični sklopnik)

- Upori: 220ohm x 4 (omejevanje toka LED), 4,7K (vmesnik opto-spenjača) x 2, 12K,/24K/51K/100K (krmiljenje ure) x 1

- LED x 2 (vse druge barve, kot so rumena, zelena ali rdeča, zelena)

- Velikost univerzalne plošče 30 (W) x 20 (H) (univerzalno ploščo lahko izrežete v katero koli velikost, da ustreza temu vezju)

- kositrna žica (za izdelavo vzorcev ožičenja na univerzalnem tiskanem vezju)

- zatična glava (3 zatiči) x 3

- IC nožica (4 zatiči) x 4

- ožičenje rdeče/modre barve

***

5. korak: Izdelava PCB risbe

Izdelava risbe na PCB
Izdelava risbe na PCB

Čeprav v vsakem projektu prikazujem risbo tiskanega vezja, je zasnova ožičenja le referenca, ki vas bo vodila pri pravilnem spajkanju vsakega dela na univerzalnem tiskanem vezju.

Ni pa nujno, da se držite te sheme ožičenja.

Kot lahko vidite zgoraj, je precej zapleten in zahteva znatno veliko tiskano vezje.

Za povezovanje delov namesto kositrne žice lahko uporabite skupni kabel, da zmanjšate velikost spajkanega tiskanega vezja.

Za preverjanje in potrditev pravilnega spajkanja med deli uporabite samo risbo tiskanega vezja.

Ko se poveča število IC -jev TTL ali CMOS, običajno postane risba PCB precej zapletena, razen pravilne integracije na eni strani PCB -ja.

Zato se večplastno tiskano vezje običajno uporablja za industrijska razreda digitalnih vezij, ki vključujejo veliko TTL, CMOS in mikroprocesorja.

Korak 6: Spajkanje

Spajkanje
Spajkanje

Skupaj uporabljam kositrno žico in skupni kabel za ožičenje, da čim bolj zmanjšam velikost tiskanega vezja.

V primerjavi z risbo PCB se lokacija vsakega dela popolnoma spremeni.

Toda še vedno se risba PCB uporablja za preverjanje pravilne povezave med deli med spajkanjem.

Vidite lahko, da so na glavo zatiča IC vstavljeni upori 12k/24k/51k/100k brez spajkanja.

Zato lahko pozneje zamenjate upore na druge vrednosti za priročno spreminjanje sheme delovanja vezja.

7. korak: Sestavljanje

Sestavljanje
Sestavljanje

Indikator dokončane obremenitve (v nadaljevanju INDIKATOR) je nameščen na RPI polje predvajalnika glasbe, kot je prikazano na zgornji sliki.

Ta predvajalnik glasbe je nameščen z DAC -om in tega pred kratkim uporabljam za predvajanje glasbenega videa.

O tem polju RPI bom razložil kasneje, zdaj pa se osredotočimo na INDICATOR, saj je vezje glavni predmet tega projekta.

Pred kratkim sem kupil Raspberry Pi 4 Model B 2 GB (v nadaljevanju RPI 4B) za podporo aplikaciji za predvajanje videa.

Ker je RPI 4B povečal zmogljivost 4 -jedrnega CPU -ja, se upravljanje RPI 3B+precej izboljša.

Zato je treba izhod dolžine čakalne dobe za čas delovanja obravnavati drugače kot RPI 3B+.

- Za zelo običajne obremenitve sistema, kot je predvajanje videa, je dolžina čakalne vrste običajno manjša od 0,5 (torej bo nizka obremenitev sistema 0,0 ~ 0,5 ravni)

- Ko je dodana rahla dodatna obremenitev sistema, na primer predvajanje videa in kopiranje datotek iz lokalnega imenika in v njega, nekatera dela povzročijo rahlo obremenitev CPU -ja. (Torej bo raven obremenitve LIGHT 0,5 ~ 1,0)

- Ko se uporabijo velike obremenitve, kot je predvajanje videa v brskalniku na spletnem mestu Youtube in brskanje po spletu v drugem brskalniku, hitrost teka RPI 4 postane nekoliko počasna (torej bo SREDNJA stopnja obremenitve 1,0 ~ 2,0)

- Končno obremenitev sistema RPI 4 postane VELIKA pri zagonu več spletnih brskalnikov in kopiranju velike količine datotek na drug strežnik RPI prek omrežja (Nato dolžina čakalne vrste postane več kot 2,0)

***

Te podatke o ravni obremenitve bodo uporabili, v naslednjem koraku bo razvila kodo python.

8. korak: Revidiranje izvirnega vezja

Revidiranje izvirnega vezja
Revidiranje izvirnega vezja

Zaradi več napak prvotne zasnove vezja spreminjam vezje, kot je prikazano na zgornji sliki.

Razlogi za spremembo so naslednji.

- Ura impulza NE555 je sestavljena z visoko in nizko valovno obliko. Običajno pa trajanje signala HIGH in LOW (t = 1/f) ni enako (na primer HIGH je 70%, LOW pa 30% v prvotnem vezju). Zato utripanje dveh LED (zelena/rumena LED v prvotni izvedbi) ni enaka (ena LED sveti dlje kot druga). Zaradi tega vizualne indikacije z utripanjem LED ni mogoče zlahka prepoznati. “

- Zato dodajam več LED in ustvarim krožni vzorec ponovitve s CD4017 za lažje prepoznavanje stanja delovanja

- Tudi obratna sprememba sheme utripanja LED, na primer počasno utripanje pri nizki obremenitvi in hitrejše utripanje pri visoki obremenitvi. (Prvotno vezje hitreje utripa pri nizki obremenitvi in počasi utripa pri visoki obremenitvi). V primeru VELIKE obremenitve vsa dejanja RPI postanejo počasna. In če počasi utripa LED, vas ne bo razveselilo. (S psihološkega vidika izbiram bolj pozitivno shemo prikaza)

***

Čeprav je del LED zaslona bistveno spremenjen, splošna raven sprememb pri prvotnem vezju ni tako velika, kot lahko vidite v naslednjem koraku.

9. korak: Izvirna sprememba sheme

Izvirna shematska sprememba
Izvirna shematska sprememba

Dodatek CD4017 in 8 LED je velika sprememba.

Če želite spremeniti frekvenco takta NE555 in vzvratno utripanje LED, se vrednosti uporov spremenijo, kot je prikazano na zgornjih shemah.

Ker je dodani del vezja preprosto vezje lovilca na osnovi CD4017, bom preskočil druga podrobna pojasnila spremenjenega vezja.

Vse spremenjene dele vezja je mogoče izdelati kot hčerinsko tiskano vezje, na katero sta spajkani CD4017 in 8 LED.

Hčerinsko ploščo lahko pritrdite na matično ploščo (matično ploščo), kot je prikazano na sliki v 8. koraku.

10. korak: Testiranje

Preizkusni videoposnetek vseh faz delovanja (NIZKA, LUČKA, SREDNJA in VISOKA obremenitev) je prikazan v datoteki, shranjeni na google pogonu spodaj.

***

drive.google.com/file/d/1CNScV2nlqtuH_CYSW…

***

Glede na trenutno obremenitev sistema se bo hitrost utripanja spremenila v enem od 4 stanj, prikazanih v videoposnetku.

11. korak: Koda Python

Koda Python
Koda Python

Ker je večina kontrolnih logik vključenih v zunanje vezje strojne opreme, je operacijska logika kode python razmeroma preprosta, vključno z naslednjimi koraki.

- Pridobivanje podatkov o temperaturi procesorja za primerjavo relativnosti med obremenitvijo sistema in dvigom temperature

- Zbiranje povprečne obremenitve sistema za 1 minuto iz izhoda za neprekinjeno delovanje

-Izdelava časovnega žiga, kot je format yy-mm-dd hh: mm: ss

- Temperatura pisanja, obremenitev sistema skupaj s časovnim žigom

- Glede na trenutne izhodne podatke o obremenitvi sistema (00, 01, 10, 11) v vezje INDICATOR

- Spite 5 sekund pred začetkom zgoraj omenjenih korakov

Ker program python potrebuje strogo zamik v izvorni kodi, prenesite izvorno datoteko z google pogona po spodnji povezavi.

***

drive.google.com/file/d/1BdaRVXyFmQrRHkxY8…

***

Ker RPI -ja ne uporabljam kot namizni računalnik, je izvajanje pisarniških aplikacij Libre ali spletnega brskalnika zelo redko.

Običajno predvajam glasbeni video, kopiranje/premikanje datotek ali programiranje na pythonu z novo kupljenim RPI 4B 2 GB.

Zato je povprečna obremenitev v mojem primeru običajno manjša od 1,0, zato v kodi spreminjam nizke/lahke/srednje/visoke vrednosti. (Drugače lahko spremenite preskusne pogoje)

Ko pa običajno gledate videoposnetke Youtube z RPI, se običajno zgodi več kot 2,0 sistemskih obremenitev.

Korak: Relativnost med obremenitvijo sistema in temperaturo procesorja

Relativnost med obremenitvijo sistema in temperaturo procesorja
Relativnost med obremenitvijo sistema in temperaturo procesorja

Ponavadi ugibam in prepričan sem, da bo povečana obremenitev sistema zvišala temperaturo procesorja.

Toda do zdaj nimam jasne slike o medsebojnem delovanju med njima.

Kot lahko vidite na zgornjem grafu, sta med seboj zelo močna.

- Za lažjo primerjavo pomnožim 10 na povprečno obremenitev sistema. V nasprotnem primeru je lestvica obremenitve sistema zelo majhna (0,0 ~ 2,0), neposredna primerjava postane težka.

- Ker je v predvajalnik glasbe, ki predvaja glasbo, nameščen hladilni ventilatorski krog, temperatura procesorja nikoli ne preseže 50 ° C

- Ko je obremenitev sistema v območju 0,0 ~ 1,0, temperatura v območju 45 ~ 48C (kovinski pokrov CPU se rahlo segreje)

- Uporablja pa se velika obremenitev (običajno spletni brskalnik in predvajanje videoposnetkov Youtube), obremenitev narašča in s tem temperatura

***

Ker je RPI 4B nameščen s 4 -jedrnim procesorjem, se teoretično zmogljivost ne bo bistveno poslabšala do ravni nalaganja (čakalna vrsta za neprekinjeno delovanje) 4.

Toda še vedno pod povprečno stopnjo obremenitve 4 bo potreben ustrezen nadzor temperature.

13. korak: Dokončanje

Dokončanje
Dokončanje

Ta projekt zaključujem z namestitvijo INDICATOR v Pi box, kot je prikazano na zgornji sliki.

Med priložnostno uporabo te škatle Pi INDICATOR redko prikazuje VISOKO raven in dinamično utripanje LED.

Običajno je ostal v počasi utripajočih LED diodah (torej NIZKA ali LUČKA).

Kakorkoli že, dodan vizualni indikator je malce smešen, vsaj kaže, da RPI trenutno nekaj počne.

Hvala, ker ste prebrali to zgodbo ….

Priporočena: