Talaan ng mga Nilalaman:

Tagapagpahiwatig ng Pag-load ng Raspberry Pi CPU: 13 Mga Hakbang
Tagapagpahiwatig ng Pag-load ng Raspberry Pi CPU: 13 Mga Hakbang

Video: Tagapagpahiwatig ng Pag-load ng Raspberry Pi CPU: 13 Mga Hakbang

Video: Tagapagpahiwatig ng Pag-load ng Raspberry Pi CPU: 13 Mga Hakbang
Video: BTT SKR2 -Klipper Firmware Install 2024, Hulyo
Anonim
Tagapagpahiwatig ng Load ng Raspberry Pi CPU
Tagapagpahiwatig ng Load ng Raspberry Pi CPU

Kapag nagpapatakbo ng Raspberry Pi (RPI) bilang walang ulo nang walang console monitor, walang tukoy na mga visual indication na magagamit upang makilala ang RPI na talagang gumagawa ng isang bagay.

Kahit na ang malayong terminal ay ginagamit sa SSH, kinakailangan ng oras-oras na pagpapatupad ng utos ng Linux upang suriin kung magkano ang pag-load ng system na nagpapabigat sa CPU ngayon

Kaya't ang circuit na ito ay ginawa upang makatulong na kilalanin kaagad ang totoong aktibidad ng CPU (maaaring semi-real o malapit sa totoong pamamaraan) upang maipatupad ang kasalukuyang inilalapat na mga pag-load ng system.

Bagaman ang python program at ang mas simpleng circuit ay maaaring suportahan ang parehong pag-andar, kakailanganin ng kaunting kumplikadong mga python code upang gayahin ang sopistikadong LED control logic na kinakailangan ng circuit na ito.

Gayundin paradoxically nadagdagan ang pagiging kumplikado ng python code ay pasanin ang CPU higit pa sa nadagdagan ang pag-load ng system.

Samakatuwid, ang off-loading ng anumang pagpapaandar na indikasyon hangga't maaari sa panlabas na circuit ng hardware ay magiging makatwiran dahil ang serbisyong ito ay dapat na tumatakbo sa lahat ng oras at madalas tulad ng bawat bawat 5 segundo.

At ang circuit na ito ay magdaragdag ng isang maliit na nakakatawang tampok sa walang ulo na tumatakbo na RPI.

Hakbang 1: Pag-check ng CPU Load sa Linux Command

Pag-check ng Load ng CPU sa Linux Command
Pag-check ng Load ng CPU sa Linux Command

Mayroong magkakaibang pag-check ng pag-load ng CPU na magagamit ang mga utos ng Linux tulad ng top, iostat, sysstat, at uptime.

Ang bawat utos ay may mga tiyak na kapaki-pakinabang na tampok sa mga tuntunin ng pagkakaiba-iba ng impormasyon at pagpapakita ng pagiging simple ng data.

Ang nangungunang utos ay ang pinaka-mayaman na impormasyon at magagamit ang detalyeng data para sa agad na pagkilala sa pag-load ng system.

Ngunit ito ay tumatakbo bilang mode ng pag-ulit (patuloy na pagpapakita ng data sa screen) at ang format ng impormasyon ay kumplikado upang makuha lamang ang kinakailangang data ng pag-load ng CPU nang simple.

Ang utos ng iostat ay nagbibigay ng malalim na impormasyon ng pag-load ng system sa pamamagitan ng paghihiwalay ng gumagamit at system na tumatakbo sa mga trabaho sa pila na nagpapahirap sa CPU sa kasalukuyan.

Ngunit hindi rin kinakailangan na kumplikado upang makakuha ng kasalukuyang pag-load ng CPU bilang mabilis at madaling maunawaan na pamamaraan.

Sa kaso ng uptime, ang napaka-simpleng data ng pag-load ng system ay magagamit sa term ng 1 minutong average, 5 minuto average at 15 minuto na buod ng average.

Tulad ng nabanggit sa itaas, kinakailangan ang pagpapasimple ng python code sapagkat dapat itong maisagawa nang madalas tulad ng bawat bawat 5 segundo o 10 segundo.

Kapag naging kumplikado ang python code, pasanin nito ang CPU.

Ito ay uri ng kabalintunaan na pinapasan mo ang RPI upang subaybayan ang pag-load ng system nito.

Samakatuwid, pipili ako ng uptime na utos upang tipunin ang pag-load ng CPU at interoperating sa tagapagpahiwatig circuit dahil ito ang pinakasimpleng.

Ngunit tulad ng uptime ay nagpapakita ng 1 minutong average ng pag-load ng system, ang circuit ng tagapagpahiwatig ay dapat mapatakbo hindi bilang mahigpit na real time mode.

Pa rin ang circuit na ito ay maaaring magbigay ng kapaki-pakinabang na visual na pahiwatig na nagpapakita kung paano ang ginagawa ng RPI ngayon.

Hakbang 2: Mga Skematika

Mga Skema
Mga Skema

Ang circuit na ito ay makakatanggap ng 4 na magkakaibang mga antas (hal. 00-> LOW, 01-> LIGHT, 10-> MEDIUM, 11-> TAAS) ng kasalukuyang pag-load ng CPU mula sa RPI sa pamamagitan ng dalawang mga input ng opto-coupler.

Ang 74LS139 (2 hanggang 4 decoder at de-multiplexer) ay nagde-decode ng dalawang bit input sa isa sa solong output kasama ng 4 na posibleng paraan tulad ng 00 (LOW) -> B0, 01 (LIGHT) -> B1, 10 (MEDIUM) -> B2, 11 (TAAS) -> B3.

Tulad ng 74LS139 output ay pabalik na antas (00 input -> B0 maging Mababa at iba pang 3 output HIGH), 74HC04 inverter ay ginagamit upang gawing muli ang output ng isa pang oras.

Kapag ang output ng 74LS139 ay normal HIGH, 74HC04 ay hindi kinakailangan.

Ngunit sa paanuman 74LS139 ay ginawang ganoong paraan. (Mangyaring suriin ang talahanayan ng katotohanan ng 74LS139)

Kapag ang alinman sa 74LS139 output ay napili, buhayin nito ang isang tiyak na analog switch sa 4 na switch na kasama sa CD4066 IC.

Maaaring suportahan ng CD4066 ang 4 analog switch at ang bawat switch ay binubuo ng 1 control input at 2 analog output.

Kapag ang pag-input ng kontrol ay naging TAAS, ang dalawang koneksyon ng output ay naging mababang impedance (Ang paglaban ay naging 0) at ang iba pa ay naging HIGH impedance (Ang paglaban sa pagitan ng dalawang output path ay naging daan-daang mega ohm).

Kontrolin lamang ang 1 (pin 13) ng CD4066 na maging TAAS, ang landas sa pagitan ng output 1 (pin 1) at ang output 2 (pin 2) na konektado habang ang iba pang mga output ay hindi konektado (sa mataas na impedance na estado).

Gayundin ang TAAS na pag-input ng kontrol 2 (pin 5) gumawa ng output 1 (pin 4) at output 2 (pin 3) na konektado habang ang iba pang mga output ay naka-disconnect.

Pagkatapos ang LM555 ay kumikislap ng dalawang LEDs sa magkakaibang rate ng blinking.

Tulad ng nakikita mo sa eskematiko sa itaas, ang NE555 ay gagana ng isa sa halaga ng paglaban sa 4 (12k, 24k, 51k, 100k) na posibleng mga antas ng paglaban.

Hakbang 3: NE555 Iba't ibang Pagbuo ng Orasan

NE555 Iba't ibang Pagbuo ng Orasan
NE555 Iba't ibang Pagbuo ng Orasan

Tulad ng ipinakita sa eskematiko, ang NE555 ay nagpapatakbo ng isa sa posibleng halaga ng paglaban tulad ng 12k, 24l, 51k at 100k.

Sa totoo lang ang bahagi ng circuit circuit ng NE555 ay pangunahing visual indication na sumusuporta sa bahagi ng circuit.

Ang pamamaraan ng pagpapatakbo ng circuit ay tulad ng sumusunod.

- Kapag walang makabuluhang pag-load ng CPU, ang program ng python na naka-install sa RPI ay magpapadala ng 00 na output sa tagapagpahiwatig ng circuit. Pagkatapos ang dalawang output path ng CD4066 ay nagpapagana at ang NE555 ay tumatakbo na may 12k na halaga ng risistor. Samakatuwid, ang mga LED na kumikislap ng 1.5 beses bawat segundo (kumukurap nang mabilis)

- Ang CPU ay gaanong na-load (Pagkatapos ang haba ng pila ng uptime na maging 0.1 ~ 0.9 na antas), ang python ay magpapadala ng 01 sa circuit. Pagkatapos ang CD4066 ay naaktibo sa mga output na konektado sa 24k risistor. Bilang isang resulta, ang LED blinking ay nabawasan ng 1.2 beses bawat segundo (LED blinking na bahagyang nabawasan ngunit medyo mabilis pa rin)

- Kapag ang pag-load ng CPU ay tumaas nang malaki (Pagkatapos ang uptime na run-queue haba ay naging 1.0 ~ 1.9 na antas), ang sawa ay maglalabas ng 10 sa circuit. Pagkatapos ay buksan ang 51k path ng koneksyon ng risistor at ang NE555 ay nagpapatakbo ng 0.8 beses bawat segundo. Ngayon ang rate ng pagkurap ay naging makabuluhang nabawasan.

- Ang mabibigat na naglo-load na pasanin ang CPU at haba ng haba ng run-pila ay magiging mas mahaba (higit sa 2 mga trabaho ang maghihintay na maipatupad ng CPU at ang uptime ay mag-uulat ng higit sa 2.0). Tulad ng napili na koneksyon na 100k risistor, ang NE555 ay magpapikit ng LED 0.5 beses bawat segundo (Ang bilis ng blink ay naging napakabagal)

***

Kasabay ng tumaas na pag-load ng system, ang bilis ng pag-blink ng LED ay mababawasan nang naaayon.

Kapag ang LED blinks medyo mabagal, pagkatapos ay tiyak na labis na nag-overload ang RPI.

Sa ganitong paraan ang ulat ng circuit ng indikasyon ng pag-load ay kasalukuyang antas ng pag-load ng RPI.

Hakbang 4: Mga Bahagi

Para sa paggawa ng circuit na ito, iba't ibang mga IC chip ang ginamit.

Bagaman binabanggit ko ang 74LSxx, uri ng CD40xx ng mga lumang IC chip, maaari mong gamitin ang mga kamakailang uri ng TTL at CMOS chips tulad ng 74HC4066, at 74ASxx kapag ang napiling IC chip ay uri ng DIP.

Ang pang-ibabaw na uri ng mount ng maliit na pakete ng IC ay maaari ding magamit kapag maaari mong maghinang ng maayos ang maliliit sa unibersal na PCB.

Ang iba ay karaniwang mga bahagi na madali mong mabibili mula sa mga e-store sa internet.

- 74LS139 (2 hanggang 4 decoder, de-multiplexer) x 1

- 74HC04 (6 inverter) x 1

- CD4066 (4 analog switch IC) x 1

- NE555 Timer IC x 1

- Mga Capacitor: 10uF x 1, 0.1uF x 1

- PC817 opto-coupler x 2 (Maaaring magamit ang anumang karaniwang 4 pin opto-coupler)

- Mga Resistor: 220ohm x 4 (kasalukuyang nililimitahan ng LED), 4.7K (Opto-coupler interface) x 2, 12K, / 24K / 51K / 100K (Clock timing control) x 1

- LED x 2 (Anumang magkakaibang mga kulay tulad ng Yellow, Green o Red, Green)

- Universal board 30 (W) ng 20 (H) laki ng butas (Maaari mong i-cut ang anumang laki ng universal board upang magkasya sa circuit na ito)

- Tin wire (Para sa paggawa ng mga pattern ng mga kable sa unibersal na PCB)

- pin ulo (3 pin) x 3

- Ang pin ng IC pin (4 na pin) x 4

- pula / asul na mga kable ng kable

***

Hakbang 5: Paggawa ng pagguhit ng PCB

Paggawa ng pagguhit ng PCB
Paggawa ng pagguhit ng PCB

Bagaman nagpapakita ako ng pagguhit ng PCB sa bawat proyekto, ang disenyo ng mga kable ay tumutukoy lamang na gagabay sa iyo na iwasto ang paghihinang sa bawat bahagi sa unibersal na PCB.

Ngunit hindi ka kinakailangang manatili sa scheme ng mga kable na ito.

Tulad ng nakikita mo ang diagram ng mga kable sa itaas, ito ay medyo kumplikado at nangangailangan ng makabuluhang malaking PCB.

Maaari mong gamitin ang karaniwang cable upang ikonekta ang mga bahagi sa halip na tin wire upang mabawasan ang laki ng nakumpleto na PCB.

Gumamit lamang ng pagguhit ng PCB para sa pag-check at pagkumpirma ng tamang paghihinang sa pagitan ng mga bahagi.

Kapag ang bilang ng mga TTL o CMOS IC ay nadagdagan, kadalasan ang pagguhit ng PCB ay naging kumplikado na lampas sa wastong pagsasama sa solong bahagi ng PCB.

Samakatuwid, ang multi-layer ng PCB ay karaniwang ginagamit para sa pang-industriya na grado ng mga digital na circuit na kasama ang maraming TTL, CMOS at micro-processor.

Hakbang 6: Paghihinang

Paghihinang
Paghihinang

Gumagamit ako ng lata ng kawad at karaniwang mga kable ng kable upang ma-minimize ang laki ng PCB hangga't maaari.

Kapag naghahambing sa pagguhit ng PCB, ang lokasyon ng bawat bahagi ay ganap na nabago.

Ngunit ang pagguhit pa rin ng PCB ay ginagamit upang mapatunayan ang tamang koneksyon sa pagitan ng mga bahagi habang naghihinang.

Maaari mong makita ang 12k / 24k / 51k / 100k resistors na naipasok sa ulo ng pin ng IC nang walang paghihinang.

Samakatuwid, maaari mong palitan ang mga resistors sa iba pang mga halaga para sa maginhawang pagbabago ng circuit operating scheme sa paglaon.

Hakbang 7: Pagtitipon

Pagtitipon
Pagtitipon

Ang nakumpleto na circuit ng tagapagpahiwatig ng pag-load (Kasunod dito bilang INDICATOR) ay naka-install sa music player RPI box tulad ng ipinakita sa larawan sa itaas.

Ang music player na ito ay naka-install sa DAC at ginagamit ko ito kamakailan para sa pag-play ng music video.

Tungkol sa kahon na RPI na ito, ipapaliwanag ko sa paglaon at ngayon mag-focus tayo sa INDICATOR dahil ang circuit ay pangunahing paksa ng proyektong ito.

Bumili ako kamakailan ng Raspberry Pi 4 Model B 2GB (Hereinafter RPI 4B) upang suportahan ang application ng pag-play ng video.

Tulad ng RPI 4B ay nadagdagan ang pagganap ng 4 core ng CPU, ang paghawak ng paglo-load ng system ay pinahusay nang malaki mula sa RPI 3B +.

Samakatuwid ang uptime na run-queue haba ng output ay dapat tratuhin nang iba sa RPI 3B +.

- Para sa napaka-maginoo na pag-load ng system tulad ng pag-play ng video, haba ng run-pila ay karaniwang mas mababa sa 0.5 (Kaya ang LOW system load ay magiging 0.0 ~ 0.5 level)

- Kapag nagdagdag ng bahagyang karagdagang pag-load ng system tulad ng pag-play ng video at pagkopya ng mga file mula sa at sa lokal na uri ng direktoryo ng mga gawa ay nagreresulta sa bahagyang pasanin sa CPU. (Kaya't ang antas ng LIGHT load ay magiging 0.5 ~ 1.0)

- Kapag inilapat ang mga makabuluhang pag-load tulad ng pag-play ng video sa browser sa Youtube site at pag-surf sa web sa isa pang browser, ang bilis ng pagpapatakbo ng RPI 4 ay naging bahagyang (Kaya't ang antas ng pag-load ng MEDIUM ay dapat na 1.0 ~ 2.0)

- Sa wakas ang pag-load ng system ng RPI 4 ay naging MAS mataas kapag nagpapatakbo ng maraming mga web browser at pagkopya ng malaking dami ng mga file sa isa pang server ng RPI sa pamamagitan ng network (Pagkatapos ang haba ng run-pila ay magiging higit sa 2.0)

***

Ang data ng antas ng pag-load na ito ay gagamitin ng nabubuo ng python code sa susunod na hakbang.

Hakbang 8: Pagsusuri sa Orihinal na Circuit

Pagbabago ng Orihinal na Circuit
Pagbabago ng Orihinal na Circuit

Dahil sa maraming mga depekto ng orihinal na disenyo ng circuit, binabago ko ang circuit tulad ng ipinakita sa larawan sa itaas.

Ang mga dahilan ng pagbabago ay ang mga sumusunod.

- Ang NE555 na pulso ng orasan ay binubuo ng MATAAS at mababang form ng alon. Ngunit kadalasan ang TAAS at MABABANG tagal ng signal (t = 1 / f) ay hindi pareho (halimbawa ang TAAS ay 70% at ang LOW ay 30% sa orihinal na circuit). Samakatuwid, ang blinking rate ng dalawang LEDs (Green / Yellow LED sa orihinal na disenyo) ay hindi pareho (Isang LED turn sa mas mahaba kaysa sa iba pa). Sa pamamagitan ng kadahilanang ito, ang visual na indikasyon ng LED blinking ay hindi gaanong makikilala.`

- Samakatuwid, nagdaragdag ako ng higit pang mga LED at gumagawa ng pattern ng paikot na pag-ulit sa CD4017 para masiguro ang madaling pagkilala sa estado ng pagpapatakbo

- Nagbabago din ng LED blinking scheme baligtad tulad ng mabagal na pag-blink sa LOW load at mas mabilis na pag-blink na may TAAS na pag-load. (Ang orihinal na circuit ay ginawa upang kumurap ng mas mabilis sa LOW load at mabagal na pag-blink sa TAAS na pag-load). Sa KATUNGKULANG sitwasyon sa pag-load, ang anumang mga pagkilos ng RPI ay naging tamad. At ang pagpapakita ng mabagal na pagpikit ng LED ay hindi magpapasaya sa iyo. (Sa sikolohikal na aspeto, pipili ako ng mas positibong scheme ng pagpapakita)

***

Bagaman ang bahagi ng display ng LED ay makabuluhang binago, ang pangkalahatang antas ng pagbabago sa orihinal na circuit ay hindi gaanong nakikita mo sa susunod na hakbang.

Hakbang 9: Orihinal na Pagbabago ng Skema

Orihinal na Pagbabago ng Skema
Orihinal na Pagbabago ng Skema

Ang pagdaragdag ng CD4017 at 8 LEDs ay pangunahing pagbabago.

Gayundin upang mabago ang N0555 na dalas ng orasan at baligtarin ang LED blinking scheme, ang mga halaga ng resistors ay binago tulad ng ipinapakita sa mga iskema sa itaas.

Tulad ng idinagdag na bahagi ng circuit ay simpleng CD4017 based chaser circuit, laktawan ko ang iba pang mga paliwanag na detalye ng binagong circuit.

Ang lahat ng nabago na bahagi ng circuit ay maaaring gawin bilang board ng PCB ng anak na babae kung saan ang CD4017 at 8 LEDs ay na-solder.

Ang board ng anak na babae ay maaaring ikabit sa main-board (board ng ina) tulad ng ipinakita na larawan sa hakbang 8.

Hakbang 10: Pagsubok

Ang pagsubok ng video ng lahat ng mga yugto ng pagpapatakbo (LOW, LIGHT, MEDIUM at HIGH state ng pag-load) ay ipinapakita ng file na nakaimbak sa google drive sa ibaba.

***

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

***

Ayon sa kasalukuyang pag-load ng system, ang rate ng pagkurap ay mababago sa isa sa 4 na estado na ipinakita sa video.

Hakbang 11: Python Code

Code ng Python
Code ng Python

Tulad ng karamihan sa pagkontrol ng mga lohika ay kasama sa panlabas na circuit ng hardware, ang lohika sa pagpapatakbo ng python code ay medyo simple kasama ang mga sumusunod na hakbang.

- Pagkuha ng data ng temperatura ng CPU upang ihambing ang pagiging maaasahan sa pagitan ng pag-load ng system at pagtaas ng temperatura

- Ang pagtitipon ng 1 minutong average na pag-load ng system mula sa output ng uptime

- Paggawa ng time stamp tulad ng yy-mm-dd hh: mm: ss format

- Sulat ng temperatura, pag-load ng system kasama ang time-stamp

- Ayon sa kasalukuyang data load output data (00, 01, 10, 11) sa INDICATOR circuit

- Matulog nang 5 segundo bago simulan ang mga hakbang na nabanggit sa itaas

Tulad ng kailangan ng programang python ng mahigpit na indentation sa loob ng source code, mangyaring mag-download ng source file mula sa google drive sa pamamagitan ng pagsunod sa link sa ibaba.

***

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

***

Dahil hindi ako gumagamit ng RPI bilang desktop computer, ang pagpapatakbo ng mga application ng Libre office o web browser ay napakabihirang.

Karaniwan ay nagpe-play ako ng music video, file copy / moving o python program na may bagong biniling RPI 4B 2GB.

Samakatuwid, ang average na pag-load ay karaniwang mas mababa sa 1.0 sa aking kaso at nang naaayon binabago ko ang mga antas ng LOW / LIGHT / MEDIUM / HIGH sa aking code. (Maaari mong baguhin ang mga kundisyon ng pagsubok kung hindi man)

Ngunit kapag karaniwang tinitingnan mo ang mga video sa Youtube na may RPI, higit sa 2.0 mga pag-load ng system ang karaniwang mangyayari.

Hakbang 12: Pagkamamagitan sa Pagitan ng System Load at Temperatura ng CPU

Pagkakakilala sa pagitan ng System Load at Temperatura ng CPU
Pagkakakilala sa pagitan ng System Load at Temperatura ng CPU

Kadalasan hinuhulaan ko at natitiyak na ang pagtaas ng pag-load ng system ay tataas ang temperatura ng CPU.

Ngunit hanggang ngayon wala akong malinaw na imahe ng kapwa inter-operasyon sa pagitan nila.

Tulad ng nakikita mo sa grap sa itaas, ang mga ito ay napakalakas na pagkakaugnay sa mga sumusunod.

- Para sa madaling paghahambing, nagpaparami ako ng 10 hanggang sa average na pag-load ng system. Kung hindi man ang sukat ng pag-load ng system ay napakaliit (0.0 ~ 2.0), maging mahirap ang direktang paghahambing.

- Tulad ng paglamig ng FAN circuit ay naka-install sa musika na nagpe-play ng Pi box, ang temperatura ng CPU na hindi hihigit sa higit sa 50C

- Kapag ang pag-load ng system ay nasa loob ng saklaw na 0.0 ~ 1.0, temperatura sa loob ng saklaw na 45 ~ 48C (ang takip ng metal na CPU ay bahagyang nag-iinit)

- Ngunit ang mabibigat na pagkarga ay inilalapat (Karaniwan sa web browser at pag-play ng mga video sa Youtube), pag-load ng pagtaas at sa gayon ang temperatura

***

Tulad ng naka-install na RPI 4B na may 4 na pangunahing CPU, ang teoretikal na pagganap ay hindi masisira hanggang sa antas ng pag-load (uptime na tumatakbo na pila) 4.

Ngunit mas mababa pa rin sa average na antas ng pag-load 4, kinakailangan ang naaangkop na kontrol sa temperatura.

Hakbang 13: Pagtatapos

Pagwawakas
Pagwawakas

Tinatapos ko ang proyektong ito sa pamamagitan ng pag-install ng INDICATOR sa Pi box tulad ng larawan sa itaas.

Sa kaswal na paggamit ng Pi box na ito, bihirang nagpapakita ang INDICATOR ng TAAS na antas at pabago-bagong pag-blink ng LED.

Kadalasan nanatili ito sa mabagal na mga blinking na estado ng LEDs (kaya mababang antas o LIGHT).

Gayunpaman idinagdag ang visual na tagapagpahiwatig na gumawa ng isang maliit na nakakatawa hindi bababa sa ipinapakita nito ang RPI na gumagawa ng isang bagay sa ngayon.

Salamat sa pagbabasa ng kwentong ito …..

Inirerekumendang: