Sisukord:

Raspberry Pi protsessori koormuse indikaator: 13 sammu
Raspberry Pi protsessori koormuse indikaator: 13 sammu

Video: Raspberry Pi protsessori koormuse indikaator: 13 sammu

Video: Raspberry Pi protsessori koormuse indikaator: 13 sammu
Video: Денди БТР. Лучшая и необычная игровая консоль на RaspberryPi! 🎮🛱🎮 2024, November
Anonim
Raspberry Pi protsessori koormuse indikaator
Raspberry Pi protsessori koormuse indikaator

Kui kasutate Raspberry Pi (RPI) peata ilma konsoolimonitorita, pole konkreetseid visuaalseid märke, et RPI tegelikult midagi teeks.

Isegi kui SSH -ga kasutatakse kaugterminali, on aeg -ajalt Linuxi käsu täitmine vajalik, et kontrollida, kui palju süsteemikoormus praegu CPU -d koormab

See ahel on loodud selleks, et aidata kohe ära tunda CPU tegelikku tegevust (võib-olla poolreaalne või peaaegu reaalne), et täita praegu rakendatavaid süsteemikoormusi.

Kuigi ainult pythoni programmeerimine ja palju lihtsam vooluring võivad sama funktsionaalsust toetada, on selle vooluahela nõutava keeruka LED -juhtimisloogika simuleerimiseks vaja natuke keerukaid pythonikoode.

Paradoksaalsel kombel koormab ka python -koodi keerukam protsessor rohkem süsteemi koormust.

Seetõttu on mõistlik igasuguste näidustuste funktsionaalsus välisele riistvaraahelale võimalikult palju alla laadida, kuna see teenus peaks töötama kogu aeg ja sageli, näiteks iga 5 sekundi tagant.

Ja see vooluring lisab peata töötavale RPI -le natuke naljaka funktsiooni.

Samm: CPU koormuse kontrollimine Linuxi käsk

CPU koormuse kontrollimine Linuxi käsk
CPU koormuse kontrollimine Linuxi käsk

Saadaval on erinevad protsessori koormuse kontrollimise Linuxi käsud, nagu top, iostat, sysstat ja uptime.

Igal käsul on spetsiifilised eelised teabe mitmekesisuse ja andmete lihtsuse osas.

Ülemine käsk on kõige rikkalikum teave ja süsteemi koormuse koheseks tuvastamiseks on saadaval väga üksikasjalikud andmed.

Kuid see töötab iteratsioonirežiimina (kuvab andmeid ekraanil pidevalt) ja teabevorming on üsna keeruline, et lihtsalt saada ainult vajalikke protsessori koormusandmeid.

Käsk iostat pakub põhjalikku süsteemi koormusteavet, eraldades kasutaja ja süsteemi töötavad järjekorratööd, mis koormavad praegu protsessorit.

Kuid see on ka tarbetult keeruline saada praegust protsessori koormust kiirelt ja intuitiivselt.

Uptime puhul on saadaval väga lihtsad süsteemi koormusandmed 1 minuti, 5 minuti ja 15 minuti keskmise kohta.

Nagu eespool mainitud, on python -koodi lihtsustamine vajalik, kuna seda tuleks täita üsna sageli, näiteks iga 5 või 10 sekundi järel.

Kui python -kood muutub keerukaks, koormab see protsessorit palju.

See on omamoodi paradoks, et koormate RPI -d selle süsteemi koormuse jälgimiseks.

Seetõttu valin protsessori koormuse kogumiseks käsu uptime ja koostöös indikaatoriahelaga, kuna see on lihtsaim.

Kuid kuna tööaeg näitab süsteemi koormuse keskmist 1 minutit, ei tohi indikaatoriahelat kasutada nii rangelt reaalajas.

Siiski võib see skeem pakkuda kasulikku visuaalset vihjet, mis näitab, kuidas RPI -l praegu läheb.

2. samm: skeemid

Skeemid
Skeemid

See vooluahel saab RPI-lt kahe opto-siduri sisendi kaudu 4 erinevat taset (nt 00-> LOW, 01-> LIGHT, 10-> MEDIUM, 11-> HIGH).

74LS139 (2 kuni 4 dekoodrit ja demultiplekserit) dekodeerib kaks bitisisendit üheks väljundiks üheks võimalikuks viisiks, näiteks 00 (LOW)-> B0, 01 (LIGHT)-> B1, 10 (MEDIUM)-> B2, 11 (KÕRGE)-> B3.

Kuna 74LS139 väljund on tagurpidi (00 sisend -> B0 muutuvad madalaks ja muud 3 väljundit KÕRGE), kasutatakse 74HC04 inverterit, et teha väljund veel kord tagasi.

Kui 74LS139 väljund on normaalne HIGH, ei ole 74HC04 vajalik.

Aga kuidagi 74LS139 on niimoodi tehtud. (Palun kontrollige 74LS139 tõetabelit)

Kui valitud on mõni 74LS139 väljund, aktiveerib see CD4066 IC -s sisalduvate nelja lüliti vahel ühe kindla analooglüliti.

CD4066 toetab nelja analooglülitit ja igal lülitil on 1 juhtsisend ja 2 analoogväljundit.

Kui juhtimissisend muutub kõrgeks, muutub kahe väljundi ühendus madalaks takistuseks (takistus muutub 0 -ks) ja teised muutuvad kõrgeks takistuseks (kahe väljundtee takistus muutub mitusada megaoomi).

CD4066 lihtsalt juhtimispult 1 (tihvt 13) muutub KÕRGEKS, tee 1 väljundi (tihvt 1) ja väljundi 2 (tihvt 2) vahel on ühendatud, samal ajal kui muud väljundid pole ühendatud (suure takistusega).

Samamoodi muudavad juhtseadme HIGH sisend (tihvt 5) väljundi 1 (tihvt 4) ja väljundi 2 (tihvt 3) ühendatuks, samas kui muud väljundid on lahti ühendatud.

Seejärel vilgub LM555 kahte erineva vilkumiskiirusega LED -i.

Nagu ülaltoodud skemaatiliselt näha, töötab NE555 takistuse väärtusega 4 (12k, 24k, 51k, 100k) võimaliku takistustaseme vahel.

3. samm: NE555 erineva kella genereerimine

NE555 erineva põlvkonna kellad
NE555 erineva põlvkonna kellad

Nagu skemaatiliselt näidatud, töötab NE555 ühe võimaliku takistuse väärtusega, näiteks 12k, 24l, 51k ja 100k.

Tegelikult on NE555 ajastusahela osa peamine visuaalne indikaator, mis toetab vooluringi osa.

Ringkonnakohtu skeem on järgmine.

- Kui protsessori koormus puudub, saadab RPI -sse installitud python -programm 00 väljundit indikaatoriahelasse. Seejärel aktiveeritakse CD4066 kaks väljunditeed ja NE555 töötab 12k takisti väärtusega. Seetõttu vilguvad LED -id 1,5 korda sekundis (vilguvad üsna kiiresti)

- CPU on kergelt koormatud (siis muutub tööaja järjekorra pikkus 0,1 ~ 0,9 tasemele), python saadab ahelasse 01. Seejärel aktiveeritakse CD4066 väljunditega, mis on ühendatud 24k takistiga. Selle tulemusena vähenes LED -i vilkumine 1,2 korda sekundis (LED -i vilkumine vähenes veidi, kuid siiski veidi kiiresti)

- Kui protsessori koormus suurenes märkimisväärselt (seejärel muutus tööaja järjekorra pikkus 1,0–1,9 tasemele), väljastab python vooluringi 10. Seejärel avatakse 51k takisti ühendustee ja NE555 töötab 0,8 korda sekundis. Nüüd väheneb vilkumiskiirus märkimisväärselt.

- Suured koormused, mis koormavad protsessorit ja tööaega tööjärjekorra pikkus pikeneb (rohkem kui 2 tööd ootavad protsessori täitmist ja tööaeg teatab rohkem kui 2,0). Kui valitud on 100k takistiühendus, vilgub NE555 LED -i 0,5 korda sekundis (vilkumiskiirus muutub väga aeglaseks)

***

Koos suurenenud süsteemikoormusega väheneb LED -i vilkumiskiirus vastavalt.

Kui LED vilgub üsna aeglaselt, on RPI kindlasti märkimisväärselt üle koormatud.

Sel viisil esitatakse koormuse näitamise vooluahela aruanne RPI praeguse koormustaseme kohta.

4. samm: osad

Selle vooluahela valmistamiseks kasutatakse erinevaid IC -kiipe.

Kuigi ma mainin 74LSxx, CD40xx tüüpi vanu IC -kiipe, saate kasutada hiljutisi TTL- ja CMOS -kiipe, näiteks 74HC4066 ja 74ASxx, kui valitud IC -kiip on DIP -tüüpi.

Pisikinnituse tüüpi pisikesi IC -pakette saab kasutada ka siis, kui saate väikesed universaalsele trükkplaadile korralikult jootma.

Teised on tavalised osad, mida saate hõlpsalt Interneti-e-poodidest osta.

- 74LS139 (2 kuni 4 dekoodrit, multiplekseri eemaldamine) x 1

- 74HC04 (6 inverterit) x 1

- CD4066 (4 analooglülitit IC) x 1

- NE555 taimer IC x 1

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

-PC817 optiline haakeseadis x 2 (saab kasutada mis tahes tavalist 4-kontaktilist optilist sidurit)

- Takistid: 220 oomi x 4 (LED-voolu piirav), 4,7 K (optilise siduri liides) x 2, 12K,/24K/51K/100K (kellaajastus) x 1

- LED x 2 (erinevad värvid, näiteks kollane, roheline või punane, roheline)

- universaalne plaat 30 (W) 20 (H) ava suurusega (saate selle vooluringi jaoks sobiva suurusega universaalplaadi lõigata)

- plekist traat (universaalse trükkplaadi juhtmestiku tegemiseks)

- tihvtipea (3 tihvti) x 3

- IC -tihvtipea (4 tihvti) x 4

- punased/sinised juhtmestiku kaablid

***

Samm 5: PCB joonise tegemine

PCB joonise tegemine
PCB joonise tegemine

Kuigi ma näitan igas projektis PCB joonistust, on juhtmestiku disain vaid viide, mis juhendab teid iga osa universaalsel PCB -l jootma.

Kuid te ei pea sellest juhtmestikust tingimata kinni pidama.

Nagu näete ülaltoodud ühendusskeemi, on see üsna keeruline ja nõuab märkimisväärselt suuri trükkplaate.

Tinajuhtme asemel saate osade ühendamiseks kasutada tavalist kaablit, et vähendada jootmise lõpetatud trükkplaadi suurust.

Kasutage PCB joonist ainult osade vahelise õige jootmise kontrollimiseks ja kinnitamiseks.

Kui suurendatakse TTL- või CMOS -IC -de arvu, muutub PCB joonistamine tavaliselt üsna keerukaks, välja arvatud õige integreerimine PCB ühele küljele.

Seetõttu kasutatakse mitmekihilist PCB-d tavaliselt tööstusliku kvaliteediga digitaalahelate jaoks, mis sisaldavad palju TTL-i, CMOS-i ja mikroprotsessorit.

6. samm: jootmine

Jootmine
Jootmine

Ma kasutan plekist traati ja tavalist juhtmestikku, et PCB suurust võimalikult vähendada.

Võrreldes trükkplaadi joonisega muudetakse iga osa asukohta täielikult.

Kuid ikkagi kasutatakse trükkplaatide joonistamist, et kontrollida jootmise ajal osade vahelist õiget ühendust.

Näete, et 12k/24k/51k/100k takistid sisestatakse IC -tihvtipea külge ilma jootmiseta.

Seetõttu saate vooluahela toimimisskeemi mugavaks muutmiseks takistid asendada muude väärtustega.

Samm 7: kokkupanek

Kokkupanek
Kokkupanek

Valmis koormusindikaator (edaspidi INDICATOR) on paigaldatud muusikapleieri RPI kasti, nagu on näidatud ülaltoodud pildil.

See muusikapleier on installitud DAC -iga ja ma kasutan seda hiljuti muusikavideo esitamiseks.

Selle RPI kasti kohta selgitan hiljem ja keskendume nüüd indikaatorile, kuna vooluahel on selle projekti peamine teema.

Ostsin hiljuti video esitamise rakenduse toetamiseks Raspberry Pi 4 Model B 2GB (edaspidi RPI 4B).

Kuna RPI 4B on suurendanud 4 -tuumalise protsessori jõudlust, on süsteemi koormuste käsitlemine RPI 3B+-st oluliselt paranenud.

Seetõttu tuleks töötamise järjekorra pikkuse väljundit käsitleda erinevalt RPI 3B+-st.

- Väga tavapärase süsteemikoormuse, näiteks video esitamise korral on tööjärjekorra pikkus tavaliselt alla 0,5 (seega on süsteemi madal koormus 0,0–0,5)

- Kui süsteemile lisatakse väike lisakoormus, näiteks videote esitamine ja failide kopeerimine kohalikust kataloogist ja kohalikku kataloogi, toovad sellised tööd CPU -le kerge koormuse. (Seega on kerge koormusaste 0,5 ~ 1,0)

- Kui rakendatakse märkimisväärseid koormusi, näiteks video esitamine Youtube'i saidi brauseris ja veebis surfamine mõnes teises brauseris, muutub RPI 4 jooksukiirus veidi aeglaseks (seega on KESKMINE koormustase 1,0–2,0)

- Lõpuks muutub RPI 4 süsteemi koormus suureks, kui kasutate mitut veebibrauserit ja kopeerite suure hulga faile võrgu kaudu teise RPI-serverisse (siis muutub tööjärjekorra pikkus üle 2,0)

***

Neid koormustaseme andmeid kasutatakse järgmises etapis välja töötatud python -koodi jaoks.

8. etapp: originaalskeemi muutmine

Originaalringi muutmine
Originaalringi muutmine

Mitmete esialgse vooluahela defektide tõttu muudan vooluringi, nagu on näidatud ülaltoodud pildil.

Muutmise põhjused on järgmised.

- NE555 kellaimpulss koosneb kõrgest ja madalast lainekuju. Kuid tavaliselt ei ole HIGH ja LOW signaali kestus (t = 1/f) sama (näiteks HIGH on 70% ja LOW on 30% originaalahelas). Seetõttu ei ole kahe LED -i vilkumine (originaalkujunduses roheline/kollane LED) sama (üks LED süttib kauem kui teine). Sel põhjusel ei ole LED -i vilkuv visuaalne näitamine palju hõlpsasti äratuntav."

- Seetõttu lisan CD4017 -ga rohkem LED -e ja koostan ringikujulise iteratsioonimustri, et tagada tööoleku lihtne tuvastamine

- LED -vilkumisskeemi muutmine ka vastupidi, näiteks aeglane vilkumine LOW koormusel ja kiirem vilkumine HIGH koormusega. (Originaalskeem on vilgunud LOW koormusel kiiremini ja vilgub aeglaselt kõrgel koormusel). Kõrge koormuse korral muutuvad kõik RPI toimingud aeglaseks. Ja aeglase LED -vilkumise näitamine ei tee teid õnnelikuks. (Psühholoogilisest aspektist valin positiivsema kuvamisskeemi)

***

Kuigi LED -ekraani osa on oluliselt muudetud, ei ole algse vooluahela üldine muutuste tase palju, nagu näete järgmises etapis.

9. samm: esialgne skeemimuutus

Algne skemaatiline muudatus
Algne skemaatiline muudatus

Suurem modifikatsioon on CD4017 ja 8 LED -i lisamine.

Ka NE555 kellasageduse ja vastupidise LED -i vilkumisskeemi muutmiseks muudetakse takistite väärtusi, nagu on näidatud ülaltoodud skeemidel.

Kuna lisatud vooluahela osa on lihtne CD4017 -põhine jälitajalülitus, jätan muudetud ahela muud üksikasjalikud selgitused vahele.

Kõiki muudetud vooluahela osi saab valmistada tütar -PCB -plaadina, millele on joodetud CD4017 ja 8 LED -i.

Tütarplaadi saab emaplaadi (emaplaadi) külge kinnitada, nagu on näidatud 8. sammu pildil.

10. samm: testimine

Kõikide tööetappide (LOW, LIGHT, MEDIUM ja HIGH koormus olek) testvideo on näidatud allolevasse Google Drive'i salvestatud failis.

***

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

***

Vastavalt süsteemi praegusele koormusele muudetakse vilkumissagedust ühes videos näidatud neljast olekust.

Samm 11: Pythoni kood

Pythoni kood
Pythoni kood

Kuna enamik juhtimisloogikast on kaasatud välisele riistvaraahelale, on python -koodi toimimisloogika suhteliselt lihtne, sealhulgas järgmised sammud.

- CPU temperatuuri andmete hankimine, et võrrelda relatiivsust süsteemi koormuse ja temperatuuri tõstmise vahel

- Uptime väljundist 1 minuti keskmise süsteemi koormuse kogumine

-Ajatemplite tegemine nagu ay-mm-dd hh: mm: ss

- Kirjutamistemperatuur, süsteemi koormus koos ajatempliga

- Vastavalt süsteemi praegustele koormusväljundandmetele (00, 01, 10, 11) indikaatoriahelasse

- Enne ülaltoodud sammude alustamist magage 5 sekundit

Kuna pythoniprogramm vajab lähtekoodis ranget taanet, laadige allikafail alla Google Drive'ist, järgides allolevat linki.

***

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

***

Kuna ma ei kasuta RPI -d lauaarvutina, on Libre kontorirakenduste või veebibrauseri käitamine väga haruldane.

Tavaliselt mängin muusikavideot, failide kopeerimist/teisaldamist või python -programmeerimist äsja ostetud RPI 4B 2GB abil.

Seetõttu on keskmine koormus minu puhul tavaliselt alla 1,0 ja seetõttu muudan oma koodis LOW/LIGHT/MEDIUM/HIGH taset. (Teil on võimalik katsetingimusi muuta)

Kuid kui vaatate tavaliselt RPI -ga Youtube'i videoid, juhtub tavaliselt rohkem kui 2,0 süsteemi koormust.

12. samm: süsteemi koormuse ja protsessori temperatuuri suhtelisus

Süsteemi koormuse ja protsessori temperatuuri suhtelisus
Süsteemi koormuse ja protsessori temperatuuri suhtelisus

Tavaliselt ma arvan ja olen kindel, et süsteemi koormuse suurendamine tõstab protsessori temperatuuri.

Kuid siiani ei ole mul selget pilti nendevahelisest koostööst.

Nagu ülaltoodud graafikult näha, on need väga tugevad koostoimed järgmiselt.

- Lihtsaks võrdlemiseks korrutan süsteemi keskmise koormusega 10. Vastasel juhul on süsteemi koormus väga väike (0,0–2,0), otsene võrdlemine muutub keeruliseks.

- Kuna muusikat esitavasse Pi kasti on paigaldatud jahutusventilaatori ahel, ei ületa protsessori temperatuur kunagi üle 50 ° C.

- Kui süsteemi koormus on vahemikus 0,0–1,0, on temperatuur vahemikus 45–48 ° C (protsessori metallkate soojeneb veidi)

- Kuid rakendatakse suurt koormust (tavaliselt veebibrauser ja Youtube'i videote esitamine), koormuse tõus ja nii temperatuur

***

Kuna RPI 4B on installitud 4 -tuumalise protsessoriga, ei halvene teoreetiliselt jõudlus koormustasemeni (tööaja järjekord) 4.

Kuid siiski vähem kui keskmine koormustase 4, on vajalik asjakohane temperatuuri reguleerimine.

13. samm: viimistlemine

Lõplik vormistamine
Lõplik vormistamine

Lõpetan selle projekti, installides INDICATOR Pi -kasti, nagu ülaltoodud pildil.

Selle Pi kasti juhusliku kasutamise ajal näitab INDIKAATOR harva kõrget taset ja dünaamilist LED -i vilkumist.

Tavaliselt jäi see aeglaselt vilkuvate LED -de olekutesse (seega LOW või LIGHT tase).

Igatahes lisatud visuaalne indikaator teeb natuke naljakaks vähemalt see näitab, et RPI teeb praegu midagi.

Aitäh, et lugesite seda lugu ….

Soovitan: