Sisällysluettelo:

Raspberry Pi -suorittimen kuorman ilmaisin: 13 vaihetta
Raspberry Pi -suorittimen kuorman ilmaisin: 13 vaihetta

Video: Raspberry Pi -suorittimen kuorman ilmaisin: 13 vaihetta

Video: Raspberry Pi -suorittimen kuorman ilmaisin: 13 vaihetta
Video: Using IRF520 MOSFET Switch Button to Turn ON or OFF DC load 2024, Heinäkuu
Anonim
Raspberry Pi -suorittimen kuormituksen ilmaisin
Raspberry Pi -suorittimen kuormituksen ilmaisin

Kun Raspberry Pi (RPI) ajetaan ilman päätä ilman konsolinäyttöä, mitään erityisiä visuaalisia merkkejä ei ole käytettävissä, jotta RPI todella tekee jotain.

Vaikka etäpäätettä käytetään SSH: n kanssa, Linux -komennon suorittaminen aika ajoin vaaditaan sen tarkistamiseksi, kuinka paljon järjestelmäkuormitus kuormittaa CPU: ta nyt

Joten tämä piiri on tehty auttamaan välittömästi tunnistamaan suorittimen todellinen toiminta (ehkä puolitodellinen tai lähes todellinen tapa) suorittaakseen tällä hetkellä käytetyt järjestelmäkuormat.

Vaikka vain python -ohjelmointi ja paljon yksinkertaisempi piiri voivat tukea samaa toimintoa, tarvitaan hieman monimutkaisia python -koodeja tämän piirin vaatiman hienostuneen LED -ohjauslogiikan simuloimiseksi.

Myös paradoksaalisesti lisääntynyt python -koodin monimutkaisuus rasittaa CPU: ta enemmän järjestelmän kuormituksen lisääntyessä.

Siksi minkä tahansa osoitustoiminnon lataaminen mahdollisimman paljon ulkoiselle laitteistopiirille on järkevää, koska tämän palvelun pitäisi olla käynnissä koko ajan ja usein, kuten joka viides sekunti.

Ja tämä piiri lisää hieman hauska ominaisuus päätön käynnissä olevaan RPI: hen.

Vaihe 1: CPU -kuormituksen tarkistaminen Linux -komento

CPU -kuormituksen tarkistus Linux -komento
CPU -kuormituksen tarkistus Linux -komento

Saatavilla on erilaisia suorittimen kuormituksen tarkistavia Linux -komentoja, kuten top, iostat, sysstat ja käyttöaika.

Jokaisella komennolla on erityisiä edullisia ominaisuuksia, jotka koskevat tiedon monimuotoisuutta ja tietojen yksinkertaisuutta.

Ylös -komento on eniten tietoa sisältävä ja erittäin yksityiskohtainen tieto on saatavilla järjestelmän kuormituksen tunnistamiseksi välittömästi.

Mutta se toimii iterointitilassa (näyttää dataa jatkuvasti näytöllä) ja tietomuoto on melko monimutkainen vain tarvittavien suorittimen kuormitustietojen poimimiseksi.

Iostat-komento tarjoaa syvällisiä järjestelmän kuormitustietoja erottamalla käyttäjien ja järjestelmän käynnissä olevat jonotyöt, jotka rasittavat suorittimia tällä hetkellä.

Mutta se on myös tarpeettoman monimutkaista saada nykyinen suorittimen kuormitus nopeasti ja intuitiivisesti.

Käyttöajan ollessa käytettävissä on hyvin yksinkertaisia järjestelmän kuormitustietoja 1 minuutin keskiarvolla, 5 minuutin keskiarvolla ja 15 minuutin yhteenlasketulla keskiarvolla.

Kuten edellä mainittiin, python -koodin yksinkertaistaminen on välttämätöntä, koska se tulisi suorittaa melko usein, kuten 5 sekunnin tai 10 sekunnin välein.

Kun python -koodista tulee monimutkainen, se rasittaa CPU: ta paljon.

On eräänlainen paradoksi, että rasitat RPI: tä sen järjestelmän kuormituksen seurannassa.

Siksi valitsen käytettävyyskomennon kerätäkseni suorittimen kuorman ja toimimalla yhdessä indikaattoripiirin kanssa, koska se on yksinkertaisin.

Mutta koska käyttöaika osoittaa 1 minuutin järjestelmän kuormituksen keskiarvon, indikaattoripiiriä ei saa käyttää niin tarkasti reaaliaikaisessa tilassa.

Silti tämä piiri voi tarjota hyödyllistä visuaalista vihjettä, joka osoittaa, kuinka RPI voi nyt.

