Mündəricat:

Raspberry Pi CPU Yük Göstəricisi: 13 addım
Raspberry Pi CPU Yük Göstəricisi: 13 addım

Video: Raspberry Pi CPU Yük Göstəricisi: 13 addım

Video: Raspberry Pi CPU Yük Göstəricisi: 13 addım
Video: Fysetc Spider v1.1 – Основы 2024, Iyul
Anonim
Raspberry Pi CPU Yük Göstəricisi
Raspberry Pi CPU Yük Göstəricisi

Raspberry Pi (RPI) konsol monitoru olmadan başsız işləyərkən, RPI -nin əslində bir şey etdiyini tanımaq üçün heç bir xüsusi əyani göstəriş yoxdur.

Uzaq terminal SSH ilə istifadə olunsa da, Linux əmrinin vaxtında icrası sistem yükünün CPU -ya nə qədər yükləndiyini yoxlamaq üçün vaxt tələb olunur.

Beləliklə, bu dövrə, hazırda tətbiq olunan sistem yüklərini yerinə yetirmək üçün CPU-nun həqiqi fəaliyyətini (bəlkə də yarı həqiqi və ya real şəkildə yaxın) dərhal tanımağa kömək etmək üçün hazırlanmışdır.

Eyni funksiyanı yalnız python proqramlaşdırması və daha sadə bir sxem dəstəkləyə bilsə də, bu dövrənin tələb etdiyi inkişaf etmiş LED idarəetmə məntiqini simulyasiya etmək üçün bir az kompleks python kodları tələb olunacaq.

Python kodunun paradoksal olaraq artan mürəkkəbliyi, sistem yükünün artması ilə CPU -nu daha çox yükləyəcək.

Buna görə də, hər hansı bir göstərici funksiyasını mümkün qədər xarici aparat sisteminə yükləmək məqsədəuyğun olar, çünki bu xidmət hər 5 saniyədə bir işlədilməlidir.

Və bu dövrə başsız çalışan RPI -yə bir az gülməli bir xüsusiyyət əlavə edəcək.

Addım 1: CPU Yükü Linux Komandasını yoxlayır

CPU Yükünün yoxlanılması Linux Komandası
CPU Yükünün yoxlanılması Linux Komandası

Top, iostat, syststat və uptime kimi müxtəlif Linux yükləmə yoxlama Linux əmrləri mövcuddur.

Hər bir əmr, məlumat müxtəlifliyi və məlumatların sadəliyi baxımından xüsusi üstünlüklərə malikdir.

Top əmri, sistem yükünü dərhal tanımaq üçün ən zəngin məlumatdır və çox detallı məlumatlar mövcuddur.

Ancaq iterasiya rejimi olaraq işləyir (məlumatları ekranda fasiləsiz olaraq göstərir) və məlumat formatı, sadəcə lazım olan CPU yük məlumatlarını çıxarmaq üçün olduqca mürəkkəbdir.

İostat əmri, hazırda CPU-nu yükləyən istifadəçi və sistemdə işləyən növbə işlərini ayıraraq sistemin dərinliyi haqqında məlumat verir.

Ancaq cari CPU yükünü tez və intuitiv şəkildə əldə etmək həm də lazımsız şəkildə mürəkkəbdir.

İş vaxtı olduqda, çox sadə sistem yük məlumatları 1 dəqiqəlik orta, 5 dəqiqəlik orta və 15 dəqiqəlik ümumiləşdirilmiş ortalamada mövcuddur.

Yuxarıda qeyd edildiyi kimi, python kodunu hər 5 saniyədə və ya 10 saniyədə olduğu kimi tez -tez yerinə yetirmək lazım olduğu üçün sadələşdirmə lazımdır.

Python kodu mürəkkəbləşəndə CPU -ya çox yük qoyacaq.

RPI -ni sistem yükünü izləmək üçün yüklədiyiniz bir növ paradoksdur.

Buna görə CPU yükünü toplamaq və göstərici dövrə ilə işləmək üçün iş vaxtı əmrini seçirəm, çünki bu ən sadədir.

Lakin iş vaxtı 1 dəqiqəlik orta sistem yükünü göstərdiyi üçün göstərici dövrə ciddi real vaxt rejimində deyil işlədilməlidir.

Yenə də bu dövrə, RPI -nin hazırda necə olduğunu göstərən faydalı vizual ipucu verə bilər.

Addım 2: sxemlər

Sxemalar
Sxemalar

Bu dövrə, iki opto-bağlayıcı girişi vasitəsilə RPI-dən cari CPU yükünün 4 fərqli səviyyəsini (məsələn, 00-> LOW, 01-> LIGHT, 10-> MEDIUM, 11-> HIGH) alacaq.

74LS139 (2-dən 4-ə qədər dekoder və de-multipleksor), iki bit girişi 00 (LOW)-> B0, 01 (LIGHT)-> B1, 10 (MEDIUM)-> B2 kimi 4 mümkün yol arasında tək çıxışdan birinə açır., 11 (YÜKSEK)-> B3.

74LS139 çıxışı tərs səviyyəli olduğu üçün (00 giriş -> B0 LOW və digər 3 çıxış YÜKSƏK), 74HC04 çevirici çıxışın bir dəfə tərsinə çevrilməsi üçün istifadə olunur.

74LS139 çıxışı normal YÜKSEK olduqda, 74HC04 lazım olmayacaq.

Ancaq bir şəkildə 74LS139 bu şəkildə hazırlanmışdır. (74LS139 həqiqət cədvəlini yoxlayın)

74LS139 çıxışından hər hansı biri seçildikdə, CD4066 IC -ə daxil olan 4 açar arasında müəyyən bir analoq açarı işə salacaq.

CD4066 4 analoq açarı dəstəkləyə bilər və hər bir keçid 1 nəzarət girişindən və 2 analoq çıxışdan ibarətdir.

Nəzarət girişi YÜKSƏK olduqda, iki çıxış əlaqəsi aşağı empedansa (Müqavimət 0 olur), digərləri isə YÜKSƏK empedansa (İki çıxış yolu arasındakı müqavimət bir neçə yüz meqa ohm) çevrilir.

Sadəcə CD4066 -nın 1 (pin 13) idarəsi YÜKSƏK olur, çıxış 1 (pin 1) ilə çıxış 2 (pin 2) arasındakı yol bağlanır, digər çıxışlar isə bağlanmır (yüksək empedans vəziyyətində).

Nəzarət 2 -nin YÜKSƏK girişi (pin 5), çıxış 1 (pin 4) və çıxış 2 (pin 3) -i digər çıxışlar ayrılarkən əlaqələndirir.

Sonra LM555 fərqli LED -lərdə iki LED -i yanıb -sönür.

Yuxarıdakı sxemdə gördüyünüz kimi, NE555 4 (12k, 24k, 51k, 100k) mümkün müqavimət səviyyəsi arasında müqavimət dəyərlərindən biri ilə işləyəcək.

Addım 3: NE555 Fərqli Saat Nəsli

NE555 Fərqli Saat Nəsli
NE555 Fərqli Saat Nəsli

Şemada göstərildiyi kimi, NE555 12k, 24l, 51k və 100k kimi mümkün müqavimət dəyərlərindən birini işlədəcək.

Əslində NE555 zamanlama dövrə hissəsi, dövrənin bir hissəsini dəstəkləyən əsas vizual göstəricidir.

Dövrə əməliyyat sxemi aşağıdakı kimidir.

- Əhəmiyyətli bir CPU yükü olmadıqda, RPI -də quraşdırılmış python proqramı 00 çıxışını göstərici dövrə göndərəcək. Sonra CD4066 -nın iki çıxış yolu aktivləşir və NE555 12k müqavimət dəyəri ilə işləyir. Buna görə LEDlər saniyədə 1,5 dəfə yanıb -sönür (olduqca sürətli yanıb -sönür)

- CPU yüngül yüklənir (Sonra iş vaxtı növbəsinin uzunluğu 0.1 ~ 0.9 səviyyəsinə çevrilir), python dövrə 01 göndərir. Daha sonra CD4066 24k rezistora bağlı çıxışlarla aktivləşdirildi. Nəticədə LED yanıp sönmə saniyədə 1,2 dəfə azaldı (LED yanıb sönmə bir qədər azaldı, amma yenə də bir az sürətli)

- CPU yükü əhəmiyyətli dərəcədə artdıqda (Sonra iş vaxtı növbəsi uzunluğu 1.0 ~ 1.9 səviyyəsinə çevrilir), python dövrəyə 10 çıxacaq. Sonra 51k rezistor bağlantısı açılır və NE555 saniyədə 0.8 dəfə işləyir. İndi göz qırpma sürəti əhəmiyyətli dərəcədə azalır.

- CPU yükləyən ağır yüklər və iş vaxtı növbəsinin uzunluğu uzanır (2-dən çox iş CPU tərəfindən icra olunana qədər gözləyər və iş vaxtı 2.0-dan çox hesabat verər). 100k rezistor bağlantısı seçildikdə, NE555 LED saniyədə 0,5 dəfə yanıb -sönəcək (Yanıp sönmə sürəti çox yavaş olur)

***

Artan sistem yükləri ilə birlikdə LED -in yanıp sönmə sürəti də buna uyğun olaraq azalacaq.

LED olduqca yavaş yanıb -sönəndə, RPI, şübhəsiz ki, əhəmiyyətli dərəcədə yüklənir.

Bu yol, RPI -nin cari yük səviyyəsi haqqında yük göstərici dövrə hesabatıdır.

Addım 4: hissələri

Bu dövrəni yaratmaq üçün müxtəlif IC çiplərindən istifadə olunur.

Köhnə IC çiplərinin 74LSxx, CD40xx növlərindən bəhs etsəm də, seçilmiş IC çipi DIP tipli olduqda, 74HC4066 və 74ASxx kimi son TTL və CMOS çiplərindən istifadə edə bilərsiniz.

Kiçikləri universal PCB -də düzgün bir şəkildə lehimləyə bildiyiniz zaman kiçik IC paketinin səthə montaj növü də istifadə edilə bilər.

Digərləri internet e-mağazalarından asanlıqla satın ala biləcəyiniz ümumi hissələrdir.

- 74LS139 (2-dən 4-ə qədər dekoder, de-multipleksor) x 1

- 74HC04 (6 çevirici) x 1

- CD4066 (4 analoq açarı IC) x 1

- NE555 Taymer IC x 1

- Kondansatörler: 10 uF x 1, 0.1 uF x 1

-PC817 opto-bağlayıcı x 2 (Hər hansı bir ümumi 4 pinli opto-bağlayıcı istifadə edilə bilər)

- Rezistorlar: 220ohm x 4 (LED cərəyanı məhdudlaşdıran), 4.7K (Opto-bağlayıcı interfeysi) x 2, 12K,/24K/51K/100K (Saat vaxtına nəzarət) x 1

- LED x 2 (Sarı, Yaşıl və ya Qırmızı, Yaşıl kimi fərqli rənglər)

- Universal lövhə 30 (W) ilə 20 (H) deşik ölçüsü (Bu sxemə uyğun olaraq hər hansı bir universal lövhəni kəsə bilərsiniz)

- Qalay tel (universal PCB -də naqillərin naxışlarının hazırlanması üçün)

- pin başı (3 sancaq) x 3

- IC pin başı (4 sancaq) x 4

- qırmızı/mavi rəngli naqillər

***

Addım 5: PCB Rəsminin Hazırlanması

PCB Rəsminin Hazırlanması
PCB Rəsminin Hazırlanması

Hər bir layihədə PCB rəsmini göstərsəm də, kabel dizaynı hər hissəni universal PCB -də lehimləməyi düzgün istiqamətləndirəcək bir istinaddır.

Ancaq bu kabel sxeminə bağlı qalmaq lazım deyil.

Yuxarıdakı kabel diaqramını görə bildiyiniz kimi, olduqca mürəkkəbdir və əhəmiyyətli dərəcədə böyük bir PCB tələb edir.

Lehimləmə tamamlanmış PCB ölçüsünü azaltmaq üçün qalay tel əvəzinə hissələri birləşdirmək üçün ümumi kabeldən istifadə edə bilərsiniz.

Yalnız hissələr arasında düzgün lehimləmə yoxlamaq və təsdiq etmək üçün PCB rəsmindən istifadə edin.

TTL və ya CMOS IC -lərin sayı artdıqda, adətən PCB rəsmləri PCB -nin bir tərəfində düzgün inteqrasiyadan kənar olduqca mürəkkəb hala gəlir.

Buna görə, bir çox TTL, CMOS və mikro prosessor daxil olmaqla rəqəmsal sxemlərin sənaye səviyyəsi üçün çox qatlı PCB istifadə olunur.

Addım 6: Lehimləmə

Lehimləmə
Lehimləmə

PCB ölçüsünü mümkün qədər azaltmaq üçün qalay tel və ümumi kabel kabelindən istifadə edirəm.

PCB rəsmləri ilə müqayisə edərkən hər bir hissənin yeri tamamilə dəyişdirilir.

Ancaq yenə də lehimləmə zamanı hissələr arasındakı düzgün əlaqəni yoxlamaq üçün PCB rəsmindən istifadə olunur.

IC pin başına lehim olmadan 12k/24k/51k/100k rezistorların daxil olduğunu görə bilərsiniz.

Buna görə də, daha sonra dövrə əməliyyat sxemini rahat şəkildə dəyişdirmək üçün rezistorları başqa dəyərlərə dəyişə bilərsiniz.

Addım 7: Montaj

Montaj
Montaj

Tamamlanmış yük göstərici dövrəsi (bundan sonra göstərici olaraq) yuxarıdakı şəkildə göstərildiyi kimi musiqi pleyerinin RPI qutusuna quraşdırılmışdır.

Bu musiqi pleyeri DAC -a quraşdırılıb və mən bu musiqini bu yaxınlarda musiqi videosunu oynamaq üçün istifadə edirəm.

Bu RPI qutusu haqqında, daha sonra izah edəcəyəm və indi bu layihənin əsas mövzusu olduğu üçün İNDICATOR -a diqqət yetirək.

Video oynatma proqramını dəstəkləmək üçün bu yaxınlarda Raspberry Pi 4 Model B 2GB (bundan sonra RPI 4B) aldım.

RPI 4B, 4 nüvəli CPU performansını artırdığından, sistem yüklərinin idarə edilməsi RPI 3B+-dan olduqca əhəmiyyətli dərəcədə artır.

Buna görə də iş vaxtı növbəsi uzunluğu çıxışı RPI 3B+-dan fərqli olaraq işlənməlidir.

- Videonun oxunması kimi çox adi sistem yükü üçün qaçış növbəsinin uzunluğu ümumiyyətlə 0,5-dən azdır (Belə ki, DÜŞÜK sistem yükü 0,0 ~ 0,5 səviyyə olacaq)

- Video oynatmaq və faylları yerli kataloqdan kopyalamaq kimi kiçik bir əlavə sistem yükü əlavə edildikdə, bu cür işlər CPU -da bir az yüklə nəticələnir. (Beləliklə, LIGHT yük səviyyəsi 0,5 ~ 1,0 olacaq)

- Youtube saytında brauzerdə video oynatmaq və başqa bir brauzerdə veb sörf etmək kimi əhəmiyyətli yüklər tətbiq edildikdə, RPI 4 -ün işləmə sürəti bir qədər ləngiyir (Yəni ORTA yük səviyyəsi 1.0 ~ 2.0 olacaq)

- Nəhayət, birdən çox veb brauzeri işləyərkən və böyük həcmli faylları şəbəkə vasitəsi ilə başqa bir RPI serverinə kopyalayanda RPI 4 sistem yükü YÜKSƏK olur (Sonra iş növbəsinin uzunluğu 2.0-dən çox olur)

***

Bu yük səviyyəsi məlumatları, növbəti addımda inkişaf etdiriləcək python kodu ilə istifadə ediləcək.

Addım 8: Orijinal Dövrə Yenidən Gözdən keçirin

Orijinal dövrəyə yenidən baxılır
Orijinal dövrəyə yenidən baxılır

Orijinal dövrə dizaynının bir neçə qüsuruna görə, dövrəni yuxarıdakı şəkildə göstərildiyi kimi dəyişdirirəm.

Dəyişmənin səbəbləri aşağıdakılardır.

- NE555 saat nəbzi HIGH və LOW dalğa formasından ibarətdir. Ancaq ümumiyyətlə YÜKSƏK və DÜŞÜK siqnal müddəti (t = 1/f) eyni olmur (məsələn, YÜKSƏK 70%, LOW isə orijinal dövrədə 30% -dir). Buna görə də, iki LED -in (orijinal dizaynda Yaşıl/Sarı LED) yanıb -sönmə dərəcəsi eyni deyil (Bir LED digərindən daha uzun açılır). Bu səbəbdən, LED -lərin yanıb -sönməsi ilə vizual göstərişlər o qədər də asan tanınmır

- Buna görə də, daha çox LED əlavə edirəm və əməliyyat vəziyyətinin asan tanınmasını təmin etmək üçün CD4017 ilə dairəvi təkrarlama nümunəsi hazırlayıram

- LED -in yanıb -sönmə sxemini tərsinə dəyişdirmək, məsələn, aşağı yükdə yavaş yanıb -sönmək və yüksək yüklə daha sürətli yanıb -sönmək. (Orijinal dövrə, aşağı yükdə daha sürətli yanıb -sönmək və yüksək yükdə yavaş yanıb -sönmək üçün hazırlanmışdır). Yüksək yük vəziyyətində, hər hansı bir RPI hərəkəti ləng olur. Yavaş LED yanıp sönməsini göstərmək sizi xoşbəxt etməyəcək. (Psixoloji baxımdan daha müsbət ekran sxemini seçirəm)

***

LED ekran hissəsi əhəmiyyətli dərəcədə dəyişdirilsə də, orijinal dövrə ilə ümumi dəyişiklik səviyyəsi növbəti addımda görə biləcəyiniz qədər çox deyil.

Addım 9: Orijinal Şematik Dəyişiklik

Orijinal Şematik Dəyişiklik
Orijinal Şematik Dəyişiklik

CD4017 və 8 LED -lərin əlavə edilməsi əsas dəyişiklikdir.

NE555 saat tezliyini və əks LED yanıb -sönmə sxemini dəyişdirmək üçün yuxarıdakı sxemlərdə göstərildiyi kimi rezistorların dəyərləri dəyişdirilir.

Əlavə edilmiş dövrə hissəsi sadə CD4017 əsaslı qovucu dövrə olduğundan, dəyişdirilmiş dövrənin digər detallı şərhlərini atlayacağam.

Bütün dəyişdirilmiş dövrə hissəsi, CD4017 və 8 LED -lərin lehimləndiyi qız PCB lövhəsi olaraq edilə bilər.

Qız lövhəsi, 8-ci addımdakı şəkildə göstərildiyi kimi ana karta (ana lövhəyə) əlavə edilə bilər.

Addım 10: Test

Bütün əməliyyat mərhələlərinin test videosu (LOW, LIGHT, MEDIUM və HIGH load state) aşağıdakı google sürücüsündə saxlanılan faylla göstərilir.

***

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

***

Mövcud sistem yükünə görə, videoda göstərilən 4 vəziyyətdən biri arasında yanıb -sönmə dərəcəsi dəyişəcək.

Addım 11: Python Kodu

Python kodu
Python kodu

Nəzarət məntiqlərinin çoxu xarici aparat dövrəsinə daxil edildiyindən, python kodunun əməliyyat məntiqi aşağıdakı addımlar daxil olmaqla nisbətən sadədir.

- Sistem yükü ilə temperaturun yüksəlməsi arasındakı nisbiliyi müqayisə etmək üçün CPU temperatur məlumatlarını əldə etmək

- İş vaxtından 1 dəqiqəlik orta sistem yükü toplanır

-yy-mm-dd hh: mm: ss formatında vaxt möhürü hazırlamaq

- Yazı temperaturu, sistem yükü ilə birlikdə vaxt möhürü

- Mövcud sistemin yükləmə məlumatlarına görə (00, 01, 10, 11) İNDİKATÖR sxeminə

- Yuxarıda göstərilən addımlara başlamazdan əvvəl 5 saniyə yatın

Python proqramının mənbə kodu daxilində ciddi bir girintiyə ehtiyacı olduğu üçün aşağıdakı linkə daxil olaraq google sürücüsündən mənbə faylını yükləyin.

***

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

***

RPI -ni masaüstü kompüter olaraq istifadə etmədiyim üçün Libre ofis proqramlarını və ya veb brauzerini işə salmaq çox nadir haldır.

Adətən yeni alınmış RPI 4B 2GB ilə musiqi videosu, fayl kopyalama/hərəkət və ya python proqramlaşdırması oynayıram.

Buna görə, mənim vəziyyətimdə orta yük ümumiyyətlə 1.0 -dan azdır və buna görə kodumda LOW/LIGHT/MEDIUM/HIGH səviyyələrini dəyişirəm. (Test şərtlərini başqa cür dəyişə bilərsiniz)

Ancaq RPI ilə Youtube videolarına tez -tez baxdığınızda, sistem yüklərinin 2.0 -dən çoxu tez -tez baş verəcəkdir.

Addım 12: Sistem Yükü ilə CPU İstiliyi arasındakı nisbilik

Sistem yükü ilə CPU istiliyi arasındakı nisbilik
Sistem yükü ilə CPU istiliyi arasındakı nisbilik

Ümumiyyətlə, sistem yükünün artmasının CPU istiliyini yüksəldəcəyinə inanıram.

Ancaq indiyə qədər aralarındakı qarşılıqlı əlaqənin aydın bir görüntüsünə sahib deyiləm.

Yuxarıdakı qrafikdə gördüyünüz kimi, aşağıdakı kimi çox güclü bir əlaqələrdir.

- Asan müqayisə üçün orta sistem yükünü 10 -a vururam. Əks təqdirdə sistem yükünün miqyası çox kiçikdir (0.0 ~ 2.0), birbaşa müqayisə çətinləşir.

- Soyutma FAN dövrəsi Pi çalınan musiqiyə quraşdırıldığı üçün CPU temperaturu heç vaxt 50C -dən çox olmamalıdır

- Sistem yükü 0.0 ~ 1.0 aralığında olduqda, temperatur 45 ~ 48C aralığında (CPU metal qapağı bir qədər istiləşir)

- Ancaq ağır yük tətbiq olunur (Adətən veb brauzer və Youtube videoları oynayır), yük yüksəlir və buna görə də temperatur

***

RPI 4B 4 nüvəli CPU ilə qurulduğundan nəzəri cəhətdən performans yükləmə səviyyəsinə (iş vaxtı növbəsi) qədər çox aşağı düşməyəcək 4.

Ancaq yenə də orta yük səviyyəsi 4 -dən aşağı olduqda, müvafiq temperatur nəzarətinə ehtiyac olacaq.

Addım 13: Sonlandırma

Yekunlaşdırılması
Yekunlaşdırılması

Yuxarıdakı şəkildəki INDICATOR to Pi qutusuna quraşdıraraq bu layihəni bitirirəm.

Bu Pi qutusunun təsadüfi istifadəsi zamanı İNDİKATOR nadir hallarda YÜKSƏK səviyyəli və dinamik LED yanıb -sönür.

Adətən yavaş -yavaş yanıb -sönən LED -lərin vəziyyətində qaldı (LOW və ya LIGHT səviyyəsi).

Hər halda əlavə edilmiş əyani göstərici bir az gülməli edir, heç olmasa RPI -nin hazırda bir şey etdiyini göstərir.

Bu hekayəni oxuduğunuz üçün təşəkkürlər ….

Tövsiyə: