Mündəricat:

Daha Yaxşı Raspberry Pi Güc Düyməsini Yarat: 4 Addım
Daha Yaxşı Raspberry Pi Güc Düyməsini Yarat: 4 Addım

Video: Daha Yaxşı Raspberry Pi Güc Düyməsini Yarat: 4 Addım

Video: Daha Yaxşı Raspberry Pi Güc Düyməsini Yarat: 4 Addım
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Noyabr
Anonim
Image
Image

Ahududu söndürmə və ya söndürmə düyməsini düzəltmək çox asandır. İnternetdə bir çox layihə var və bir neçəsi Instructables -də, ancaq bunların heç biri (görə bildiyim) Pi'nizin əslində bağlandığını başa salmadığını və bu səbəbdən gücü çəkməyin təhlükəsiz olduğunu söyləmir. Əslində düyməni basıldığını görmürlər.

Bağlandığı bir Pi'yi yenidən başlatmaq üçün də layihələr var, amma bunlar da sizə heç bir vizual rəy vermir.

Bəs belə düymə kimə lazımdır? Mənim kimi bir az inanclısansa və ya hətta sadəcə istəkli bir inəksənsə, həmişə Pi -yə yerli olaraq və ya şəbəkə ilə daxil ola bilərsən və indi sudo shutdown -h yaza bilərsən. Ancaq qeyri-texniki istifadəçilər üçün bir layihə qurursanız, bu heç bir nəticə verməyəcək. Düzdür, demək olar ki, həmişə elektrik kabelini çəkməklə qurtula bilərsiniz, amma unutmayın ki, demək olar ki, həmişə demişəm! Hər kəsin bəxti gec -tez bitir. Sadəcə keçən həftə bir SD kart mənim üzərimdə ölmüşdü, baxmayaraq ki, bunun qəfil elektrik kəsilməsi səbəbindən olub olmadığını heç vaxt bilməyəcəyəm.

Mənim vəziyyətimdə, kilsədə ilahiləri və mahnıları qeyd etmək və səsləndirmək üçün istifadə etdiyimiz bir midi sıralayıcı olaraq istifadə etdiyimiz bir Pi -yə güc düyməsini əlavə etməli idim, çünki canlı pianoçumuz yoxdur. Həmişə bağlama əmrini yaza bilərəm, amma orada olmadığım müddətdə bacarıqlarımı azaltmalıyam.

Buradakı niyyətim, bir çox digər Təlimatlar kimi, gözəl 3D çap qutusu ilə tamamlanmış bir məhsul vermək deyil. Hər kəsin fərqli bir istifadəsi olacaq və ya öz layihəsinə daxil etmək istəyəcək. Əksinə, bir media mərkəzi, bir IoT cihazı və ya başqa bir şey olsun, layihənizə əlavə edə biləcəyiniz texnologiya ilə sizi quracağam.

(Videoda bunu Pi Zero v1.2 və təkrar təyin edilmiş bir noutbuk ekranından hazırladığım bir monitor və Uzaq Şərqdən bir nəzarətçi ilə nümayiş etdirirəm.)

Addım 1: Dizayn

Bu necə işləyir
Bu necə işləyir

Güc düyməm sizin üçün nə edəcək:

  • Pi işləyərkən bir LED davamlı yanır. Əl ilə bağlanarsa, LED yalnız elektrik enerjisini ayırmaq təhlükəsiz olduqda sönər.
  • Çalışarkən, düyməni ən az bir saniyə basıb saxlasanız, bir söndürmə başlanır və LED hər saniyədə dörddə bir saniyə ərzində yanıb sönür.
  • Bir söndürmə vəziyyətindən (güc kəsilməyibsə), düyməni basmaq onun açılmasını başlayır və LED açılana qədər saniyənin dörddə birində yanıb -sönür. (Ssh və vnc kimi bütün xidmətlərin işə salınması bir az daha uzun çəkə bilər.)

Komponentlər çox ucuzdur. Lazım olanların hamısı:

  • ATTiny85 (Arduino ilə uyğun çip)
  • 3 rezistor: 2 x 330Ω və 1 x 10kΩ
  • 1 LED - Yaşıl və ya mavi təklif edirəm, amma bu sizin seçiminizdir
  • çörək taxtası və tullanan tellər və ya striptiz lövhəsi, və ya buna baxmayaraq qurmaq istəyirsən.

Addım 2: Necə Çalışır

Bütün Pi güc düymələrində olduğu kimi, bu da GP üzərində işləyən bir köməkçi proqrama bağlanma tələbini bildirmək üçün aşağı bir vəziyyətə keçir. GPIO4 (pin 7) istifadə etdim, ancaq başqa bir pin istifadə edə bilərsiniz.

Pi -nin bağlanmasının başa çatdığını söyləməyin yeganə yolu, aşağı düşən TxD pin 8 -i izləməkdir. Bu, aktivləşdirilən seriya konsolundan asılıdır, bu da standartdır. Əslində TxD, seriyalı bir konsol olaraq istifadə edilərkən müntəzəm olaraq aşağı və aşağı enəcək, ancaq heç vaxt birdən -birə 30mS -dən aşağı enməyəcək, hətta ən yavaş yayılma sürətində belə. Passiv olaraq izlədiyimiz üçün hələ də serial konsol üçün istifadə edilə bilər.

Yenidən başlatmaq üçün qısa müddətdə SCL1 (pin 5) aşağı çəkməliyik. Bu pin hər hansı bir I2C cihazı (midi interfeysim daxil olmaqla) tərəfindən istifadə olunur, ancaq açılışa başladıqdan sonra onu tək qoyuruq.

Mürəkkəbliyin çox hissəsi ATTiny85 -ə yüklədiyimiz Arduino eskizindədir. Bu "dövlət maşını" tətbiq edir - bir sıra "dövlətlər" ilə təmsil oluna biləcək hər hansı bir problemi kodlaşdırmağın çox faydalı və güclü bir yolu. Paltaryuyan maşın eyni şəkildə işləyir. Ştatlar yuyulma dövrəsindəki mərhələləri təmsil edir və hər biri maşının o anda nə etməli olduğunu (mühərriklər və ya nasoslar, klapanlar açılmalı və ya bağlanmalı) və hansı sensor girişlərini (temperatur, suyun səviyyəsi, taymerlər) müəyyən edir. bir sonrakı vəziyyətə nə vaxt köçəcəyinizi və hansı halı seçəcəyinizi təyin edin.

Əl eskizi, bütün dövlət keçişlərini göstərən bir vəziyyət diaqramının ilk layihəmdir. Bu, əvvəlcə əyalətlərinizi və əyalət keçidlərinizi necə planlaşdıra biləcəyinizi göstərmək üçündür - bu, ayıklamaya başlamazdan əvvəl olduğu kimi tamamilə doğru ola bilməz.

Bizim vəziyyətimizdə, OFF, BOOT REQUEST, BOOTING, RUNNING, SHUTDOWN REQUEST və SHUTTING OFF adlandırdığım 6 dövlətimiz var. (AŞAĞI AÇILDıqdan sonra yenidən OFF vəziyyətinə keçir.) Bunlar eskizdəki şərhlərlə müəyyən edilir və hər biri üçün əlavə şərhlər nə etməli olduğunu və hansı hadisələrin başqa bir vəziyyətə keçəcəyini söyləyir.

Pi üzərində işləyən köməkçi proqram, əksər bağlama düymələrinə nisbətən bir az daha mürəkkəbdir. GPIO pinindəki uzun bir aşağı nəbzə bir söndürmə başlatmaqla cavab verir, eyni zamanda qısa bir nəbzə GPIO pinini qısaca aşağı çəkərək cavab verir. ATTiny85 -in işlədiyini belə deyə bilərik və bu səbəbdən BOOTING -dən RUNNING vəziyyətinə keçə bilər.

Addım 3: Demo Prototipinin Yaradılması

Demo prototipinin qurulması
Demo prototipinin qurulması
Demo prototipinin qurulması
Demo prototipinin qurulması
Demo prototipinin qurulması
Demo prototipinin qurulması

Nümayiş məqsədləri üçün onu lehimsiz çörək taxtasında göstərildiyi kimi prototip edə bilərsiniz, ancaq sizə sxemini də verdim ki, öz planınızı striptiz lövhəsi və ya xüsusi bir PCB, bəlkə də daha geniş bir layihənin bir hissəsi olaraq işləyə biləsiniz.

Addım 4: ATTiny85 proqramlaşdırılması

Arduino eskizi və köməkçi proqramı bu addıma əlavə olunur. Arduino eskizlər qovluğunda PiPwr adlı bir qovluq yaradın və içərisinə PiPwr.ino faylını kopyalayın. Arduino IDE -ni işə salmaqla onu eskiz kitabınızda tapa bilərsiniz.

ATTiny85 proqramlaşdırmanın bir neçə yolu var. Bir yükləyiciniz varsa, bir neçə lirəyə başa gələn bir ATTiny85 inkişaf etdirmə lövhəsindən istifadə edə bilərsiniz. Bu, USB portu vasitəsilə kompüterinizə qoşulur. Əsasən eyni, lakin prototipləşdirmə sahəsi olan bir Hidiot istifadə etdim.

Arduino IDE -də Fayl - Tercihlər altında əlavə edin

digistump.com/package_digistump_index.json

Əlavə lövhələr menecer URL -lərinə.

Tools - Board altında indi bir çox Digispark seçimini görməlisiniz. Digispark seçin (Varsayılan - 16.5MHz).

ATTiny85 -inizdə önyükleyicisi yoxdursa (və ya bilmirsinizsə), onda bir neçə funt üçün AVR ISP proqramçısı əldə edə bilərsiniz. Və ya bir proqramçı olaraq bir Arduino Uno və ya daha ucuz Pro Mini və ya Nano'dan istifadə edə bilərsiniz. Təlimatlar üçün "arduino as isp attiny85" (tirnoq olmadan) üçün Google.

Eskizi dəyişdirmək istəyirsinizsə, tam şərh edilmiş və inşallah izləmək asan olacaq. Ayıklama üçün bir Arduino Pro Mini və ya Nano istifadə etmək daha asandır. Serial monitordan istifadə edərək keçdiyi addımları görmək üçün Setup -da serial.begin () və loop () -da olan çap ifadələrini qeyd edin. Bir Uno, Pro Mini və ya Nano üçün şərh edilən mənbədə alternativ pin tərifləri var.

Raspberry Pi -də, shutdown_helper.py faylını/etc/local/bin qovluğuna kopyalayın və əmrlə icra edilə bilən olaraq təyin edin.

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

İndi /etc/rc.local faylını sevdiyiniz redaktorla redaktə edin. (Bunu kök olaraq etməlisiniz.) Son sətirdən əvvəl (0 çıxışı) sətri daxil edin

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

Yenidən başladın və köməkçi proqramı avtomatik olaraq başlayacaq.

Tövsiyə: