Taula de continguts:

Indicador de càrrega de la CPU Raspberry Pi: 13 passos
Indicador de càrrega de la CPU Raspberry Pi: 13 passos

Vídeo: Indicador de càrrega de la CPU Raspberry Pi: 13 passos

Vídeo: Indicador de càrrega de la CPU Raspberry Pi: 13 passos
Vídeo: Raspberry Pi Pico for Robotics 2024, Juliol
Anonim
Indicador de càrrega de la CPU Raspberry Pi
Indicador de càrrega de la CPU Raspberry Pi

Quan s’executa Raspberry Pi (RPI) com a cap sense monitor de consola, no hi ha indicacions visuals específiques disponibles per reconèixer que RPI realment està fent alguna cosa.

Tot i que el terminal remot s'utilitza amb SSH, cal executar de tant en tant l'ordre Linux per comprovar la càrrega del sistema que carrega la CPU ara.

Per tant, aquest circuit es fa per ajudar a reconèixer immediatament l'activitat real de la CPU (potser de manera semi-real o gairebé real) per executar càrregues del sistema aplicades actualment.

Tot i que només la programació de python i un circuit molt més senzill poden suportar la mateixa funcionalitat, es necessitaran codis python una mica complexos per simular la sofisticada lògica de control de LED requerida per aquest circuit.

També una paradoxalment augmentada complexitat del codi python carregarà més la CPU amb l’augment de la càrrega del sistema.

Per tant, descarregar tota la funcionalitat d’indicació al circuit de maquinari extern tant com sigui possible serà raonable, ja que aquest servei s’hauria d’executar tot el temps i amb freqüència, com per cada 5 segons.

I aquest circuit afegirà una característica una mica divertida a l'RPI de funcionament sense cap.

Pas 1: comprovació de la càrrega de la comanda de Linux

Comprovació de la càrrega de la CPU Comanda de Linux
Comprovació de la càrrega de la CPU Comanda de Linux

Hi ha diverses comprovacions de càrrega de CPU disponibles. Hi ha disponibles comandes de Linux, com ara top, iostat, sysstat i uptime.

Cada ordre té característiques avantatjoses específiques en termes de diversitat d'informació i de simplicitat de dades de visualització.

L'ordre superior és la informació més rica en informació i hi ha dades molt detallades per reconèixer immediatament la càrrega del sistema.

Però el seu funcionament com a mode d'iteració (visualització de dades contínuament a la pantalla) i format d'informació és bastant complex per extreure només les dades de càrrega de la CPU necessàries.

L'ordre iostat proporciona informació detallada sobre la càrrega del sistema separant els treballs de cua en execució de l'usuari i del sistema que actualment carreguen la CPU.

Però també és innecessàriament complex obtenir la càrrega actual de la CPU de manera ràpida i intuïtiva.

En cas de temps d'activitat, hi ha disponibles dades de càrrega del sistema molt senzilles en un termini d'1 minut de mitjana, 5 minuts de mitjana i 15 minuts de mitjana resumida.

Com s'ha esmentat anteriorment, cal simplificar el codi python perquè s'hauria d'executar amb molta freqüència, com per cada 5 segons o 10 segons.

Quan el codi python esdevingui complex, carregarà molt la CPU.

És una mena de paradoxa que carregueu RPI per controlar la càrrega del sistema.

Per tant, estic escollint l’ordre de temps d’activitat per reunir la càrrega de la CPU i interoperar amb el circuit d’indicadors perquè és el més senzill.

Però, com que el temps d'activitat mostra una mitjana de 1 minut de càrrega del sistema, el circuit indicador no funcionarà com a mode estrictament en temps real.

Tot i així, aquest circuit pot proporcionar un ajut visual útil que mostri el rendiment de RPI ara.

Pas 2: esquemes

Esquemes
Esquemes

Aquest circuit rebrà 4 nivells diferents (per exemple, 00-> BAIX, 01-> LLUM, 10-> MITJÀ, 11-> ALTA) de càrrega actual de la CPU des de RPI mitjançant dues entrades optoacobladores.

74LS139 (2 a 4 descodificadors i desmultiplexors) està descodificant dues entrades de bit en una de sortida única entre 4 maneres possibles com 00 (BAIX) -> B0, 01 (LLUM) -> B1, 10 (MITJÀ) -> B2, 11 (ALT) -> B3.

Com que la sortida 74LS139 és de nivell invers (l'entrada 00 -> B0 es converteix en BAIXA i altres 3 de sortida ALTA), s'utilitza un inversor 74HC04 per fer la sortida inversa una vegada més.

Quan la sortida de 74LS139 és normal ALTA, no serà necessari 74HC04.

Però d'alguna manera el 74LS139 es fa així. (Consulteu la taula de veritat de 74LS139)

Quan se selecciona qualsevol sortida 74LS139, activarà un determinat commutador analògic entre 4 commutadors inclosos en el CD4066 IC.

El CD4066 pot suportar 4 commutadors analògics i cada commutador consta de 1 entrada de control i 2 sortides analògiques.

Quan l’entrada de control es converteix en ALTA, la connexió de dues sortides es converteix en baixa impedància (la resistència es converteix en 0) i d’altres es converteixen en una impedància ALTA (la resistència entre dos camins de sortida es converteix en diversos centenars de mega ohms).

Simplement controleu 1 (pin 13) del CD4066 per ser HIGH, el camí entre la sortida 1 (pin 1) i la sortida 2 (pin 2) està connectat, mentre que altres sortides no estan connectades (en estat d'alta impedància).

De la mateixa manera, l'entrada HIGH del control 2 (pin 5) fa que la sortida 1 (pin 4) i la sortida 2 (pin 3) estiguin connectades mentre es desconnecten altres sortides.

A continuació, LM555 parpelleja dos LEDs amb una velocitat de parpelleig diferent.

Com podeu veure a l'esquema anterior, NE555 funcionarà amb un valor de resistència d'entre 4 (12k, 24k, 51k, 100k) possibles nivells de resistència.

Pas 3: NE555 Generació de rellotge diferent

NE555 Generació de rellotges diferents
NE555 Generació de rellotges diferents

Com es mostra a l'esquema, NE555 funcionarà amb un valor de resistència possible, com ara 12k, 24l, 51k i 100k.

En realitat, la part del circuit de sincronització NE555 és una indicació visual important que dóna suport a una part del circuit.

L’esquema de funcionament del circuit és el següent.

- Quan no hi hagi cap càrrega significativa de la CPU, el programa python instal·lat a RPI enviarà 00 sortides al circuit indicador. A continuació, s’activa el camí de dues sortides del CD4066 i el NE555 funciona amb un valor de resistència de 12 k. Per tant, els LED parpellegen 1,5 vegades per segon (parpellegen bastant ràpidament)

- La CPU es carrega lleugerament (Llavors la durada de la cua de temps d'activitat es converteix en un nivell de 0,1 ~ 0,9), python enviarà 01 al circuit. A continuació, s'activa el CD4066 amb sortides connectades amb resistència de 24 k. Com a resultat, el LED parpellejant va disminuir 1,2 vegades per segon (el LED parpellejava lleugerament, però encara una mica ràpid)

- Quan la càrrega de la CPU augmenta significativament (la durada de la cua d'execució del temps d'activitat es converteix en un nivell d'1,0 ~ 1,9), Python sortirà 10 al circuit. A continuació, s'obre el camí de connexió de resistència de 51 k i el NE555 funciona 0,8 vegades per segon. Ara la taxa de parpelleig es redueix significativament.

- Les càrregues pesades que carreguen la CPU i la durada de la cua d’execució del temps d’activitat s’allarguen (més de 2 treballs esperaran a ser executats per la CPU i el temps d’activitat reportarà més de 2.0). Quan es selecciona la connexió de resistència de 100 k, el NE555 parpellejarà el LED 0,5 vegades per segon (la velocitat de parpelleig es fa molt lenta)

***

Juntament amb l'augment de les càrregues del sistema, la velocitat de parpelleig del LED es reduirà en conseqüència.

Quan el LED parpelleja bastant lent, segurament RPI sobrecarregarà significativament.

D'aquesta manera, el circuit d'indicació de càrrega us informa del nivell de càrrega actual de RPI.

Pas 4: parts

Per fer aquest circuit, s’utilitzen diversos xips IC.

Tot i que menciono 74LSxx, tipus de xips IC antics de tipus CD40xx, podeu utilitzar tipus recents de xips TTL i CMOS com 74HC4066 i 74ASxx quan el xip IC seleccionat és de tipus DIP.

El tipus de muntatge superficial del petit paquet IC també es pot utilitzar quan es poden soldar correctament els petits al PCB universal.

Altres són parts habituals que podeu comprar fàcilment a les botigues electròniques a Internet.

- 74LS139 (descodificador de 2 a 4, desmultiplexor) x 1

- 74HC04 (6 inversors) x 1

- CD4066 (4 commutadors analògics IC) x 1

IC de temporitzador NE555 x 1

Condensadors: 10 uF x 1, 0,1 uF x 1

- Optoacoblador PC817 x 2 (es pot utilitzar qualsevol optoacoblador comú de 4 pins)

Resistències: 220ohm x 4 (limitació de corrent LED), 4,7K (interfície optoacoblador) x 2, 12K, / 24K / 51K / 100K (control de temporització del rellotge) x 1

- LED x 2 (qualsevol color diferent, com ara groc, verd o vermell, verd)

- Tauler universal de 30 (W) per 20 (H) mida de forat (podeu tallar qualsevol mida de tauler universal per adaptar-lo a aquest circuit)

- Filferro d'estany (per fer patrons de cablejat a la placa universal)

- cap de pin (3 pins) x 3

Cap de pin IC (4 pins) x 4

- cables de cablejat de color vermell / blau

***

Pas 5: Fer dibuix de PCB

Realització de dibuix de PCB
Realització de dibuix de PCB

Tot i que mostro dibuixos de PCB en cada projecte, el disseny del cablejat és només una referència que us guiarà a soldar correctament cada part del PCB universal.

Però no necessàriament us fixeu en aquest esquema de cablejat.

Com podeu veure el diagrama de cablejat anterior, és bastant complex i requereix un PCB significativament gran.

Podeu utilitzar un cable comú per connectar peces en lloc de filferro de llauna per reduir la mida del PCB complet de soldadura.

Utilitzeu només el dibuix del PCB per comprovar i confirmar la soldadura correcta entre les peces.

Quan s'incrementa el nombre de circuits integrats TTL o CMOS, normalment el dibuix de PCB esdevé bastant complex més enllà d'una integració adequada en un sol costat del PCB.

Per tant, la multi-capa de PCB s’utilitza habitualment per a circuits digitals de grau industrial que inclouen una gran quantitat de TTL, CMOS i microprocessador.

Pas 6: soldar

Soldadura
Soldadura

Utilitzo filferro de llauna i cables de cablejat comuns per reduir al màxim la mida del PCB.

Quan es compara amb el dibuix de PCB, la ubicació de cada peça canvia completament.

Però encara s’utilitza el dibuix de PCB per verificar la connexió correcta entre les peces durant la soldadura.

Es poden veure resistències 12k / 24k / 51k / 100k inserides al capçal del pin IC sense soldar.

Per tant, podeu substituir les resistències per altres valors per canviar convenientment l'esquema operatiu del circuit més endavant.

Pas 7: Muntatge

Muntatge
Muntatge

El circuit indicador de càrrega completat (d’ara endavant com a INDICADOR) s’instal·la al quadre RPI del reproductor de música tal com es mostra a la imatge superior.

Aquest reproductor de música està instal·lat amb DAC i el faig servir recentment per reproduir un vídeo musical.

Sobre aquest quadre RPI, ho explicaré més endavant i ara ens centrarem en INDICADOR, ja que el circuit és el tema principal d’aquest projecte.

He comprat Raspberry Pi 4 Model B 2GB (en endavant RPI 4B) recentment per donar suport a l'aplicació de reproducció de vídeo.

Com que RPI 4B ha augmentat el rendiment de la CPU de 4 nuclis, la gestió de les càrregues del sistema es millora de manera significativa a partir de RPI 3B +.

Per tant, la sortida de la durada de la cua d'execució del temps d'activitat s'ha de tractar de manera diferent a RPI 3B +.

- Per a la càrrega del sistema molt convencional, com la reproducció de vídeo, la durada de la cua d’execució sol ser inferior a 0,5 (per tant, la càrrega del sistema BAIXA serà de 0,0 a 0,5 nivells)

- Quan s'afegeix una lleugera càrrega addicional del sistema, com ara la reproducció de vídeo i la còpia de fitxers des de i cap a un directori local, el tipus de treballs comporta una lleugera càrrega a la CPU. (Per tant, el nivell de càrrega LIGHT serà de 0,5 ~ 1,0)

- Quan s'apliquen càrregues importants, com ara reproduir vídeo al navegador al lloc de Youtube i navegar per la web en un altre navegador, la velocitat d'execució de RPI 4 es redueix lleugerament (per tant, el nivell de càrrega MITJÀ serà d'1,0 a 2,0)

- Finalment, la càrrega del sistema RPI 4 augmenta quan s’executen diversos navegadors web i copien un gran volum de fitxers a un altre servidor RPI a través de la xarxa (Llavors la durada de la cua d’execució és superior a 2,0)

***

Aquestes dades de nivell de càrrega s'utilitzaran mitjançant el codi python desenvolupat en el següent pas.

Pas 8: revisió del circuit original

Revisió del circuit original
Revisió del circuit original

A causa de diversos defectes del disseny del circuit original, estic modificant el circuit tal com es mostra a la imatge superior.

Les raons per canviar són les següents.

- El pols de rellotge NE555 consta de formes d'ona ALTA i BAIXA. Però normalment la durada del senyal ALTA i BAIXA (t = 1 / f) no és la mateixa (per exemple, l’ALTA és del 70% i la BAIXA del 30% al circuit original). Per tant, la velocitat de parpelleig de dos LED (LED verd / groc en el disseny original) no és la mateixa (un LED s’encén més que l’altre). Per aquest motiu, la indicació visual per parpelleig de LED no es pot reconèixer fàcilment."

- Per tant, afegeixo més LED i faig patrons d’iteració circular amb CD4017 per garantir un fàcil reconeixement de l’estat operatiu

- També canvia l'esquema de parpelleig de LEDs inversament, com ara parpellejar lent a baixa càrrega i parpellejar més ràpid amb càrrega ALTA. (El circuit original es fa parpellejar més ràpidament en càrrega BAIXA i parpelleja lentament en càrrega ALTA). En la situació de càrrega HIGH, qualsevol acció RPI es torna lenta. I mostrar un parpelleig lent del LED no us farà feliç. (En l’aspecte psicològic, trio un esquema de visualització més positiu)

***

Tot i que la part de la pantalla LED es modifica significativament, el nivell de canvi global amb el circuit original no és tant com es pot veure al següent pas.

Pas 9: canvi esquemàtic original

Canvi esquemàtic original
Canvi esquemàtic original

L’addició de CD4017 i 8 LED són modificacions importants.

També per canviar la freqüència de rellotge NE555 i l'esquema de parpelleig invers del LED, els valors de les resistències es canvien tal com es mostra als esquemes anteriors.

Com que la part del circuit afegit és un senzill circuit de caçador basat en CD4017, ometré altres explicacions detallades del circuit modificat.

Totes les porcions de circuits canviats es poden fer com a placa PCB filla a la qual es solden CD4017 i 8 LED.

La placa filla es pot connectar a la placa principal (placa mare) tal com es mostra a la imatge del pas 8.

Pas 10: proves

El fitxer emmagatzemat a la unitat de google següent mostra el vídeo de prova de totes les etapes operatives (estat de càrrega BAIX, LLUM, MITJÀ i ALTA).

***

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

***

Segons la càrrega actual del sistema, la velocitat de parpelleig canviarà entre un dels 4 estats que es mostren al vídeo.

Pas 11: codi Python

Codi Python
Codi Python

Com que la majoria de lògiques de control s’inclouen al circuit de maquinari extern, la lògica operativa del codi python és relativament senzilla, incloent els passos següents.

- Obtenir dades de temperatura de la CPU per comparar la relativitat entre la càrrega del sistema i l’augment de temperatura

- Recopilació de la càrrega mitjana del sistema durant 1 minut a partir de la sortida de temps d'activitat

- Creació de segell de temps com el format aaa-mm-dd hh: mm: ss

- Temperatura d’escriptura, càrrega del sistema junt amb segell de temps

- Segons les dades de sortida de càrrega del sistema actual (00, 01, 10, 11) al circuit INDICADOR

- Dorm 5 segons abans d’iniciar els passos esmentats anteriorment

Com que el programa Python necessita un sagnat estricte dins del codi font, descarregueu el fitxer font de Google Drive seguint l'enllaç següent.

***

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

***

Com que no faig servir RPI com a ordinador d’escriptori, és molt estrany executar aplicacions de Libre Office o un navegador web.

Normalment estic reproduint vídeos musicals, copiant / movent fitxers o programant python amb RPI 4B 2 GB recentment comprat.

Per tant, la càrrega mitjana sol ser inferior a 1,0 en el meu cas i, per tant, estic canviant els nivells BAIX / LLUM / MITJÀ / ALT del meu codi. (En cas contrari, podeu canviar les condicions de la prova)

Però quan normalment veieu vídeos de Youtube amb RPI, normalment es produeixen més de 2,0 de les càrregues del sistema.

Pas 12: Relativitat entre la càrrega del sistema i la temperatura de la CPU

Relativitat entre la càrrega del sistema i la temperatura de la CPU
Relativitat entre la càrrega del sistema i la temperatura de la CPU

Normalment suposo que estic segur que augmentar la càrrega del sistema augmentarà la temperatura de la CPU.

Però fins ara no tinc una imatge clara de la mútua interacció entre ells.

Com podeu veure al gràfic anterior, són una correlació molt forta de la manera següent.

- Per facilitar la comparació, multiplico 10 per la càrrega mitjana del sistema. En cas contrari, l’escala de càrrega del sistema és molt petita (0,0 ~ 2,0), la comparació directa es fa difícil.

- A mesura que s’instal·la un circuit FAN de refrigeració a la caixa Pi que reprodueix música, la temperatura de la CPU no supera mai els 50C

- Quan la càrrega del sistema es troba dins de l'interval de 0,0 ~ 1,0, la temperatura es troba entre 45 i 48C (la coberta metàl·lica de la CPU s'està escalfant lleugerament)

- Però s’aplica una càrrega intensa (normalment el navegador web i la reproducció de vídeos de Youtube), la càrrega augmenta i augmenta la temperatura

***

Com que RPI 4B s’instal·la amb una CPU de 4 nuclis, teòricament el rendiment no es degradarà fins al nivell de càrrega (cua d’execució en temps d’activitat) 4.

Però, encara que sigui inferior al nivell mitjà de càrrega 4, serà necessari un control de temperatura adequat.

Pas 13: finalització

Finalització
Finalització

Estic acabant aquest projecte instal·lant INDICATOR a la caixa Pi com la imatge anterior.

Durant l’ús casual d’aquesta caixa Pi, INDICATOR poques vegades mostra un parpelleig LED dinàmic i d’ALT nivell.

Normalment es mantenia en estats de LED de parpelleig lent (per tant, nivell BAIX o LLUM).

De totes maneres, l'indicador visual afegit fa una mica de gràcia, almenys mostra que RPI està fent alguna cosa ara mateix.

Gràcies per llegir aquest conte …..

Recomanat: