Satura rādītājs:

Raspberry Pi CPU slodzes indikators: 13 soļi
Raspberry Pi CPU slodzes indikators: 13 soļi

Video: Raspberry Pi CPU slodzes indikators: 13 soļi

Video: Raspberry Pi CPU slodzes indikators: 13 soļi
Video: 20 товаров для автомобиля с Алиэкспресс, автотовары №29 2024, Jūlijs
Anonim
Raspberry Pi CPU slodzes indikators
Raspberry Pi CPU slodzes indikators

Palaižot Raspberry Pi (RPI) bez galvas bez konsoles monitora, nav pieejamas nekādas īpašas vizuālas norādes, lai atpazītu, ka RPI faktiski kaut ko dara.

Lai gan attālais terminālis tiek izmantots kopā ar SSH, laiku pa laikam ir jāizpilda Linux komanda, lai pārbaudītu, cik liela sistēmas slodze tagad apgrūtina CPU

Tātad šī shēma ir paredzēta, lai palīdzētu nekavējoties atpazīt CPU reālo darbību (varbūt daļēji reālu vai gandrīz reālu), lai izpildītu pašlaik lietotās sistēmas slodzes.

Lai gan tikai pitona programmēšana un daudz vienkāršāka shēma var atbalstīt to pašu funkcionalitāti, būs nepieciešami nedaudz sarežģīti pitona kodi, lai simulētu sarežģīto LED vadības loģiku, ko pieprasa šī shēma.

Arī paradoksāli palielināta pitona koda sarežģītība vairāk apgrūtinās CPU, palielinot sistēmas slodzi.

Tāpēc jebkuras indikācijas funkcionalitātes pēc iespējas lielāka ielāde ārējā aparatūras ķēdē būs saprātīga, jo šim pakalpojumam vajadzētu darboties visu laiku un bieži, piemēram, ik pēc 5 sekundēm.

Un šī shēma pievienos mazliet smieklīgu funkciju RPI bez galvas.

1. darbība: CPU slodzes pārbaude Linux komanda

CPU slodzes pārbaude Linux komanda
CPU slodzes pārbaude Linux komanda

Ir pieejamas dažādas CPU slodzes pārbaudes Linux komandas, piemēram, top, iostat, sysstat un uptime.

Katrai komandai ir īpašas priekšrocības informācijas daudzveidības un datu vienkāršības ziņā.

Augšējā komanda ir visvairāk informācijas bagāts, un ir pieejami ļoti detalizēti dati, lai nekavējoties atpazītu sistēmas slodzi.

Bet tas darbojas kā iterācijas režīms (nepārtraukti attēlo datus ekrānā) un informācijas formāts ir diezgan sarežģīts, lai vienkārši iegūtu tikai nepieciešamos CPU slodzes datus.

Komanda iostat nodrošina padziļinātu informāciju par sistēmas slodzi, atdalot lietotāja un sistēmas darbības rindas darbus, kas pašlaik apgrūtina centrālo procesoru.

Bet ir arī nevajadzīgi sarežģīti iegūt ātru un intuitīvu pašreizējo CPU slodzi.

Darbības laika gadījumā ir pieejami ļoti vienkārši sistēmas slodzes dati: vidēji 1 minūte, vidēji 5 minūtes un vidēji 15 minūtes.

Kā minēts iepriekš, ir nepieciešams vienkāršot python kodu, jo tas jāizpilda diezgan bieži, piemēram, ik pēc 5 sekundēm vai 10 sekundēm.

Kad pitona kods kļūst sarežģīts, tas daudz apgrūtinās CPU.

Tas ir sava veida paradokss, ka jūs apgrūtināt RPI, lai uzraudzītu tās sistēmas slodzi.

Tāpēc es izvēlos komandu uptime, lai apkopotu CPU slodzi un sadarbotos ar indikatora ķēdi, jo tā ir vienkāršākā.

Bet, tā kā darbības laiks rāda 1 minūtes vidējo sistēmas slodzi, indikatora ķēde jādarbina ne tik stingri reālā laika režīmā.

Tomēr šī shēma var sniegt noderīgu vizuālu mājienu, kas parāda, kā RPI pašlaik darbojas.

2. darbība. Shēmas

Shēmas
Shēmas

Šī shēma saņems 4 dažādus pašreizējā CPU slodzes līmeņus (piemēram, 00-> LOW, 01-> LIGHT, 10-> MEDIUM, 11-> HIGH), izmantojot divas opto-coupler ieejas.

