İçindekiler:

Geleceğe Dönüş Saati: 8 Adım (Resimlerle)
Geleceğe Dönüş Saati: 8 Adım (Resimlerle)

Video: Geleceğe Dönüş Saati: 8 Adım (Resimlerle)

Video: Geleceğe Dönüş Saati: 8 Adım (Resimlerle)
Video: İlk Kez Göreceğiniz Erdoğan'ın Arşivlerden Kaldırılan Videosu! 2024, Kasım
Anonim
Geleceğe Dönüş Saati
Geleceğe Dönüş Saati

Bu proje hayata oğlum için bir çalar saat olarak başladı. Geleceğe Dönüş'teki zaman devresi gibi görünmesini sağladım. Ekran, saati elbette filmlerden olanlar da dahil olmak üzere çeşitli biçimlerde gösterebilir. Kasanın üst kısmındaki düğmeler aracılığıyla yapılandırılabilir, ayrıca içindeki Raspberry Pi Zero tarafından sunulan bir web sayfası aracılığıyla da yapılandırılabilir. Görüntüleme modlarından birinde yerel hava durumunu (Arduino destekli hava istasyonumdan) ve ayrıca web arayüzü aracılığıyla yapılandırılan tahmini ve günlük hatırlatıcıları gösterecektir. Ayrıca bir DAC sayesinde sesi vardır ve AirPlay protokolünü kullanarak müzik akışı sağlar. Alarm sesi, seçtiğiniz herhangi bir ses dosyası olabilir. Günün belirli saatlerinde (örneğin şafak ve alacakaranlık) ekranı otomatik olarak karartır ve aydınlatır.

Adım 1: Arka Plan

Geçen yıl, bir ev hava istasyonu olan ilk projemi yeni bitirmiş yeni bir Arduino projesi arıyordum. 11 yaşındaki oğlum Geleceğe Dönüş filmlerini ilk kez izlemişti, bu yüzden ona doğum günü için Delorean'daki zaman devresine benzeyen bir çalar saat yapmanın eğlenceli olacağını düşündüm. Bu yeni bir fikir değil, çok sayıda benzer proje var (örneğin bu), bu yüzden başkalarından öğrenmenin ve yeni beceriler edinmenin güzel bir proje olacağını düşündüm.

İlk versiyon oldukça iyi çalıştı (doğum günü için hazır değildi: Noel'de bitirdim) ama yapmak istediklerimde oldukça hırslı oldum ve eskizimin Arduino'nun hafıza limitine girmeye devam ettiğini gördüm. Ayrıca birkaç küçük harici donanım modülüne (WiFi, MP3 çalar, ses yükseltici, RTC vb.) Sonunda, donanımı basitleştiren ve çok daha fazla işlevsellik ve özellik eklememe izin veren bir Raspberry Pi platformuna geçmeye karar verdim.

Adım 2: Ana Donanım Bileşenleri

Kutunun İçinde

İşte kullandığım elektronik bileşenler. Bunların çoğu Avustralya'daki Core Electronics'in kaynaklarıydı, ancak elbette başka yerlerde de kolayca bulunabilirler:

  • 4 x Dörtlü Alfanümerik Ekran -Sarı-Yeşil
  • Ahududu Pi Sıfır W
  • Raspberry Pi Zero için Pimoroni pHAT DAC
  • Ses Amplifikatörü (PAM8403 IC)
  • Raspberry Pi 3+ güç kaynağı
  • 4 x Atlama kablosu - 0.1", 5-pin, 12"
  • 40 pinli (2 x 20) şerit kablo
  • Raspberry Pi GPIO Erkek Başlık
  • Raspberry Pi Model B - GPIO Örtülü Başlık (2X20)
  • Pi A+/B+/PI 2/PI 3 için GPIO İstifleme Başlığı - ekstra uzun 2X20
  • 4 x 5 pinli erkek başlık
  • 2 küçük 3W hoparlör
  • DAC'den Amp'ye analog ses bağlantısı için 2 x koaksiyel kablo
  • Rpi'yi bir amp, LED, düğmelere işlemek için Veraboard veya özel PCB
  • 5 x anlık basmalı düğme anahtarı
  • 4 x 2 yollu PCB'ye monte vidalı klemensler

Kutu

  • MDF'den parçalar ve parçalar, 'şasi' yapmak için vidalar ve cıvatalar
  • Yeşil renkli perspex, yerel tedarikçi
  • Yerel bir hobi dükkanından stiren, modelleme tutkalı, sprey boya (alüminyum rengi)
  • Çıkartmalar (istek üzerine dosya temin edilebilir - Redbubble tarafından basılmıştır)

Adım 3: Hepsini Bir Araya Getirmek

Hepsini bir araya koy
Hepsini bir araya koy

Saatin LED ekranı, şans eseri Geleceğe Dönüş zaman devresiyle aynı sayıda karakter olan 16x14 segmentli alfanümerik ekranlardan oluşur. Film desteğine öykünmek için yalnızca ilk üç karakterin alfanümerik olması ve geri kalanının 7 segmentli sayısal ekranlar olması gerekirken, görüntülenebileceklerde biraz esneklik sağlamak ve hepsinin göründüğü gibi kalmasını sağlamak için hepsini alfasayısal yapmaya karar verdim. aynı. Adafruit dörtlü sırt çantaları burada harika bir çözüm ve Raspberry Pi'nin I2C veriyolunda çalıştırılabilir. Bu üniteler ve bunların nasıl bağlanacağı hakkında daha fazla bilgiyi Adafruit web sitesinde bulabilirsiniz. Yapmam gereken standart olmayan tek şey, üçünün adreslerini değiştirmekti, böylece her sırt çantası benzersizdi.

Ses çalmak için (stereo olarak), Pimoroni pHAT DAC ve PAM8403 çipine dayalı 2 x 3W stereo ses yükseltici dahil ettim. pHAT DAC'nin Pi'ye bağlanması gerçekten çok kolay. Pi'ye 2 x 20 pimli erkek başlık ve DAC'ye bir GPIO istifleme başlığı yerleştirdim, böylece birbirlerinin üzerine takılabilirler. Erkek başlık pimleri, DAC'nin tepesinden geçerek, dişi konektörlü bir şerit kabloyu, başlangıçta breadboard testi için bir Raspberry Pi koparmaya, ancak nihayetinde özel yapım bir PCB üzerindeki örtülü bir başlığa çalıştırmama izin veriyor.

Ses yükseltici için birçok seçenek var (sadece çipi almak ve kendinizinkini monte etmek dahil). Bu, pinlerden birinin durumunu değiştirerek (yüksek açık, düşük kapalı) çıkışı susturma seçeneğine sahiptir ve bunu Pi'den kontrol edilebilmesi için bağladım. Bunu bağlamaya yönelik ilk girişimlerimde, ses açıkken oldukça fazla arka plan gürültüsü keşfettim. Topraklama ile çok uğraştıktan sonra, sonunda giriş besleme voltajını Pi'nin 5V'sinden 3.3V'a taşımayı denedim ve bu onu düzeltti. Sanırım etrafta uçuşan çeşitli dijital sinyaller tarafından üretilen oldukça fazla gürültü var ama 3.3V beslemesi bir şekilde izole edilmiş gibi görünüyor.

Diğer bağlantılar, DAC'den amplifikatöre giden analog sesi (burada gürültü alımını yönetmeye yardımcı olmak için koaksiyel kablo kullandım) ve kasaya uyan bir çift küçük 3W hoparlöre ses çıkışını içerir. Ayrıca kutunun üstündeki dört anlık anahtar için GPIO bağlantıları var ve donanımdan sıfırlama "RUN" pinlerine bir anlık düğme bağladım (bu sayfadaki Ek Bağlantılar bölümüne bakın). Sıfırlama düğmesi, muhafazanın arkasına görünmeyecek şekilde monte edilmiştir. İşte bağlantıları gösteren bir diyagram:

Adım 4: Özel Bir PCB

Özel Bir PCB
Özel Bir PCB

Devre hakkında çok karmaşık bir şey olmasa da, oldukça fazla kablolama var ve bir devre tahtası oldukça hızlı bir şekilde spagetti gibi görünebilir. Bu yüzden hepsini kontrol altında tutmak için bir PCB tasarladım. Ev yapımı tek taraflı bir tahta ve bunu yapmak için bir arkadaşım var. Yapıldıktan ve kablolandıktan sonra, ses için terminal blokları için bağlantıları eklemeyi unuttuğumu fark ettim ve daha sonra ses amfisi beslemesini 5V'den 3,3V'a taşımak için bir değişiklik yaptım, bu yüzden ideal değil ve üzerinde çalışmak zorunda kaldım. ses bağlantılarına izin vermek için bazı Veroboard. Ayrıca, ses amfi kartı pin çıkışları standart olmayan bir ayrımdadır (pimler arasında bile farklılık gösterirler), bu nedenle bunun ana PCB'ye bağlantısı 11 kısa ~ 1cm bağlantı kablosuyla biraz korkunçtur.

Başka bir pano yapsaydım, tüm bu değişiklikleri dahil eder ve ayrıca dört düğmenin konektörünü biraz daha güzel bir şeye değiştirirdim. DAC ve Pi en üstte yığılır, bu nedenle şerit kablo gerekmez. Yukarıdaki şema nasıl görünebileceğini göstermektedir.

Adım 5: Muhafaza

Kuşatma
Kuşatma
Kuşatma
Kuşatma
Kuşatma
Kuşatma

Film zaman devresinin bir satırına benzeyen bir muhafaza yapmak istedim. Üç sıra LED ekran bir çalar saat için çok fazla olurdu ve maliyeti önemli ölçüde artırırdı. Muhafazayı alüminyumdan yapmayı düşündüm ama o alanda hiçbir becerim yok. Yine de hayatımda epeyce plastik model yaptım ve biraz ahşap işleme deneyimim oldu, bu yüzden LED'leri ve hoparlörleri monte etmek ve perspesi öne sabitlemek için MDF kullanarak bir çerçeve yapmaya karar verdim, ardından bunu 5 taraflı bir stirenle kapladım. Alüminyum metalik sprey boya ile boyanmış, ön tarafında çerçeveli kutu. Plastik ve boya yerel bir maketçiden alındı. Film pervanesindeki etiketlere yakından baktım ve renkleri, yazı tipini ve boyutunu kopyalamak için elimden geleni yaptım. Etiketleri oluşturmak için Photoshop kullandım ve onları Redbubble'dan çıkartmalar olarak yazdırdım.

Yukarıdaki resimler şunları göstermektedir:

  1. MDF kasanın ön tarafı. 4 LED sırt çantası, yeşil renkli perspex ile ön tarafa monte edilmiştir
  2. Kutunun içinde. Tümü monte edilmiş ve sıralanmış sırt çantaları, Raspberry Pi ve özel PCB girişi, her iki tarafta hoparlörler.
  3. Kablo tesisatı kuruldu ve dış kabuk devam etmeye hazır. Biraz sıkmıştı!

Adım 6: Raspberry Pi'yi Ayarlama

Raspbian Stretch ile bazı uyumluluk sorunları yaşadım (devam edersem çözülebilirdi) ama Jessie onunla gayet iyi çalışıyor, ben de bununla gitmeye karar verdim.

Pi'yi VNC ve SSH erişimi olan başsız bir birim olarak kurdum. Bu, bir klavyeyi veya monitörü takmadan yapılabilirdi, ancak TV'yi ödünç aldım ve bir klavyeyi taradım ve oldukça hızlı bir şekilde başsız hale getirdim. O andan itibaren, hemen hemen VNC'yi kullandım.

Saat kodum Python 2.7.9 kullanıyor ve aşağıda listelenen epeyce kitaplığa dayanıyor. Bunun yanı sıra, uzaktan kumanda için bir Flask web sunucusu ve MQTT ve müzik akışı için Shairplay kullanıyorum. Bunların hepsi için sadece çevrimiçi kurulum notlarını takip ettim ve hiç sorun yaşamadım. Kurulum notlarına bağlantılar veya sadece onu elde etmek için çalıştırmanız gereken komutla birlikte yüklemem gereken python kitaplıkları ve diğer paketler vb.

Python kitaplıkları

  • Adafruit_LED_Sırt Çantası
  • Rpi. GPIO (apt-get install python-rpi.gpio)
  • ses
  • paho.mqtt.client (pip kurulumu paho-mqtt)
  • şişe (apt-get install python-flask)

Diğer paketler vb

  • sivrisinek (apt-get install sivrisinek)
  • sairport
  • Pimoroni web sitesinde DAC kurulumuyla ilgili bazı iyi belgeler var, ben de bununla koştum.

7. Adım: Yazılım

Image
Image
Yazılım
Yazılım

Saat kodu Python'da yazılmıştır ve ekran güncellemelerini engellemeden arka planda alarmı ve ara sıra bip seslerini çalmak için iş parçacığı kullanır. ConfigParser kitaplığını kullandım ve koruduğu yapılandırma dosyası, Flask web uygulamasının yanı sıra saat kodu tarafından okunur ve yazılır, böylece yapılandırma web arayüzü veya saat aracılığıyla her değiştirildiğinde, senkronize olur. Saat yazılımı ayrıca, görüntüleme modunun ve sessize almanın uzaktan kontrol edilmesini sağlamak için bir MQTT aracısı içerir. Benim asıl amacım eninde sonunda uzaktan kumanda için bir iOS uygulaması yazmak ama web arayüzü şimdilik yeterince iyi çalışıyor.

Yukarıdaki ilk resim, saatin çeşitli görüntüleme modlarında nasıl göründüğünü gösterir ve kaydırma modunda gösteren kısa bir video vardır.

Kod bakmak hoş olmasa da güzel ve kararlı. İsteyen herkese göndermekten mutluluk duyuyorum ve daha iyi organize edildiğinde ve yorum yapıldığında çevrimiçi hale getireceğim.

Web uygulaması

Bir sonraki resim, saatin web arayüzünün nasıl göründüğünü gösterir. Ayrıca yapılandırma ve kontrol sayfaları vardır ve bunlar, çok fazla düğme ezilmeden saatle oynamayı çok daha kolay hale getirir:-).

Adım 8: Sırada Ne Var?

Sırada ne var?
Sırada ne var?

Kullanılabilir bir Python shareport meta veri kod çözücüsü var, bu yüzden müzik çalınırken başlık ve sanatçı gibi bilgileri görüntülemek için bazı kodlar ekleyeceğim. Ayrıca gün doğumu ve gün batımı zamanlarını hesaplamak oldukça kolay olacaktır, böylece ekran manuel olarak ayarlamak yerine otomatik olarak aydınlatılabilir ve karartılabilir. Belki bir internet radyosu özelliği eklemek de eğlenceli olabilir. Kaydırma ekranı da daha yapılandırılabilir olabilir.

Önerilen: