Satura rādītājs:
- 1. darbība: CPU slodzes pārbaude Linux komanda
- 2. darbība. Shēmas
- 3. darbība. Dažādu pulksteņu ģenerēšana NE555
- 4. solis: detaļas
- 5. solis: PCB zīmējuma izgatavošana
- 6. solis: lodēšana
- 7. solis: salikšana
- 8. darbība. Oriģinālās shēmas pārskatīšana
- 9. darbība: sākotnējās shematiskās izmaiņas
- 10. solis: pārbaude
- 11. darbība: Python kods
- 12. solis: relativitāte starp sistēmas slodzi un CPU temperatūru
- 13. darbība. Pabeigšana
Video: Raspberry Pi CPU slodzes indikators: 13 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
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
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ē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
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
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
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
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
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
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
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
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
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:
Raspberry Pi CPU temperatūras indikators: 11 soļi (ar attēliem)
Raspberry Pi CPU temperatūras indikators: iepriekš es biju iepazīstinājis ar vienkāršu aveņu pi (turpmāk RPI) darbības statusa indikatora ķēdi. Šoreiz es izskaidrošu dažas noderīgākas indikatoru shēmas RPI, kas darbojas kā bez galvas (bez monitora). Iepriekš redzamā shēma parāda CPU temps
Arduino spriegošanas skala ar 40 kg bagāžas slodzes šūnu un HX711 pastiprinātāju: 4 soļi
Arduino spriegošanas skala ar 40 kg bagāžas slodzes šūnu un HX711 pastiprinātāju: šajā pamācībā aprakstīts, kā izveidot spriegojuma skalu, izmantojot viegli pieejamās plaukta daļas. Nepieciešamie materiāli: 1. Arduino - šis dizains izmanto standarta Arduino Uno, arī citām Arduino versijām vai kloniem vajadzētu darboties2. HX711 uz izlaušanās dēļa
Arduino vannas skala ar 50 kg slodzes šūnām un HX711 pastiprinātāju: 5 soļi (ar attēliem)
Arduino vannas istabas skala ar 50 kg slodzes šūnām un HX711 pastiprinātāju: šajā pamācībā ir aprakstīts, kā izveidot svēršanas svaru, izmantojot viegli pieejamās plaukta daļas. Nepieciešamie materiāli: Arduino - (šis dizains izmanto standarta Arduino Uno, citām Arduino versijām vai kloniem vajadzētu darboties) arī) HX711 par izlaušanos
Arduino skala ar 5 kg slodzes šūnu un HX711 pastiprinātāju: 4 soļi (ar attēliem)
Arduino skala ar 5 kg slodzes šūnu un HX711 pastiprinātāju: šajā pamācībā aprakstīts, kā izveidot nelielu svēršanas svaru, izmantojot viegli pieejamās plaukta daļas. Nepieciešamie materiāli: 1. Arduino - šis dizains izmanto standarta Arduino Uno, arī citām Arduino versijām vai kloniem vajadzētu darboties2. HX711 izlaušanās brīdī
Bezvadu enerģijas skaitītājs ar slodzes kontroli: 5 soļi
Bezvadu enerģijas mērītājs ar slodzes kontroli: IEVADS Youtube kanāls :::: https://www.youtube.com/channel/UC6ck0xanIUl14Oor..Šis projekts ir balstīts uz Atmela Atmega16 mikrokontrolleru kā galveno aprēķinu smadzenēm. Bezvadu sakaru modulis NRF24L01+ tiek izmantots bezvadu sakaru