74LS139 (no 2 līdz 4 dekodētājiem un demultiplekseriem) atšifrē divus bitu ieejas vienā vienā izejā starp 4 iespējamiem veidiem, piemēram, 00 (LOW)-> B0, 01 (LIGHT)-> B1, 10 (VIDĒJS)-> B2, 11 (AUGSTS)-> B3.

Tā kā 74LS139 izeja ir apgrieztā līmenī (00 ieeja -> B0 kļūst LOW un pārējā 3 izeja HIGH), 74HC04 invertors tiek izmantots, lai izvadi mainītu vēl vienu reizi.

Ja 74LS139 izeja ir normāla HIGH, 74HC04 nebūs nepieciešama.

Bet kaut kā 74LS139 ir izgatavots šādi. (Lūdzu, pārbaudiet 74LS139 patiesības tabulu)

Izvēloties kādu no 74LS139 izejām, tas aktivizēs vienu noteiktu analogo slēdzi starp četriem slēdžiem, kas iekļauti CD4066 IC.

CD4066 var atbalstīt 4 analogos slēdžus, un katrs slēdzis sastāv no 1 vadības ieejas un 2 analogās izejas.

Kad vadības ieeja kļūst HIGH, divu izeju savienojums kļūst par zemu pretestību (pretestība kļūst par 0), bet citas kļūst par HIGH pretestību (pretestība starp diviem izejas ceļiem kļūst par vairākiem simtiem mega omu).

Vienkārši CD4066 vadība 1 (13. tapa) kļūst HIGH, ceļš starp 1. izeju (1. tapa) un 2. izeju (2. tapa) ir pievienots, kamēr citas izejas nav pievienotas (augstas pretestības stāvoklī).

Tāpat HIGH ieeja vadības 2 (pin 5) padara izeju 1 (pin 4) un output 2 (pin 3) savienotu, kamēr citas izejas ir atvienotas.

Tad LM555 mirgo divas gaismas diodes ar dažādu mirgošanas ātrumu.

Kā redzams iepriekšējā shēmā, NE555 darbosies ar vienu no pretestības vērtībām starp 4 (12k, 24k, 51k, 100k) iespējamiem pretestības līmeņiem.

3. darbība. Dažādu pulksteņu ģenerēšana NE555

NE555 Dažādu pulksteņu paaudze
NE555 Dažādu pulksteņu paaudze

Kā parādīts shēmā, NE555 darbosies ar vienu no iespējamām pretestības vērtībām, piemēram, 12k, 24l, 51k un 100k.

Faktiski NE555 laika shēmas daļa ir galvenā vizuālā norāde, kas atbalsta ķēdes daļu.

Ķēdes darbības shēma ir šāda.

- Ja nav būtiskas CPU slodzes, RPI instalētā python programma nosūtīs 00 izejas uz indikatora ķēdi. Tad tiek aktivizēts divu CD4066 izeju ceļš un NE555 darbojas ar 12k rezistora vērtību. Tāpēc gaismas diodes mirgo 1,5 reizes sekundē (mirgo diezgan ātri)

- CPU ir nedaudz ielādēts (tad darba laika rindas garums kļūst par 0,1 ~ 0,9 līmeni), python nosūtīs ķēdi 01. Tad CD4066 tiek aktivizēts ar izejām, kas savienotas ar 24k rezistoru. Rezultātā LED mirgošana samazinājās 1,2 reizes sekundē (LED mirgošana nedaudz samazinājās, bet tomēr nedaudz ātri)

- Kad CPU slodze ievērojami palielinājās (tad darbības laika rindas garums kļūst par 1,0 ~ 1,9 līmeni), python izvadīs ķēdē 10. Pēc tam tiek atvērts 51k rezistoru savienojuma ceļš un NE555 darbojas 0,8 reizes sekundē. Tagad mirgošanas ātrums ievērojami samazinās.

- Lielās slodzes, kas apgrūtina centrālo procesoru un darbības laika rindas garumu, kļūst garākas (vairāk nekā 2 darbi gaidīs, kad CPU tos izpildīs, un darbspējas laiks ziņos par vairāk nekā 2,0). Izvēloties 100k rezistora savienojumu, NE555 mirgos 0,5 reizes sekundē (mirgošanas ātrums kļūst ļoti lēns)

***

Līdz ar palielinātu sistēmas slodzi, attiecīgi samazinās LED mirgošanas ātrums.

Kad gaismas diode mirgo diezgan lēni, RPI noteikti ir ievērojami pārslogota.

Šādā veidā tiek parādīts slodzes indikācijas ķēdes ziņojums par pašreizējo RPI slodzes līmeni.

4. solis: detaļas

Lai izveidotu šo shēmu, tiek izmantotas dažādas IC mikroshēmas.

Lai gan es pieminu 74LSxx, CD40xx tipa vecās IC mikroshēmas, varat izmantot jaunākos TTL un CMOS mikroshēmu veidus, piemēram, 74HC4066 un 74ASxx, ja atlasītā IC mikroshēma ir DIP tipa.

Nelielas IC paketes virsmas stiprinājuma veidu var izmantot arī tad, ja jūs varat pareizi lodēt mazos uz universālā PCB.

Citas ir izplatītas detaļas, kuras varat viegli iegādāties interneta e-veikalos.

- 74LS139 (2 līdz 4 dekodētājs, multipleksors) x 1

- 74HC04 (6 invertori) x 1

- CD4066 (4 analogie slēdži IC) x 1

- NE555 taimera IC x 1

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

-PC817 opto-uzmava x 2 (var izmantot jebkuru parastu 4 kontaktu opto-savienotāju)

- Rezistori: 220 omi x 4 (LED strāvas ierobežošana), 4,7 K (opto-savienotāja saskarne) x 2, 12K,/24K/51K/100K (pulksteņa laika kontrole) x 1

- LED x 2 (jebkuras dažādas krāsas, piemēram, dzeltena, zaļa vai sarkana, zaļa)

- Universālā plāksne 30 (W) līdz 20 (H) caurumu izmērs (Jūs varat izgriezt jebkura izmēra universālo plāksni, lai tā atbilstu šai shēmai)

- Alvas stieple (elektroinstalācijas shēmu izgatavošanai universālajā PCB)

- tapas galva (3 tapas) x 3

- IC tapas galva (4 tapas) x 4

- sarkanas/zilas krāsas vadu kabeļi

***

5. solis: PCB zīmējuma izgatavošana

PCB zīmēšanas izgatavošana
PCB zīmēšanas izgatavošana

Lai gan es katrā projektā parādīju PCB zīmējumu, elektroinstalācijas dizains ir tikai atsauce, kas palīdzēs jums pareizi lodēt katru daļu uz universālā PCB.

Bet jūs ne vienmēr ievērojat šo elektroinstalācijas shēmu.

Kā redzat elektroinstalācijas shēmu iepriekš, tā ir diezgan sarežģīta un prasa ievērojami lielu PCB.

Lai samazinātu lodēšanas pabeigtās PCB izmēru, detaļu savienošanai varat izmantot parasto kabeli, nevis skārda stiepli.

Izmantojiet PCB zīmējumu tikai, lai pārbaudītu un apstiprinātu pareizu lodēšanu starp detaļām.

Palielinot TTL vai CMOS IC skaitu, parasti PCB zīmēšana kļūst diezgan sarežģīta, izņemot pareizu integrāciju vienā PCB pusē.

Tāpēc daudzslāņu PCB parasti izmanto rūpnieciskām digitālajām shēmām, kas ietver daudz TTL, CMOS un mikroprocesoru.

6. solis: lodēšana

Lodēšana
Lodēšana

Es izmantoju skārda vadu un parasto vadu kabeli kopā, lai pēc iespējas samazinātu PCB izmēru.

Salīdzinot ar PCB zīmējumu, katras daļas atrašanās vieta ir pilnībā mainīta.

Bet tomēr PCB zīmējums tiek izmantots, lai lodēšanas laikā pārbaudītu pareizu savienojumu starp detaļām.

Jūs varat redzēt, ka 12k/24k/51k/100k rezistori ir ievietoti IC tapas galvā bez lodēšanas.

Tāpēc jūs varat nomainīt rezistorus uz citām vērtībām, lai vēlāk ērti mainītu ķēdes darbības shēmu.

7. solis: salikšana

Salikšana
Salikšana

Pabeigta slodzes indikatora shēma (turpmāk INDIKATORS) ir uzstādīta mūzikas atskaņotāja RPI lodziņā, kā parādīts attēlā iepriekš.

Šis mūzikas atskaņotājs ir instalēts ar DAC, un es to nesen izmantoju mūzikas video atskaņošanai.

Par šo RPI lodziņu es paskaidrošu vēlāk, un tagad pievērsīsimies indikatoram, jo ķēde ir šī projekta galvenais priekšmets.

Nesen iegādājos Raspberry Pi 4 Model B 2GB (turpmāk RPI 4B), lai atbalstītu video atskaņošanas lietojumprogrammu.

Tā kā RPI 4B ir palielinājusies 4 kodolu CPU veiktspēja, sistēmas slodžu apstrāde ir ievērojami uzlabota, salīdzinot ar RPI 3B+.

Tāpēc darbības laika rindas garuma izvade jāapstrādā atšķirīgi no RPI 3B+.

- Ļoti parastajai sistēmas slodzei, piemēram, video atskaņošanai, palaišanas rindas garums parasti ir mazāks par 0,5 (Tātad LOW sistēmas slodze būs 0,0 ~ 0,5 līmenis)

- Ja tiek pievienota neliela papildu sistēmas slodze, piemēram, video atskaņošana un failu kopēšana no vietējā direktorija un uz to, šāda veida darbi rada nelielu slodzi CPU. (Tātad GAISMAS slodzes līmenis būs 0,5 ~ 1,0)

- Ja tiek pielietotas ievērojamas slodzes, piemēram, video atskaņošana pārlūkprogrammā Youtube vietnē un sērfošana tīmeklī citā pārlūkprogrammā, RPI 4 darbības ātrums kļūst nedaudz lēns (tātad vidējai slodzes pakāpei jābūt 1,0–2,0)

- Visbeidzot, RPI 4 sistēmas noslodze kļūst AUGSTA, ja darbojas vairākas tīmekļa pārlūkprogrammas un caur tīklu kopē lielu daudzumu failu uz citu RPI serveri (tad izpildes rindas garums kļūst lielāks par 2,0)

***

Šie slodzes līmeņa dati tiks izmantoti, lai nākamajā solī izstrādātu python kodu.

8. darbība. Oriģinālās shēmas pārskatīšana

Oriģinālās shēmas pārskatīšana
Oriģinālās shēmas pārskatīšana

Vairāku sākotnējās shēmas konstrukcijas defektu dēļ es modificēju ķēdi, kā parādīts attēlā iepriekš.

Mainīšanas iemesli ir šādi.

- NE555 pulksteņa impulss sastāv no HIGH un LOW viļņu formas. Bet parasti HIGH un LOW signāla ilgums (t = 1/f) nav vienāds (piemēram, HIGH ir 70% un LOW ir 30% sākotnējā ķēdē). Tāpēc divu gaismas diožu (oriģinālajā dizainā zaļā/dzeltenā gaismas diode) mirgošanas ātrums nav vienāds (viena gaismas diode ieslēdzas ilgāk nekā citas). Šī iemesla dēļ vizuāla indikācija ar mirgojošu LED nav tik viegli atpazīstama."

- Tāpēc es pievienoju vairāk gaismas diodes un veidoju apļveida iterācijas modeli ar CD4017, lai nodrošinātu vieglu darbības stāvokļa atpazīšanu

- Arī mainot gaismas diodes mirgošanas shēmu, piemēram, lēni mirgo pie ZEMAS slodzes un ātrāk mirgo ar AUGSTU slodzi. (Oriģinālā ķēde ir paredzēta ātrākai mirgošanai zemā slodzē un lēnai mirgošanai pie augstas slodzes). AUGSTAS slodzes situācijā visas RPI darbības kļūst lēnas. Un lēnas gaismas diodes mirgošana jūs neiepriecinās. (Psiholoģiskajā aspektā es izvēlos pozitīvāku attēlojuma shēmu)

***

Lai gan LED displeja daļa ir ievērojami pārveidota, kopējais izmaiņu līmenis sākotnējā shēmā nav daudz, kā redzams nākamajā darbībā.

9. darbība: sākotnējās shematiskās izmaiņas

Sākotnējās shematiskās izmaiņas
Sākotnējās shematiskās izmaiņas

CD4017 un 8 gaismas diodes pievienošana ir būtiska modifikācija.

Arī, lai mainītu NE555 pulksteņa frekvenci un reverso LED mirgošanas shēmu, rezistoru vērtības tiek mainītas, kā parādīts iepriekšējā shēmā.

Tā kā pievienotā shēmas daļa ir vienkārša uz CD4017 balstīta ķēžu ķēde, es izlaidīšu citus detalizētus skaidrojumus par modificēto ķēdi.

Visu mainīto ķēdes daļu var izgatavot kā meitas PCB plati, pie kuras ir pielodēti CD4017 un 8 gaismas diodes.

Meitas dēli var piestiprināt pie mātesplates (mātesplates), kā parādīts 8. darbības attēlā.

10. solis: pārbaude

Visu darbības posmu (LOW, LIGHT, MEDIUM un HIGH slodzes stāvoklis) testēšanas video tiek parādīts zemāk esošajā Google diskā saglabātajā failā.

***

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

***

Atbilstoši pašreizējai sistēmas slodzei mirgošanas ātrums tiks mainīts vienā no 4 video parādītajiem stāvokļiem.

11. darbība: Python kods

Python kods
Python kods

Tā kā lielākā daļa vadības loģikas ir iekļautas ārējā aparatūras ķēdē, python koda darbības loģika ir salīdzinoši vienkārša, ieskaitot šādas darbības.

- CPU temperatūras datu iegūšana, lai salīdzinātu relativitāti starp sistēmas slodzi un temperatūras paaugstināšanu

- 1 minūtes vidējās sistēmas slodzes apkopošana no darbības laika izvades

-Laika zīmoga izgatavošana, piemēram, ggg-mm-dd hh: mm: ss formātā

- Rakstīšanas temperatūra, sistēmas slodze kopā ar laika zīmogu

- Saskaņā ar pašreizējiem sistēmas slodzes izejas datiem (00, 01, 10, 11) uz INDIKATORA shēmu

- Pirms iepriekš minēto darbību uzsākšanas gulējiet 5 sekundes

Tā kā python programmai ir nepieciešama stingra atkāpe avota kodā, lūdzu, lejupielādējiet avota failu no Google diska, izmantojot tālāk norādīto saiti.

***

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

***

Tā kā RPI neizmantoju kā galddatoru, Libre biroja lietojumprogrammu vai tīmekļa pārlūkprogrammas palaišana ir ļoti reta.

Parasti es spēlēju mūzikas video, failu kopēšanu/pārvietošanu vai pitona programmēšanu, izmantojot tikko iegādāto RPI 4B 2GB.

Tāpēc vidējā slodze manā gadījumā parasti ir mazāka par 1,0, un attiecīgi es savā kodā mainu LOW/LIGHT/MEDIUM/HIGH līmeni. (Jūs varat mainīt testa nosacījumus citādi)

Bet, kad jūs parasti skatāties YouTube videoklipus ar RPI, parasti notiks vairāk nekā 2,0 sistēmas slodzes.

12. solis: relativitāte starp sistēmas slodzi un CPU temperatūru

Relativitāte starp sistēmas slodzi un CPU temperatūru
Relativitāte starp sistēmas slodzi un CPU temperatūru

Parasti es domāju un esmu pārliecināts, ka, palielinot sistēmas slodzi, tiks paaugstināta CPU temperatūra.

Bet līdz šim man nav skaidra priekšstata par viņu savstarpējo mijiedarbību.

Kā redzat iepriekš redzamajā grafikā, tie ir ļoti spēcīgi savstarpēji saistīti šādi.

- Vienkāršam salīdzinājumam es reizinu 10 ar vidējo sistēmas slodzi. Pretējā gadījumā sistēmas slodzes skala ir ļoti maza (0,0 ~ 2,0), tieša salīdzināšana kļūst sarežģīta.

- Tā kā mūzikas atskaņošanas Pi kastē ir uzstādīta dzesēšanas ventilatora ķēde, CPU temperatūra nekad nepārsniedz 50 ° C.

- Ja sistēmas slodze ir diapazonā no 0,0 līdz 1,0, temperatūra ir 45–48 ° C (CPU metāla pārsegs nedaudz uzsilst)

- Bet tiek pielietota liela slodze (parasti tīmekļa pārlūkprogramma un Youtube videoklipu atskaņošana), slodzes pieaugums un tā temperatūra

***

Tā kā RPI 4B ir instalēts ar 4 kodolu centrālo procesoru, teorētiski veiktspēja netiks ievērojami samazināta līdz slodzes līmenim (darbības laika rindā) 4.

Bet tomēr mazāk nekā vidējais slodzes līmenis 4, būs nepieciešama atbilstoša temperatūras kontrole.

13. darbība. Pabeigšana

Pabeigšana
Pabeigšana

Es pabeidzu šo projektu, instalējot INDICATOR uz Pi lodziņu, kā parādīts iepriekš.

Ikdienas šīs Pi kastes lietošanas laikā INDIKATORS reti parāda AUGSTU līmeni un dinamisku LED mirgošanu.

Parasti tas palika lēni mirgojošos gaismas diodes stāvokļos (tātad LOW vai LIGHT).

Jebkurā gadījumā pievienotais vizuālais indikators padara mazliet smieklīgu, vismaz tas parāda, ka RPI šobrīd kaut ko dara.

Paldies, ka izlasījāt šo stāstu ….

Ieteicams: