Სარჩევი:
- მარაგები
- ნაბიჯი 1: დააყენეთ თქვენი გულშემატკივარი
- ნაბიჯი 2: შექმენით PI (D) კონტროლერი
- ნაბიჯი 3: გაუშვით საკონტროლო სკრიპტი გაშვებისას
ვიდეო: ჟოლოს პი 4: 3 საფეხურის ტემპერატურის ზუსტი კონტროლი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:16
Pimoroni Fan Shim არის შესანიშნავი გამოსავალი თქვენი Pi ტემპერატურის შესამცირებლად, როდესაც ის ცხელდება. შემქმნელები უზრუნველყოფენ პროგრამულ უზრუნველყოფას, რომელიც იწვევს ვენტილატორს, როდესაც პროცესორის ტემპერატურა აღწევს გარკვეულ ზღვარს (მაგ. 65 გრადუსი). ტემპერატურა სწრაფად მცირდება ქვედა ბარიერის ქვემოთ და გამორთულია ვენტილატორი. ეს შესანიშნავია, მაგრამ იწვევს ტემპერატურის ზრდას და დაცემას ზომიერი დატვირთვის ქვეშ და ქმნის გულშემატკივართა ხმაურს. ეს ინსტრუქცია შეამცირებს გულშემატკივართა ხმაურს, ხოლო პროცესორის ტემპერატურის სპეციფიკურ მნიშვნელობამდე დაყენებით, რასაც ჰქვია PID კონტროლერი. უფრო მაღალი ზღურბლები (მაგალითად, 65 გრადუსი) გამოიწვევს გაცილებით ჩუმ ვენტილატორს, ხოლო ქვედა ზღურბლები (მაგ. 50 გრადუსი) გამოიწვევს ხმამაღალ ვენტილატორს, მაგრამ ტემპერატურის უკეთეს კონტროლს.
ზემოთ მოყვანილი მაგალითი გვიჩვენებს ჩემს შედეგებს PID კონტროლერის გაშვებისა და სამიზნე ტემპერატურის შეცვლისას ყოველ 500 წამში. სიზუსტე არის +/- 1 გრადუსი ტემპერატურის უეცარი ცვლილებების გარკვეული გადაჭარბებით.
მნიშვნელოვანია, რომ ეს ტესტი შესრულდა ერთი დატვირთვით მთელი სატესტო დროის განმავლობაში (BBC iPlayer– ის ყურება).
მარაგები
- ჟოლო პი 4
- პიმორონი ფანი შიმ
ნაბიჯი 1: დააყენეთ თქვენი გულშემატკივარი
პირველი ნაბიჯი არის თქვენი გულშემატკივართა დაყენება. პიმორინის სამეურვეო პროგრამა შესანიშნავია!
შემდეგ გახსენით ტერმინალი თქვენს Pi- ზე (ctrl alt t)
და დააინსტალირეთ პიმორონის მიერ მოწოდებული კოდი
git clone https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh
ნაბიჯი 2: შექმენით PI (D) კონტროლერი
პროპორციული ინტეგრალური წარმოებული (PID) კონტროლერი არის სისტემა, რომელიც გამოიყენება გარკვეული პროცესის მნიშვნელობის გასაკონტროლებლად (პროცესორის ტემპერატურა) ზოგიერთი ფიზიკური მოწყობილობის მანიპულირებით (Fan Speed). ჩვენ შეგვიძლია მანიპულირება გავაკეთოთ ვენტილატორის "სიჩქარით" და ხმაურით პერიოდულად ჩართვით და გამორთვით (პულსის ტალღის მოდულაცია). დროის ხანგრძლივობა, რომელიც გრძელდება მოცემულ პერიოდში (მაგ. 1 წამი) განსაზღვრავს რამდენად სწრაფი და რამდენად ხმამაღალია ვენტილატორი (900ms = ხმამაღალი და სწრაფი, 100ms = მშვიდი და ნელი). ჩვენ გამოვიყენებთ PID- ს ვენტილატორის სიჩქარით მანიპულირებისთვის და ამით ტემპერატურის გასაკონტროლებლად.
ჩვენ შეგვიძლია PID– ის გამოყენება გავყოთ რამდენიმე ნაბიჯად.
- გადაწყვიტეთ პროცესის ცვლადის მნიშვნელობა, რომლის მიღწევაც გსურთ (მაგ. CPU ტემპერატურა = 55). ამას ქვია შენი დასახული წერტილი.
- გამოთვალეთ PID შეცდომა. თუ თქვენი მითითებული წერტილი არის 55 გრადუსი და ფაქტობრივი ტემპერატურა 60 გრადუსია თქვენი შეცდომა არის 5 გრადუსი (ტემპერატურა - მითითებული წერტილი)
- შეცვალეთ გულშემატკივართა დროულად შეცდომის პროპორციულად (დიდი შეცდომები იწვევს დიდ ცვლილებებს ვენტილატორის სიჩქარეში, მცირე შეცდომები იწვევს მცირე ცვლილებებს ვენტილატორის სიჩქარეში).
- შეცვალეთ ვენტილატორი წარსულის მნიშვნელობების შესაბამისად (ინტეგრალური/ყველა წინა შეცდომის ჯამი)
- სურვილისამებრ თქვენ შეცვლით გულშემატკივართა სიჩქარეს შეცდომის შეცვლის სიჩქარის მიხედვით (წარმოებული), მაგრამ ჩვენ ამას აქ არ გავაკეთებთ
ახლა, როდესაც თქვენ გაქვთ თეორია გაშვებული კოდი ქვემოთ Thonny IDE (ან სხვა პითონის IDE). შეცვალეთ „სამიზნის“მნიშვნელობა ქვემოთ მოცემულ კოდში, რომ შეცვალოთ რა ტემპერატურაზე გსურთ შეინარჩუნოთ თქვენი Pi. მე დავაყენე "P" და "I" პირობები გარკვეულწილად თვითნებურად. მოგერიდებათ შეცვალოთ ისინი, თუ ისინი თქვენთვის არ გამოდგება. "P" - ის გაზრდა ნიშნავს, რომ კონტროლერი სწრაფად რეაგირებს ახალ შეცდომებზე (მაგრამ შეიძლება არ იყოს სტაბილური). „მე“-ს შეცვლა გამოიწვევს კონტროლერს, რომ შეაფასოს მისი პასუხი უფრო მეტად წარსულ მნიშვნელობებზე. მე არ შევეცდები ეს ტერმინები ძალიან დიდი გავხადო, რადგან ვენტილატორის სიჩქარის სწრაფად შეცვლა არ შეცვლის სწრაფად ტემპერატურას. ასევე, თუ თქვენ წარმოუდგენლად მძიმე სამუშაოს ასრულებთ თქვენს Pi– ზე, შესაძლოა არ მიაღწიოთ სასურველ ტემპერატურას (ვენტილატორის შეზღუდვები კვლავ მოქმედებს).
საწყისი fanshim იმპორტი FanShim
დროიდან იმპორტი ძილი, დრო იმპორტი os იმპორტი მათემატიკა # დააბრუნეთ CPU ტემპერატურა სიმბოლოების სტრიქონი def getCPUtemperature (): res = os.popen ('vcgencmd ღონისძიება_ ტემპი'). readline () return (res.replace ("temp =", " ").შეცვლა (" 'C / n "," ")) fanshim = FanShim () target = 55 # სასურველი ტემპერატურა (ითამაშე და ნახე რა მოხდება) პერიოდი = 1 # PWM პერიოდი =.1 # ინიციალიზაცია 0 -ზე % მოვალეობის ციკლი გამორთულია = პერიოდი # იწყება 0% მოვალეობის ციკლი P =.01 # პროპორციული მოგების ვადა (ითამაშე და ნახე რა მოხდება) intErr = 0 # ინტეგრალური შეცდომა I =.0001 # ინტერგრალური მოგების ტერმინი (ითამაშე და ნახე რა ხდება) მართალია: # მიიღე ტემპერამენტი temp = int (float (getCPUtemperature ())) # გამოთვალე შეცდომა და შეასწორე err = temp-target # გამოთვალე ინტეგრა შეცდომა და შეიზღუდე intErr = intErr+err თუ intErr> 10: intErr = 10 თუ intErr = პერიოდი: ჩართული = გამორთული პერიოდი = 0 სხვა: ჩართული = გამორთული = პერიოდი-ჩართული # დააყენეთ მინიმალური სამუშაო ციკლი, თუ <.09: ჩართულია =.09 სხვა შემთხვევაში: ჩართულია = # PWM ფანშიმის პინზე, თუ on == პერიოდი: fanshim.set_fan (True) ძილი (on) სხვა: fanshim.set_fan (True) s ნახტომი (ჩართული) fanshim.set_fan (ყალბი) ძილი (გამორთული)
ნაბიჯი 3: გაუშვით საკონტროლო სკრიპტი გაშვებისას
თქვენ შეგიძლიათ გაუშვათ ეს სკრიპტი ყოველ ჯერზე, როდესაც დაიწყებთ თქვენს პი -ს ან შეიძლება ავტომატურად გამოიწვიოს გადატვირთვა. ამის გაკეთება ძალიან მარტივია crontab– ით.
- გახსენით ტერმინალი
- ჩაწერეთ crontab-e ტერმინალში
- დაამატეთ კოდის შემდეგი ხაზი ფაილში "@reboot python /home/pi/bootScripts/fanControl.py &"
- გასვლა და გადატვირთვა
სკრიპტი (fanControl.py) ჩავდე ფლოდერში, სახელწოდებით bootScripts, მაგრამ თქვენ შეგიძლიათ განათავსოთ იგი სადმე, დარწმუნდით, რომ მიუთითეთ სწორი გზა crontab– ში.
Ყველაფერი შესრულებულია! ახლა თქვენი გულშემატკივარი გააკონტროლებს თქვენი პროცესორის ტემპერატურას კონკრეტულ მნიშვნელობამდე, ამცირებს მის მიერ წარმოქმნილ ხმაურს.
გირჩევთ:
Arduino ზუსტი და ზუსტი ვოლტმეტრი (0-90V DC): 3 ნაბიჯი
Arduino ზუსტი და ზუსტი ვოლტმეტრი (0-90V DC): ამ ინსტრუქციულად, მე ავაშენე ვოლტმეტრი, რომ გავზომოთ მაღალი ძაბვები DC (0-90v) შედარებით სიზუსტით და სიზუსტით არდუინო ნანოს გამოყენებით. სატესტო გაზომვები, რომლებიც მე ავიღე, საკმაოდ ზუსტი იყო, უმეტესად ფაქტობრივი ძაბვის 0.3 ვ ფარგლებში
ზუსტი Wiimote მსუბუქი იარაღი ჟოლოს PI– სთვის: 9 ნაბიჯი (სურათებით)
ზუსტი Wiimote Light Gun for Raspberry PI: ჩვეულებრივ, Wii Remote გამოიყენება როგორც მსუბუქი იარაღი არ არის საკმარისად ზუსტი რეტრო თამაშებისთვის, როგორიცაა NES Duck Hunt, რადგან Wii Remote ფაქტობრივად არ ირჩევს ტელევიზორის იმ წერტილს, რომელზეც ის არის მითითებული. არ შეიძლება! Wii Remote– ს აქვს ინფრაწითელი კამერა მის წინა მხარეს
სიკაშკაშის კონტროლი PWM დაფუძნებული LED კონტროლი Push ღილაკების, ჟოლოს Pi და Scratch გამოყენებით: 8 ნაბიჯი (სურათებით)
სიკაშკაშის კონტროლი PWM დაფუძნებული LED კონტროლი Push Buttons, Raspberry Pi და Scratch გამოყენებით: მე ვცდილობდი მეპოვა გზა იმის ახსნა, თუ როგორ მუშაობდა PWM ჩემს მოსწავლეებზე, ამიტომ მე დავაყენე საკუთარი თავი ამოცანა ვცდილობდი გავაკონტროლო LED სიკაშკაშე 2 ღილაკის გამოყენებით - ერთი ღილაკი გაზრდის LED- ს სიკაშკაშეს და მეორე აფერხებს მას. წინსვლისთვის
ტემპერატურის კითხვა LM35 ტემპერატურის სენსორის გამოყენებით Arduino Uno– ით: 4 ნაბიჯი
ტემპერატურის კითხვა LM35 ტემპერატურის სენსორის გამოყენებით Arduino Uno– ით: გამარჯობა ბიჭებო ამ ინსტრუქციებში ჩვენ ვისწავლით თუ როგორ გამოიყენოთ LM35 არდუინოსთან ერთად. Lm35 არის ტემპერატურის სენსორი, რომელსაც შეუძლია წაიკითხოს ტემპერატურის მნიშვნელობები -55 ° C– დან 150 ° C– მდე. ეს არის 3 ტერმინალური მოწყობილობა, რომელიც უზრუნველყოფს ტემპერატურის პროპორციულ ანალოგიურ ძაბვას. მაღალი
უფრო ზუსტი ხმის კონტროლი ტელევიზიისათვის: 3 ნაბიჯი
Finer Volume Control for TV: The Problem: my new t.v. აქვს ციფრული ხმის კონტროლი, რომელიც საკმაოდ შერყეულია, ის არის ხმამაღალი ან გამორთული გამოსავალი: მეორადი ანალოგური ხმის კონტროლის დამატება მასალები: 1. მავთული 2. შედუღება 3. მილის შემცირება 4. პოტენომეტრი (მე გამოვიყენე 1 მოჰმ კარგი ჩემი