INHOUDSOPGAWE:

Raspberry Pi CPU -laai -aanwyser: 13 stappe
Raspberry Pi CPU -laai -aanwyser: 13 stappe

Video: Raspberry Pi CPU -laai -aanwyser: 13 stappe

Video: Raspberry Pi CPU -laai -aanwyser: 13 stappe
Video: 220 В переменного тока от 12 В 90 А Автомобильный генератор переменного тока 1000 Вт DIY 2024, November
Anonim
Raspberry Pi CPU -laai -aanwyser
Raspberry Pi CPU -laai -aanwyser

By die uitvoer van Raspberry Pi (RPI) as koploos sonder konsole -monitor, is daar geen spesifieke visuele aanduidings beskikbaar om te erken dat die RPI eintlik iets doen nie.

Alhoewel afstandterminal met SSH gebruik word, is die uitvoering van Linux -opdrag van tyd tot tyd nodig om te kontroleer hoeveel stelsellading die CPU nou belas

Hierdie kring word dus gemaak om die werklike aktiwiteit van die CPU (moontlik semi-reële of byna werklike manier) onmiddellik te herken om huidige toegepaste stelselbelastings uit te voer.

Alhoewel slegs luislangprogrammering en baie eenvoudiger stroombaan dieselfde funksionaliteit kan ondersteun, is 'n bietjie ingewikkelde luislangkodes nodig om die gesofistikeerde LED -beheerlogika wat deur hierdie kring benodig word, te simuleer.

Paradoksaal genoeg sal die groter kompleksiteit van die python -kode die CPU meer belas met 'n groter stelsellading.

Daarom is dit redelik om enige aanduidingsfunksionaliteit soveel as moontlik na die eksterne hardeware kring af te laai, aangesien hierdie diens altyd en gereeld, soos elke 5 sekondes, moet werk.

En hierdie kring sal 'n bietjie snaakse funksie byvoeg by die hooflose RPI.

Stap 1: CPU -laai kontroleer Linux Command

CPU -laai Kontroleer Linux -opdrag
CPU -laai Kontroleer Linux -opdrag

Daar is verskillende CPU -laai -kontrole, Linux -opdragte is beskikbaar, soos top, iostat, sysstat en uptime.

Elke opdrag het spesifieke voordele in terme van inligtingsdiversiteit en die eenvoud van data.

Die top -opdrag is die mees inligtingryke en baie detail data is beskikbaar om die stelsellading onmiddellik te herken.

Maar dit werk as herhalingsmodus (deurlopend data op die skerm vertoon) en inligtingsformaat is redelik ingewikkeld om slegs die vereiste CPU -laai -data eenvoudig uit te haal.

Die iostat-opdrag bied 'n diepgaande inligting oor die stelsellaai deur gebruikers- en stelselrywagte te skei wat die CPU tans belas.

Maar dit is ook onnodig ingewikkeld om die huidige SVE -las so vinnig en intuïtief te kry.

In die geval van uptyd, is baie eenvoudige stelselladingsdata beskikbaar in terme van gemiddeld 1 minuut, 5 minute gemiddeld en 15 minute opgesomde gemiddelde.

Soos hierbo genoem, is vereenvoudiging van python -kode nodig, want dit moet gereeld uitgevoer word, soos elke 5 sekondes of 10 sekondes.

As python -kode kompleks raak, sal dit die CPU baie belas.

Dit is 'n paradoks dat u RPI belas om die stelsellading daarvan te monitor.

Daarom kies ek 'n uptime -opdrag om die CPU -laai in te samel en met die aanwyserkring saam te werk, want dit is die eenvoudigste.

Aangesien uittyd egter 'n gemiddelde gemiddelde stelsellading van 1 minuut toon, moet die aanwyserbaan nie so streng in real -time werk nie.

Tog kan hierdie kring nuttige visuele wenke bied wat wys hoe dit met RPI gaan.

Stap 2: Skema's

Skemas
Skemas

Hierdie stroombaan ontvang 4 verskillende vlakke (bv. 00-> LOW, 01-> LIGHT, 10-> MEDIUM, 11-> HIGH) van die huidige SVE-las van RPI via twee optokoppeling-insette.

74LS139 (2 tot 4 dekodeerder en de-multiplexer) dekodeer twee bis insette in een van enkele uitsette onder vier moontlike maniere, soos 00 (LOW)-> B0, 01 (LIGHT)-> B1, 10 (MEDIUM)-> B2, 11 (HOOG)-> B3.

Aangesien 74LS139 -uitset omgekeerde vlak is (00 -invoer -> B0 LAAG word en ander 3 -uitsette HOOG), word 74HC04 -omvormer gebruik om die uitset nog een keer terug te keer.

As die uitset van 74LS139 normaal HOOG is, is 74HC04 nie nodig nie.

Maar op een of ander manier word 74LS139 so gemaak. (Kyk na die waarheidstabel van 74LS139)

As een van die 74LS139 -uitsette gekies word, aktiveer dit een sekere analoog skakelaar tussen 4 skakelaars wat in CD4066 IC ingesluit is.

CD4066 kan 4 analoog skakelaars ondersteun en elke skakelaar bestaan uit 1 bedieningsingang en 2 analoog uitgange.

As die beheerinvoer HOOG word, word die aansluiting van twee uitgange tot 'n lae impedansie (weerstand word 0) en ander word 'n hoë impedansie (weerstand tussen twee uitvoerpaaie word 'n paar honderde mega ohm).

Beheer eenvoudig 1 (pen 13) van CD4066 tot HOOG, pad tussen uitset 1 (pen 1) en uitgang 2 (pen 2) verbind terwyl ander uitsette nie gekoppel is nie (in hoë impedansietoestand).

Net so maak HOOG insette van beheer 2 (pen 5) uitgang 1 (pen 4) en uitgang 2 (pen 3) verbind terwyl ander uitsette ontkoppel word.

Dan knipper LM555 twee LED's in verskillende knippertempo.

Soos u in die skema hierbo kan sien, werk NE555 met 'n weerstandswaarde tussen 4 (12k, 24k, 51k, 100k) moontlike weerstandsvlakke.

Stap 3: NE555 Verskillende klokgenerasie

NE555 Verskillende klokgenerasie
NE555 Verskillende klokgenerasie

Soos in die skema getoon, werk NE555 een van moontlike weerstandswaardes soos 12k, 24l, 51k en 100k.

Eintlik is NE555 tydsberekening gedeelte 'n belangrike visuele aanduiding wat 'n deel van die stroombaan ondersteun.

Die stroombaanskema is soos volg.

- As daar geen beduidende SVE -las is nie, stuur die python -program wat in RPI geïnstalleer is, 00 uitsette na die aanwyserkring. Dan word twee uitsetbane van CD4066 geaktiveer en werk NE555 met 'n weerstandswaarde van 12k. Daarom knipper LED's 1,5 keer per sekonde (flikker baie vinnig)

- Die SVE word liggies gelaai (dan word die tou -lengte van die uptyd 0,1 ~ 0,9), python stuur 01 na die kring. Dan word CD4066 geaktiveer met uitsette wat gekoppel is aan 'n 24k -weerstand. As gevolg hiervan het LED -knippering 1,2 keer per sekonde afgeneem (LED knip effens af, maar nog steeds 'n bietjie vinnig)

- As die SVE-las aansienlik toegeneem het (dan word die lengte van die uptime-tou tot 1,0 ~ 1,9), sal luislang 10 na die stroombaan stuur. Dan word 'n 51k -weerstandaansluitingspad oopgemaak en NE555 werk 0,8 keer per sekonde. Nou word die knippertempo aansienlik verminder.

- Swaar vragte wat die SVE belaai en die lengte van die tou word langer (meer as 2 werksgeleenthede sal wag om deur die SVE uitgevoer te word, en die uptyd sal meer as 2,0 rapporteer). Aangesien 100k weerstandsverbinding gekies is, knip NE555 LED 0,5 keer per sekonde (knipperspoed word baie stadig)

***

Saam met verhoogde stelselbelasting, sal die LED -knipperspoed dienooreenkomstig verminder word.

As die LED baie stadig knip, is die RPI beslis aansienlik oorlaai.

Op hierdie manier gee die lasaanwysingsbaan verslag oor u huidige lasvlak van RPI.

Stap 4: Onderdele

Vir die maak van hierdie kring word verskillende IC -skyfies gebruik.

Alhoewel ek 74LSxx, CD40xx -tipe ou IC -skyfies noem, kan u onlangse soorte TTL- en CMOS -skyfies soos 74HC4066 en 74ASxx gebruik as die gekose IC -chip DIP -tipe is.

'N Klein IC -pakket op die oppervlak kan ook gebruik word as u die kleintjies behoorlik op die universele PCB kan soldeer.

Ander is algemene onderdele wat u maklik by internet-e-winkels kan koop.

- 74LS139 (2 tot 4 dekodeerder, de-multiplexer) x 1

- 74HC04 (6 omskakelaars) x 1

- CD4066 (4 analoog skakelaars IC) x 1

- NE555 Timer IC x 1

- Kondensators: 10uF x 1, 0.1uF x 1

-PC817 optokoppelaar x 2 (enige gewone 4-pins optokoppelstuk kan gebruik word)

Weerstande: 220ohm x 4 (beperking van LED-stroom), 4,7K (koppelvlak vir opto-koppelaar) x 2, 12K,/24K/51K/100K (kloktydsbeheer) x 1

- LED x 2 (verskillende kleure soos geel, groen of rooi, groen)

- Universele bord 30 (W) by 20 (H) gate grootte (U kan enige grootte van die universele bord sny om by hierdie stroombaan te pas)

- Blikdraad (vir die maak van bedradingpatrone op die universele printplaat)

- penkop (3 penne) x 3

- IC -penkop (4 penne) x 4

- rooi/blou kleur bedradingskabels

***

Stap 5: Maak PCB -tekening

Maak PCB -tekening
Maak PCB -tekening

Alhoewel ek PCB -tekening in elke projek toon, is die bedradingontwerp slegs 'n verwysing wat u sal lei om die korrekte soldeer van elke onderdeel op universele PCB te lei.

Maar u hou nie noodwendig by hierdie bedradingskema nie.

Soos u die bedradingsdiagram hierbo kan sien, is dit redelik kompleks en benodig aansienlik groot PCB.

U kan 'n gewone kabel gebruik om dele in plaas van tindraad aan te sluit om die grootte van die soldeerbare PCB te verminder.

Gebruik slegs die PCB -tekening om die korrekte soldeer tussen dele te kontroleer en te bevestig.

As die aantal TTL- of CMOS -IC's verhoog word, word PCB -tekeninge gewoonlik taamlik kompleks, buite behoorlike integrasie aan die een kant van die PCB.

Daarom word veelvuldige PCB algemeen gebruik vir digitale stroombane met 'n groot aantal TTL-, CMOS- en mikroverwerkers.

Stap 6: Soldeer

Soldeer
Soldeer

Ek gebruik tintdraad en gewone bedradingskabel om die grootte van die PCB soveel as moontlik te verminder.

As u vergelyk met PCB -tekening, word die ligging van elke onderdeel heeltemal verander.

Maar steeds word PCB -tekening gebruik om die korrekte verbinding tussen dele tydens soldeer te verifieer.

U kan sien dat 12k/24k/51k/100k weerstande op die IC -penkop ingevoeg word sonder om te soldeer.

Daarom kan u weerstande vervang met ander waardes om die bedryfskema van die stroombaan later maklik te verander.

Stap 7: Monteer

Montering
Montering

Voltooide laai -aanwyserbaan (hierna aangedui as INDIKATOR) is geïnstalleer op die RPI -boks van die musiekspeler, soos in die prent hierbo getoon.

Hierdie musiekspeler is geïnstalleer met DAC en ek gebruik hierdie onlangs om musiekvideo te speel.

Oor hierdie RPI -boks verduidelik ek later, en laat ons nou fokus op INDICATOR, aangesien die kring die hoofonderwerp van hierdie projek is.

Ek het onlangs Raspberry Pi 4 Model B 2GB (hierna RPI 4B) gekoop om video -afspeelprogramme te ondersteun.

Aangesien RPI 4B die werkverrigting van 4 kern -CPU's verhoog het, word die hantering van stelselstelsels aansienlik verbeter deur RPI 3B+.

Daarom moet die uitvoer van die uptime-tou-tou-lengte anders behandel word as RPI 3B+.

- Vir die baie konvensionele stelsellading, soos die speel van video, is die lengte van die tou gewoonlik minder as 0,5 (dus is die LAE stelsellading 0,0 ~ 0,5)

- As 'n effense bykomende stelsellading bygevoeg word, soos die speel van video en die kopiëring van lêers van en na die plaaslike gids, lei die werke tot 'n geringe las. (Die LIGTE laaivlak sal dus 0,5 ~ 1,0 wees)

- As aansienlike hoeveelhede toegepas word, soos om video in die blaaier op die YouTube -webwerf af te speel en op 'n ander blaaier te blaai, word die snelheid van RPI 4 effens traag (dus moet die MEDIUM laaivlak 1.0 ~ 2.0 wees)

- Uiteindelik word die RPI 4-stelsellading HOOG wanneer meer webblaaiers uitgevoer word en 'n groot hoeveelheid lêers na 'n ander RPI-bediener via die netwerk gekopieer word (dan word die lengte van die tou meer as 2,0)

***

Hierdie laadvlakdata word gebruik deur die ontwikkelende luislangkode in die volgende stap.

Stap 8: Hersiening van die oorspronklike stroombaan

Hersiening van oorspronklike stroombaan
Hersiening van oorspronklike stroombaan

As gevolg van verskeie gebreke in die oorspronklike stroombaanontwerp, verander ek die stroombaan soos in die prent hierbo getoon.

Die redes vir die verandering is soos volg.

- NE555 klokpuls bestaan uit HOOG en LAAG golfvorm. Maar gewoonlik is HOOG en LAAG seinduur (t = 1/f) nie dieselfde nie (byvoorbeeld HOOG is 70% en LAAG is 30% in die oorspronklike stroombaan). Daarom is die knippertempo van twee LED's (groen/geel LED in die oorspronklike ontwerp) nie dieselfde nie (een LED brand langer as die ander). Om hierdie rede is visuele aanduiding deur LED -knipper nie baie maklik herkenbaar nie. '

- Daarom voeg ek meer LED's by en maak ek 'n sirkulêre herhalingspatroon met CD4017 om die operasionele toestand maklik te herken

- Verander ook die LED -flitsskema omgekeer, soos stadige flikkering by LAE laai en vinniger flikkering met HOOG laai. (Die oorspronklike stroombaan word gemaak om vinniger te knip by LAE laai en stadig te flikker by HOOG laai). In die situasie HIGH load word enige RPI -aksies traag. En as u stadig LED knip, sal u nie gelukkig wees nie. (In die sielkundige aspek kies ek 'n meer positiewe vertoonskema)

***

Alhoewel die LED -skermdeel aansienlik aangepas is, is die algehele veranderingsvlak met die oorspronklike stroombaan nie veel nie, soos u in die volgende stap kan sien.

Stap 9: Oorspronklike skematiese verandering

Oorspronklike skematiese verandering
Oorspronklike skematiese verandering

Die toevoeging van CD4017 en 8 LED's is 'n groot verandering.

Om die klokfrekwensie van NE555 en die omgekeerde LED -knipskema te verander, word weerstandswaardes verander soos in die skemas hierbo getoon.

Aangesien die toegevoegde kringgedeelte 'n eenvoudige CD4017 -gebaseerde chaser -kring is, sal ek ander detailverklarings van die aangepaste stroombaan oorslaan.

Alle veranderde stroombane kan gemaak word as 'n dogter -printplaat waarop CD4017 en 8 LED's gesoldeer is.

Die dogterbord kan aan die hoofbord (moederbord) geheg word, soos op die foto in stap 8.

Stap 10: Toets

Die toetsvideo van alle operasionele fases (LOW, LIGHT, MEDIUM en HIGH load status) word getoon deur die lêer wat in die Google Drive hieronder gestoor is.

***

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

***

Volgens die huidige stelsellading, sal die knippertempo verander word onder een van die 4 toestande wat in die video verskyn.

Stap 11: Python -kode

Python -kode
Python -kode

Aangesien die meeste beheerlogika by die eksterne hardeware -kring ingesluit is, is die operasionele logika van die python -kode relatief eenvoudig, insluitend die volgende stappe.

- Kry CPU -temperatuurdata om relatiwiteit tussen stelsellading en temperatuurverhoging te vergelyk

- Versamel 'n gemiddelde stelsellading van 1 minuut vanaf uittyduitset

-Maak tydstempel soos yy-mm-dd hh: mm: ss-formaat

- Skryfstemperatuur, stelselbelasting en tydstempel

- Volgens die huidige stelsel laai uitset data (00, 01, 10, 11) na INDICATOR kring

- Slaap 5 sekondes voordat u die bogenoemde stappe begin

Aangesien die python -program 'n streng inspringing in die bronkode benodig, moet u die bronlêer van Google Drive aflaai deur die onderstaande skakel te volg.

***

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

***

Aangesien ek RPI nie as tafelrekenaar gebruik nie, is Libre -kantoorprogramme of webblaaier baie skaars.

Gewoonlik speel ek musiekvideo, lêer kopieer/skuif of pythonprogrammering met nuut gekoopte RPI 4B 2GB.

Daarom is die gemiddelde lading in my geval gewoonlik minder as 1,0, en daarom verander ek die vlakke LOW/LIGHT/MEDIUM/HIGH in my kode. (U kan die toetsvoorwaardes anders verander)

Maar as u gereeld YouTube -video's met RPI bekyk, sal meer as 2,0 stelsellading gereeld voorkom.

Stap 12: Relatiwiteit tussen stelsellading en CPU -temperatuur

Relatiwiteit tussen stelsellading en CPU -temperatuur
Relatiwiteit tussen stelsellading en CPU -temperatuur

Gewoonlik raai ek seker dat toenemende stelsellading die CPU -temperatuur sal verhoog.

Maar tot nou toe het ek nie 'n duidelike beeld van die onderlinge interaksie tussen hulle nie.

Soos u in die grafiek hierbo kan sien, het hulle 'n baie sterk samehang soos volg.

- Vir 'n maklike vergelyking, vermenigvuldig ek 10 tot die gemiddelde stelsellading. Andersins is die omvang van die stelsellading baie klein (0,0 ~ 2,0), en direkte vergelyking word moeilik.

- Aangesien die koelventilator -stroombaan geïnstalleer is in die musiek -speelboks, sal die CPU -temperatuur nooit meer as 50C oorskry nie

- As die stelsellading binne die bereik van 0.0 ~ 1.0 is, is die temperatuur binne die bereik van 45 ~ 48C (CPU -metaaldeksel effens opwarm)

- Maar swaar vragte word toegepas (gewoonlik 'n webblaaier en speel YouTube -video's), laai die hoogte en so die temperatuur

***

Aangesien RPI 4B geïnstalleer is met 'n 4 -kern -SVE, sal die werkverrigting teoreties nie veel laer word tot laaivlak nie (uptime running queue) 4.

Maar steeds minder as die gemiddelde lasvlak 4, is toepaslike temperatuurbeheer nodig.

Stap 13: Finalisering

Finalisering
Finalisering

Ek voltooi hierdie projek deur INDICATOR in die boks soos op die foto hierbo te installeer.

Tydens die toevallige gebruik van hierdie Pi -boks, wys INDICATOR selde 'n HOOG vlak en dinamiese LED knipper.

Gewoonlik bly dit in stadig knipperende LED's (dus LOW of LIGHT).

In elk geval, die bygevoegde visuele aanwyser maak 'n bietjie snaaks, dit wys ten minste dat RPI tans iets doen.

Dankie dat u hierdie verhaal gelees het ….

Aanbeveel: