Isi kandungan:

Petunjuk Beban CPU Raspberry Pi: 13 Langkah
Petunjuk Beban CPU Raspberry Pi: 13 Langkah

Video: Petunjuk Beban CPU Raspberry Pi: 13 Langkah

Video: Petunjuk Beban CPU Raspberry Pi: 13 Langkah
Video: Beepberry! Tiny Pi-based Blackberry cyberdeck #shorts 2024, Julai
Anonim
Petunjuk Beban CPU Raspberry Pi
Petunjuk Beban CPU Raspberry Pi

Semasa menjalankan Raspberry Pi (RPI) sebagai kepala tanpa monitor konsol, tidak ada petunjuk visual yang tersedia untuk menyedari bahawa RPI sebenarnya melakukan sesuatu.

Walaupun terminal jauh digunakan dengan SSH, pelaksanaan perintah Linux dari waktu ke waktu diperlukan untuk memeriksa berapa banyak beban sistem yang membebankan CPU sekarang

Oleh itu, litar ini dibuat untuk membantu dengan segera mengenali aktiviti sebenar CPU (mungkin separa nyata atau hampir nyata) untuk melaksanakan beban sistem yang sedang digunakan.

Walaupun hanya pengaturcaraan python dan litar yang jauh lebih sederhana yang dapat menyokong fungsi yang sama, kod python yang sedikit rumit akan diperlukan untuk mensimulasikan logik kawalan LED yang canggih yang diperlukan oleh litar ini.

Juga kerumitan kod python yang meningkat secara paradoks akan membebani CPU lebih banyak dengan peningkatan beban sistem.

Oleh itu, mematikan fungsi indikasi sebanyak mungkin ke litar perkakasan luaran adalah wajar kerana perkhidmatan ini harus berjalan sepanjang masa dan kerap seperti setiap 5 saat.

Dan litar ini akan menambahkan sedikit kelakar pada RPI tanpa kepala.

Langkah 1: Memeriksa Beban CPU Perintah Linux

Memeriksa Beban CPU Perintah Linux
Memeriksa Beban CPU Perintah Linux

Terdapat pelbagai pemeriksaan CPU yang memuatkan perintah Linux seperti top, iostat, sysstat, dan uptime.

Setiap arahan mempunyai ciri-ciri bermanfaat khusus dari segi kepelbagaian maklumat dan menampilkan kesederhanaan data.

Perintah teratas adalah maklumat yang paling kaya dan sangat terperinci tersedia untuk mengenali beban sistem dengan segera.

Tetapi ia berfungsi sebagai mod iterasi (menampilkan data secara berterusan di layar) dan format maklumatnya cukup rumit untuk mengekstrak data muat CPU yang diperlukan sahaja.

Perintah iostat memberikan maklumat beban sistem secara mendalam dengan memisahkan pengguna dan sistem yang menjalankan tugas antrian yang membebankan CPU pada masa ini.

Tetapi ia juga tidak rumit untuk mendapatkan beban CPU semasa dengan cepat dan intuitif.

Sekiranya masa operasi, data beban sistem yang sangat sederhana tersedia dalam jangka masa purata 1 minit, purata 5 minit dan purata ringkasan 15 minit.

Seperti disebutkan di atas, penyederhanaan kod python diperlukan kerana ia harus dilaksanakan cukup kerap seperti setiap 5 saat atau 10 saat.

Apabila kod python menjadi kompleks, ia akan membebankan CPU.

Ini agak paradoks bahawa anda membebankan RPI untuk memantau beban sistemnya.

Oleh itu, saya memilih perintah uptime untuk mengumpulkan beban CPU dan beroperasi dengan litar penunjuk kerana ini adalah yang paling mudah.

Tetapi kerana waktu operasi menunjukkan purata beban sistem selama 1 minit, litar penunjuk harus dikendalikan tidak seperti mod masa nyata.

Masih rangkaian ini dapat memberikan petunjuk visual yang berguna yang menunjukkan bagaimana RPI lakukan sekarang.

Langkah 2: Skematik

Skematik
Skematik

Litar ini akan menerima 4 tahap yang berbeza (mis. 00-> LOW, 01-> LIGHT, 10-> MEDIUM, 11-> HIGH) beban CPU semasa dari RPI melalui dua input opto-pengganding.

74LS139 (2 hingga 4 decoder dan de-multiplexer) sedang menyahkod input dua bit menjadi salah satu output tunggal antara 4 cara yang mungkin seperti 00 (RENDAH) -> B0, 01 (CAHAYA) -> B1, 10 (MEDIUM) -> B2, 11 (TINGGI) -> B3.

Oleh kerana output 74LS139 adalah tahap terbalik (input 00 -> B0 menjadi RENDAH dan 3 output lain TINGGI), penyongsang 74HC04 digunakan untuk membuat output terbalik sekali lagi.

Apabila output 74LS139 normal TINGGI, 74HC04 tidak akan diperlukan.

Tetapi entah bagaimana 74LS139 dibuat seperti itu. (Sila periksa jadual kebenaran 74LS139)

Apabila mana-mana output 74LS139 dipilih, ia akan mengaktifkan satu suis analog tertentu di antara 4 suis yang disertakan dalam CD4066 IC.

CD4066 dapat menyokong 4 suis analog dan setiap suis terdiri daripada 1 input kawalan dan 2 output analog.

Apabila input kawalan menjadi HIGH, dua sambungan output menjadi impedans rendah (Rintangan menjadi 0) dan yang lain menjadi impedans TINGGI (Rintangan antara dua jalur output menjadi beberapa ratus mega ohm) tahap.

Cukup kawalan 1 (pin 13) CD4066 menjadi TINGGI, jalan antara output 1 (pin 1) dan output 2 (pin 2) disambungkan sementara output lain tidak disambungkan (dalam keadaan impedans tinggi).

Begitu juga input TINGGI kawalan 2 (pin 5) menjadikan output 1 (pin 4) dan output 2 (pin 3) disambungkan sementara output lain terputus.

Kemudian LM555 berkelip dua LED dalam kadar berkelip yang berbeza.

Seperti yang anda lihat dalam skema di atas, NE555 akan beroperasi dengan salah satu nilai rintangan antara 4 (12k, 24k, 51k, 100k) tahap rintangan yang mungkin.

Langkah 3: Penjanaan Jam Berbeza NE555

NE555 Penjanaan Jam yang berbeza
NE555 Penjanaan Jam yang berbeza

Seperti yang ditunjukkan dalam skema, NE555 akan menggunakan salah satu nilai rintangan yang mungkin seperti 12k, 24l, 51k dan 100k.

Sebenarnya bahagian litar pemasaan NE555 adalah petunjuk visual utama yang menyokong bahagian litar.

Skim operasi litar adalah seperti berikut.

- Apabila tidak ada beban CPU yang signifikan, program python yang dipasang di RPI akan mengirimkan 00 output ke litar penunjuk. Kemudian dua jalur output CD4066 diaktifkan dan NE555 beroperasi dengan nilai perintang 12k. Oleh itu, LED berkelip 1.5 kali sesaat (berkelip agak cepat)

- CPU dimuat ringan (Kemudian panjang antrian uptime menjadi tahap 0.1 ~ 0.9), python akan menghantar 01 ke litar. Kemudian CD4066 diaktifkan dengan output yang dihubungkan dengan perintang 24k. Hasilnya, LED berkedip menurun 1.2 kali sesaat (LED berkedip sedikit menurun tetapi masih sedikit cepat)

- Apabila beban CPU meningkat dengan ketara (Kemudian panjang jangka masa run-up menjadi 1.0 ~ 1.9 level), python akan mengeluarkan 10 ke litar. Kemudian jalan sambungan perintang 51k dibuka dan NE555 beroperasi 0.8 kali sesaat. Kini kadar berkelip berkurang dengan ketara.

- Beban berat yang membebankan CPU dan jangka masa jangka masa uptime menjadi lebih lama (lebih dari 2 pekerjaan akan menunggu untuk dilaksanakan oleh CPU dan waktu operasi akan melaporkan lebih dari 2.0). Oleh kerana sambungan perintang 100k dipilih, NE555 akan berkelip LED 0.5 kali sesaat (Kelajuan berkelip menjadi sangat perlahan)

***

Seiring dengan peningkatan beban sistem, kelajuan berkelip LED akan dikurangkan dengan sewajarnya.

Apabila LED berkelip agak perlahan, maka RPI pasti berlebihan dengan ketara.

Dengan cara ini, litar petunjuk beban melaporkan tahap beban semasa RPI.

Langkah 4: Bahagian

Untuk membuat litar ini, pelbagai cip IC digunakan.

Walaupun saya menyebut cip IC lama jenis 74LSxx, jenis CD40xx, anda boleh menggunakan jenis cip TTL dan CMOS terkini seperti 74HC4066, dan 74ASxx apabila cip IC terpilih adalah jenis DIP.

Jenis permukaan IC paket kecil juga dapat digunakan ketika anda dapat menyolder yang kecil dengan betul pada PCB universal.

Yang lain adalah bahagian biasa yang boleh anda beli dengan mudah dari kedai e-mel internet.

- 74LS139 (2 hingga 4 penyahkod, de-multiplexer) x 1

- 74HC04 (6 penyongsang) x 1

- CD4066 (4 IC suis analog) x 1

- NE555 Pemasa IC x 1

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

- PC817 opto-coupler x 2 (Mana-mana 4 pin opto-coupler biasa boleh digunakan)

- Perintang: 220ohm x 4 (had arus LED), 4.7K (antara muka opto-pengganding) x 2, 12K, / 24K / 51K / 100K (kawalan masa jam) x 1

- LED x 2 (Sebarang warna yang berbeza seperti Kuning, Hijau atau Merah, Hijau)

- Papan universal 30 (W) x 20 (H) saiz lubang (Anda boleh memotong sebarang ukuran papan sejagat agar sesuai dengan litar ini)

- Kawat timah (Untuk membuat corak pendawaian pada PCB sejagat)

- kepala pin (3 pin) x 3

- Kepala pin IC (4 pin) x 4

- kabel pendawaian warna merah / biru

***

Langkah 5: Membuat Lukisan PCB

Membuat Lukisan PCB
Membuat Lukisan PCB

Walaupun saya menunjukkan gambar PCB di setiap projek, reka bentuk pendawaian hanyalah rujukan yang akan membimbing anda dengan betul menyolder setiap bahagian pada PCB sejagat.

Tetapi anda tidak semestinya berpegang pada skema pendawaian ini.

Seperti yang anda dapat lihat rajah pendawaian di atas, ia cukup kompleks dan memerlukan PCB yang besar.

Anda boleh menggunakan kabel biasa untuk menyambungkan bahagian dan bukannya wayar timah untuk mengurangkan ukuran pematerian PCB yang selesai.

Hanya gunakan gambar PCB untuk memeriksa dan mengesahkan pematerian yang betul antara bahagian.

Apabila bilangan IC TTL atau CMOS meningkat, biasanya lukisan PCB menjadi sangat kompleks di luar penyatuan yang betul pada satu sisi PCB.

Oleh itu, PCB pelbagai lapisan biasanya digunakan untuk litar digital kelas industri yang merangkumi banyak TTL, CMOS dan pemproses mikro.

Langkah 6: Pematerian

Pematerian
Pematerian

Saya menggunakan wayar timah dan kabel pendawaian biasa untuk meminimumkan saiz PCB sebanyak mungkin.

Semasa membandingkan dengan lukisan PCB, lokasi setiap bahagian diubah sepenuhnya.

Tetapi lukisan PCB masih digunakan untuk mengesahkan hubungan yang betul antara bahagian semasa pematerian.

Anda dapat melihat perintang 12k / 24k / 51k / 100k dimasukkan pada kepala pin IC tanpa pematerian.

Oleh itu, anda boleh mengganti perintang ke nilai lain untuk menukar skema operasi litar dengan mudah kemudian.

Langkah 7: Berkumpul

Berkumpul
Berkumpul

Litar penunjuk beban yang telah siap (Selanjutnya sebagai INDIKATOR) dipasang ke kotak pemain muzik RPI seperti yang ditunjukkan dalam gambar di atas.

Pemain muzik ini dipasang dengan DAC dan saya menggunakan yang baru-baru ini untuk memainkan video muzik.

Mengenai kotak RPI ini, saya akan menerangkan kemudian dan sekarang mari kita fokus pada INDICATOR kerana litar adalah subjek utama projek ini.

Saya membeli Raspberry Pi 4 Model B 2GB (Selanjutnya RPI 4B) baru-baru ini untuk menyokong aplikasi main video.

Oleh kerana RPI 4B telah meningkatkan prestasi CPU 4 teras, pengendalian beban sistem ditingkatkan dengan ketara dari RPI 3B +.

Oleh itu output jangka masa jangka masa uptime harus dilayan secara berbeza daripada RPI 3B +.

- Untuk beban sistem yang sangat konvensional seperti memainkan video, jangka masa jangka masa biasanya kurang dari 0.5 (Jadi beban sistem RENDAH akan menjadi tahap 0,0 ~ 0,5)

- Apabila sedikit beban tambahan sistem ditambahkan seperti memutar video dan menyalin fail dari dan ke direktori jenis pekerjaan menyebabkan sedikit beban pada CPU. (Jadi tahap beban LIGHT adalah 0.5 ~ 1.0)

- Apabila beban yang signifikan digunakan seperti bermain video pada penyemak imbas di laman Youtube dan melayari web pada penyemak imbas lain, kelajuan berjalan RPI 4 menjadi sedikit perlahan (Jadi tahap beban MEDIUM adalah 1.0 ~ 2.0)

- Akhirnya beban sistem RPI 4 menjadi TINGGI ketika menjalankan beberapa penyemak imbas web dan menyalin sejumlah besar fail ke pelayan RPI lain melalui rangkaian (Kemudian panjang larian-antrian menjadi lebih dari 2.0)

***

Data tahap beban ini akan digunakan oleh kod python yang akan dikembangkan pada langkah berikutnya.

Langkah 8: Menyemak Litar Asal

Menyemak Litar Asal
Menyemak Litar Asal

Kerana beberapa kerosakan reka bentuk litar asal, saya mengubah suai litar seperti yang ditunjukkan pada gambar di atas.

Sebab-sebab perubahan adalah seperti berikut.

- Nadi jam NE555 terdiri daripada bentuk gelombang TINGGI dan RENDAH. Tetapi biasanya tempoh isyarat TINGGI dan RENDAH (t = 1 / f) tidak sama (contohnya TINGGI 70% dan RENDAH 30% dalam litar asal). Oleh itu, kadar berkelip dua LED (LED Hijau / Kuning dalam reka bentuk asal) tidak sama (Satu LED menyala lebih lama daripada yang lain). Dengan alasan ini, petunjuk visual dengan berkelip LED tidak mudah dikenali."

- Oleh itu, saya menambahkan lebih banyak LED dan membuat corak lelaran bulat dengan CD4017 untuk memastikan pengecaman keadaan operasi dengan mudah

- Juga menukar skema berkelip LED secara terbalik seperti berkelip perlahan pada beban RENDAH dan berkelip lebih cepat dengan beban TINGGI. (Litar asal dibuat untuk berkedip lebih cepat dalam beban RENDAH dan berkelip perlahan pada beban TINGGI). Dalam keadaan beban TINGGI, sebarang tindakan RPI menjadi lembap. Dan menunjukkan LED berkelip perlahan tidak akan membuat anda gembira. (Dalam aspek psikologi, saya memilih skema paparan yang lebih positif)

***

Walaupun bahagian paparan LED diubah secara signifikan, tahap perubahan keseluruhan dengan litar asal tidak banyak seperti yang anda lihat pada langkah seterusnya.

Langkah 9: Perubahan Skema Asal

Perubahan Skema Asal
Perubahan Skema Asal

Penambahan CD4017 dan 8 LED adalah pengubahsuaian utama.

Juga untuk mengubah frekuensi pencatatan NE555 dan skema berkelip LED terbalik, nilai perintang diubah seperti yang ditunjukkan dalam skema di atas.

Oleh kerana bahagian litar tambahan adalah litar pengejar berasaskan CD4017 yang sederhana, saya akan melewatkan penjelasan terperinci lain mengenai litar yang diubah.

Semua bahagian litar yang berubah boleh dibuat sebagai papan PCB anak perempuan yang disolder CD4017 dan 8 LED.

Papan anak perempuan boleh dilekatkan pada papan utama (papan induk) seperti gambar yang ditunjukkan pada langkah 8.

Langkah 10: Menguji

Video pengujian semua peringkat operasi (keadaan RENDAH, CAHAYA, MEDIUM dan beban TINGGI) ditunjukkan oleh fail yang disimpan di pemacu google di bawah.

***

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

***

Mengikut beban sistem semasa, kadar berkelip akan berubah di antara salah satu daripada 4 keadaan yang ditunjukkan dalam video.

Langkah 11: Python Code

Kod Python
Kod Python

Oleh kerana kebanyakan logik kawalan dimasukkan ke litar perkakasan luaran, logik operasi kod python agak mudah termasuk langkah-langkah berikut.

- Mendapatkan data suhu CPU untuk membandingkan relativiti antara beban sistem dan kenaikan suhu

- Mengumpulkan beban sistem purata 1 minit dari output uptime

- Membuat cap masa seperti format yy-mm-dd hh: mm: ss

- Suhu penulisan, beban sistem bersama dengan cap waktu

- Menurut data output beban sistem semasa (00, 01, 10, 11) ke litar INDICATOR

- Tidur 5 saat sebelum memulakan langkah yang dinyatakan di atas

Oleh kerana program python memerlukan lekukan yang ketat dalam kod sumber, sila muat turun fail sumber dari pemacu google dengan mengikuti pautan di bawah.

***

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

***

Oleh kerana saya tidak menggunakan RPI sebagai komputer desktop, menjalankan aplikasi pejabat atau penyemak imbas web Libre sangat jarang berlaku.

Biasanya saya memainkan video muzik, salinan fail / bergerak atau pengaturcaraan python dengan RPI 4B 2GB yang baru dibeli.

Oleh itu, beban purata biasanya kurang dari 1.0 dalam kes saya dan dengan itu saya mengubah tahap RENDAH / RENDAH / MEDIUM / TINGGI dalam kod saya. (Anda boleh mengubah keadaan ujian sebaliknya)

Tetapi apabila anda biasa melihat video Youtube dengan RPI, lebih daripada 2.0 beban sistem biasanya akan berlaku.

Langkah 12: Relativiti Antara Beban Sistem dan Suhu CPU

Relativiti Antara Beban Sistem dan Suhu CPU
Relativiti Antara Beban Sistem dan Suhu CPU

Biasanya saya meneka dan yakin bahawa peningkatan beban sistem akan menaikkan suhu CPU.

Tetapi sehingga sekarang saya tidak mempunyai gambaran yang jelas mengenai saling bekerjasama antara mereka.

Seperti yang anda lihat dalam grafik di atas, hubungan mereka sangat kuat seperti berikut.

- Untuk perbandingan yang mudah, saya mengalikan beban sistem 10 hingga rata-rata. Jika tidak, skala beban sistem sangat kecil (0.0 ~ 2.0), perbandingan langsung menjadi sukar.

- Oleh kerana rangkaian FAN penyejuk dipasang pada kotak bermain muzik Pi, suhu CPU tidak pernah melebihi 50C

- Apabila beban sistem berada dalam lingkungan 0.0 ~ 1.0, suhu dalam lingkungan 45 ~ 48C (penutup logam CPU sedikit memanaskan)

- Tetapi beban berat dikenakan (Biasanya penyemak imbas web dan memainkan video Youtube), beban melambung tinggi dan suhunya

***

Oleh kerana RPI 4B dipasang dengan CPU 4 teras, prestasi teorinya tidak akan banyak turun ke tahap muat (antrian berjalan uptime) 4.

Tetapi masih kurang daripada tahap beban rata-rata 4, kawalan suhu yang sesuai akan diperlukan.

Langkah 13: Penyelesaian

Penyelesaian
Penyelesaian

Saya menyelesaikan projek ini dengan memasang kotak INDICATOR ke Pi seperti gambar di atas.

Semasa penggunaan kotak Pi ini secara santai, INDICATOR jarang menunjukkan tahap tinggi dan LED dinamik berkelip.

Biasanya ia tetap dalam keadaan LED berkelip perlahan (sehingga tahap RENDAH atau CAHAYA).

Bagaimanapun penunjuk visual yang ditambahkan membuat sedikit lucu sekurang-kurangnya menunjukkan RPI sedang melakukan sesuatu sekarang.

Terima kasih kerana membaca kisah ini…..

Disyorkan: