Mundarija:

Kelajak soatiga qaytish: 8 qadam (rasmlar bilan)
Kelajak soatiga qaytish: 8 qadam (rasmlar bilan)

Video: Kelajak soatiga qaytish: 8 qadam (rasmlar bilan)

Video: Kelajak soatiga qaytish: 8 qadam (rasmlar bilan)
Video: #ZAPAL#12-YOSHLI QIZ USHLANDI 2024, Noyabr
Anonim
Kelajak soatiga qaytish
Kelajak soatiga qaytish

Bu loyiha hayotimni o'g'lim uchun budilnik sifatida boshladi. Men buni "Kelajakka qaytish" dan tortib to vaqt sxemasiga o'xshatdim. Displey vaqtni turli formatlarda ko'rsatishi mumkin, shu jumladan, filmlardan ham. U korpus ustidagi tugmalar orqali, shuningdek, Raspberry Pi Zero xizmat ko'rsatadigan veb -sahifa orqali sozlanishi mumkin. Displey rejimlaridan birida u mahalliy ob-havoni (mening Arduino-da ishlaydigan ob-havo stantsiyamdan), shuningdek, veb-interfeys orqali sozlangan prognoz va har kungi eslatmalarni ko'rsatadi. Shuningdek, u DAC tufayli audioga ega va AirPlay protokoli yordamida musiqani uzatadi. Signal ovozi siz tanlagan har qanday audio fayl bo'lishi mumkin. U kunning ma'lum vaqtlarida (masalan, tong va qorong'ida) displeyni avtomatik ravishda xiralashtiradi va yoritadi.

1 -qadam: Fon

O'tgan yili men birinchi Arduino loyihasini qidirgan edim, u birinchi bo'lib uy meteorologik stantsiyasini tugatdi. Mening 11 yoshli o'g'lim birinchi marta "Kelajakka qaytish" filmini birinchi marta ko'rgan edi, shuning uchun men uning tug'ilgan kuni uchun Deloriyadagi vaqt chizig'iga o'xshash budilnikni yasash qiziqarli bo'lardi, deb o'yladim. Bu yangi g'oya emas, shunga o'xshash loyihalar juda ko'p (masalan, bu), shuning uchun men boshqalardan o'rganish va yangi ko'nikmalarni egallash yaxshi loyiha bo'ladi deb o'yladim.

Birinchi versiya juda yaxshi ishladi (bu uning tug'ilgan kuniga tayyor emas edi: men buni Rojdestvoga qadar qildim), lekin men xohlagan narsamga ambiyaviylik bilan qaradim va eskizim Arduino -ning xotira chegarasida davom etayotganini ko'rdim. Menda bir nechta kichik tashqi apparat modullari bor edi (WiFi, MP3 pleer, audio kuchaytirgich, RTC va boshqalar), shuning uchun hammasi biroz qiyinlashdi. Oxir -oqibat, men Raspberry Pi platformasiga o'tishga qaror qildim, bu esa uskunani soddalashtirdi va menga ko'proq funktsionallik va xususiyatlarni to'plashga imkon berdi.

2 -qadam: asosiy apparat komponentlari

Qutining ichida

Mana, men ishlatgan elektron komponentlar. Ularning aksariyati Avstraliyadagi Core Electronics kompaniyasidan olingan manbalar edi, lekin ular boshqa joylarda ham mavjud:

  • 4 ta to'rt harfli raqamli displey -sariq -yashil
  • Raspberry Pi Zero W
  • Raspberry Pi Zero uchun Pimoroni pHAT DAC
  • Ovoz kuchaytirgichi (PAM8403 IC)
  • Raspberry Pi 3+ quvvat manbai
  • 4 x o'tish simlari - 0,1 ", 5 -pinli, 12"
  • 40 pinli (2 x 20) lenta kabeli
  • Raspberry Pi GPIO erkak sarlavhasi
  • Raspberry Pi Model B - GPIO kafanlangan sarlavhasi (2X20)
  • Pi A+/B+/PI 2/PI 3 uchun GPIO stacking header - qo'shimcha uzun 2X20
  • 4 x 5 pinli erkak sarlavhasi
  • 3 ta kichik quvvatli 2 ta dinamik
  • DAC -ning analogli audio ulanishi uchun 2 x koaksiyal kabel
  • Rpi -ni kuchaytirgich, LED, tugmachalarga o'tkazish uchun veraboard yoki maxsus PCB
  • 5 x tezkor tugmachali kalit
  • 4 x 2 tomonlama PCB bilan o'rnatiladigan vintli terminal bloklari

Quti

  • MDF qismlari va bo'laklari, vintlardek va murvatlar "shassi" yasash uchun.
  • Yashil tusli perspeks, mahalliy yetkazib beruvchi
  • Stiren, modellashtirish elimi, purkagich (alyuminiy rang) mahalliy sevimli mashg'ulot do'konidan
  • Stikerlar (fayl so'rov bo'yicha mavjud - Redbubble tomonidan chop etilgan)

3 -qadam: Hammasini bir joyga to'plash

Hammasini bir joyga to'plash
Hammasini bir joyga to'plash

Soat uchun LED displey 16x14 segmentli harfli-raqamli displeylardan iborat, xayriyatki "Kelajakka qaytish" davri bilan bir xil belgilar. Dastlabki uchta belgi harfli-raqamli bo'lishi kerak, qolganlari esa kino aksessuarlarini taqlid qilish uchun 7-segmentli raqamli displeylar bo'lishi mumkin edi, lekin men ularni hammasini alfavit-raqamli qilib ko'rsatishga qaror qildim. bir xil. Adafruit to'rtta yukxalta bu erda ajoyib echimdir va uni Raspberry Pi-ning I2C avtobusida ishlatish mumkin. Bu birliklar va ularni qanday ulash haqida qo'shimcha ma'lumotni bu erda Adafruit veb -saytida topishingiz mumkin. Biroz nostandart qilishim kerak bo'lgan yagona narsa, ularning uchtasining manzilini o'zgartirish edi, shuning uchun har bir xalta o'ziga xos edi.

Ovozni ijro etish uchun (stereo) men Pimoroni pHAT DAC va PAM8403 chipiga asoslangan 2 x 3W stereo audio kuchaytirgichni o'z ichiga oldim. PHAT DAC -ni Pi -ga ulash juda oson. Men Pi -ga 2 x 20 pinli erkak sarlavhasini va DAC -ga GPIO stacking sarlavhasini qo'ydim, shunda ular bir -birining ustiga ulanishi mumkin edi. Erkak bosh pimlari DAC-ning yuqori qismidan o'tadi, bu menga ayol konnektorli lentali kabelni ishga tushirish imkonini beradi, avvaliga Raspberry Pi-ni sinab ko'rish uchun, lekin oxir-oqibat maxsus tayyorlangan PCB-da kafan bilan qoplangan.

Ovoz kuchaytirgichi uchun ko'plab variantlar mavjud (shu jumladan chipni olish va o'zingiznikini yig'ish). Bu pimlardan birining holatini o'zgartirish orqali chiqishni o'chirish imkoniyatiga ega (yuqori yoqilgan, past o'chirilgan) va men uni Pi -dan boshqarilishi uchun uladim. Buni ulashga bo'lgan birinchi urinishimda, men audio yoqilgan paytda juda ko'p fon shovqinini topdim. Topraklama bilan ko'p o'ynaganimdan so'ng, oxir -oqibat, kirish besleme voltajini Pi -ning 5V -dan 3.3V -ga o'tkazishga harakat qildim va bu uni tuzatdi. O'ylaymanki, turli xil raqamli signallar uchib ketayotganda juda ko'p shovqin bor, lekin 3.3V manbasi qandaydir izolyatsiya qilingan ko'rinadi.

Boshqa ulanishlar DAC -dan kuchaytirgichga analog ovozni o'z ichiga oladi (men shovqinni boshqarishda yordam berish uchun bu erda koaksiyal kabeldan foydalanardim) va korpusga mos keladigan kichik 3W karnayga ovoz chiqaring. Bundan tashqari, qutining tepasida to'rt lahzali kalitlar uchun GPIO ulanishlari mavjud va men "RUN" tugmalarini qayta tiklash uchun bir lahzali tugmachani uladim (bu sahifadagi Qo'shimcha ulanishlar bo'limiga qarang). Qayta tiklash tugmasi korpusning orqa qismidagi ko'zdan g'oyib qilib o'rnatiladi. Bu erda ulanishlar ko'rsatilgan diagramma:

4 -qadam: Maxsus PCB

Maxsus PCB
Maxsus PCB

Garchi sxemada juda murakkab narsa bo'lmasa -da, simlar juda ko'p va non paneli tezda spagettiga o'xshab ketishi mumkin. Men hammasini nazorat ostida ushlab turish uchun tenglikni yaratdim. Bu uyda tayyorlanadigan bir tomonlama taxta va men uni tayyorlashda yordam beradigan do'stim bor. U o'rnatilgandan va simga ulangandan so'ng, men ovoz terminallari uchun ulanishlarni qo'shishni unutganimni tushunib etdim va keyinroq ovoz kuchaytirgichini 5V dan 3.3V ga o'tkazish uchun o'zgartirish kiritdim, shuning uchun bu ideal emas va men uni yoqishga majbur bo'ldim. Ovozli ulanishga ruxsat berish uchun ba'zi Veroboard. Bundan tashqari, audio kuchaytirgich platalari nostandart ajratilgan (ular pinlar orasida ham farq qiladi), shuning uchun asosiy PCB bilan ulanish 11 ~ 1 sm qisqa tutashuvli simlar bilan biroz dahshatli.

Agar men boshqa taxtani yasaganimda, men bu modifikatsiyalarni o'z ichiga olgan bo'lardim va to'rtta tugmachaning ulagichini biroz yaxshiroq narsaga o'zgartirardim. DAC va Pi to'g'ridan -to'g'ri tepaga joylashadi, shuning uchun lenta kabeli kerak emas. Yuqoridagi diagrammada u qanday ko'rinishi mumkinligi ko'rsatilgan.

5 -qadam: korpus

Qoplama
Qoplama
Qoplama
Qoplama
Qoplama
Qoplama

Men kino vaqt sxemasining bir qatoriga o'xshash korpus yasamoqchi edim. Uch qatorli LED displeylar budilnik uchun juda ko'p bo'lardi va narxga sezilarli darajada qo'shilgan bo'lardi. Men korpusni alyuminiydan yasash haqida o'yladim, lekin bu sohada hech qanday ko'nikmaga ega emasman. Men o'z hayotimda bir nechta plastmassa modellarni yasaganman va yog'ochni qayta ishlash tajribasiga ega bo'lganman, shuning uchun LED va karnaylarni o'rnatish uchun MDF yordamida ramka yasashga va old tomonga istiqbolni to'g'rilashga qaror qildim, so'ngra uni 5 tomonlama stirol bilan yopdim. alyuminiy metall purkagichli bo'yoq bilan bo'yalgan, old tomoni ramkali quti. Plastmassa va bo'yoq mahalliy modellar do'konidan olingan. Men kino rekvizitidagi yorliqlarni diqqat bilan ko'rib chiqdim va ranglarni, shrift turini va hajmini nusxalash uchun qo'limdan kelganini qildim. Men yorliqlarni yaratish uchun Photoshop -dan foydalandim va ularni Redbubble -dan stiker sifatida chop etdim.

Yuqoridagi rasmlar quyidagilarni ko'rsatadi:

  1. MDF korpusining old qismi. 4 ta LED-ryukzaklar old tomonga yashil rangda bo'yalgan
  2. Qutining ichida. Hamma yukxalta o'rnatilgan va tizilgan, Raspberry Pi va maxsus PCB o'rnatilgan, har ikki tomonda karnay.
  3. O'rnatilgan simlar va tashqi qobiq davom etishga tayyor. Bu biroz siqilish edi!

6 -qadam: Raspberry Pi -ni sozlash

Menda Raspbian Stretch bilan moslik bilan bog'liq ba'zi muammolar bor edi (agar davom etsam hal bo'lardi), lekin Jessi u bilan juda yaxshi ishlaydi, shuning uchun men bu bilan borishga qaror qildim.

Men Pi -ni VNC va SSH -ga kirish imkoniyati bo'lgan boshsiz birlik sifatida o'rnatdim. Buni hech qachon klaviatura yoki monitorni ulamasdan qilish mumkin edi, lekin men televizorni qarzga oldim va klaviaturani qoqib qo'ydim va tezda boshsiz qoldim. O'shandan beri men VNC -ni deyarli ishlatardim.

Mening soat kodim Python 2.7.9 dan foydalanadi va quyida keltirilgan juda ko'p kutubxonalarga tayanadi. Bundan tashqari, men Flask veb -serverini va masofadan boshqarish uchun MQTT va musiqani uzatish uchun Shairplay -ni ishga tushiraman. Men bularning barchasi uchun on-layn o'rnatish eslatmalariga amal qildim va hech qanday muammo yo'q edi. Python kutubxonalari va boshqa paketlar va hokazolarni o'rnatish eslatmalariga havolalar bilan o'rnatishim kerak edi yoki uni olish uchun ishlatish kerak bo'lgan buyruq:

Python kutubxonalari

  • Adafruit_LED_Backpack
  • Rpi. GPIO (apt-get install python-rpi.gpio)
  • alsaaudio
  • paho.mqtt.client (paho-mqtt ni o'rnatish)
  • kolba (apt-get install python-flask)

Boshqa paketlar va boshqalar

  • chivin (apt-get chivin o'rnatish)
  • shairport
  • Pimoroni veb -saytida DACni sozlash bo'yicha yaxshi hujjatlar mavjud, shuning uchun men faqat shu bilan yugurdim.

7 -qadam: dasturiy ta'minot

Image
Image
Dasturiy ta'minot
Dasturiy ta'minot

Soat kodi Python -da yozilgan va displey yangilanishlariga to'sqinlik qilmasdan, signalni va vaqti -vaqti bilan fonda uyquni ijro etish uchun ishlatilgan. Men ConfigParser kutubxonasidan foydalandim va u saqlaydigan konfiguratsiya fayli soat kodi va Flask veb -ilovasi tomonidan o'qiladi va yoziladi, shuning uchun konfiguratsiya har doim veb -interfeys yoki soat orqali o'zgartirilsa, u sinxronlanadi. Soat dasturiy ta'minoti, shuningdek, displey rejimini boshqarish va ovozni masofadan boshqarish uchun MQTT brokerini o'z ichiga oladi. Mening asosiy maqsadim, oxir -oqibat, masofadan boshqarish pulti uchun iOS ilovasini yozish, lekin veb -interfeys hozircha yaxshi ishlaydi.

Yuqoridagi birinchi rasmda soatning turli xil displey rejimlarida qanday ko'rinishi ko'rsatilgan va uni aylantirish rejimida ko'rsatadigan qisqa video bor.

Kodga qarash juda yoqimli bo'lmasa -da, u yaxshi va barqaror. Men uni so'rov yuborgan har bir kishiga yuborishdan xursandman va agar u yaxshi tashkil qilingan va sharhlangan bo'lsa, uni Internetga qo'yadi.

Veb -dastur

Keyingi rasmda soat interfeysi qanday ko'rinishini ko'rsatadi. Bundan tashqari, konfiguratsiya va boshqaruv sahifalari mavjud va ular tugmachalarni bosmasdan soat bilan o'ynashni ancha osonlashtiradi:-).

8 -qadam: Keyin nima bo'ladi?

Keyin nima?
Keyin nima?

Python shareport metadata dekoderi mavjud, shuning uchun men musiqa ijro etilganda nom va ijrochi kabi ma'lumotlarni ko'rsatish uchun kod qo'shaman deb o'ylayman. Bundan tashqari, displeyni qo'lda o'rnatish o'rniga, avtomatik ravishda yoritilishi va xiralashishi uchun quyosh chiqishi va botish vaqtini hisoblash juda oson bo'lardi. Ehtimol, Internet -radio funktsiyasini qo'shish ham qiziqarli bo'lar edi. O'tkazuvchi displey ham sozlanishi mumkin.

Tavsiya: