Mündəricat:
- Addım 1: Arxa plan
- Addım 2: Əsas Avadanlıq Komponentləri
- Addım 3: Hamısını bir araya gətirmək
- Addım 4: Xüsusi bir PCB
- Addım 5: Kassa
- Addım 6: Raspberry Pi qurmaq
- Addım 7: Proqram təminatı
- Addım 8: Sonra nə olacaq?
Video: Gələcəyə Saat: 8 Adım (Şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Bu layihə həyatı oğlum üçün zəngli saat kimi başladı. Geri Gələcəyə qədər olan vaxt dövrəsinə bənzətdim. Ekranda, əlbəttə ki, filmlər də daxil olmaqla, müxtəlif formatlarda vaxt göstərilə bilər. Kassanın üstündəki düymələr vasitəsilə, həm də içərisində Raspberry Pi Zero tərəfindən təqdim olunan bir veb səhifəsi ilə konfiqurasiya edilə bilər. Ekran rejimlərindən birində yerli hava şəraiti (Arduino ilə işləyən hava stansiyamdan), habelə veb interfeysi ilə konfiqurasiya edilmiş proqnoz və gündəlik xatırlatmaları göstərəcək. Ayrıca bir DAC sayəsində səsə malikdir və AirPlay protokolundan istifadə edərək musiqini yayımlayacaq. Zəngli səs seçdiyiniz hər hansı bir audio fayl ola bilər. Günün müəyyən vaxtlarında (məsələn, şəfəq və axşam) ekranı avtomatik olaraq qaraldır və işıqlandırır.
Addım 1: Arxa plan
Keçən il ilk dəfə ev hava stansiyasını bitirib yeni bir Arduino layihəsi axtarırdım. 11 yaşlı oğlum ilk dəfə "Gələcəyə Geri" filmlərinə baxmışdı, ona görə də doğum günü üçün Delorean dövrünə bənzəyən bir zəngli saat qurmağın əyləncəli olacağını düşündüm. Bu yeni bir fikir deyil, bir çox oxşar layihələr var (məsələn, bu), buna görə başqalarından öyrənmək və yeni bacarıqlar əldə etmək gözəl bir layihə olacağını düşündüm.
İlk versiya olduqca yaxşı işləyirdi (doğum gününə hazır deyildi: Miladda bunu etdim), amma istədiklərimdə olduqca iddialı oldum və eskizimin Arduinonun yaddaş həddinə daxil olduğunu gördüm. Bir neçə kiçik xarici hardware modullarım da vardı (WiFi, MP3 pleyer, səs gücləndirici, RTC və s.) Sonda, aparatı asanlaşdıran və daha çox funksionallıq və xüsusiyyət yığmağa imkan verən bir Raspberry Pi platformasına keçmək qərarına gəldim.
Addım 2: Əsas Avadanlıq Komponentləri
Qutunun İçində
İşdə istifadə etdiyim elektron komponentlər. Əksəriyyəti Avstraliyadakı Core Electronics -dən qaynaqlar idi, lakin əlbəttə ki, başqa yerlərdə də mövcuddur:
- 4 x Dörd Alfasayısal Ekran -Sarı -Yaşıl
- Raspberry Pi Zero W
- Raspberry Pi Zero üçün Pimoroni pHAT DAC
- Audio Amp (PAM8403 IC)
- Raspberry Pi 3+ enerji təchizatı
- 4 x Jumper teli - 0,1 ", 5 pinli, 12"
- 40 pinli (2 x 20) lent kabeli
- Raspberry Pi GPIO Kişi Başlığı
- Raspberry Pi Model B - GPIO Kəfənli Başlıq (2X20)
- Pi A+/B+/PI 2/PI 3 üçün GPIO yığma başlığı - əlavə uzun 2X20
- 4 x 5 pinli kişi başlığı
- 2 kiçik 3W dinamik
- DAC -dan Amp -ə analog səs bağlantısı üçün 2 x koaksiyal kabel
- Verpi taxtası və ya xüsusi bir PCB, Rpi -ni bir amp, LED, düymələrlə idarə edir
- 5 x ani düymə açarı
- 4 x 2-tərəfli PCB-də quraşdırıla bilən vintli terminal blokları
Qutu
- MDF parçaları və parçaları, 'şassi' etmək üçün vintlər və boltlar
- Yaşıl rəngli perspeks, yerli təchizatçı
- Stiren, modelləşdirici yapışqan, sprey boyası (alüminium rəngli) yerli bir hobbi mağazasından
-
Etiketlər (fayl istəyə görə mövcuddur - Redbubble tərəfindən çap olunub)
Addım 3: Hamısını bir araya gətirmək
Saat üçün LED displey, 16x14 seqmentli alfasayısal displeylərdən ibarətdir, xoşbəxtlikdən Gələcəyə Geri dönmə dövrəsi ilə eyni sayda simvol. Yalnız ilk üç simvolun alfasayısal olması lazım olsa da, qalanları filmin hissəsini təqlid etmək üçün 7 seqmentli rəqəmsal displeylər ola bilsə də, nümayiş oluna bilən bir şeyə imkan vermək və hamısının görünməsini təmin etmək üçün hamısını alfasayısal etmək qərarına gəldim. eyni. Adafruit dörd sırt çantaları burada əla bir həlldir və Raspberry Pi-nin I2C avtobusunda işlədilə bilər. Bu qurğular və onları necə bağlamaq barədə daha çox məlumatı Adafruit saytında tapa bilərsiniz. Etməli olduğum yeganə standart olmayan şey, hər birinin sırt çantasının bənzərsiz olması üçün üçünün ünvanını dəyişdirmək idi.
Səs çalmaq üçün (stereoda), Pimoroni pHAT DAC və PAM8403 çipinə əsaslanan 2 x 3W stereo səs gücləndiricisini daxil etdim. PHAT DAC -ı Pi -yə bağlamaq həqiqətən asandır. Pi üzərində 2 x 20 pinli kişi başlığı və DAC -da bir GPIO yığma başlığı qoydum ki, bir -birinin üstünə bağlansınlar. Kişi başlıq pinləri, DAC-ın yuxarı hissəsindən keçir və qadın bağlayıcıları olan bir lent kabelini işə salmağa imkan verir, əvvəlcə çörək taxtası testi üçün bir Raspberry Pi qırılmasına, sonda isə xüsusi hazırlanmış bir PCB üzərində kəfənlənmiş başlığa.
Səs gücləndiricisi üçün bir çox seçim var (yalnız çip əldə etmək və özünüzü yığmaq da daxil olmaqla). Bu, pinlərdən birinin vəziyyətini dəyişdirərək (yüksəkdir, alçaqdır) çıxışı söndürmək imkanına malikdir və bunu Pi -dən idarə etmək üçün bağladım. Bunu bağlamaq üçün ilk cəhdlərimdə səs açılanda çoxlu arxa plan səsləri aşkar etdim. Torpaqlama ilə çox oynadıqdan sonra, nəticədə Pi -nin 5V -dan giriş təchizatı gərginliyini 3.3V -ə köçürməyə çalışdım və bu da onu düzəltdi. Düşünürəm ki, ətrafa uçan müxtəlif rəqəmsal siqnalların yaratdığı çoxlu səs -küy var, amma 3.3V təchizatı birtəhər təcrid olunmuş görünür.
Digər əlaqələr arasında DAC -dan gücləndiriciyə olan analog səs (səs -küyün idarə edilməsinə kömək etmək üçün burada koaksiyal kabel istifadə etdim) və korpusa uyğun olan kiçik 3W dinamiklərə bir cüt səs çıxışı daxildir. Qutunun üstündəki dörd ani açar üçün GPIO bağlantıları da var və "RUN" sabit sıfırlama pinlərinə bir anlıq düymə bağladım (bu səhifədəki Əlavə Əlaqələr bölməsinə baxın). Sıfırlama düyməsi korpusun arxasındakı gözdən kənarda quraşdırılmışdır. Bağlantıları göstərən bir diaqram:
Addım 4: Xüsusi bir PCB
Dövrdə çox mürəkkəb bir şey olmasa da, bir az tel var və bir çörək taxtası olduqca tez spagetti kimi görünə bilər. Buna görə hamısını nəzarət altında saxlamaq üçün bir PCB hazırladım. Evdə hazırlanan tək tərəfli lövhədir və bunu etməyə kömək edəcək bir dostum var. Hazırlandıqdan və tel bağlandıqdan sonra, səs üçün terminal blokları üçün əlaqələri daxil etməyi unutduğumu başa düşdüm və daha sonra audio amp təchizatını 5V -dan 3.3V -ə köçürmək üçün bir dəyişiklik etdim, buna görə də ideal deyil və davam etməli oldum səs əlaqələrinə icazə vermək üçün bəzi Veroboard. Ayrıca, səs gücləndirici lövhə pinoutları standart olmayan bir ayrılıqdadır (hətta sancaqlar arasında da fərqlənir), buna görə əsas PCB ilə əlaqəsi 11 qısa ~ 1 sm-lik əlaqə telləri ilə bir az qorxuncdur.
Başqa bir lövhə düzəltsəydim, bütün bu dəyişiklikləri daxil edərdim və dörd düymənin konnektorunu bir az daha gözəl bir şeyə dəyişərdim. DAC və Pi düz üstə yığılacaq, buna görə lent kabelinə ehtiyac yoxdur. Yuxarıdakı diaqram onun necə görünə biləcəyini göstərir.
Addım 5: Kassa
Filmin vaxt dövrəsinin bir sırasına bənzəyən bir qəfəs düzəltmək istədim. Üç sıra LED ekranlar zəngli saat üçün çox olardı və xərclərə əhəmiyyətli dərəcədə əlavə edərdi. Korpusu alüminiumdan düzəltməyi düşündüm, amma bu sahədə heç bir bacarığım yoxdur. Həyatımda bir neçə plastik model hazırladım və ağac emalı təcrübəm var, buna görə LEDləri və dinamikləri quraşdırmaq və perspektivi ön tərəfə düzəltmək üçün MDF istifadə edərək bir çərçivə düzəltmək qərarına gəldim, sonra 5 tərəfli stirol ilə örtün. alüminium metal sprey boya ilə boyanmış, ön tərəfi çərçivəli qutu. Plastik və boya yerli bir model mağazasından alındı. Filmin üzərindəki etiketlərə yaxından baxdım və rəngləri, yazı tipini və ölçüsünü kopyalamaq üçün əlimdən gələni etdim. Etiketləri yaratmaq üçün Photoshop -dan istifadə etdim və Redbubble -dan etiket kimi çap etdim.
Yuxarıdakı şəkillər göstərir:
- MDF şassisinin ön tərəfi. 4 LED sırt çantası yaşıl rəngli perspektivlə ön tərəfə quraşdırılmışdır
- Qutunun içərisində. Sırt çantaları hamısı quraşdırılıb və düzülüb, Raspberry Pi və xüsusi PCB, hər iki tərəfdə dinamiklər.
- Kabel quraşdırılıb və xarici qabıq davam etməyə hazırdır. Bir az sıxışdırmaq idi!
Addım 6: Raspberry Pi qurmaq
Raspbian Stretch ilə uyğunluq problemim var idi (əgər davam etsəydim həll oluna bilərdi), amma Jessie yaxşı işləyir, buna görə də onunla getməyə qərar verdim.
Pi -ni VNC və SSH girişi olan başsız bir qurğu olaraq qurdum. Bu heç bir klaviatura və ya monitör bağlamadan edilə bilərdi, ancaq televizoru götürüb klaviaturaya baxdım və çox tez başsız qaldım. O vaxtdan bəri VNC -dən çox istifadə etdim.
Saat kodum Python 2.7.9 istifadə edir və aşağıda sadalanan bir çox kitabxanaya əsaslanır. Bununla yanaşı, uzaqdan idarəetmə üçün Flask veb serveri və MQTT və musiqi axını üçün Shairplay işləyirəm. Bütün bunlar üçün on-line quraşdırma qeydlərinə əməl etdim və heç bir problemim yox idi. Budur quraşdırma qeydlərinə bağlantılar və ya əldə etmək üçün işləməyiniz lazım olan əmr ilə yükləməyim lazım olan python kitabxanaları və digər paketlər və s.
Python kitabxanaları
- Adafruit_LED_Backpack
- Rpi. GPIO (apt-get install python-rpi.gpio)
- alsaudio
- paho.mqtt.client (paho-mqtt quraşdırın)
- balon (apt-get install python-flask)
Digər paketlər və s
- ağcaqanad (ağcaqanad apt-get quraşdır)
- şairport
- Pimoroni veb saytında DAC qurmaqla bağlı bəzi yaxşı sənədlər var, buna görə də onunla qaçdım.
Addım 7: Proqram təminatı
Saat kodu Python -da yazılmışdır və ekran yeniləmələrini maneə törətmədən həyəcan siqnalı və bəzən arxa planda oyanmaq üçün iş parçacığı istifadə edir. ConfigParser kitabxanasından istifadə etdim və saxladığı konfiqurasiya faylı saat kodu və Flask veb tətbiqi ilə oxunur və yazılır ki, konfiqurasiya veb interfeysi və ya saat vasitəsilə hər dəfə dəyişdirilsin, sinxronizasiya olunsun. Saat proqramına, həmçinin ekran rejiminin idarə olunmasına və səssizliyin uzaqdan idarə olunmasına imkan verən bir MQTT broker daxildir. Mənim əsas məqsədim, nəticədə uzaqdan idarəetmə üçün bir iOS tətbiqi yazmaqdır, lakin veb interfeysi indiyə qədər kifayət qədər yaxşı işləyir.
Yuxarıdakı ilk şəkil, saatın müxtəlif ekran rejimlərində necə göründüyünü göstərir və onu sürüşmə rejimində göstərən qısa bir video var.
Kod baxmaq gözəl olmasa da, gözəl və sabitdir. İstəyən hər kəsə göndərməkdən məmnunam və daha yaxşı təşkil edildikdə və şərh edildikdə onlayn olaraq qoyacaq.
Veb proqramı
Növbəti görüntü, saatın veb interfeysinin necə göründüyünü göstərir. Konfiqurasiya və nəzarət səhifələri də var və bunlar bir çox düymə sıxmadan saatla oynamağı asanlaşdırır:-).
Addım 8: Sonra nə olacaq?
Bir Python paylaşım metadata dekoderi mövcuddur, buna görə musiqi çalınarkən başlıq və sənətçi kimi məlumatları göstərmək üçün bir kod əlavə edəcəyimi düşünürəm. Günəşin doğuşu və qürub vaxtlarını hesablamaq da asan olardı ki, ekranı əl ilə qurmaq əvəzinə avtomatik olaraq işıqlandırılsın və qaralsın. Bəlkə də bir internet radio xüsusiyyətini əlavə etmək çox əyləncəli olardı. Sürüşən ekran daha konfiqurasiya edilə bilər.
Tövsiyə:
Gələcəyə Geri çəkilmə əleyhinə su damlası - Seeeduino Lotus: 5 addım
Gələcəyə Geri çəkilmə əleyhinə su damlası - Seeeduino Lotus: StoryTime, insanları irəli aparan bir sel kimidir. Sakit durmaq və ya geriyə getmək üçün vaxt istədiyiniz bir an varmı? Su damlasına diqqətlə baxın. Damlayır, yoxsa yuxarı qalxır? Əsər vizual fars fenomenindən ilhamlanır
Ağıllı Zəngli Saat: Raspberry Pi ilə Ağıllı Zəngli Saat: 10 addım (şəkillərlə)
Ağıllı Zəngli Saat: Raspberry Pi ilə Ağıllı Zəngli Saat: Heç ağıllı bir saat istəmisinizmi? Əgər belədirsə, bu sizin üçün bir həlldir! Ağıllı Zəngli Saat hazırladım, bu veb saytına görə zəngli saatını dəyişə biləcəyiniz bir saatdır. Siqnal çalınanda bir səs (zil) olacaq və 2 işıq yanacaq
C51 4 Bit Elektron Saat - Taxta Saat: 15 Addım (Şəkillərlə)
C51 4 Bit Elektron Saat - Taxta Saat: Bu həftə sonu bir az boş vaxtım oldu, buna görə də bir müddət əvvəl AliExpress -dən aldığım 2.40 dollarlıq 4 bitlik elektron elektron rəqəmsal saatı yığdım
3D Gələcəyə Geri Çəkilmiş TIme Dövrə Saatı: 71 Addım (Şəkillərlə)
3D Gələcəyə Geri Çəkilmiş Dövrə Saatı: Ön sol LED.stl faylı səhv idi və yeniləndi. Zaman dövrə saatı LED displeylər vasitəsilə aşağıdakıları göstərəcəkdir. Təyinat vaxtı - (Üst-Qırmızı) Təyinat vaxtı, sabit bir tarix və saatı göstərən bir sahədir. Bunu istifadə edin
Ən son MacOS/Hackintosh High Sierra 10.13 Usb Wifi Sürücüsü Raspberry Pi istifadə edərək "Gələcəyə Dəqiq" Həll: 4 Addım
Ən son MacOS/Hackintosh High Sierra 10.13 Usb Wifi Sürücüsü "Gələcəkdə sübut" Raspberry Pi istifadə edərək həll edir: Ən son macOS/Hackintosh -un ən sinir bozucu problemlərindən biri usb wifi sürücüsünün mövcudluğudur. 3 wifi usb olmayan ən sonda işləyir macOS High Sierra 10.13 Ən son usb wifi panda simsizdir, lakin macO üçün sürücü dəstəyi