İçindekiler:
- Adım 1: Tasarım
- Adım 2: Nasıl Çalışır?
- 3. Adım: Bir Demo Prototip Oluşturma
- Adım 4: ATTiny85'in Programlanması
Video: Daha İyi Bir Raspberry Pi Güç Düğmesi Oluşturun: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Ahududu kapatma veya kapatma düğmesi yapmak çok kolaydır. Web'de bu tür çok sayıda proje var ve birkaçı burada Instructables'ta, ancak hiçbiri (görebildiğim kadarıyla) Pi'nizin gerçekten kapanmayı ne zaman bitirdiğini size söylemiyor ve bu nedenle gücü çekmek güvenli. Aslında, düğmeye basmanın görüldüğünü bile kabul etmiyorlar.
Kapatılan bir Pi'yi yeniden başlatmak için projeler de var, ancak bunlar size herhangi bir görsel geri bildirim de vermiyor.
Ama kimin böyle bir düğmeye ihtiyacı var? Benim gibi biraz inekseniz, hatta sadece hevesli bir inekseniz, Pi'nize her zaman yerel olarak veya ağ üzerinden giriş yapabilir ve sudo kapatma -h şimdi yazabilirsiniz. Ancak teknik bilgisi olmayan kullanıcılar için bir proje oluşturuyorsanız, bu yeterli olmayacaktır. Doğru, sadece güç kablosunu çekerek neredeyse her zaman kurtulabilirsiniz, ancak dikkat edin, neredeyse her zaman dedim! Herkesin şansı er ya da geç tükenir. Sadece geçen hafta üzerimde bir SD kart öldü, ancak bunun gerçekten ani bir güç kaybından kaynaklanıp kaynaklanmadığını asla bilemeyeceğim.
Benim durumumda, canlı bir piyanistimiz olmadığında kilisede ilahileri ve şarkıları kaydetmek ve çalmak için midi sıralayıcı olarak kullandığımız bir Pi'ye bir güç düğmesi eklemem gerekiyordu. Her zaman kapatma komutunu yazabilirim ama orada olmadığım zamanlar için yeteneğimi kaldırmam gerekiyor.
Buradaki amacım, diğer pek çok Eğitilebilir Kitap gibi size güzel 3D baskılı kılıfla tamamlanmış bitmiş bir ürün vermek değil. Herkes bunun için farklı bir kullanıma sahip olacak veya kendi projesine dahil etmek isteyecektir. Bunun yerine, ister medya merkezi, ister IoT cihazı veya başka bir şey olsun, projenize ekleyebileceğiniz teknolojiyi ayarlayacağım.
(Videoda bir Pi Zero v1.2 ve yeniden tasarlanmış bir dizüstü bilgisayar ekranından yaptığım bir monitör ve Uzak Doğu'dan bir kontrol cihazı ile gösteriyorum.)
Adım 1: Tasarım
Güç düğmemin sizin için yapacağı şey bu:
- Pi çalışırken, bir LED sürekli yanar. Manuel olarak kapatılırsa, LED yalnızca gücün fişini çekmek güvenli olduğunda söner.
- Çalışırken, düğmeye en az bir saniye basarsanız, bir kapatma başlatılır ve LED, gücün fişini çekmek güvenli olana kadar saniyede çeyrek saniye boyunca yanıp söner.
- Kapatma durumundan (güç kesilmemişse), düğmeye basmak önyüklemeyi başlatır ve açılana kadar LED'i her saniye çeyrek saniye boyunca yanıp söner. (Ssh ve vnc gibi tüm servislerin çalışması biraz daha uzun sürebilir.)
Bileşenler çok ucuz. Tum ihtiyacin olan sey:
- ATTiny85 (Arduino uyumlu çip)
- 3 direnç: 2 x 330Ω ve 1 x 10kΩ
- 1 LED - Yeşil veya mavi öneririm, ancak bu sizin seçiminiz
- breadboard ve jumper kabloları veya stripboard veya nasıl inşa etmek istiyorsanız.
Adım 2: Nasıl Çalışır?
Tüm Pi güç düğmelerinde olduğu gibi, bu, Pi üzerinde çalışan bir yardımcı programa kapatma isteğini bildirmek için bir GPIO pinini düşük bir duruma çeker. GPIO4 (pin 7) kullandım ama başka bir pin kullanabilirsiniz.
Bir Pi'nin kapanmayı tamamladığını söylemenin tek yolu, daha sonra azalan TxD pin 8'i izlemektir. Bu, varsayılan olarak etkinleştirilen seri konsola bağlıdır. Aslında, seri konsol olarak kullanıldığında TxD düzenli olarak yukarı ve aşağı gidecektir, ancak en düşük genel baud hızında bile bir seferde 30mS'den fazla asla düşmeyecektir. Sadece pasif olarak izlediğimiz için seri konsol için hala kullanılabilir.
Yeniden başlatmak için kısaca SCL1'i (pin 5) aşağı çekmemiz gerekiyor. Bu pin herhangi bir I2C cihazı tarafından kullanılır (midi arayüzüm dahil), ancak önyüklemeyi başlattıktan sonra onu kendi haline bırakıyoruz.
Karmaşıklığın çoğu, ATTiny85'e yüklediğimiz Arduino çiziminde. Bu, bir "durum makinesi" uygular - bir dizi "durum" tarafından temsil edilebilecek herhangi bir sorunu kodlamanın çok kullanışlı ve güçlü bir yolu. Bir çamaşır makinesi de aynı şekilde çalışır. Durumlar, yıkama döngüsündeki aşamaları temsil eder ve her biri, makinenin o noktada ne yapması gerektiğini (çalışacak motorlar veya pompalar, açılacak veya kapatılacak vanalar) ve hangi sensör girişlerini (sıcaklık, su seviyesi, zamanlayıcılar) tanımlar. bir sonraki duruma ne zaman geçileceğini ve hangi sonraki durumun seçileceğini belirleyin.
El çizimi, tüm durum geçişlerini gösteren bir durum diyagramının ilk taslağıdır. Bu sadece durumlarınızı ve durum geçişlerinizi başlangıçta nasıl planlayabileceğinizi göstermek içindir - hata ayıklamaya başlamadan önceki kadar tam olarak doğru olmayabilir.
Bizim durumumuzda KAPALI, AÇMA TALEP, BAŞLATMA, ÇALIŞIYOR, KAPATMA İSTEĞİ ve KAPATMA olarak adlandırdığım 6 durumumuz var. (KAPATMA işleminden sonra tekrar KAPALI konuma geçer.) Bunlar taslaktaki yorumlarla tanımlanır ve her biri için daha fazla yorum, ne yapması gerektiğini ve hangi olayların onu başka bir duruma taşıyacağını söyler.
Pi üzerinde çalışan yardımcı program, çoğu kapatma düğmesinden biraz daha karmaşıktır. Bir kapatma başlatarak GPIO pinindeki uzun bir düşük darbeye yanıt verir, ancak aynı zamanda kısa bir darbeye de GPIO pimini kısaca aşağı çekerek yanıt verir. ATTiny85'in çalıştığını bu şekilde anlayabilir ve böylece BAŞLATMA durumundan ÇALIŞIYOR durumuna geçebilir.
3. Adım: Bir Demo Prototip Oluşturma
Gösteri amacıyla, gösterildiği gibi lehimsiz bir devre tahtası üzerinde prototipini oluşturabilirsiniz, ancak şemayı da verdim, böylece şerit tahtası veya özel bir PCB kullanarak, belki daha geniş bir projenin parçası olarak kendi düzeninizi oluşturabilirsiniz.
Adım 4: ATTiny85'in Programlanması
Arduino taslağı ve yardımcı program bu adıma eklenmiştir. Arduino eskiz klasörünüzde PiPwr adlı bir klasör oluşturun ve PiPwr.ino dosyasını içine kopyalayın. Arduino IDE'yi başlattığınızda, onu artık eskiz defterinizde bulacaksınız.
Bir ATTiny85'i programlamanın birkaç yolu vardır. Sizinkinde bir önyükleyici kuruluysa, yalnızca birkaç sterline mal olan bir ATTiny85 geliştirme kartı kullanabilirsiniz. Bu, bir USB bağlantı noktası aracılığıyla PC'nize bağlanır. Temelde aynı olan ancak prototipleme alanı olan bir Hidiot kullandım.
Arduino IDE'de Dosya - Tercihler altında, ekleyin
digistump.com/package_digistump_index.json
Ek pano yöneticisi URL'lerine.
Araçlar - Pano altında şimdi bir dizi Digispark seçeneği görmelisiniz. Digispark'ı seçin (Varsayılan - 16.5MHz).
ATTiny85'inizin bir önyükleyicisi yoksa (veya bilmiyorsanız), birkaç pound için bir AVR ISP programcısı alabilirsiniz. Veya programlayıcı olarak Arduino Uno veya daha ucuz Pro Mini veya Nano kullanabilirsiniz. Talimatlar için "arduino as isp attiny85" (tırnak işaretleri olmadan) için Google.
Krokiyi değiştirmek isterseniz, tamamen yorumlandığını ve takip edilmesinin kolay olduğunu umarsınız. Hata ayıklama için Arduino Pro Mini veya Nano kullanmak çok daha kolaydır. Seri monitörü kullanarak geçtiği adımları görmek için Setup'ta serial.begin() öğesini ve loop() içindeki print deyimlerini kaldırın. Kaynakta bir Uno, Pro Mini veya Nano için yorumlanmış alternatif pin tanımları vardır.
Raspberry Pi'nizde, shutdown_helper.py dosyasını /etc/local/bin klasörüne kopyalayın ve komutla yürütülebilir olarak ayarlayın
sudo chmod +x /usr/local/bin/shutdown_helper.py
Şimdi /etc/rc.local dosyasını favori düzenleyicinizle düzenleyin. (Bunu root olarak yapmanız gerekecektir.) Son satırdan (0'dan çıkış) önce satırı ekleyin
nohup /usr/local/bin/shutdown_helper.py &
Yeniden başlatın ve yardımcı program otomatik olarak başlayacaktır.
Önerilen:
Daha Az Alanda Daha Fazla Marul Yetiştirmek Veya Uzayda Marul Yetiştirmek, (Daha Fazla veya Daha Az).: 10 Adım
Daha Az Alanda Daha Fazla Marul Yetiştirmek Veya… Uzayda Büyüyen Marul, (Daha Fazla veya Daha Az).: Bu, Instructables aracılığıyla gönderilen Growing Beyond Earth, Maker Yarışması'na profesyonel bir başvurudur. Uzay mahsulü üretimi için tasarım yapmaktan ve ilk Instructable'ımı göndermekten daha fazla heyecanlanamazdım. Başlamak için yarışma bizden
Yarım Saatten Daha Kısa Bir Sürede Bir Raspberry Pi ve bir RTL-SDR Dongle Kullanarak Yalnızca APRS RX Amatör Radyosu Oluşturun: 5 Adım
Bir Amatör Radyo APRS RX Sadece Yarım Saatten Daha Kısa Bir Sürede Bir Raspberry Pi ve bir RTL-SDR Dongle Kullanarak Igate Yapın: Lütfen bunun artık oldukça eski olduğunu, dolayısıyla bazı bölümlerin yanlış ve güncelliğini yitirdiğini unutmayın. Düzenlemeniz gereken dosyalar değişti. Size görüntünün en son sürümünü vermek için bağlantıyı güncelledim (lütfen sıkıştırmayı açmak için 7-zip kullanın) ancak tam bilgi için
Ücretsiz Olarak Daha İyi Bir Vista Oluşturun.: 3 Adım
Ücretsiz Olarak Daha İyi Bir Vista Oluşturun.: Ücretsiz olarak daha iyi bir Vista nasıl oluşturulur. Birçok kişi, mevcut Windows XP (TM) makinelerini Vista'ya (TM) güncelleyerek ciddi sorunlar bildirdi. Yepyeni makinelerde bile. Örneğin bakın: http://www.youtube.com/watch?v=FVbf9tOGwnoO kadar çok insan planladı ki
GÜNCELLENMİŞ !!!! Kağıt Antenlerden Daha İyi ve Daha Hızlı Ucuz ve Kolay WIFI Anten Sinyal Güçlendirici !!!: 9 Adım
GÜNCELLENMİŞ !!!! Kağıt Antenlerden Daha İyi ve Daha Hızlı, Ucuz ve Kolay WIFI Anten Sinyal Güçlendirici !!!: WIFI sinyalinizi geliştirmek için eski bir fikir üzerinde yeni bir dönüş
Daha İyi Bir Dizüstü Bilgisayar Güç Kablosu: 14 Adım
Daha İyi Bir Dizüstü Bilgisayar Güç Kablosu: Dizüstü bilgisayarınızı 300'den fazla koltuklu ve bir çıkışlı konferans salonlarında kullanmaktan veya çıkışların yanındaki tüm koltuklar doluyken kullanmaktan bıktınız mı? (ve dizüstü bilgisayarınızı önceden şarj edemeyecek kadar tembelsiniz) Güç kablonuzu 25 fite kadar uzatabilir ve ekleyebilirsiniz