Vaihe 2: Kaaviot

Kaaviot
Kaaviot

Tämä piiri vastaanottaa 4 eri tasoa (esim. 00-> LOW, 01-> LIGHT, 10-> MEDIUM, 11-> HIGH) nykyisestä CPU-kuormituksesta RPI: ltä kahden opto-kytkimen tulon kautta.

74LS139 (2-4 dekooderia ja multiplekseri) dekoodaa kaksi bittituloa yhdeksi yksittäiseksi lähdöksi neljästä mahdollisesta tavasta, kuten 00 (LOW)-> B0, 01 (LIGHT)-> B1, 10 (MEDIUM)-> B2, 11 (KORKEA)-> B3.

Koska 74LS139 -lähtö on käänteinen taso (00 tulo -> B0 muuttuu matalaksi ja muut 3 lähtöä KORKEAksi), 74HC04 -taajuusmuuttajaa käytetään lähtöjen kääntämiseen vielä kerran.

Kun 74LS139: n lähtö on normaali KORKEA, 74HC04 ei ole tarpeen.

Mutta jotenkin 74LS139 on tehty näin. (Tarkista totuustaulukko 74LS139)

Kun jokin 74LS139 -lähdöistä on valittu, se aktivoi yhden tietyn analogisen kytkimen CD4066 IC: n sisältämien neljän kytkimen joukosta.

CD4066 tukee neljää analogista kytkintä ja jokaisessa kytkimessä on 1 ohjaustulo ja 2 analogista lähtöä.

Kun ohjaustulosta tulee KORKEA, kahden lähdön liitännästä tulee matalaimpedanssinen (vastus muuttuu 0) ja toisesta tulee KORKEA impedanssi (kahden lähtöpolun välinen vastus muuttuu satoja megaohmeja).

Yksinkertaisesti CD4066 -ohjaimesta 1 (nasta 13) tulee KORKEA, lähtö 1 (nasta 1) ja lähtö 2 (nasta 2) on yhdistetty, kun taas muut lähdöt eivät ole kytkettynä (korkean impedanssin tilassa).

Samoin ohjaimen 2 HIGH -tulo (nasta 5) kytkee ulostulot 1 (nasta 4) ja lähtö 2 (nasta 3), kun muut lähdöt on irrotettu.

Sitten LM555 vilkkuu kahta LEDiä eri vilkkumisnopeudella.

Kuten yllä olevasta kaaviosta näet, NE555 toimii jollakin vastusarvolla 4 (12k, 24k, 51k, 100k) mahdollisen vastustason joukossa.

Vaihe 3: NE555 Erilaisten kellojen luominen

NE555 Eri sukupolven kellot
NE555 Eri sukupolven kellot

Kuten kaaviossa esitetään, NE555 käyttää yhtä mahdollisista vastusarvoista, kuten 12k, 24l, 51k ja 100k.

Itse asiassa NE555 -ajoituspiirin osa on merkittävä visuaalinen osoitus, joka tukee piiriä.

Piirin toimintakaavio on seuraavanlainen.

- Kun CPU: n kuormitusta ei ole merkittävästi, RPI: hen asennettu python -ohjelma lähettää 00 lähtöä ilmaisinpiirille. Sitten CD4066: n kaksi lähtöpolkua aktivoituu ja NE555 toimii 12 k: n vastuksen arvolla. Siksi LED -valot vilkkuvat 1,5 kertaa sekunnissa (vilkkuvat melko nopeasti)

- CPU on kevyesti ladattu (sitten käyttöajan jonon pituudeksi tulee 0,1 ~ 0,9 taso), python lähettää 01 piirille. Sitten CD4066 aktivoitu lähdöillä, jotka on kytketty 24 k vastukseen. Tämän seurauksena LED -vilkkuminen väheni 1,2 kertaa sekunnissa (LED -vilkkuminen väheni hieman, mutta silti hieman nopeasti)

- Kun suorittimen kuormitus kasvoi merkittävästi (sitten käyttöajan ajon jonon pituudeksi tuli 1,0- 1,9 taso), python lähettää 10 piirille. Sitten 51k vastuksen liitäntäreitti avataan ja NE555 toimii 0,8 kertaa sekunnissa. Nyt vilkkumisnopeus vähenee merkittävästi.

- Suuria kuormituksia, jotka rasittavat suorittimen ja käyttöajan ajon jonon pituutta, pidentyvät (yli 2 työtä odottaa suorittamista CPU: lla ja käyttöaika raportoi yli 2,0). Kun 100k: n vastusliitäntä on valittu, NE555 vilkkuu LEDiä 0,5 kertaa sekunnissa (vilkkuu nopeasti)

***

Järjestelmän kuormituksen lisääntyessä LED -vilkkumisnopeus hidastuu vastaavasti.

Kun LED vilkkuu melko hitaasti, RPI varmasti ylikuormittui merkittävästi.

Tällä tavalla kuormanilmaisupiiri raportoi RPI: n nykyisen kuormitustason.

Vaihe 4: Osat

Tämän piirin tekemiseen käytetään erilaisia IC -siruja.

Vaikka mainitsen 74LSxx-, CD40xx -tyyppiset vanhat IC -sirut, voit käyttää viimeaikaisia TTL- ja CMOS -siruja, kuten 74HC4066 ja 74ASxx, kun valittu IC -siru on DIP -tyyppi.

Pinta -asennustyyppistä pientä IC -pakettia voidaan käyttää myös silloin, kun voit juottaa pienet kunnolla yleispiirilevylle.

Muut ovat yleisiä osia, joita voit helposti ostaa Internet-verkkokaupoista.

- 74LS139 (2- 4 dekooderia, multiplekserin poisto) x 1

- 74HC04 (6 invertteriä) x 1

- CD4066 (4 analogista kytkintä IC) x 1

- NE555 Ajastin IC x 1

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

-PC817-optokytkin x 2 (voidaan käyttää mitä tahansa yleistä 4-nastaista optokytkintä)

- Vastukset: 220ohm x 4 (LED-virranrajoitus), 4,7K (Opto-coupler interface) x 2, 12K,/24K/51K/100K (Clock ajoituksen ohjaus) x 1

- LED x 2 (kaikki eri värit, kuten keltainen, vihreä tai punainen, vihreä)

- Yleislevy 30 (W) 20 (H) reiän koko (voit leikata minkä tahansa kokoisen yleislevyn tämän piirin mukaan)

- Tinalanka (johdotusmallien tekemiseen yleispiirilevyssä)

- tappipää (3 nastaa) x 3

- IC -nastapää (4 nastaa) x 4

- punainen/sininen väri johdotuskaapelit

***

Vaihe 5: Piirilevyjen piirtäminen

Piirilevyjen piirtäminen
Piirilevyjen piirtäminen

Vaikka näytän piirilevypiirustuksen jokaisessa projektissa, johdotussuunnittelu on vain viite, joka opastaa sinua juottamaan kaikki osat yleispiirilevylle.

Mutta et välttämättä pidä kiinni tästä kytkentäkaaviosta.

Kuten yllä olevasta kytkentäkaaviosta näet, se on melko monimutkainen ja vaatii huomattavasti suuria piirilevyjä.

Voit käyttää osia tavallisella kaapelilla tinalangan sijasta pienentääksesi juotetun piirilevyn kokoa.

Käytä PCB -piirustusta vain osien välisen oikean juottamisen tarkistamiseen ja vahvistamiseen.

Kun TTL- tai CMOS -IC -korttien lukumäärää lisätään, yleensä piirilevyjen piirtämisestä tulee melko monimutkaista, ellei PCB: n yhdelle puolelle ole integroitu oikein.

Siksi monikerroksista PCB: tä käytetään yleisesti teollisiin digitaalipiireihin, jotka sisältävät paljon TTL-, CMOS- ja mikroprosessoreita.

Vaihe 6: Juotos

Juotos
Juotos

Käytän tinalankaa ja tavallista johdotuskaapelia yhdessä PCB -koon minimoimiseksi mahdollisimman paljon.

Verrattuna piirilevypiirustukseen kunkin osan sijainti muuttuu kokonaan.

Mutta silti PCB -piirustusta käytetään tarkistamaan oikea yhteys osien välillä juottamisen aikana.

Näet, että 12k/24k/51k/100k vastukset on asetettu IC -nastapäähän ilman juottamista.

Siksi voit korvata vastukset muilla arvoilla, jotta piirin toimintamalli muuttuu kätevästi myöhemmin.

Vaihe 7: Kokoaminen

Kokoaminen
Kokoaminen

Valmis kuormanilmaisinpiiri (jäljempänä INDIKAATTORI) asennetaan musiikkisoittimen RPI -laatikkoon yllä olevan kuvan mukaisesti.

Tämä soitin on asennettu DAC: n kanssa ja käytän tätä äskettäin musiikkivideon toistamiseen.

Tietoja tästä RPI -laatikosta selitän myöhemmin ja keskitytään nyt INDIKAATTORIIN, koska piiri on tämän projektin pääaihe.

Ostin äskettäin Raspberry Pi 4 Model B 2GB (jäljempänä RPI 4B) tukemaan videon toistosovellusta.

Koska RPI 4B on parantanut 4 ytimen suorittimen suorituskykyä, järjestelmäkuormien käsittely paranee huomattavasti RPI 3B+: sta.

Siksi käyttöaika-ajojonon pituista lähtöä tulisi käsitellä eri tavalla kuin RPI 3B+.

- Hyvin tavanomaiselle järjestelmäkuormitukselle, kuten videon toistolle, ajon jonon pituus on yleensä alle 0,5 (joten järjestelmän matala kuormitus on 0,0 ~ 0,5 taso)

- Kun pientä lisäkuormitusta lisätään, kuten videon toistaminen ja tiedostojen kopioiminen paikallisesta hakemistosta tai paikallisesta hakemistosta, työt aiheuttavat lievää kuormitusta suorittimelle. (Joten kevyt kuormitustaso on 0,5 ~ 1,0)

- Kun kohdistetaan merkittäviä kuormituksia, kuten videon toistaminen selaimessa Youtube -sivustossa ja Internetin selaaminen toisessa selaimessa, RPI 4: n juoksu nopeus muuttuu hieman hitaaksi (joten KESKIARVOSTUSTASON on oltava 1,0–2,0)

- Lopuksi RPI 4 -järjestelmän kuormitus kasvaa KORKEAksi, kun käytät useita selaimia ja kopioit suuria määriä tiedostoja toiselle RPI-palvelimelle verkon kautta (sitten ajonjonon pituudeksi tulee yli 2,0)

***

Näitä kuormitustietoja hyödynnetään kehitettävässä python -koodissa seuraavassa vaiheessa.

Vaihe 8: Alkuperäisen piirin tarkistaminen

Alkuperäisen piirin tarkistaminen
Alkuperäisen piirin tarkistaminen

Alkuperäisen piirisuunnittelun useiden vikojen vuoksi muutan piiriä yllä olevan kuvan mukaisesti.

Muutoksen syyt ovat seuraavat.

- NE555 -kellopulssissa on HIGH ja LOW aaltomuoto. Mutta yleensä HIGH ja LOW signaalin kesto (t = 1/f) ei ole sama (esimerkiksi HIGH on 70% ja LOW on 30% alkuperäisessä piirissä). Siksi kahden LED -valon vilkkumisnopeus (vihreä/keltainen LED alkuperäisessä mallissa) ei ole sama (yksi LED -valo syttyy pidempään kuin muut). Tästä syystä LED -vilkkumisen visuaalista ilmaisua ei ole helppo tunnistaa."

- Siksi lisään lisää LED -valoja ja teen pyöreän iterointikuvion CD4017: llä, jotta varmistetaan toimintatilan helppo tunnistaminen

- Myös LED -vilkkumismallin muuttaminen päinvastaiseksi, kuten hidas vilkkuminen matalalla kuormalla ja nopeampi vilkkuminen korkealla kuormalla. (Alkuperäisen piirin on määrä vilkkua nopeammin alhaisella kuormituksella ja hidas vilkkua korkealla kuormalla). KORKEA kuormitustilanteessa kaikki RPI -toiminnot muuttuvat hitaiksi. Ja hitaasti vilkkuva LED -valo ei tee sinua onnelliseksi. (Psykologisesta näkökulmasta valitsen positiivisemman näyttömallin)

***

Vaikka LED -näytön osaa on muutettu merkittävästi, kokonaismuutostaso alkuperäisen piirin kanssa ei ole paljon, kuten voit nähdä seuraavassa vaiheessa.

Vaihe 9: Alkuperäinen kaavamuutos

Alkuperäinen kaavamuutos
Alkuperäinen kaavamuutos

CD4017 ja 8 LED -valon lisääminen ovat merkittävä muutos.

Myös NE555 -kellotaajuuden ja LED -vilkkumismallin muuttamiseksi vastuksen arvoja muutetaan yllä olevien kaavioiden mukaisesti.

Koska lisäpiiriosa on yksinkertainen CD4017 -pohjainen jahtajapiiri, ohitan muut yksityiskohtaiset selitykset muutetusta piiristä.

Kaikki muutetut piiriosat voidaan valmistaa tytärpiirilevyiksi, joihin on juotettu CD4017 ja 8 LEDiä.

Tytärlevy voidaan kiinnittää emolevyyn (emolevyyn), kuten kuvassa vaiheessa 8 on esitetty.

Vaihe 10: Testaus

Testausvideo kaikista käyttövaiheista (LOW, LIGHT, MEDIUM ja HIGH load state) näkyy alla olevaan Google -asemaan tallennetulla tiedostolla.

***

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

***

Järjestelmän nykyisen kuormituksen mukaan vilkkumisnopeus muuttuu jonkin videossa näkyvän 4 tilan välillä.

Vaihe 11: Python -koodi

Python -koodi
Python -koodi

Koska suurin osa ohjauksen logiikasta sisältyy ulkoiseen laitteistopiiriin, python -koodin toimintalogiikka on suhteellisen yksinkertainen, mukaan lukien seuraavat vaiheet.

- CPU -lämpötilatietojen saaminen vertaamaan suhteellisuutta järjestelmän kuormituksen ja lämpötilan nousun välillä

- Kerää 1 minuutin keskimääräinen järjestelmän kuormitus käytettävyysajasta

-Aikaleiman tekeminen muodossa yy-mm-dd hh: mm: ss

- Kirjoituslämpötila, järjestelmän kuormitus ja aikaleima

- Järjestelmän nykyisen kuormituksen lähtötietojen (00, 01, 10, 11) mukaan INDICATOR -piiriin

- Nuku 5 sekuntia ennen kuin aloitat edellä mainitut vaiheet

Koska python -ohjelma tarvitsee tiukan sisennyksen lähdekoodissa, lataa lähdetiedosto Google -asemasta alla olevan linkin kautta.

***

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

***

Koska en käytä RPI: tä pöytätietokoneena, Libre -toimistosovellusten tai verkkoselainten käyttäminen on hyvin harvinaista.

Toistan yleensä musiikkivideota, tiedostojen kopiointia/siirtämistä tai python -ohjelmointia äskettäin ostetulla RPI 4B 2GB -muistilla.

Siksi keskimääräinen kuormitus on yleensä alle 1,0 minun tapauksessani, ja siksi muutan koodin LOW/LIGHT/MEDIUM/HIGH -tasoja. (Voit muuttaa testiolosuhteita muutoin)

Mutta kun katsot tavallisesti Youtube -videoita RPI: llä, järjestelmälatauksia tapahtuu yleensä yli 2,0.

Vaihe 12: Suhteellisuus järjestelmän kuormituksen ja suorittimen lämpötilan välillä

Suhteellisuus järjestelmän kuormituksen ja suorittimen lämpötilan välillä
Suhteellisuus järjestelmän kuormituksen ja suorittimen lämpötilan välillä

Yleensä arvaan ja olen varma, että järjestelmän kuormituksen lisääminen nostaa suorittimen lämpötilaa.

Mutta toistaiseksi minulla ei ole selkeää kuvaa heidän keskinäisestä vuorovaikutuksestaan.

Kuten yllä olevasta kaaviosta näet, ne ovat erittäin vahvassa yhteydessä seuraavasti.

- Vertailun helpottamiseksi kerron 10 järjestelmän keskimääräiseen kuormitukseen. Muuten järjestelmän kuormitusasteikko on hyvin pieni (0,0 ~ 2,0), suora vertailu vaikeutuu.

- Kun jäähdytyspuhallinpiiri on asennettu musiikkia toistavaan Pi -laatikkoon, suorittimen lämpötila ei koskaan ylitä 50 ° C

- Kun järjestelmän kuormitus on alueella 0,0-1,0, lämpötila 45-48 ° C (suorittimen metallikotelo lämpenee hieman)

- Mutta raskasta kuormitusta käytetään (yleensä selain ja Youtube -videoiden toistaminen), kuorman nousu ja niin lämpötila

***

Koska RPI 4B on asennettu 4 -ytimisellä suorittimella, teoreettisesti suorituskyky ei heikkene paljon lataustasolle (käyttöaika -jono) 4.

Mutta silti alle keskimääräisen kuormitustason 4, asianmukainen lämpötilan säätö on tarpeen.

Vaihe 13: Viimeistely

Viimeistely
Viimeistely

Viimeistelen tämän projektin asentamalla INDICATORin Pi -laatikkoon, kuten yllä oleva kuva.

Tämän Pi -laatikon satunnaisen käytön aikana INDIKAATTORI näyttää harvoin KORKEA -tason ja dynaamisen LED -vilkkumisen.

Yleensä se pysyi hitaasti vilkkuvissa LED -tiloissa (joten LOW tai LIGHT).

Joka tapauksessa lisätty visuaalinen ilmaisin tekee hiukan hauskaksi, ainakin se osoittaa RPI: n tekevän jotain juuri nyt.

Kiitos, että luit tämän tarinan ….

Suositeltava: