فهرست مطالب:
- تدارکات
- مرحله 1: فن خود را تنظیم کنید
- مرحله 2: یک کنترلر PI (D) ایجاد کنید
- مرحله 3: Control Script را در هنگام راه اندازی اجرا کنید
تصویری: کنترل دقیق دما در مراحل رزبری پای 4: 3
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
Pimoroni Fan Shim یک راه حل عالی برای کاهش دمای Pi هنگام گرم شدن است. سازندگان حتی نرم افزاری را ارائه می دهند که با افزایش دمای CPU از یک آستانه مشخص (به عنوان مثال 65 درجه) فن را فعال می کند. دما به سرعت زیر آستانه پایین تر کاهش می یابد و فن را خاموش می کند. این عالی است اما باعث افزایش و کاهش دما تحت بارهای متوسط می شود و صدای فن قابل شنیدن ایجاد می کند. این دستورالعمل هنگام تنظیم درجه حرارت CPU به مقدار خاصی با استفاده از چیزی به نام کنترلر PID ، سر و صدای فن را کاهش می دهد. آستانه های بالاتر (به عنوان مثال 65 درجه) منجر به ایجاد صدای بسیار کم صدا می شود در حالی که آستانه های پایین تر (به عنوان مثال 50 درجه) منجر به بلندتر شدن فن اما کنترل بهتر دما می شود.
مثال بالا نتایج من را از اجرای کنترلر PID و تغییر دمای مورد نظر هر 500 ثانیه نشان می دهد. دقت +/- 1 درجه است با کمی پیشروی در تغییرات ناگهانی دما.
نکته مهم این است که این آزمایش تحت همان بار برای کل زمان آزمایش (تماشای iPlayer BBC) انجام شد.
تدارکات
- تمشک پای 4
- پیمورونی فن شیم
مرحله 1: فن خود را تنظیم کنید
اولین قدم این است که فن خود را راه اندازی کنید. آموزش Pimorini عالی است!
سپس ترمینال Pi خود را باز کنید (ctrl alt t)
و کد ارائه شده توسط Pimoroni را نصب کنید
git clone https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh
مرحله 2: یک کنترلر PI (D) ایجاد کنید
کنترل کننده مشتق انتگرال متناسب (PID) سیستمی است که برای کنترل مقدار یک فرایند خاص (دمای CPU) با دستکاری برخی از دستگاه های فیزیکی (سرعت فن) استفاده می شود. ما می توانیم با روشن و خاموش کردن دوره ای سرعت و سر و صدای فن دستکاری کنیم (مدولاسیون موج پالس). مدت زمان روشن بودن آن در یک دوره معین (به عنوان مثال 1 ثانیه) تعیین می کند که فن چقدر سریع و بلند است (900ms = بلند و سریع ، 100ms = آرام و آهسته). ما از PID برای دستکاری سرعت فن و در نتیجه کنترل دما استفاده می کنیم.
ما می توانیم استفاده از PID را به چند مرحله تقسیم کنیم.
- در مورد مقدار متغیر فرایندی که می خواهید به آن برسید تصمیم بگیرید (به عنوان مثال دمای CPU = 55). به این می گویند نقطه تنظیم شما.
- خطای PID را محاسبه کنید. اگر نقطه تنظیم شما 55 درجه و دمای واقعی 60 درجه باشد خطای شما 5 درجه است (دما - نقطه تنظیم)
- تغییر به موقع فن متناسب با خطا (خطاهای بزرگ منجر به تغییرات بزرگ در سرعت فن می شود ، خطاهای کوچک باعث تغییرات کوچک در سرعت فن می شود).
- تنظیم فن در تناسب با مقادیر گذشته (یکپارچه/مجموع تمام خطاهای قبلی)
- در صورت تمایل ، سرعت فن را بر اساس میزان تغییر خطا (مشتق) تنظیم می کنید ، اما ما در اینجا این کار را انجام نمی دهیم
اکنون که نظریه را در اختیار دارید ، کد زیر را در Thonny IDE (یا برخی دیگر از IDE پایتون) اجرا کنید. مقدار "هدف" را در کد زیر تغییر دهید تا دمای موردنظر را برای حفظ Pi خود تغییر دهید. من عبارات "P" و "I" را در مقداری دلخواه دلخواه تنظیم کرده ام. در صورت عدم کارکرد برای شما ، می توانید آنها را تنظیم کنید. بزرگتر کردن 'P' به این معنی است که کنترل کننده به سرعت به خطاهای جدید پاسخ می دهد (اما ممکن است پایدار نباشد). تغییر "من" باعث می شود کنترل کننده پاسخ خود را به مقادیر گذشته بیشتر وزن کند. من سعی نمی کنم این اصطلاحات را خیلی بزرگ کنم زیرا تغییر سریع سرعت فن باعث تغییر سریع دما نمی شود. همچنین ، اگر کار فوق العاده سنگینی را روی Pi خود انجام می دهید ، ممکن است به دمای دلخواه خود نرسید (محدوده فن هنوز اعمال می شود).
از fanshim import FanShim
from time import sleep، time import os import math # بازگشت دمای CPU به عنوان یک رشته کاراکتر def getCPUtemperature (): res = os.popen ('vcgencmd masë_temp'). readline () return (res.replace ("temp ="، " ").replace (" "C / n"، "")) fanshim = FanShim () target = 55 # دمای دلخواه (با این بازی کنید و ببینید چه اتفاقی می افتد) دوره = 1 # دوره PWM در =.1 # مقدار اولیه تا 0 ٪ duty cycle off = period-on # مقداردهی اولیه تا 0٪ چرخه وظیفه P =.01 # نسبت Gain نسبت (با این بازی کنید و ببینید چه اتفاقی می افتد) intErr = 0 # خطای انتگرال I =.0001 # عبارت افزایش بین محلی (بازی با این و ببینید چه اتفاقی می افتد) در حالی که True: # get temperaute temp = int (float (getCPUtemperature ())) # خطا را محاسبه کنید و err را هموار کنید = temp-target # خطای انتگرایی را محاسبه کرده و آن را محدود کنید intErr = intErr+err اگر intErr> 10: intErr = 10 if intErr = period: on = period off = 0 else: on = on off = period-on # حداقل چرخه وظیفه را در حالت <.09: on =.09 else: on = on # PWM در پین fanshim اگر در == دوره: fanshim.set_fan (True) sleep (on) else: fanshim.set_fan (True) s leep (on) fanshim.set_fan (False) sleep (off)
مرحله 3: Control Script را در هنگام راه اندازی اجرا کنید
شما می توانید این اسکریپت را هر زمان که pi خود را شروع می کنید اجرا کنید یا می توانید آن را به طور خودکار در راه اندازی مجدد فعال کنید. این کار با crontab بسیار ساده است.
- ترمینال را باز کنید
- crontab-e را در ترمینال تایپ کنید
- خط کد زیر را به فایل 'reboot python /home/pi/bootScripts/fanControl.py &' اضافه کنید
- خروج و راه اندازی مجدد
من اسکریپت (fanControl.py) را در فلودری به نام bootScripts قرار دادم اما می توانید آن را در هر جایی قرار دهید فقط مطمئن شوید که مسیر صحیح را در crontab مشخص کرده اید.
تمام شد! حالا فن شما دمای CPU شما را تا مقدار مشخصی کنترل می کند ، در حالی که صدای قابل شنیدن آن را به حداقل می رساند.
توصیه شده:
ولت متر دقیق و دقیق آردوینو (0-90V DC): 3 مرحله
متر ولتاژ دقیق و دقیق آردوینو (0-90V DC): در این قسمت ، من یک ولت متر برای اندازه گیری ولتاژهای بالا DC (0-90v) با دقت و دقت نسبی با استفاده از آردوینو نانو ساخته ام. اندازه گیری های آزمایشی که من انجام دادم به اندازه کافی دقیق بود ، بیشتر در 0.3 ولت از ولتاژ واقعی اندازه گیری شده با
نحوه استفاده از پین های GPIO رزبری پای و Avrdude برای برنامه Bit-bang DIMP 2 یا DA PIMP 2: 9 مراحل
نحوه استفاده از GPIO پین های Raspberry Pi و Avrdude to Bit-bang-program DIMP 2 یا DA PIMP 2: اینها دستورالعمل های گام به گام نحوه استفاده از Raspberry Pi و فرمان منبع باز رایگان avrdude به bit-bang است. -برنامه DIMP 2 یا DA PIMP 2. من فرض می کنم که شما با رزبری پای خود و خط فرمان LINUX آشنا هستید. لازم نیست
کنترل تلویزیون و رزبری پای متصل با همان کنترل از راه دور: 4 مرحله
کنترل تلویزیون و رزبری پای متصل به هم از راه دور: برای کنترل رزبری پای با ریموت مادون قرمز ، قبلاً می توانستیم از LIRC استفاده کنیم. تا زمانی که Kernel 4.19.X کار می کرد ، کارکردن LIRC بسیار مشکل تر می شد. در این پروژه ما یک Raspberry Pi 3 B+ متصل به تلویزیون داریم و ما
کنترل روشنایی کنترل LED مبتنی بر PWM با استفاده از دکمه های فشار ، رزبری پای و خراش: 8 مرحله (همراه با تصاویر)
کنترل روشنایی مبتنی بر PWM کنترل LED با استفاده از دکمه های فشار ، رزبری پای و خراش: من سعی می کردم راهی برای توضیح نحوه عملکرد PWM برای دانش آموزانم بیابم ، بنابراین وظیفه خود را برای کنترل روشنایی یک LED با استفاده از 2 دکمه تنظیم کردم. - یک دکمه روشنایی LED را افزایش می دهد و دکمه دیگر آن را کم می کند. برای پیشرفت
یک فن خنک کننده را روی مراحل رزبری پای 3: 9 کنترل کنید
کنترل فن خنک کننده روی Raspberry Pi 3: یک فن را به تمشک pi 3 اضافه کنید ، در صورت لزوم آن را روشن و خاموش کنید. یک راه آسان برای افزودن فن این است که به سادگی ولتاژهای فن را به 3.3V یا 5V متصل کنید سنجاق و به زمین با استفاده از این رویکرد ، فن همیشه کار می کند. من فکر می کنم این بیشتر است