Mundarija:

Raspberry Pi CPU yuk indikatori: 13 qadam
Raspberry Pi CPU yuk indikatori: 13 qadam

Video: Raspberry Pi CPU yuk indikatori: 13 qadam

Video: Raspberry Pi CPU yuk indikatori: 13 qadam
Video: Контроллер вентилятора на ATtiny13 | До 8-ми датчиков температуры! 2024, Noyabr
Anonim
Raspberry Pi CPU yuk ko'rsatkichi
Raspberry Pi CPU yuk ko'rsatkichi

Raspberry Pi (RPI) ni konsol monitorisiz boshsiz ishlatganda, RPI aslida biror narsa qilayotganini aniqlaydigan aniq ko'rsatkichlar mavjud emas.

Masofaviy terminal SSH bilan ishlatilgan bo'lsa ham, Linux buyrug'ining vaqti -vaqti bilan bajarilishi, tizim yuklanishi CPUga qanchalik yuk bo'lishini tekshirish uchun kerak.

Shunday qilib, ushbu sxema hozirgi vaqtda yuklangan tizim yuklamalarini bajarish uchun protsessorning haqiqiy faolligini (yarim real yoki realga yaqin) darhol aniqlashga yordam berish uchun qilingan.

Garchi faqat python dasturlashi va ancha sodda sxemasi bir xil funktsiyani qo'llab -quvvatlasa -da, bu sxemada talab qilinadigan murakkab LED boshqaruv mantig'ini simulyatsiya qilish uchun biroz murakkab piton kodlari kerak bo'ladi.

Python kodining murakkabligi paradoksal ravishda oshishi, tizim yuklanishining oshishi bilan CPUga ko'proq yuk bo'ladi.

Shunday qilib, har qanday ko'rsatgich funksiyasini tashqi apparat sxemasiga iloji boricha o'chirib qo'yish oqilona bo'ladi, chunki bu xizmat har doim va har 5 soniyada bajarilishi kerak.

Va bu sxema boshsiz ishlaydigan RPI -ga biroz kulgili xususiyat qo'shadi.

1 -qadam: CPU yukini tekshirish Linux buyrug'i

CPU yukini tekshirish Linux buyrug'i
CPU yukini tekshirish Linux buyrug'i

Yuqori, iostat, sysstat va ish vaqti kabi Linuxning turli xil yuklanishini tekshiruvchi Linux buyruqlari mavjud.

Har bir buyruq ma'lumotlarning xilma -xilligi va ma'lumotlarning soddaligi jihatidan o'ziga xos afzalliklarga ega.

Top buyrug'i - bu tizim ma'lumotlarini zudlik bilan aniqlash uchun eng ko'p ma'lumotga ega va juda batafsil ma'lumotlar.

Ammo u iteratsiya rejimi sifatida ishlaydi (ma'lumotlarni ekranda uzluksiz ko'rsatish) va axborot formati faqat CPU yuklanishi haqidagi ma'lumotlarni olish uchun juda murakkab.

Iostat buyrug'i, hozirgi vaqtda CPU yuklaydigan foydalanuvchi va tizimda ishlaydigan navbatdagi ishlarni ajratish orqali tizimni yuklash haqida chuqur ma'lumot beradi.

Shu bilan birga, protsessorning joriy yuklanishini tez va intuitiv tarzda olish kerak emas.

Ish vaqti bo'lgan taqdirda, tizimni yuklash bo'yicha juda oddiy ma'lumotlar o'rtacha 1 daqiqa, o'rtacha 5 minut va o'rtacha 15 daqiqali yig'indida mavjud.

Yuqorida aytib o'tilganidek, python kodini soddalashtirish kerak, chunki u har 5 soniya yoki 10 soniyada bajarilishi kerak.

Python kodi murakkablashganda, u protsessorga katta yuk beradi.

Bu tizim yuklanishini kuzatish uchun RPIga yuklagan paradoks.

Shuning uchun men protsessor yukini yig'ish va indikator sxemasi bilan ishlash uchun ish vaqti buyrug'ini tanlayman, chunki bu eng oddiy.

Ammo ish vaqti tizim yuklamasining o'rtacha 1 daqiqali vaqtini ko'rsatganidek, indikator sxemasi aniq real vaqt rejimida emas, balki boshqariladi.

Shunga qaramay, bu sxema RPI hozir qanday ishlayotganini ko'rsatadigan foydali vizual maslahat berishi mumkin.

2 -qadam: sxemalar

Sxemalar
Sxemalar

Bu sxema 4 xil darajali (masalan, 00-> LOW, 01-> LIGHT, 10-> MEDIUM, 11-> HIGH) RPI-dan ikkita opto-ulagichli kirish orqali qabul qilinadi.

74LS139 (2 dan 4 gacha dekoder va de-multipleksor) ikkita bitli kirishni 00 (LOW)-> B0, 01 (LIGHT)-> B1, 10 (MEDIUM)-> B2 kabi 4 ta mumkin bo'lgan usullar orasidan bitta chiqishdan biriga hal qiladi., 11 (YUQORI)-> B3.

74LS139 chiqishi teskari sathda bo'lgani uchun (00 kirish -> B0 LOW va boshqa 3 chiqish YUQORI), 74HC04 inverteri chiqishni yana bir marta teskari aylantirish uchun ishlatiladi.

74LS139 chiqishi normal yuqori bo'lsa, 74HC04 kerak bo'lmaydi.

Lekin qandaydir tarzda 74LS139 shunday ishlab chiqarilgan. (Iltimos, 74LS139 haqiqat jadvalini tekshiring)

74LS139 chiqishidan birortasi tanlansa, u CD4066 ICga kiritilgan 4 ta kalit o'rtasida bitta analog kalitni faollashtiradi.

CD4066 4 ta analog kalitni qo'llab -quvvatlay oladi va har bir kalit 1 ta nazorat kirishidan va 2 ta analog chiqishdan iborat.

Qachonki, nazorat kirishlari yuqori bo'lsa, ikkita chiqish ulanishi past empedansga (qarshilik 0 ga), boshqalari esa yuqori empedansga (ikki chiqish yo'li orasidagi qarshilik bir necha yuz mega ohmga) aylanadi.

CD4066 -ning 1 -pinini (13 -pin) boshqarish yuqori bo'ladi, 1 -chi chiqish (1 -pin) va 2 -chi (pin 2) orasidagi yo'l ulanadi, shu bilan birga boshqa chiqishlar ulanmagan (yuqori empedans holatida).

Xuddi shunday 2 -nazoratning (5 -pin) YUQORI kirishi 1 -chi (4 -pin) va 2 -chi (3 -pinli) ulanishni boshqa chiqishlar uzilgan paytda amalga oshiradi.

Keyin LM555 har xil yonish tezligida ikkita LEDni yonadi.

Yuqoridagi sxemada ko'rib turganingizdek, NE555 qarshilikning 4 (12k, 24k, 51k, 100k) mumkin bo'lgan qarshilik darajalari orasida ishlaydi.

3 -qadam: NE555 turli xil soat ishlab chiqarish

NE555 har xil turdagi avlod
NE555 har xil turdagi avlod

Sxemada ko'rsatilgandek, NE555 12k, 24l, 51k va 100k kabi mumkin bo'lgan qarshilik qiymatlaridan birini ishlaydi.

Aslida NE555 vaqt sxemasi qismi elektronni qo'llab -quvvatlovchi asosiy ko'rsatkichdir.

O'chirish sxemasi quyidagicha.

- CPUga katta yuk bo'lmaganda, RPI -ga o'rnatilgan python dasturi 00 chiqishini indikator pallasiga yuboradi. Keyin CD4066 ning ikkita chiqish yo'li faollashadi va NE555 12k qarshilik qiymati bilan ishlaydi. Shunday qilib, LEDlar sekundiga 1,5 marta miltillaydi (juda tez yonadi).

- CPU engil yuklangan (Keyin navbatning uzunligi 0,1 ~ 0,9 darajaga etadi), python elektronga 01 yuboradi. Keyin CD4066 24k qarshilikka ulangan chiqishlari bilan faollashtirildi. Natijada, LEDning miltillashi sekundiga 1,2 marta kamaydi (LEDning miltillashi biroz pasaygan, lekin hali ham biroz tez).

- CPU yuki sezilarli darajada oshganda (ish vaqtining navbatdagi davomiyligi 1,0 ~ 1,9 darajaga etadi), python zanjirga 10 chiqadi. Keyin 51k rezistorli aloqa yo'li ochiladi va NE555 sekundiga 0,8 marta ishlaydi. Endi miltillash tezligi sezilarli darajada kamayadi.

- CPU yuklaydigan og'ir yuklar va ish vaqtining navbatdagi davomiyligi uzayadi (2 tadan ortiq ishchi CPU tomonidan bajarilishini kutadi va ish vaqti 2,0 dan oshadi). 100k rezistorli ulanish tanlanganida, NE555 LED sekundiga 0,5 marta yonadi (miltillovchi tezlik juda sekinlashadi)

***

Tizim yuklarining ko'payishi bilan birga, LEDlarning miltillovchi tezligi ham shunga mos ravishda kamayadi.

LED juda sekin miltillasa, RPI, albatta, haddan tashqari yuklangan.

Shunday qilib, yuk indikatorining elektron hisoboti sizga joriy yuklanish darajasi.

4 -qadam: qismlar

Ushbu sxemani yaratish uchun turli xil IC chiplari ishlatiladi.

Men eski IC chiplarining 74LSxx, CD40xx turlarini eslatib o'tayotgan bo'lsam -da, siz tanlagan IC chip DIP turi bo'lsa, siz 74HC4066 va 74ASxx kabi TTL va CMOS chiplarining so'nggi turlaridan foydalanishingiz mumkin.

Kichkina IC paketining sirtga o'rnatiladigan turini, agar siz kichkintoylarni universal tenglikka to'g'ri lehim qila olsangiz ham foydalanish mumkin.

Boshqalar-bu Internet-do'konlardan osongina sotib olishingiz mumkin bo'lgan umumiy qismlar.

- 74LS139 (2 dan 4 gacha dekoder, de-multipleksor) x 1

- 74HC04 (6 ta inverter) x 1

- CD4066 (4 ta analog kalit IC) x 1

- NE555 taymer IC x 1

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

-PC817 optik ulash x 2

- Rezistorlar: 220 ohm x 4 (LED tokini cheklash), 4,7K (Opto-ulanish interfeysi) x 2, 12K,/24K/51K/100K (Soat vaqtini boshqarish) x 1

- LED x 2 (Sariq, Yashil yoki Qizil, Yashil kabi har xil ranglar)

- Umumjahon taxtasi 30 (Vt) 20 dan (H) teshikgacha (Siz ushbu sxemaga mos keladigan universal taxtaning istalgan hajmini kesishingiz mumkin)

- Kalay sim (universal PCBda simi naqshlarini yasash uchun)

- pin boshi (3 pin) x 3

- IC pin boshi (4 pin) x 4

- qizil/ko'k rangli kabellar

***

5 -qadam: tenglikni chizish

PCB chizmasini yaratish
PCB chizmasini yaratish

Men har bir loyihada PCB chizmasini ko'rsatayotgan bo'lsam -da, simlarning dizayni - bu har bir qismni universal tenglikka to'g'ri lehimlashga yordam beradigan ma'lumotnoma.

Ammo siz ushbu kabel sxemasiga qat'iy rioya qilmasligingiz kerak.

Yuqorida ko'rib turganingizdek, ulanish sxemasi juda murakkab va juda katta tenglikni talab qiladi.

Lehimlash tugallangan PCB hajmini kamaytirish uchun siz kalay sim o'rniga qismlarni ulash uchun umumiy kabeldan foydalanishingiz mumkin.

Qismlar orasidagi to'g'ri lehimni tekshirish va tasdiqlash uchun faqat PCB chizig'idan foydalaning.

TTL yoki CMOS IC -lar soni ko'payganda, odatda tenglikni chizish PCB -ning bir tomonida to'g'ri integratsiyadan tashqari ancha murakkab bo'ladi.

Shu sababli, ko'p qatlamli PCB odatda TTL, CMOS va mikroprotsessorlarni o'z ichiga olgan raqamli davrlarning sanoat darajalari uchun ishlatiladi.

6 -qadam: Lehimlash

Lehimlash
Lehimlash

PCB hajmini iloji boricha kamaytirish uchun men qalay sim va umumiy simni ishlataman.

PCB chizish bilan solishtirganda, har bir qismning joylashuvi butunlay o'zgaradi.

Shunga qaramay, lehim paytida qismlar orasidagi to'g'ri ulanishni tekshirish uchun tenglikni chizish ishlatiladi.

IC pin boshiga lehimsiz 12k/24k/51k/100k rezistorlar o'rnatilganini ko'rishingiz mumkin.

Shunday qilib, siz rezistorlarni boshqa qiymatlarga almashtirishingiz mumkin.

7 -qadam: yig'ish

Yig'ish
Yig'ish

Tugallangan yuk indikatori sxemasi (bundan buyon - Ko'rsatkich sifatida) yuqoridagi rasmda ko'rsatilgandek musiqa pleyerining RPI qutisiga o'rnatiladi.

Bu musiqa pleyeri DAC -ga o'rnatilgan va men uni yaqinda musiqiy videoni ijro etish uchun ishlataman.

Bu RPI qutisi haqida men keyinroq tushuntiraman va endi INDICATORga e'tibor qaratamiz, chunki sxema bu loyihaning asosiy mavzusi.

Men yaqinda video ijro etish dasturini qo'llab -quvvatlash uchun Raspberry Pi 4 Model B 2GB (bundan keyin RPI 4B) sotib oldim.

RPI 4B 4 yadroli protsessor ishlashini oshirganligi sababli, tizim yuklarini boshqarish RPI 3B+dan ancha yaxshilandi.

Shuning uchun ish vaqti-navbatining ishlash vaqti RPI 3B+dan farqli o'laroq ko'rib chiqilishi kerak.

- Videoni ijro etish kabi odatiy tizim yuklanishi uchun, ishga tushirish navbatining uzunligi odatda 0,5 dan kam (Shunday qilib, LOW tizim yuki 0,0 ~ 0,5 darajaga teng bo'ladi)

- Videoni ijro etish va fayllarni mahalliy katalogdan nusxalash kabi tizimga ozgina qo'shimcha yuk qo'shilsa, protsessorga ozgina yuk tushadi. (Shunday qilib, LIGHT yuk darajasi 0,5 ~ 1,0 bo'ladi)

- Youtube saytida brauzerda videoni ijro etish va boshqa brauzerda veb -bemaqsad qilish kabi katta yuklar qo'llanilganda, RPI 4 ning ishlash tezligi biroz pasayib ketadi (O'rta yuklanish darajasi 1,0 ~ 2,0 bo'lishi kerak)

- Nihoyat, RPI 4 tizimi yuki bir nechta veb-brauzerlarni ishga tushirganda va katta hajmli fayllarni tarmoq orqali boshqa RPI-serverga nusxalashda yuqori bo'ladi (Keyin navbatning uzunligi 2,0 dan oshadi).

***

Ushbu yuklanish darajasi ma'lumotlari keyingi bosqichda ishlab chiqiladigan python kodi yordamida ishlatiladi.

8 -qadam: asl sxemani qayta ko'rib chiqish

Original sxemani qayta ko'rib chiqish
Original sxemani qayta ko'rib chiqish

Dastlabki sxemaning bir nechta kamchiliklari tufayli men yuqoridagi rasmda ko'rsatilgandek sxemani o'zgartirmoqdaman.

O'zgartirish sabablari quyidagicha.

- NE555 soat zarbasi yuqori va past to'lqin shaklidan iborat. Odatda, YUQORI va LOW signal davomiyligi (t = 1/f) bir xil emas (masalan, HIGH 70% va LOW 30%). Shu sababli, ikkita LEDning miltillovchi tezligi (asl dizayndagi yashil/sariq LED) bir xil emas (bitta LED boshqasiga qaraganda uzoqroq yonadi). Shu sababli, LED yonib -o'chib turadigan vizual ko'rsatkichni tanib bo'lmaydi

- Shuning uchun, men ko'proq LEDlarni qo'shaman va CD4017 yordamida dumaloq yinelemani yarataman

- Shuningdek, LED yonib -o'chish sxemasini teskari o'zgartirish, masalan, past yukda sekin miltillash va yuqori yuk bilan tezroq miltillash. (Asl zanjir past yukda tezroq miltillashi va yuqori yuklamada sekin miltillashi uchun qilingan). Yuqori yuklanish holatida, har qanday RPI harakatlari sekinlashadi. Va LEDning sekin yonib -o'chib turishini ko'rsatish sizni xursand qilmaydi. (Psixologik nuqtai nazardan, men ko'proq ijobiy ekran sxemasini tanlayman)

***

LED displey qismi sezilarli darajada o'zgartirilgan bo'lsa -da, asl sxemadagi umumiy o'zgarish darajasi keyingi bosqichda ko'rinadigan darajada emas.

9 -qadam: Dastlabki sxematik o'zgarish

Asl sxematik o'zgarish
Asl sxematik o'zgarish

CD4017 va 8 ta LEDni qo'shish asosiy modifikatsiya hisoblanadi.

Shuningdek, NE555 soat chastotasini va teskari LED yonib -o'chish sxemasini o'zgartirish uchun rezistorlar qiymatlari yuqoridagi sxemada ko'rsatilgandek o'zgartiriladi.

Qo'shilgan elektron qism CD4017 asosidagi oddiy chaser sxemasi bo'lgani uchun men o'zgartirilgan sxemaning boshqa tafsilotlarini o'tkazib yubormayman.

Barcha o'zgartirilgan elektron qismlar PC40 kartalari va CD4017 va 8 ta LEDlar lehimlanishi mumkin.

Qizaloq taxtasi 8-rasmda ko'rsatilgandek, ota-kartaga ulanishi mumkin.

10 -qadam: Sinov

Barcha operatsion bosqichlarning sinov videosi (LOW, LIGHT, MEDIUM va HIGH yuklanish holati) quyidagi google diskida saqlangan fayl bilan ko'rsatiladi.

***

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

***

Hozirgi tizim yuklamasiga ko'ra, videoda ko'rsatilgan 4 ta holatning birida miltillovchi tezlik o'zgaradi.

11 -qadam: Python kodi

Python kodi
Python kodi

Boshqaruv mantig'ining ko'p qismi tashqi apparat sxemasiga kiritilganligi sababli, python kodining operatsion mantig'i quyidagi bosqichlarni o'z ichiga olgan holda nisbatan sodda.

- Tizim yuki va harorat ko'tarilishi o'rtasidagi nisbiylikni solishtirish uchun CPU harorati ma'lumotlarini olish

Ish vaqtidan 1 daqiqa o'rtacha tizim yukini yig'ish

-yy-mm-dd hh: mm: ss formati kabi vaqt tamg'asini yaratish

- Yozuv harorati, tizim yuklanishi va vaqt tamg'asi

- Hozirgi tizim yuk indikatori ma'lumotlariga ko'ra (00, 01, 10, 11)

- Yuqorida aytib o'tilgan qadamlarni boshlashdan oldin 5 soniya uxlang

Python dasturida manba kodi ichida qattiq chiziq bo'lishi kerak, iltimos, mana faylni google drayveridan quyidagi havola orqali yuklab oling.

***

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

***

Men RPI -ni ish stoli kompyuteri sifatida ishlatmaganim uchun, Libre ofis dasturlari yoki veb -brauzer bilan ishlash juda kam uchraydi.

Odatda men yangi sotib olingan RPI 4B 2GB bilan musiqiy video, fayllarni nusxalash/ko'chirish yoki python dasturlarini o'ynayapman.

Shuning uchun, mening ishimda o'rtacha yuk odatda 1,0dan past bo'ladi va shuning uchun men o'z kodimdagi LOW/LIGHT/MEDIUM/HIGH darajasini o'zgartiraman. (Aks holda siz test shartlarini o'zgartirishingiz mumkin)

Agar siz Youtube videolarini RPI bilan tez -tez ko'rsangiz, tizim yuklanishining 2,0 dan ko'prog'i sodir bo'ladi.

12 -qadam: Tizim yuki va CPU harorati o'rtasidagi nisbiylik

Tizim yuki va CPU harorati o'rtasidagi nisbiylik
Tizim yuki va CPU harorati o'rtasidagi nisbiylik

Odatda, men tizim yuklanishining oshishi CPU haroratini ko'tarishiga ishonaman.

Ammo hozircha men ular orasidagi o'zaro hamkorlik haqida aniq tasavvurga ega emasman.

Yuqoridagi grafikdan ko'rinib turibdiki, ular juda kuchli o'zaro bog'liqlikdir.

- Oson taqqoslash uchun, men tizimning o'rtacha yuklanishini 10 ga ko'paytiraman. Aks holda, tizim yukining ko'lami juda kichik (0,0 ~ 2,0), to'g'ridan -to'g'ri taqqoslash qiyinlashadi.

- Sovutish FAN sxemasi musiqa tinglanadigan Pi qutisiga o'rnatilganda, CPU harorati 50C dan oshmaydi

- Tizim yuki 0,0 ~ 1,0 oralig'ida bo'lsa, harorat 45 ~ 48C oralig'ida (CPU metall qopqog'i biroz qiziydi)

- Ammo og'ir yuk (odatda veb -brauzer va Youtube videolarini ijro etish), yuk ko'tariladi va harorat ko'tariladi

***

RPI 4B 4 yadroli protsessor bilan o'rnatilgandan so'ng, nazariy jihatdan ishlash yuklanish darajasiga qadar pasaymaydi (ish vaqti navbatida) 4.

Ammo o'rtacha yuklanish darajasi 4 dan past bo'lsa, tegishli haroratni nazorat qilish kerak bo'ladi.

13 -qadam: Yakunlash

Yakunlash
Yakunlash

Men ushbu loyihani yuqoridagi rasmga o'xshash indikatorni Pi qutisiga o'rnatish orqali tugatyapman.

Ushbu Pi qutisini tasodifiy ishlatish paytida, indikator kamdan -kam hollarda yuqori darajali va dinamik LED yonib -o'chib turadi.

Odatda u asta -sekin yonib -o'chib turadigan LED holatida qoladi (LOW yoki LIGHT).

Yaxshiyamki, qo'shilgan vizual indikator biroz kulgili bo'ladi, hech bo'lmaganda RPI hozir nimadir qilayotganini ko'rsatadi.

Bu hikoyani o'qiganingiz uchun tashakkur ….

Tavsiya: