Სარჩევი:

შექმენით უკეთესი ჟოლოს სიმძლავრის ღილაკი: 4 ნაბიჯი
შექმენით უკეთესი ჟოლოს სიმძლავრის ღილაკი: 4 ნაბიჯი

ვიდეო: შექმენით უკეთესი ჟოლოს სიმძლავრის ღილაკი: 4 ნაბიჯი

ვიდეო: შექმენით უკეთესი ჟოლოს სიმძლავრის ღილაკი: 4 ნაბიჯი
ვიდეო: Tolia - ექსკლუზიურად თქვენთვის! 2024, ნოემბერი
Anonim
Image
Image

ძალიან ადვილია ჟოლოს გამორთვის ან გამორთვის ღილაკის გაკეთება. ინტერნეტში უამრავი ასეთი პროექტია და აქ არის Instructables, მაგრამ არცერთი მათგანი (რომელსაც მე ვხედავ) არ გითხრათ, როდის დაამთავრა თქვენი Pi ფაქტობრივად დახურვა და, შესაბამისად, უსაფრთხოა ენერგიის გაყვანა. სინამდვილეში ისინი არც კი აღიარებენ, რომ ღილაკზე დაჭერილი ჩანს.

ასევე არის პროექტები, რომ დაიხუროს Pi, რომელიც დახურულია, მაგრამ არც ეს გაძლევთ ვიზუალურ უკუკავშირს.

მაგრამ ვის სჭირდება ასეთი ღილაკი? თუ თქვენ ჩემნაირი სულელი ხართ, ან თუნდაც უბრალოდ მისწრაფებული ნერვიული, ყოველთვის შეგიძლიათ შეხვიდეთ თქვენს Pi ადგილობრივად ან ქსელში და ჩაწეროთ sudo shutdown –h ახლა. მაგრამ თუ თქვენ აშენებთ პროექტს არატექნიკური მომხმარებლებისთვის, ეს უბრალოდ არ გამოდგება. მართალია, თქვენ თითქმის ყოველთვის შეგიძლიათ თავი აარიდოთ დენის კაბელის გაყვანას, მაგრამ გაითვალისწინეთ, მე თითქმის ყოველთვის ვთქვი! ყველას იღბალი ადრე თუ გვიან იწურება. მე მქონდა SD ბარათი გარდაცვლილი ჩემზე მხოლოდ გასულ კვირას, თუმცა ვერასდროს ვიცნობ, იყო თუ არა ეს ნამდვილად ენერგიის უეცარი დაკარგვის გამო.

ჩემს შემთხვევაში დამჭირდა დენის ღილაკის დამატება Pi- ზე, რომელსაც ჩვენ ვიყენებთ როგორც midi sequencer ეკლესიაში საგალობლებისა და სიმღერების ჩაწერისა და დაკვრისთვის, როდესაც ჩვენ არ გვყავს ცოცხალი პიანისტი. მე ყოველთვის შემიძლია ჩავწერო გამორთვის ბრძანება, მაგრამ მე უნდა გამოვავლინო ის, როდესაც იქ არ ვარ.

ჩემი განზრახვა აქ არ არის მოგაწოდოთ მზა პროდუქტი, რომელიც სავსეა ლამაზად 3D ბეჭდვით ჩანთით, ისევე როგორც სხვა მრავალი ინსტრუქცია. ყველას ექნება განსხვავებული გამოყენება ან სურს საკუთარ პროექტში ჩართვა. უფრო სწორად, მე გაგაცნობთ ტექნოლოგიას, რომელიც შეგიძლიათ დაამატოთ თქვენს პროექტს, იქნება ეს მედია ცენტრი, IoT მოწყობილობა თუ სხვა რამ.

(ვიდეოში მე ვაჩვენებ მას Pi Zero v1.2 და მონიტორს, რომელიც გავაკეთე გადაკეთებული ლეპტოპის ეკრანიდან და კონტროლერი შორეული აღმოსავლეთიდან.)

ნაბიჯი 1: დიზაინი

Როგორ მუშაობს
Როგორ მუშაობს

ეს არის ის, რასაც ჩემი დენის ღილაკი გააკეთებს თქვენთვის:

  • როდესაც Pi მუშაობს, LED მუდმივად ანათებს. თუ ის ხელით გამორთულია, LED გამორთულია მხოლოდ მაშინ, როდესაც უსაფრთხოა დენის გამორთვა.
  • გაშვებისას, თუ ღილაკს მინიმუმ ერთი წამით დააჭერთ, იწყება გამორთვა და LED ანათებს ყოველ წამში მეოთხედი წამის განმავლობაში, სანამ უსაფრთხოდ არ იქნება გამორთული.
  • გამორთვის მდგომარეობიდან (თუ დენი არ არის ამოღებული), ღილაკზე დაჭერით იწყება ჩატვირთვა და აანთებს LED ყოველ წამში მეოთხედი მეოთხედი სანამ არ დაიტვირთება. (შეიძლება ცოტა მეტი დრო დასჭირდეს, სანამ ყველა სერვისი, როგორიცაა ssh და vnc არ მუშაობს).

კომპონენტები ძალიან იაფია. Ყველაფერი რაც გჭირდება არის:

  • ATTiny85 (Arduino- თან თავსებადი ჩიპი)
  • 3 რეზისტორი: 2 x 330Ω და 1 x 10kΩ
  • 1 LED - მე გთავაზობთ მწვანე ან ლურჯს, მაგრამ ეს თქვენი არჩევანია
  • breadboard და jumper მავთულები, ან stripboard, ან როგორც გსურთ აშენება.

ნაბიჯი 2: როგორ მუშაობს

როგორც ყველა Pi დენის ღილაკს, ესეც GPIO პინს დაბალ მდგომარეობაში აყენებს სიგნალის გათიშვის მოთხოვნით დამხმარე პროგრამაზე, რომელიც მუშაობს Pi- ზე. მე გამოვიყენე GPIO4 (პინ 7), მაგრამ თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი სხვა პინი.

ერთადერთი გზა იმის გასაგებად, რომ Pi– მ დამარცხება დაასრულა არის TxD pin 8 – ის ყურება, რომელიც შემდეგ მცირდება. ეს დამოკიდებულია სერიული კონსოლის ჩართვაზე, რაც ნაგულისხმევია. ფაქტობრივად, TxD რეგულარულად გაიზრდება და იკლებს, სანამ მას სერიულ კონსოლს იყენებენ, მაგრამ ის არასოდეს დაიკლებს 30mS- ზე მეტს ერთდროულად, თუნდაც ყველაზე ნელი საერთო ბაუდის სიჩქარით. ის კვლავ შეიძლება გამოყენებულ იქნას სერიული კონსოლისთვის, რადგან ჩვენ მას პასიურად ვუყურებთ.

გადატვირთვისთვის, ჩვენ მოკლედ უნდა გამოვიყვანოთ SCL1 (პინ 5) დაბალი. ეს პინი გამოიყენება ნებისმიერი I2C მოწყობილობის მიერ (ჩემი midi ინტერფეისის ჩათვლით), მაგრამ ჩატვირთვის დაწყების შემდეგ ჩვენ მას მარტო ვტოვებთ.

სირთულის უმეტესი ნაწილი არის არდუინოს ესკიზში, რომელსაც ჩვენ ვტვირთავთ ATTiny85– ში. ეს ახორციელებს "სახელმწიფო მანქანას" - ნებისმიერი პრობლემის კოდირების ძალიან სასარგებლო და მძლავრ საშუალებას, რომელიც შეიძლება წარმოდგენილი იყოს რიგი "მდგომარეობებით". სარეცხი მანქანა მუშაობს ანალოგიურად. მდგომარეობები წარმოადგენენ სარეცხის ციკლის ეტაპებს და თითოეული განსაზღვრავს რას უნდა აკეთებდეს მანქანა იმ მომენტში (ძრავები ან ტუმბოები, სარქველები უნდა გაიხსნას ან დაიხუროს) და რა სენსორის შეყვანაა (ტემპერატურა, წყლის დონე, ქრონომეტრები) განსაზღვროს როდის გადავიდეს შემდეგ სახელმწიფოში და რომელი მომავალი აირჩიოს.

ხელის ესკიზი არის ჩემი სახელმწიფო სქემის პირველი პროექტი, რომელიც აჩვენებს ყველა სახელმწიფო გადასვლას. ეს მხოლოდ იმის საჩვენებელია, თუ როგორ შეგიძლიათ თავდაპირველად დაგეგმოთ თქვენი მდგომარეობები და სახელმწიფო გადასვლები - შეიძლება არ იყოს მთლად ზუსტი, როგორც ეს იყო გამართვის დაწყებამდე.

ჩვენს შემთხვევაში, ჩვენ გვაქვს 6 მდგომარეობა, რომელსაც მე ვუწოდებ OFF, BOOT REQUEST, BOOTING, RUNNING, SHUTDOWN REQUEST და SHUTTING DOWN. (დახურვის შემდეგ ის ისევ OFF- ზე გადადის). ეს იდენტიფიცირებულია ესკიზის კომენტარებით და თითოეული, შემდგომი კომენტარებით ნათქვამია, თუ რა უნდა გააკეთოს და რა მოვლენები გადააქცევს მას სხვა მდგომარეობას.

დამხმარე პროგრამა, რომელიც მუშაობს Pi– ზე, ოდნავ უფრო რთულია, ვიდრე გამორთვის ღილაკების უმეტესობისთვის. ის პასუხობს GPIO პინზე ხანგრძლივ დაბალ პულსს გამორთვის ინიციატივით, მაგრამ ის ასევე პასუხობს მოკლე იმპულსს თავისთავად მოკლედ იზიდავს GPIO პინს დაბლა. ეს არის ის, თუ როგორ შეუძლია ATTiny85 გითხრათ, რომ ის მუშაობს და ასე შეიძლება გადავიდეს BOOTING– დან RUNNING– მდე.

ნაბიჯი 3: დემო პროტოტიპის შექმნა

დემო პროტოტიპის შექმნა
დემო პროტოტიპის შექმნა
დემო პროტოტიპის შექმნა
დემო პროტოტიპის შექმნა
დემო პროტოტიპის შექმნა
დემო პროტოტიპის შექმნა

სადემონსტრაციო მიზნებისათვის შეგიძლიათ მისი პროტოტიპი შედუღების გარეშე, როგორც ნაჩვენებია, მაგრამ მე ასევე მოგაწოდეთ სქემა, ასე რომ თქვენ შეგიძლიათ შეიმუშაოთ საკუთარი განლაგება ზოლის დაფის ან პერსონალური PCB- ის გამოყენებით, შესაძლოა უფრო ფართო პროექტის ნაწილი.

ნაბიჯი 4: პროგრამირება ATTiny85

არდუინოს ესკიზი და დამხმარე პროგრამა თან ერთვის ამ ნაბიჯს. თქვენს Arduino ესკიზების საქაღალდეში შექმენით საქაღალდე სახელწოდებით PiPwr და დააკოპირეთ ფაილი PiPwr.ino მასში. Arduino IDE– ს გაშვებისას თქვენ ნახავთ მას თქვენს ჩანახატების წიგნში.

ATTiny85– ის პროგრამირების რამდენიმე გზა არსებობს. თუ თქვენს ჩამტვირთველს აქვს დაინსტალირებული, შეგიძლიათ გამოიყენოთ განვითარების ATTiny85 დაფა, რომელიც მხოლოდ რამდენიმე ფუნტი ღირს. ეს უკავშირდება თქვენს კომპიუტერს USB პორტის საშუალებით. მე გამოვიყენე იდიოტი, რომელიც არსებითად იგივეა, მაგრამ პროტოტიპების არეალით.

Arduino IDE ფაილში - პარამეტრები, დაამატეთ

digistump.com/package_digistump_index.json

დამატებითი დაფების მენეჯერის URL- ებისთვის.

Under Tools - Board ახლა თქვენ უნდა ნახოთ Digispark– ის რამდენიმე ვარიანტი. აირჩიეთ Digispark (ნაგულისხმევი - 16.5MHz).

თუ თქვენს ATTiny85– ს არ აქვს ჩამტვირთავი (ან არ იცით), მაშინ შეგიძლიათ მიიღოთ AVR ISP პროგრამისტი რამდენიმე ფუნტად. ან შეგიძლიათ გამოიყენოთ Arduino Uno ან უფრო იაფი Pro Mini ან Nano როგორც პროგრამისტი. Google- ისთვის "arduino as isp attiny85" (ბრჭყალების გარეშე) ინსტრუქციისთვის.

თუ გსურთ ესკიზის შეცვლა, თქვენ ნახავთ მას სრულად კომენტარში და იმედია ადვილი მისახვედრი. გამართვისთვის გაცილებით ადვილია Arduino Pro Mini ან Nano- ს გამოყენება. წაშალეთ კომენტარი serial.begin () კონფიგურაციაში და დაბეჭდეთ განცხადებები მარყუჟში (), რათა ნახოთ რა ნაბიჯები გადის სერიული მონიტორის გამოყენებით. წყაროში არის ალტერნატიული პინ -განმარტებები, რომლებიც გამოქვეყნებულია Uno, Pro Mini ან Nano– სთვის.

თქვენს Raspberry Pi– ზე დააკოპირეთ ფაილი shutdown_helper.py საქაღალდეში/etc/local/bin და დააყენეთ როგორც შესრულებადი ბრძანებით

sudo chmod +x /usr/local/bin/shutdown_helper.py

ახლა შეცვალეთ ფაილი /etc/rc.local თქვენი საყვარელი რედაქტორით. (ამის გაკეთება დაგჭირდებათ როგორც root.) ბოლო ხაზამდე (გასვლა 0) ჩადეთ ხაზი

nohup /usr/local/bin/shutdown_helper.py &

გადატვირთეთ და დამხმარე პროგრამა ავტომატურად დაიწყება.

გირჩევთ: