Мазмуну:

Позицияга негизделген көп функциялуу куб сааты: 5 кадам (сүрөттөр менен)
Позицияга негизделген көп функциялуу куб сааты: 5 кадам (сүрөттөр менен)

Video: Позицияга негизделген көп функциялуу куб сааты: 5 кадам (сүрөттөр менен)

Video: Позицияга негизделген көп функциялуу куб сааты: 5 кадам (сүрөттөр менен)
Video: Обзор рефрижератора DAF LF 210, тест драйв ДАФ по Москве 🚛 | Автосалон Кирилла Сухина 2024, Ноябрь
Anonim
Image
Image
Позицияга негизделген көп функциялуу куб сааты
Позицияга негизделген көп функциялуу куб сааты
Позицияга негизделген көп функциялуу куб сааты
Позицияга негизделген көп функциялуу куб сааты

Fusion 360 долбоорлору »

Бул ODUD дисплейи бар Arduino негизделген саат, ал датасы бар саат, уктап калуу таймери жана түнкү жарык катары иштейт. Ар кандай "функциялар" акселерометр менен башкарылат жана кубдук сааттын айлануусу менен тандалат.

Мен жаңы түнкү саатты кааладым, бирок мен колдонгон эмес көптөгөн функцияларга ээ болгон кооз саатка акча короткум келбеди. Кошумча катары, мен жөн эле жаткан компоненттерди жана сенсорлорду чогултуп жүргөндүктөн, аларды өз саатымды жасоону чечтим!

Мен бул долбоорго бир нече максаттарым бар болчу:

  1. Өчүрүү мүмкүнчүлүгү менен ошол убакытты көрсөтүңүз
  2. Түнкү функцияны кошуңуз
  3. Сигнал менен 15 мүнөттүк уйку таймерин кошуңуз
  4. Күндү көрсөтө билиңиз

Жабдуулар

  • Arduino Pro Mini 5V
  • ADXL335 3-октук акселерометр
  • DS3231 AT24C32 IIC тактык Реалдуу убакыт сааты
  • Мини спикер
  • OLED дисплейи SSD1306 IIC 0.96in
  • 5V DC электр менен камсыздоо
  • LED x 2
  • Резисторлор 220 Ом х 2
  • DC баррель уячасы
  • Зым
  • Куралдар

    • Сым кескичтер/стриптизаторлор
    • Лайк/темир
    • 3D принтер (милдеттүү эмес)
    • FTDI программисти Pro mini менен Arduino IDEнин ортосунда иштейт

1 -кадам: Прототип жана схеманы сыноо

Прототип жана схеманы сыноо
Прототип жана схеманы сыноо
Прототип жана схеманы сыноо
Прототип жана схеманы сыноо
Прототип жана схеманы сыноо
Прототип жана схеманы сыноо

Ардуиного компоненттерди туташтырыңыз. Нан тактасынын схемасы же схемасы жогоруда көрсөтүлгөн. RTC жана OLED Arduino менен иштөө үчүн I2C протоколун колдонушат жана A4 жана A5 казыктарын колдонушат. Акселерометр 3 аналогдук төөнөгүчтү колдонот. Мен A0, A1, A2 колдонгон болчумун. LED жана Piezo санарип казыктарын колдоно алат, мен тиешелүүлүгүнө жараша 4 жана 8 колдонгом.

Ар бир компонент менен интерфейс. Ар бир компонент менен иштөө үчүн кээ бир Arduino китепканаларын орнотушум керек болчу. Алар жогорудагы сүрөттө көрсөтүлгөн.

Arduino IDE аркылуу код. Мен каалаган нерселердин негизинде ар бир компоненттин туура синтаксисин аныктоо үчүн ар бир китепкана тарабынан берилген кээ бир мисал эскиздерди карап чыктым. Мен аларды жекече текшерүү үчүн ар бир компоненттин эскизин ойлоп таптым. Алар төмөндө берилет. Мен пьезо спикери менен баштадым, анткени ал эң оңой эле. Чындыгында атайын китепканага муктаждык жок, жөн гана белгилүү бир функция жыштыкты жана үндү коет. Жарык диоддордун иштеши үчүн санарип казыктардын бирин өйдө жана төмөн тартуу керек. Андан кийин, мен OLEDге өттүм жана муну жөндөө абдан жөнөкөй эле. Төмөндөгү эскиз - бул Adafruit демосу, ал көрсөтүлө турган бардык анимацияларды/тексттерди камтыйт. Андан кийин, мен РТКнын иштешине аракет кылдым. Мен берген эскиз китепкананын мисалынын бир бөлүгү болчу, ал учурдагы убакытты алат жана аны сериялык мониторго басып чыгарат. Акыр -аягы, мен берилген мисалды акселерометрди текшерүү үчүн колдондум. Ар бир огунун жыйынтыктары сериялык монитордо басылып чыгат.

Эми баарын чогултууга убакыт келди!

2 -кадам: Негизги программа

Негизги программа
Негизги программа
Негизги программа
Негизги программа

Эми мен бардыгы жекече иштээрин билгенден кийин, мен баарын бириктирген программа менен чыгууну баштай алам. Мен төмөндө программаны жазуу процессимди талкуулайм, бирок өз долбооруңуз үчүн колдонуу үчүн төмөнкү кодду толугу менен жүктөп алыңыз. Мен кодду өзүңүз басып өтүшүңүз үчүн конкреттүү комментарийлерди калтырууга аракет кылдым.

Мен убакытты жана күндү OLEDде көрсөтүшүм керек эле, бул абдан жөнөкөй. Мага учурдагы убакытты сериялык монитордун ордуна дисплейге басып чыгаруу керек болчу. Менде 24 форматтын ордуна 12 сааттык форматты көрсөтүү жана 0 болгон жерлерди кошуу/алып салуу үчүн эсепке алуу керек болгон бир нече форматтоочу нерселер бар болчу. Күн экранда тартылган тик бурчтуктардын ичинде ай менен күндү көрсөтүү менен окшош болгон. Мен таймерди түзүү үчүн цикл FOR үчүн циклди колдондум жана цикл бүткөндөн кийин пьезону өчүрдүм. Мен Adafruit демосунан алынган негизги анимация болгон коңгуроо өчүп баратканда экранды жаркылдатууну чечтим. Мен кубикти сааттын абалына кайра буруп койдум, зумерди өчүрүүнүн жалгыз жолу. Акыр -аягы, мен экранды өчүрүү жолун кааладым, ал жөн гана дисплейди тазалоо аркылуу ишке ашты. Эми мага акселерометрдин жыйынтыгынын негизинде иштөө үчүн бул функциялардын баары керек болчу. Мен Accel_Test скриптин колдонуп, ар бир функциянын иштешин каалаган ар бир позициянын огунун координаттарын аныктадым. Мен акселерометрдин чипин кол менен жылдырып, окууларды сериялык мониторго жаздырдым. Жогорудагы диаграмма Боздун ар бир позициясынын координаттарын берет. КЫЗЫЛдагы координаттар - бул ар бир позициянын ортосундагы чек аралар жана мен бул сандарды программам үчүн колдондум. 4 дисплей позициясында X жана Y огунун координаттары гана керек. Түнкү жарыктын бешинчи позициясы Z огун колдонот. Мен ар бир функция блогунун алдында акселерометрдин позициялары үчүн жөнөкөй IF билдирүүлөрүн колдондум. Эгерде сиз башка акселерометрди колдонсоңуз, бул координаттар өзгөрүшү мүмкүн жана программада туураланышы керек болот.

3 -кадам: Кубду 3D басып чыгаруу

Кубду 3D басып чыгаруу
Кубду 3D басып чыгаруу
Кубду 3D басып чыгаруу
Кубду 3D басып чыгаруу
Кубду 3D басып чыгаруу
Кубду 3D басып чыгаруу

Мен кубанын иштешин каалаганымды канааттандыруу үчүн эң жакшы дизайн болорун түшүндүм. Мен моделди жасоо үчүн fusion360 колдондум. Мага OLED менен баррелдин уячасы керек болчу. Мен ошондой эле баары зымдуу болгондон кийин РТКдагы уюлдук батареяны алмаштырууга оңой жетүүнү кааладым. Ардуинону керек болсо кайра программалоо оңой болгон багытта кармоо үчүн мага слот керек эле. Андан тышкары, Arduinoго кирүү үчүн корпус оңой эле алынышы керек болчу. Сиз жогоруда CAD моделин көрө аласыз жана STL файлдары төмөндө.

Мен денени кара PLA менен 20% толтуруу менен, 0.2мм токтом менен басып чыгардым.

Корпус же жең Solutech ийкемдүү жипинде 100% толтуруу, 0.3 мм токтом менен басылган. Мен бул материалды колдондум, анткени ал ийкемдүүлүккө ээ, бул дененин үстүнө сунууну оңой кылган. Ал ошондой эле саатты айлантууда жумшак сезимге ээ. Акырында, мен тунук чырактын диоддору жаркырап турушу үчүн таза жипти тандап алдым.

4 -кадам: Ассамблея

Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея

Мен бардыгын 1 -кадамдын схемасын колдонуу менен бириктирдим. Ардуинонун бир казыгына бир нече зымдарды ширетпешим үчүн, жалпы зымдардын бардыгын туташтыруу үчүн кичинекей перформатордон пайдаландым. Ардуинодон башкасын ысык клей өз ордуна орнотуу үчүн колдонулган. Ал жөн гана белгиленген уячасына киргизилген. Мен акселерометрдин тактайы перпендикуляр жана дененин ылдый жагында экенине ынандым, андыктан коддогу координаттар өзгөртүлбөйт.

5 -кадам: Жүктөө жана сиз бүттүңүз

Жүктөө жана сиз бүттүңүз!
Жүктөө жана сиз бүттүңүз!
Жүктөө жана сиз бүттүңүз!
Жүктөө жана сиз бүттүңүз!
Жүктөө жана сиз бүттүңүз!
Жүктөө жана сиз бүттүңүз!
Жүктөө жана сиз бүттүңүз!
Жүктөө жана сиз бүттүңүз!

Эми акыркы программаны туура убакытты коюу үчүн саатка жүктөөгө болот. Уюлдук батарейка электр кубаты ажыратылганда да убакытты кармашы керек. Бардык компоненттерди жашыруу үчүн 3D басып чыгарылган жеңди дененин үстүнө жылдырыңыз жана сизде кубдук саат бар!

Бул долбоорду жасоо сизге жагат деп ишенем жана аны мен сыяктуу пайдалуу деп табасыз. Бул долбоордун жакшы жагы - бул абдан ыңгайлаштырылган. Сигнал функциясы сыяктуу ар кандай функцияларды кошууга, чоңураак OLED, FM радио кабылдагычы ж.б сыяктуу ар кандай компоненттерди колдонууга эркин болуңуз!

Сунушталууда: