Mundarija:

Joylashuvga asoslangan ko'p funktsiyali kubikli soat: 5 qadam (rasmlar bilan)
Joylashuvga asoslangan ko'p funktsiyali kubikli soat: 5 qadam (rasmlar bilan)

Video: Joylashuvga asoslangan ko'p funktsiyali kubikli soat: 5 qadam (rasmlar bilan)

Video: Joylashuvga asoslangan ko'p funktsiyali kubikli soat: 5 qadam (rasmlar bilan)
Video: Onlayn Tarix darslari | O‘zbekistonda madaniyat va san'at | 29-dars 2024, Iyul
Anonim
Image
Image
Pozitsiyaga asoslangan ko'p funktsiyali kubikli soat
Pozitsiyaga asoslangan ko'p funktsiyali kubikli soat
Joylashuvga asoslangan ko'p funktsiyali kubikli soat
Joylashuvga asoslangan ko'p funktsiyali kubikli soat

Fusion 360 loyihalari »

Bu Arduino -ga asoslangan OLED -displeyli soat bo'lib, u sana bilan soat, uxlash taymeri va tungi yorug'lik vazifasini bajaradi. Turli xil "funktsiyalar" akselerometr yordamida boshqariladi va kubik soatni aylantirish orqali tanlanadi.

Men yangi tungi soatni xohlardim, lekin men ishlatmaydigan juda ko'p funktsiyali soatga pul sarflashni xohlamadim. Qolaversa, men hozir yig'ilayotgan komponentlar va datchiklarni yig'ardim, shuning uchun ulardan o'z soatlarimni yasashga qaror qildim!

Men bu loyihada bir nechta maqsadlarim bor edi:

  1. Vaqtni o'chirish imkoniyati bilan ko'rsatish
  2. Tungi yorug'lik funktsiyasini qo'shing
  3. 15 daqiqali uyqu taymerini signal bilan kiriting
  4. Sanani ko'rsatish imkoniyatiga ega bo'ling

Ta'minotlar

  • Arduino Pro Mini 5V
  • ADXL335 3 o'qli akselerometr
  • DS3231 AT24C32 IIC aniqligi Haqiqiy vaqt
  • Mini dinamik
  • OLED displey SSD1306 IIC 0,96 dyuym
  • 5V doimiy quvvat manbai
  • LED x 2
  • Rezistorlar 220 ohm x 2
  • DC barreli uyasi
  • Tel
  • Asboblar

    • Tel kesgichlar/striptizchilar
    • Lehimlash temir/lehim
    • 3D printer (ixtiyoriy)
    • Pro mini va Arduino IDE o'rtasidagi interfeys uchun FTDI dasturchisi

1 -qadam: prototip va sxemani sinovdan o'tkazish

Prototip va davrani sinovdan o'tkazish
Prototip va davrani sinovdan o'tkazish
Prototip va davrani sinovdan o'tkazish
Prototip va davrani sinovdan o'tkazish
Prototip va davrani sinovdan o'tkazish
Prototip va davrani sinovdan o'tkazish

Komponentlarni Arduino -ga ulang. Non paneli sxemasi yoki sxemasi yuqorida ko'rsatilgan. RTC va OLED Arduino bilan aloqa qilish uchun A2 va A5 pinlaridan foydalanish uchun I2C protokolidan foydalanadi. Akselerometrda 3 ta analog pin ishlatiladi. Men A0, A1, A2 ishlatardim, LEDlar va Piezo har qanday raqamli pinlardan foydalanishi mumkin, men mos ravishda 4 va 8 ni ishlatardim.

Har bir komponent bilan interfeys. Har bir komponent bilan ishlash uchun ba'zi Arduino kutubxonalarini o'rnatishim kerak edi. Ular yuqoridagi rasmda ko'rsatilgan.

Arduino IDE yordamida kod. Men har bir kutubxona tomonidan taqdim etilgan ba'zi bir eskizlarni ko'rib chiqdim va men xohlagan narsalarga asoslanib, har bir komponent uchun to'g'ri sintaksisni aniqladim. Men har bir komponentni alohida -alohida sinab ko'rish uchun eskiz ishlab chiqdim. Ular quyida keltirilgan. Men piezo karnaydan boshladim, chunki bu eng oson. Bu maxsus kutubxonaga muhtoj emas edi, faqat chastota va tovushni belgilaydigan maxsus funksiya. LEDlarni ishga tushirish uchun raqamli pimlardan birini yuqori va pastdan tortib olish kifoya. Keyin men OLED -ga o'tdim va uni sozlash juda oddiy edi. Quyidagi eskiz - bu ko'rsatilishi mumkin bo'lgan barcha animatsiyalar/matnlardan o'tuvchi Adafruit demosi. Keyin, men RTCni ishga tushirishga harakat qildim. Men taqdim etgan eskiz kutubxonadagi misolning bir qismi bo'lib, u joriy vaqtni oladi va uni ketma -ket monitorga chiqaradi. Nihoyat, men akselerometrni sinab ko'rish uchun berilgan misoldan foydalandim. Har bir o'qning chiqishlari ketma -ket monitorda chop etiladi.

Endi hamma narsani birlashtirish vaqti keldi!

2 -qadam: Asosiy dastur

Asosiy dastur
Asosiy dastur
Asosiy dastur
Asosiy dastur

Endi men hamma narsa yakka tartibda ishlashini bilsam, men hamma narsani birlashtiradigan dasturni ishlab chiqa olaman. Men quyida dasturni yozish jarayonini muhokama qilaman, lekin o'z loyihangizda foydalanish uchun quyidagi kodni to'liq yuklab olishingiz mumkin. Men kodni o'zingiz ko'rishingiz uchun aniq izohlar qoldirishga harakat qildim.

Men vaqt va sanani OLED -da ko'rsatishim kerak edi, bu juda oddiy. Men ketma -ket monitor o'rniga joriy vaqtni ekranga chiqarishim kerak edi. 24 o'rniga 12 soatlik formatni ko'rsatish va 0 -ni kerakli joyga qo'shish/o'chirish uchun hisobga olishim kerak bo'lgan bir nechta formatlash ishlari bor edi. Sanada oy va kunni ekranda chizilgan to'rtburchaklar ichida ko'rsatish qo'shilgan. Taymerni yaratish va tsikl tugagandan so'ng piezoni o'chirish uchun ichki o'rnatilgan loopdan foydalanardim. Men Adafruit demosidan olingan asosiy animatsiya bo'lgan ovozli signal o'chib ketayotganida ekranni miltillashga qaror qildim. Men kubni soat holatiga qaytarishga qaror qildim. Nihoyat, men ekranni o'chirish usulini xohladim, bu faqat displeyni tozalash orqali amalga oshirildi. Menga akselerometrning chiqishlari asosida ishlash uchun bu funktsiyalarning barchasi kerak edi. Men har bir funktsiyani bajarishni xohlagan har bir pozitsiyaning eksa koordinatalarini aniqlash uchun Accel_Test skriptidan foydalandim. Men akselerometr chipini qo'lda siljitdim va o'qishni ketma -ket monitorga yozdim. Yuqoridagi diagramma GRAYdagi har bir pozitsiyaning chiqish koordinatalarini beradi. Qizil rangdagi koordinatalar har bir pozitsiya orasidagi chegaradir va men bu raqamlarni o'z dasturim uchun ishlatganman. 4 displey holatida faqat X va Y o'qlari koordinatalari kerak. Tungi yorug'lik uchun beshinchi pozitsiyada Z o'qi ishlatiladi. Men har bir funktsional blokdan oldin akselerometr pozitsiyalari uchun oddiy IF so'zlarini ishlatardim. Agar siz boshqa akselerometrdan foydalansangiz, bu koordinatalar turlicha bo'lishi mumkin va ularni dasturda sozlash kerak bo'ladi.

3 -qadam: kubni 3D bosib chiqarish

Kubni 3D bosib chiqarish
Kubni 3D bosib chiqarish
Kubni 3D bosib chiqarish
Kubni 3D bosib chiqarish
Kubni 3D bosib chiqarish
Kubni 3D bosib chiqarish

Men soatning qanday ishlashini xohlaganimga ko'ra, kub eng yaxshi dizayn bo'ladi deb o'yladim. Men modelni yaratish uchun fusion360 -dan foydalandim. Menga OLED va barrel uyasi uchun kesish kerak edi. Men ham hamma narsa simli ulanganidan so'ng, RTC -dagi uyali batareyani almashtirishga oson kirishni xohlardim. Agar kerak bo'lsa, Arduino -ni qayta dasturlash oson bo'ladigan yo'nalishda ushlab turish uchun menga uyasi kerak edi. Bundan tashqari, Arduino -ga kirishim uchun korpus osongina olinadigan bo'lishi kerak edi. Siz yuqorida SAPR modelini ko'rishingiz mumkin va STL fayllari quyida.

Men tanani qora PLAda 20% to'ldirish bilan, 0,2 mm o'lchamda chop etdim.

Korpus yoki qisma Solutech moslashuvchan filamentida 100% to'ldirilgan, 0,3 mm o'lchamda bosilgan. Men bu materialdan foydalandim, chunki uning egiluvchanligi bor edi, bu esa tananing bo'ylab cho'zilishini osonlashtirdi. Soat atrofida aylanayotganda, u ham yumshoqroq his qiladi. Nihoyat, men tungi chiroqlarning LEDlari yonib turishi uchun aniq filaman tanladim.

4 -qadam: yig'ish

O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish

Men hamma narsani 1 -qadam sxemasidan foydalanib bog'ladim. Arduino -dagi bir pimga bir nechta simlarni lehimlamaslik uchun men umumiy simlarni ulash uchun perfboardning kichik bir qismini ishlatardim. Arduino -dan tashqari hamma narsani o'z joyida mahkamlash uchun issiq elim ishlatilgan. U shunchaki belgilangan uyasiga tiqildi. Men akselerometr taxtasi tananing pastki qismida perpendikulyar va tekis ekanligiga ishonch hosil qildim, shunda koddagi koordinatalarni o'zgartirish kerak bo'lmaydi.

5 -qadam: yuklang va siz tayyor

Yuklab oling va siz tayyor!
Yuklab oling va siz tayyor!
Yuklab oling va siz tayyor!
Yuklab oling va siz tayyor!
Yuklab oling va siz tayyor!
Yuklab oling va siz tayyor!
Yuklab oling va siz tayyor!
Yuklab oling va siz tayyor!

Endi to'g'ri dasturni o'rnatish uchun oxirgi dasturni soatga yuklash mumkin. Quvvat uzilmagan bo'lsa ham, uyali batareya vaqtni ushlab turishi kerak. Barcha bosilgan qismlarni yashirish uchun 3D bosilgan yengni tanaga suring va sizda to'liq kubik soat bor!

Umid qilamanki, siz ushbu loyihani yoqtirasiz va uni men kabi foydali deb bilasiz. Loyihaning yaxshi tomoni shundaki, u juda moslashtirilgan. O'zingizning turli xil funktsiyalaringizni signal funktsiyasi kabi qo'shishingiz mumkin, kattaroq OLED, FM radio qabul qilgich va boshqalarni ishlating. Baxtli bo'ling!

Tavsiya: