Turinys:

„Raspberry Pi“procesoriaus apkrovos indikatorius: 13 žingsnių
„Raspberry Pi“procesoriaus apkrovos indikatorius: 13 žingsnių

Video: „Raspberry Pi“procesoriaus apkrovos indikatorius: 13 žingsnių

Video: „Raspberry Pi“procesoriaus apkrovos indikatorius: 13 žingsnių
Video: BTT Octopus V1.1 — установка прошивки FluiddPi и Klipper 2024, Liepa
Anonim
„Raspberry Pi“procesoriaus apkrovos indikatorius
„Raspberry Pi“procesoriaus apkrovos indikatorius

Kai „Raspberry Pi“(RPI) veikia be galvos be konsolės monitoriaus, nėra jokių konkrečių vaizdinių indikacijų, leidžiančių atpažinti, kad RPI iš tikrųjų kažką daro.

Nors nuotolinis terminalas naudojamas su SSH, reikia retkarčiais vykdyti „Linux“komandą, kad patikrintumėte, kiek sistemos apkrova dabar apkrauna procesorių

Taigi ši grandinė padėjo iš karto atpažinti tikrąją procesoriaus veiklą (galbūt pusiau realią ar beveik realią), kad būtų galima vykdyti šiuo metu taikomas sistemos apkrovas.

Nors tą patį funkcionalumą gali palaikyti tik „Python“programavimas ir daug paprastesnė grandinė, reikės šiek tiek sudėtingų „Python“kodų, kad būtų imituota sudėtinga šviesos diodų valdymo logika, kurios reikalauja ši grandinė.

Taip pat paradoksaliai padidėjęs „Python“kodo sudėtingumas labiau apkraus procesorių padidėjus sistemos apkrovai.

Todėl bet kokią indikacinę funkciją kuo labiau iškrauti į išorinę aparatūros grandinę bus pagrįsta, nes ši paslauga turėtų veikti visą laiką ir dažnai, pvz., Kas 5 sekundes.

Ir ši grandinė pridės šiek tiek juokingos funkcijos begaliniam RPI.

1 žingsnis: CPU apkrovos tikrinimas „Linux“komanda

CPU apkrovos tikrinimas „Linux“komanda
CPU apkrovos tikrinimas „Linux“komanda

Galimos įvairios procesoriaus apkrovos tikrinimo „Linux“komandos, tokios kaip „top“, „iostat“, „sysstat“ir „uptime“.

Kiekviena komanda turi specifinių pranašumų, susijusių su informacijos įvairove ir duomenų paprastumu.

Viršutinė komanda yra daugiausiai informacijos turinti ir prieinama labai išsami informacija, skirta nedelsiant atpažinti sistemos apkrovą.

Tačiau jis veikia kaip iteracijos režimas (ekrane nuolat rodomi duomenys) ir informacijos formatas yra gana sudėtingas, norint paprasčiausiai išgauti tik reikiamus procesoriaus apkrovos duomenis.

„Iostat“komanda pateikia išsamią sistemos apkrovos informaciją, atskirdama vartotojo ir sistemos vykdomas eilės užduotis, kurios šiuo metu apkrauna procesorių.

Tačiau taip pat be reikalo sudėtinga greitai ir intuityviai gauti dabartinę procesoriaus apkrovą.

Veikimo laiko atveju labai paprasti sistemos apkrovos duomenys yra 1 minutės vidurkis, 5 minučių vidurkis ir 15 minučių apibendrintas vidurkis.

Kaip minėta aukščiau, supaprastinti python kodą būtina, nes jis turėtų būti vykdomas gana dažnai, pavyzdžiui, kas 5 sekundes ar 10 sekundžių.

Kai „Python“kodas tampa sudėtingas, jis labai apkraus procesorių.

Tai paradoksas, kad jūs apkraunate RPI, kad stebėtumėte jos sistemos apkrovą.

Todėl renkuosi komandą „Uptime“, kad surinkčiau procesoriaus apkrovą ir sąveikau su indikatoriaus grandine, nes ji yra paprasčiausia.

Bet kadangi veikimo laikas rodo 1 minutės sistemos apkrovos vidurkį, indikatoriaus grandinė turi būti naudojama ne taip griežtai realaus laiko režimu.

Vis dėlto ši grandinė gali suteikti naudingos vaizdinės užuominos, rodančios, kaip RPI sekasi dabar.

2 žingsnis: schemos

Schemos
Schemos

Ši grandinė gaus du skirtingus dabartinės procesoriaus apkrovos lygius (pvz., 00-> LOW, 01-> LIGHT, 10-> MEDIUM, 11-> HIGH) per du opto-movos įėjimus.

74LS139 (nuo 2 iki 4 dekoderių ir demultiplekserių) dekoduoja du bitų įėjimus į vieną išvestį iš 4 galimų būdų, tokių kaip 00 (LOW)-> B0, 01 (LIGHT)-> B1, 10 (MEDIUM)-> B2, 11 (AUKŠTAS)-> B3.

Kadangi 74LS139 išėjimas yra atvirkštinio lygio (00 įvestis -> B0 tampa LOW, o kiti 3 išėjimai yra HIGH), 74HC04 keitiklis naudojamas dar kartą išvesties keitimui.

Kai 74LS139 išvestis yra normali HIGH, 74HC04 nebus reikalinga.

Bet kažkaip 74LS139 yra pagamintas taip. (Prašome patikrinti 74LS139 tiesos lentelę)

Pasirinkus bet kurį iš 74LS139 išvesties, jis suaktyvins vieną tam tikrą analoginį jungiklį tarp 4 jungiklių, esančių CD4066 IC.

CD4066 gali palaikyti 4 analoginius jungiklius, o kiekvieną jungiklį sudaro 1 valdymo įėjimas ir 2 analoginiai išėjimai.

Kai valdymo įvestis tampa AUKŠTA, dviejų išėjimų jungtis tampa mažos varžos (pasipriešinimas tampa 0), o kitos - AUKŠTOS (varža tarp dviejų išėjimo kelių tampa kelių šimtų mega omų) lygio.

Tiesiog CD4066 valdymas 1 (13 kaištis) tampa AUKŠTAS, kelias tarp 1 išėjimo (1 kaištis) ir 2 išvesties (2 kaištis) prijungtas, o kiti išėjimai neprijungti (didelės varžos būsenoje).

Panašiai HIGH valdiklio 2 įvestis (5 kaištis) prijungia 1 išėjimą (4 kaištį) ir 2 išėjimą (3 kaištį), o kiti išėjimai yra atjungti.

Tada LM555 mirksi dviem skirtingo mirksėjimo šviesos diodais.

Kaip matote aukščiau esančioje schemoje, NE555 veiks su viena iš atsparumo verčių tarp 4 (12k, 24k, 51k, 100k) galimų atsparumo lygių.

3 žingsnis: NE555 skirtingų laikrodžių generavimas

NE555 skirtingų laikrodžių karta
NE555 skirtingų laikrodžių karta

Kaip parodyta schemoje, NE555 veiks viena iš galimų atsparumo verčių, tokių kaip 12k, 24l, 51k ir 100k.

Tiesą sakant, NE555 laiko grandinės dalis yra pagrindinė vizuali indikacija, palaikanti grandinės dalį.

Grandinės veikimo schema yra tokia.

- Kai nėra didelės procesoriaus apkrovos, RPI įdiegta programa „Python“siunčia 00 išėjimų į indikatoriaus grandinę. Tada suaktyvinami du CD4066 išėjimų keliai, o NE555 veikia su 12k rezistoriaus verte. Todėl šviesos diodai mirksi 1,5 karto per sekundę (mirksi gana greitai)

- CPU yra šiek tiek pakrautas (tada veikimo laiko eilės ilgis tampa 0,1–0,9 lygio), „python“siunčia 01 į grandinę. Tada CD4066 suaktyvinamas išėjimais, prijungtais prie 24 k rezistoriaus. Dėl to šviesos diodų mirksėjimas sumažėjo 1,2 karto per sekundę (šviesos diodų mirksėjimas šiek tiek sumažėjo, bet vis tiek šiek tiek greitai)

- Kai procesoriaus apkrova žymiai padidėjo (tada veikimo laiko eilės ilgis tapo 1,0–1,9 lygio), „python“išves 10 grandinę. Tada atidaromas 51k rezistoriaus prijungimo kelias ir NE555 veikia 0,8 karto per sekundę. Dabar mirksėjimo dažnis žymiai sumažėja.

- Didelės apkrovos, apkraunančios procesorių ir veikimo laiko eilės ilgis, tampa ilgesnės (daugiau nei 2 užduotys laukia, kol jas atliks procesorius, o veikimo laikas praneš daugiau nei 2,0). Pasirinkus 100k rezistoriaus jungtį, NE555 mirksi 0,5 karto per sekundę (mirksėjimo greitis tampa labai lėtas)

***

Kartu su padidėjusia sistemos apkrova atitinkamai sumažės LED mirksėjimo greitis.

Kai šviesos diodas mirksi gana lėtai, RPI tikrai perkrauta.

Tokiu būdu apkrovos indikacijos grandinės ataskaita pateikia dabartinį RPI apkrovos lygį.

4 žingsnis: dalys

Šiai grandinei gaminti naudojamos įvairios IC mikroschemos.

Nors miniu 74LSxx, CD40xx tipo senus IC lustus, galite naudoti naujausius TTL ir CMOS lustų tipus, tokius kaip 74HC4066 ir 74ASxx, kai pasirinktas IC lustas yra DIP tipo.

Paviršiaus tvirtinimo tipo mažos IC pakuotės taip pat gali būti naudojamos, kai galite tinkamai lituoti mažus ant universalios PCB.

Kitos yra įprastos dalys, kurias galite lengvai nusipirkti iš internetinių elektroninių parduotuvių.

- 74LS139 (nuo 2 iki 4 dekoderių, multiplekserių) x 1

- 74HC04 (6 keitikliai) x 1

- CD4066 (4 analoginiai jungikliai IC) x 1

- NE555 laikmatis IC x 1

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

-PC817 opto-coupler x 2 (galima naudoti bet kokią įprastą 4 kontaktų optinę jungtį)

- Rezistoriai: 220 omų x 4 (LED srovės ribojimas), 4,7 K (opto jungties sąsaja) x 2, 12K,/24K/51K/100K (laikrodžio laiko valdymas) x 1

- LED x 2 (bet kokios skirtingos spalvos, tokios kaip geltona, žalia arba raudona, žalia)

- Universali plokštė 30 (W) iki 20 (H) skylių dydžio (galite iškirpti bet kokio dydžio universaliąją plokštę, kad ji atitiktų šią grandinę)

- alavo viela (skirta laidų modeliams ant universalios PCB)

- kaiščio galvutė (3 kaiščiai) x 3

- IC kaiščio galvutė (4 kaiščiai) x 4

- raudonos/mėlynos spalvos laidai

***

5 žingsnis: PCB piešimo padarymas

PCB brėžinys
PCB brėžinys

Nors kiekviename projekte rodau PCB brėžinį, laidų dizainas yra tik nuoroda, kuri padės jums teisingai lituoti kiekvieną dalį ant universalios PCB.

Tačiau nebūtinai laikykitės šios laidų schemos.

Kaip matote aukščiau esančią elektros instaliacijos schemą, ji yra gana sudėtinga ir reikalauja žymiai didelių PCB.

Norėdami sujungti dalis, vietoj alavo vielos galite naudoti įprastą kabelį, kad sumažintumėte litavimo užbaigto PCB dydį.

Naudokite tik PCB brėžinį, kad patikrintumėte ir patvirtintumėte tinkamą litavimą tarp dalių.

Padidinus TTL arba CMOS IC skaičių, paprastai PCB piešimas tampa gana sudėtingas, be tinkamo integravimo vienoje PCB pusėje.

Todėl daugiasluoksnis PCB dažniausiai naudojamas pramoninio lygio skaitmeninėms grandinėms, kuriose yra daug TTL, CMOS ir mikroprocesorių.

6 žingsnis: litavimas

Litavimas
Litavimas

Aš naudoju alavo vielą ir įprastą laidų kabelį, kad kuo labiau sumažintų PCB dydį.

Lyginant su PCB brėžiniu, kiekvienos dalies vieta yra visiškai pakeista.

Tačiau vis tiek naudojamas PCB brėžinys, kad būtų patikrintas teisingas ryšys tarp dalių litavimo metu.

Galite matyti, kad 12k/24k/51k/100k rezistoriai yra įkišti į IC kaiščio galvutę be litavimo.

Todėl vėliau galite pakeisti rezistorius į kitas vertes, kad vėliau patogiai pakeistumėte grandinės veikimo schemą.

7 žingsnis: Surinkimas

Surinkimas
Surinkimas

Užbaigta apkrovos indikatoriaus grandinė (toliau - INDICATOR) yra sumontuota muzikos grotuvo RPI dėžutėje, kaip parodyta aukščiau esančiame paveikslėlyje.

Šis muzikos grotuvas yra įdiegtas su DAC, o aš jį neseniai naudoju muzikiniam vaizdo įrašui paleisti.

Apie šį RPI langelį paaiškinsiu vėliau, o dabar sutelkime dėmesį į RODIKLĮ, nes grandinė yra pagrindinė šio projekto tema.

Neseniai nusipirkau „Raspberry Pi 4 Model B 2GB“(toliau RPI 4B), kad palaikyčiau vaizdo įrašų atkūrimo programą.

Kadangi RPI 4B padidino 4 branduolių procesoriaus našumą, sistemos apkrovų valdymas žymiai pagerėja nuo RPI 3B+.

Todėl veikimo laiko eilės ilgio išvestis turėtų būti traktuojama kitaip nei RPI 3B+.

- Įprastai sistemos apkrovai, pvz., Vaizdo įrašų atkūrimui, eilės ilgis paprastai yra mažesnis nei 0,5 (taigi maža sistemos apkrova bus 0,0–0,5 lygio)

- Kai pridedama nedidelė papildoma sistemos apkrova, pvz., Vaizdo įrašų atkūrimas ir failų kopijavimas iš vietinio katalogo ir į jį, tai šiek tiek apsunkina procesorių. (Taigi LIGHT apkrovos lygis bus 0,5 ~ 1,0)

- Kai taikomos didelės apkrovos, pvz., Vaizdo įrašų paleidimas „Youtube“svetainės naršyklėje ir naršymas žiniatinklyje kitoje naršyklėje, RPI 4 veikimo greitis tampa šiek tiek vangus (taigi vidutinis apkrovos lygis turi būti 1,0–2,0)

- Pagaliau RPI 4 sistemos apkrova tampa didelė, kai veikia kelios žiniatinklio naršyklės ir per tinklą kopijuojamas didelis failų kiekis į kitą RPI serverį (tada vykdymo eilės ilgis tampa didesnis nei 2,0)

***

Šie apkrovos lygio duomenys bus panaudoti kitame etape bus sukurtas python kodas.

8 žingsnis: peržiūrėkite originalią grandinę

Originalios grandinės peržiūra
Originalios grandinės peržiūra

Dėl kelių originalios grandinės konstrukcijos trūkumų aš modifikuoju grandinę, kaip parodyta aukščiau esančiame paveikslėlyje.

Keitimo priežastys yra šios.

- NE555 laikrodžio impulsą sudaro HIGH ir LOW bangos forma. Tačiau paprastai HIGH ir LOW signalo trukmė (t = 1/f) nėra vienoda (pavyzdžiui, HIGH yra 70%, o LOW yra 30% originalioje grandinėje). Todėl dviejų šviesos diodų (originalios dizaino žalios/geltonos spalvos) mirksėjimo dažnis yra nevienodas (vienas šviesos diodas įsijungia ilgiau nei kiti). Dėl šios priežasties vizualinis indikatorius mirksi šviesos diodais nėra lengvai atpažįstamas."

- Todėl pridedu daugiau šviesos diodų ir sukuriu apskrito iteracijos modelį su CD4017, kad būtų galima lengvai atpažinti veikimo būseną

- Taip pat pakeisti LED mirksėjimo schemą atvirkščiai, pvz., Lėtai mirksėti esant žemai apkrovai ir greičiau mirksėti esant didelei apkrovai. (Originali grandinė priversta greičiau mirksėti esant mažai apkrovai ir lėtai mirksi esant didelei apkrovai). Esant didelei apkrovai, visi RPI veiksmai tampa vangūs. Lėtas šviesos diodų mirksėjimas nepadarys jūsų laimingu. (Psichologiniu aspektu renkuosi pozityvesnę rodymo schemą)

***

Nors LED ekrano dalis yra žymiai pakeista, bendras pasikeitimo lygis su pradine grandine nėra toks didelis, kaip matote kitame žingsnyje.

9 veiksmas: pradinis schemos pakeitimas

Originalus schemos pakeitimas
Originalus schemos pakeitimas

CD4017 ir 8 šviesos diodų pridėjimas yra pagrindinis pakeitimas.

Taip pat, norint pakeisti NE555 laikrodžio dažnį ir atvirkštinio šviesos diodų mirksėjimo schemą, rezistorių vertės keičiamos, kaip parodyta aukščiau esančioje schemoje.

Kadangi pridėta grandinės dalis yra paprasta CD4017 pagrįsta persekiojimo grandinė, aš praleisiu kitus išsamius modifikuotos grandinės paaiškinimus.

Visa pakeista grandinės dalis gali būti pagaminta kaip dukterinė PCB plokštė, prie kurios lituojami CD4017 ir 8 šviesos diodai.

Dukterinę plokštę galima pritvirtinti prie pagrindinės plokštės (pagrindinės plokštės), kaip parodyta 8 veiksmo paveikslėlyje.

10 žingsnis: bandymas

Visų veikimo etapų (LOW, LIGHT, MEDIUM ir HIGH apkrovos būsenos) bandomasis vaizdo įrašas rodomas faile, saugomame žemiau esančiame „Google“diske.

***

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

***

Atsižvelgiant į dabartinę sistemos apkrovą, mirksėjimo dažnis bus pakeistas vienoje iš 4 vaizdo įraše rodomų būsenų.

11 veiksmas: „Python“kodas

Python kodas
Python kodas

Kadangi dauguma valdymo logikos yra įtrauktos į išorinę aparatūros grandinę, python kodo veikimo logika yra gana paprasta, įskaitant šiuos veiksmus.

- Gauti procesoriaus temperatūros duomenis, kad būtų galima palyginti sistemos apkrovos ir temperatūros kėlimo reliatyvumą

- 1 minutės vidutinės sistemos apkrovos surinkimas iš veikimo laiko išvesties

-Kaip padaryti laiko žymę yy-mm-dd hh: mm: ss formatu

- Rašymo temperatūra, sistemos apkrova kartu su laiko žyme

- Pagal dabartinius sistemos apkrovos išvesties duomenis (00, 01, 10, 11) į INDICATOR grandinę

- Miegokite 5 sekundes prieš pradėdami aukščiau minėtus veiksmus

Kadangi „Python“programai reikia griežtos įtraukos į šaltinio kodą, atsisiųskite šaltinio failą iš „Google“disko, naudodami toliau pateiktą nuorodą.

***

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

***

Kadangi RPI nenaudoju kaip stalinio kompiuterio, „Libre“biuro programos ar žiniatinklio naršyklė paleidžiamos labai retai.

Paprastai groju muzikinį vaizdo įrašą, kopijuoju/perkeliu failus arba programuoju „Python“su naujai įsigytu RPI 4B 2GB.

Todėl mano atveju vidutinė apkrova paprastai yra mažesnė nei 1,0, todėl savo kode keičiu LOW/LIGHT/MEDIUM/HIGH lygius. (Galite pakeisti bandymo sąlygas kitaip)

Tačiau kai dažniausiai žiūrite „YouTube“vaizdo įrašus su RPI, dažniausiai įvyks daugiau nei 2,0 sistemos apkrovų.

12 žingsnis: Santykinis sistemos apkrovos ir procesoriaus temperatūros santykis

Santykis tarp sistemos apkrovos ir procesoriaus temperatūros
Santykis tarp sistemos apkrovos ir procesoriaus temperatūros

Paprastai aš spėju ir esu tikras, kad padidėjusi sistemos apkrova pakels procesoriaus temperatūrą.

Tačiau iki šiol neturiu aiškaus jų tarpusavio sąveikos įvaizdžio.

Kaip matote aukščiau esančioje diagramoje, jie yra labai stiprūs tarpusavio ryšiai, kaip nurodyta toliau.

- Kad būtų lengviau palyginti, padauginu 10 iki vidutinės sistemos apkrovos. Priešingu atveju sistemos apkrovos mastas yra labai mažas (0,0–2,0), tiesioginis palyginimas tampa sudėtingas.

- Kai muzikos grotuvo Pi dėžutėje yra sumontuota aušinimo ventiliatoriaus grandinė, procesoriaus temperatūra niekada neviršija 50 ° C

- Kai sistemos apkrova yra 0,0–1,0, temperatūra yra 45–48 ° C (metalinis procesoriaus dangtelis šiek tiek įšyla)

- Tačiau yra didelė apkrova (paprastai žiniatinklio naršyklė ir „Youtube“vaizdo įrašų leidimas), pakilusi apkrova ir taip temperatūra

***

Kadangi RPI 4B yra įdiegtas su 4 branduolių procesoriumi, teoriškai našumas nebus labai sumažintas iki apkrovos lygio (veikimo laiko veikimo eilė) 4.

Bet vis tiek mažesnis nei vidutinis 4 apkrovos lygis, reikės tinkamai valdyti temperatūrą.

13 žingsnis: užbaigimas

Baigimas
Baigimas

Baigiu šį projektą įdiegdamas INDICATOR į „Pi“dėžutę, kaip parodyta aukščiau.

Atsitiktinai naudojant šią „Pi“dėžutę, INDIKATORIUS retai rodo AUKŠTĄ lygį ir dinamiškai mirksi šviesos diodas.

Paprastai jis liko lėtai mirksinčiose šviesos diodų būsenose (taigi žemas arba šviesus lygis).

Bet kokiu atveju pridėtas vaizdinis indikatorius daro šiek tiek juokingą, bent jau rodo, kad RPI ką nors daro dabar.

Ačiū, kad perskaitėte šią istoriją ….

Rekomenduojamas: