Агуулгын хүснэгт:

Ultimate Binary Watch: 12 алхам (зурагтай)
Ultimate Binary Watch: 12 алхам (зурагтай)

Видео: Ultimate Binary Watch: 12 алхам (зурагтай)

Видео: Ultimate Binary Watch: 12 алхам (зурагтай)
Видео: Jacob Wears His $20,000,000 Billionaire Watch! 2024, Долдугаар сарын
Anonim
Ultimate Binary Watch
Ultimate Binary Watch
Ultimate Binary Watch
Ultimate Binary Watch
Ultimate Binary Watch
Ultimate Binary Watch

Саяхан би хоёртын бугуйн цагны тухай ойлголттой танилцаж, өөртөө зориулж цаг бүтээх эсэхийг судалж эхлэв. Гэсэн хэдий ч би нэгэн зэрэг функциональ, загварлаг загварыг олж чадсангүй. Тиймээс, би өөрийн загварыг эхнээс нь бүрэн бүтээхээр шийдсэн!

Хангамж

Энэ төслийн бүх файлууд:

Arduino кодын номын санг GitHub дээрээс татаж авах боломжтой:

M41T62 RTC номын сан

FastLED номын сан

LowPower номын сан

Алхам 1: Санаа

Би саяхан дараах видеог үзлээ.

DIY хоёртын бугуйн цаг

Дээрх видеон дээр гар хийцийн үндсэн хоёртын цагийг харуулав. Ийм зүйл байдаг гэж би огт төсөөлөөгүй байсан боловч хоёртын бугуйн цагны талаар нэмэлт судалгаа хийсний дараа тэнд маш олон янзын загвар байгааг олж мэдсэн юм! Би өөртөө зориулж бүтээхийг хүсч байсан ч надад таалагдсан загварыг олж чадаагүй. Миний олж харсан хоёртын бугуйн цаг нь олон онцлог шинж чанаргүй байсан бөгөөд тийм ч сайн харагддаггүй байв. Тиймээс, би өөрийн загварыг эхнээс нь бүрэн бүтээхээр шийдсэн!

Эхний алхам бол миний дизайны шалгуурыг тогтоох явдал байв. Энэ бол миний бодож олсон зүйл юм:

  • Хоёртын RGB интерфэйс
  • Цагийн дэлгэц (цагийг маш нарийвчлалтай хийдэг)
  • Огноог харуулах
  • Секундомерын функц
  • Сэрүүлгийн функц
  • Батерейны ашиглалтын хугацаа дор хаяж 2 долоо хоног байна
  • USB цэнэглэх
  • Хэрэглэгч өөрөө хялбархан өөрчилж чаддаг програм хангамж
  • Энгийн бөгөөд цэвэр загвар

Эдгээр шалгуур нь төслийн бүхэл бүтэн үндэс суурь болсон юм. Дараагийн алхам бол цаг хэрхэн ажиллахыг хүсч байгаагаа олж мэдэх явдал байв!

Алхам 2: Хоёртын цагны онол

Хоёртын цагны онол
Хоёртын цагны онол

Төлөвлөгөө нь энгийн байсан. Хоёртын цаг нь ердийн цаг шиг ажиллах болно, гэхдээ интерфэйс нь хоёртын, ялангуяа BCD (хоёртын кодчилсон аравтын бутархай) байх болно. BCD бол аравтын орон бүрийг тогтмол тооны битээр дүрсэлдэг хоёртын кодчиллын төрөл юм. 0-9 хүртэлх цифрийг илэрхийлэхийн тулд надад 4 бит хэрэгтэй. Мөн стандартын хувьд

хх: мм

цагийн формат, надад эдгээр тоонуудын 4 нь хэрэгтэй. Энэ нь надад 16 LED -ээр илэрхийлэгдэх нийт 16 бит хэрэгтэй гэсэн үг юм.

BCD -д цагийг унших нь дассан даруйдаа маш хялбар байдаг. Цагны доод талд байгаа мөр нь хамгийн бага ач холбогдолтой битийг (1), дээд талын эгнээ нь хамгийн чухал битийг (8) илэрхийлнэ. Багана бүр нь цифрийг илэрхийлнэ

хх: мм

цагийн формат. Хэрэв LED асаалттай байвал та энэ утгыг тоолно. Хэрэв LED унтарсан бол та үүнийг үл тоомсорлодог.

Эхний цифрийг уншихын тулд эхний (хамгийн зүүн талд) баганад харгалзах утгуудыг идэвхжүүлсэн бүх LED -ийг нийлүүл. Зүүнээс баруун тийш бусад цифрүүдийн хувьд ижил зүйлийг хий. Та одоо BCD дахь цагийг уншсан байна!

Энэ зарчим нь цагны бусад функцүүдэд ижил байх болно. RGB LED ашиглах нь өөр өөр өнгө ашиглан янз бүрийн функц, горимыг ялгахад тусална. Өнгө нь хэрэглэгч өөрөө сонгосон бөгөөд хүссэн өнгөт палитртаа амархан тохируулж болно. Энэ нь хэрэглэгчдэд төөрөгдөлгүйгээр функцүүдийг хялбархан удирдах боломжийг олгодог.

Дараагийн алхам бол блок диаграм үүсгэх явдал юм.

Алхам 3: Ажилдаа орох

Ажилдаа орох
Ажилдаа орох

Электроникийн ердийн төслүүдийн нэгэн адил блок диаграм нь дизайны эхний үе шатанд зайлшгүй чухал хэсэг юм. Шалгуур үзүүлэлтийг ашиглан би дээрх блок диаграмыг нэгтгэж чадсан. Диаграм дахь блок бүр нь хэлхээний функцийг илэрхийлдэг бөгөөд сумнууд нь функцүүдийн хамаарлыг харуулдаг. Блок диаграмыг бүхэлд нь хэлхээ хэрхэн яаж ажиллах талаар сайн тойм өгдөг.

Дараагийн алхам бол блок диаграм дахь блок бүрийн бүрэлдэхүүн хэсгүүдийн талаар шийдвэр гаргаж эхлэх явдал байв.

Алхам 4: Бүрэлдэхүүн хэсгүүдийг сонгох

Энэ хэлхээнд маш олон бүрэлдэхүүн хэсгүүд байсан. Доороос би хамгийн чухал зүйлийг нь сонгож авсан бөгөөд яагаад үүнийг сонгосон тухайгаа тайлбарлав.

LED нь

Хоёртын интерфэйсийн хувьд сонголт нь нэлээд шулуун байв. Би дэлгэцийг LED ашиглахыг хүсч байгаагаа мэдэж байсан бөгөөд аль болох их мэдээллийг харуулахын тулд 16 ширхэг (4х4 хэмжээтэй) шаардлагатай болохыг олж мэдэв. Төгс LED -ийг судлах явцад APA102 гарч ирсээр байв. Энэ нь маш жижиг хэмжээтэй (2мм х 2мм) өргөн сонголттой, харьцангуй хямд үнэтэй LED юм. Өмнө нь тэдэнтэй хамтарч ажиллаж байгаагүй ч гэсэн тэд энэ төсөлд төгс тохирсон юм шиг санагдсан тул би ашиглахаар шийдсэн юм.

Микроконтроллер

Микроконтроллерийг сонгох нь бас маш энгийн байсан. Би бие даасан програм дээр Atmega328P-AU-ийг ашиглах талаар маш их туршлагатай байсан бөгөөд түүний онцлог шинж чанаруудыг маш сайн мэддэг байсан. Энэ бол Arduino Nano самбар дээр ашиглагддаг микроконтроллер юм. Миний ашиглаж болох илүү хямд микроконтроллер байдаг гэдгийг би мэднэ, гэхдээ Atmega328 нь Arduino -ийн бүх номын санг бүрэн дэмжиж ажиллах болно гэдгийг мэдэж байгаа нь энэ төслийг сонгоход том хүчин зүйл болсон юм.

RTC (Бодит цагийн цаг)

RTC -ийн үндсэн шаардлага бол нарийвчлал байв. Цаг нь интернетэд холбогдоогүй тул интернет холболтоор өөрийгөө дахин тохируулах боломжгүй гэдгийг би мэдэж байсан тул хэрэглэгч үүнийг гараар дахин тохируулах шаардлагатай болно. Тиймээс цаг тооллын ажлыг аль болох нарийвчлалтай хийхийг хүссэн юм. M41T62 RTC нь миний олж чадах хамгийн өндөр нарийвчлалтай (± 2 ppm бөгөөд энэ нь сард ± 5 секундтэй тэнцдэг) юм. Өндөр нарийвчлалыг I2C нийцтэй байдал, хамгийн бага гүйдлийн хэрэглээтэй хослуулсан нь энэхүү RTC -ийг энэ төслийн хувьд сайн сонголт болгосон.

DC-DC Boost хөрвүүлэгч

DC-DC Boost Converter IC-ийг сонгохдоо хэлхээг хараад ямар хүчдэл, гүйдэл шаардлагатай байгааг олж мэдсэн. Бага хүчдэл дээр хэлхээг ажиллуулах нь одоогийн хэрэглээг бууруулдаг боловч би 4.5 В -оос доогуур байж чадахгүй (микроконтроллерийн хамгийн бага хүчдэл 16 МГц цаг), би 4.5 В -оос дээш гарах боломжгүй байсан (RTC -ийн хамгийн их хүчдэл). Энэ нь бүрэлдэхүүн хэсгүүдийг санал болгосон техникийн үзүүлэлтүүдийн дагуу ажиллуулахын тулд би хэлхээг яг 4.5 В хүчдэлд ажиллуулах ёстой гэсэн үг юм. Би хэлхээний хамгийн их гүйдэл 250 мА -аас хэтрэхгүй гэж тооцоолсон. Тиймээс, би шаардлагыг хангаж чадах хурдны хөрвүүлэгчийг хайж эхэлсэн бөгөөд TPS61220 дээр хурдан бүдэрсэн. TPS61220 нь хамгийн бага гадаад бүрэлдэхүүн хэсгүүдийг шаарддаг, харьцангуй хямд бөгөөд одоогийн болон хүчдэлийн шаардлагыг хангаж чаддаг байв.

Батерей

Батерейнд тавигдах гол шаардлага бол хэмжээ байв. Батерей нь овор багатай харагдуулахгүйгээр цагны хашлага дотор багтахаар жижиг хэмжээтэй байх шаардлагатай байв. Батерей нь 20 мм × 35 мм х 10 мм -ээс хэтрэхгүй гэж би бодсон. Эдгээр хэмжээ хязгаарлалтууд болон 250mA -ийн одоогийн шаардлагад нийцүүлэн миний сонгох батерейг зөвхөн LiPo батерейгаар хязгаарласан. Би ашиглахаар шийдсэн Hobbyking дээр "Turnigy нано технологийн 300mAh 1S" батерей олсон.

IC цэнэглэж байна

Цэнэглэгч хянагчийн хувьд 1S LiPo батерейтай нийцэж байхаас өөр шаардлага байгаагүй. Би нэг эсийн цэнэглэх зориулалттай бүрэн цэнэг хянагч MCP73831T-ийг олсон. Үүний нэг онцлог шинж чанар нь цэнэглэх гүйдлийг гадаад эсэргүүцэл ашиглан тохируулах чадвар юм.

LiPo хамгаалалт

Би батерейг хэт их цэнэглэх, хэт их цэнэглэхээс хамгаалахын тулд хүчдэл ба гүйдлийн хяналтыг оруулахыг хүссэн. Ийм функцийг хангадаг хязгаарлагдмал тооны IC байсан бөгөөд хямд сонголтуудын нэг нь BQ29700 IC байв. Энэ нь хамгийн бага хэмжээний гадны бүрэлдэхүүн хэсгүүдийг шаарддаг бөгөөд нэг эсийн LiPo батерейны шаардлагатай бүх хамгаалалтыг агуулдаг.

Бүрэлдэхүүн хэсгүүдийг сонгосон тул схемийг гаргах цаг болжээ!

Алхам 5: Схем

Схем
Схем

Altium Designer -ийг ашиглан би бүрэлдэхүүн хэсгийн мэдээллийн хуудас тус бүрийн зөвлөмжийг ашиглан дээрх схемийг нэгтгэж чадсан. Илүү унших боломжтой болгохын тулд схемийг өөр өөр блокуудад хуваасан. Бусад хүмүүс энэ загварыг дахин бүтээхийг хүсч байвал би чухал мэдээлэл агуулсан зарим тэмдэглэлийг нэмсэн.

Дараагийн алхам бол схемийг ПХБ дээр тавих явдал байв.

Алхам 6: ПХБ -ийн зохион байгуулалт

ПХБ -ийн зохион байгуулалт
ПХБ -ийн зохион байгуулалт
ПХБ -ийн зохион байгуулалт
ПХБ -ийн зохион байгуулалт
ПХБ -ийн зохион байгуулалт
ПХБ -ийн зохион байгуулалт
ПХБ -ийн зохион байгуулалт
ПХБ -ийн зохион байгуулалт

ПХБ -ийн зохион байгуулалт нь энэ төслийн хамгийн хэцүү хэсэг болсон юм. Би ПХБ-ийн үйлдвэрлэлийн зардлыг хамгийн бага байлгахын тулд 2 давхар ПХБ ашиглахаар шийдсэн. Би 36 мм хэмжээтэй бугуйн цаг ашиглахаар шийдсэн, учир нь энэ нь LED -тэй маш сайн нийцсэн юм шиг санагдсан. Би ПХБ -ийг цагны хашаанд бэхлэхийн тулд 1 мм хэмжээтэй шураг нүх нэмж оруулав. Зорилго нь бүх бүрэлдэхүүн хэсгүүдийг (мэдээж LED-ээс бусад) доод давхарга дээр байрлуулах замаар цэвэр, сайхан загвартай байлгах явдал байв. Би мөн дээд давхаргад харагдахуйц виас байхаас зайлсхийхийн тулд хамгийн бага тооны виаг ашиглахыг хүссэн. Энэ нь хэлхээний "чимээ шуугиантай" хэсгүүдийг мэдрэмтгий дохионы ул мөрөөс хол байлгахын тулд би бүх ул мөрийг нэг давхаргад чиглүүлэх ёстой гэсэн үг юм. Би мөн бүх ул мөрийг аль болох богино байлгахыг хичээж, тойрог замын конденсаторыг ачааллын ойролцоо байрлуулж, өндөр хүчдэлийн хэсгүүдийн зузаан ул мөрийг ашиглаж, ПХБ -ийн дизайны нийтлэг сайн туршлагыг дагаж мөрдсөн. Чиглүүлэлт нэлээд хугацаа шаардсан боловч маш сайн болсон гэж бодож байна.

Дараагийн алхам бол цагны зориулалттай 3D загварыг бий болгох явдал байв.

Алхам 7: 3D дизайн

3D дизайн
3D дизайн
3D дизайн
3D дизайн
3D дизайн
3D дизайн

Цагны хашлага нь Fusion 360 -ийг ашиглан маш энгийн, сонгодог цагны загвар хийсний дараа хийгдсэн бөгөөд би цагны оосорыг 18 мм -ийн зайтай ашиглаж, бусад олон төрлийн оосортой нийцүүлэх боломжтой болсон. ПХБ-ийн зүсэлт нь аливаа үйлдвэрлэлийн алдаатай байдлыг хангахын тулд ПХБ-ээс 0, 4мм-ээр том хэмжээтэйгээр хийгдсэн байв. Би ПХБ -ийг холбох хэдэн шураг бичлэг, ПХБ -ийг тавих жижиг ирмэгийг оруулсан. Хувцас дээр LED -ийн хурц ирмэг наалдахгүйн тулд би ПХБ -ийг дээд талаас нь миллиметрээр нүхлэх хэрэгтэй. Хашааны өндрийг зөвхөн батерейны зузаанаар тодорхойлно. Үлдсэн хашлага нь бөөрөнхий ирмэг, өнгөлсөн булангуудыг харахад зүгээр л сайхан харагдахаар бүтээгдсэн. Би 3D загварыг ээлтэй байлгах ёстой байсан бөгөөд үүнийг ямар ч нэмэлт материалгүйгээр гэртээ 3D хэвлэх боломжтой болсон.

Тоног төхөөрөмж дууссаны дараа програм хангамж дээр ажиллах цаг болжээ!

Алхам 8: Код

Код
Код

Би шаардлагатай бүх номын санг оруулах замаар кодыг эхлүүлсэн. Үүнд БОЭТ -тэй харилцах, LED жолоодох номын сан орно. Үүний дараа би горим тус бүрт тусдаа функцүүдийг үүсгэсэн. Хэрэглэгч товчлуур дарж горимоо солиход програм нь тухайн горимд тохирох функцийг дуудна. Хэрэв хэрэглэгч товлосон хугацаанд товчлуур дарахгүй бол цаг унтдаг.

Унтах горимыг бүх LED бүрэн унтрах хүртэл бүдгэрч байгааг харуулдаг. Унтах горимыг ашиглах нь батерейны ашиглалтын хугацааг ихээхэн нэмэгдүүлж, LED -ийг ашиглахгүй байгаа үед унтрааж байх болно. Хэрэглэгч дээд товчийг дарж цагийг сэрээх боломжтой. Сэрэх үед цаг нь цэнэглэх шаардлагагүй эсэхийг шалгахын тулд батерейны түвшинг шалгана. Хэрэв цэнэглэх шаардлагатай бол LED нь цагийг харуулахаас өмнө хэд хэдэн удаа улаан гэрэл асах болно. Хэрэв батерей нь чухал түвшингээс доогуур байвал огт асахгүй болно.

Үлдсэн хугацаанд програмчлал нь бусад горимыг аль болох ойлгомжтой болгоход зарцуулсан. Бүх горимд ижил функцийг хариуцдаг нэг товчлууртай байх нь хамгийн ойлгомжтой байх болно гэж би бодсон. Туршилт хийсний дараа энэ нь товчлуурын тохиргоо юм.

  • Дээд товчлуурыг дарах: Сэрэх / "Дэлгэцийн цаг", "Дэлгэцийн огноо", "Секундомер", "Сэрүүлэг" горимуудын хоорондох мөчлөг.
  • Дээд товчлуурыг дарах: "Цаг тохируулах", "Огноо тохируулах", "Секундомер эхлүүлэх" эсвэл "Сэрүүлэг тохируулах" горимыг оруулна уу.
  • Доод товчлуурыг дарах: Гэрэлтүүлгийг нэмэгдүүлэх.
  • Доод товчлуурыг дарах: "Өнгө сонгох" горимыг оруулна уу.

Доод талын товчлуур нь таны ямар горимд байгаагаас үл хамааран гэрэл гэгээ, өнгөний тохируулгыг хариуцдаг. Хэрэглэгч "Өнгийг сонгох" горимд ороход LED нь RGB -ийн боломжтой бүх өнгийг тойрч эхэлдэг. Хэрэглэгч анимацийг түр зогсоож, тухайн горимд тохирсон өнгийг сонгох боломжтой (Дэлгэцийн цагийг улаанаар харуулах, хөх огноог харуулах гэх мэт). Янз бүрийн горимыг ялгахад туслахын тулд өнгийг хэрэглэгч хялбархан өөрчилж болно.

Код дууссаны дараа үүнийг микроконтроллерт байршуулах цаг болжээ!

Алхам 9: Програмчлал

Програмчлал
Програмчлал

Гагнах, угсрах цаг бараг байсан боловч үүнээс өмнө би микроконтроллерийг програмчлах шаардлагатай болсон. Би энэ зааврыг дагасан

Ачаалагчийг ATmega328P-AU SMD дээр шарна уу

Ачаалагчийг хэрхэн шатааж, энгийн Arduino Uno ашиглан микроконтроллерыг програмистаар програмчлах талаар.

Эхний алхам бол "ArduinoISP" жишээ кодыг байршуулж Arduino Uno -г ISP болгон хувиргах явдал байв. Би талхны самбарыг програмчлалын сокеттай хамт ашиглаж, хичээлээс схемийг холбосон. Үүний дараа би Arduino IDE дээр "Burn Bootloader" товчийг дарж микроконтроллер руу ачаалагчийг шатааж чадсан юм.

Микроконтроллер ачаалагчтай болсны дараа би одоо байгаа микроконтроллерийг Arduino Uno -аас салгаад Arduino Uno самбарыг USB -ээс цуваа адаптер болгон ашиглаж програмчлалын сокет дахь микроконтроллерт кодыг байршуулав. Байршуулж дууссаны дараа би гагнуурын ажлыг эхлүүлж болно.

Дараагийн алхам бол бүх бүрэлдэхүүн хэсгүүдийг цуглуулж, гагнах явдал байв.

Алхам 10: Гагнах

Гагнах
Гагнах
Гагнах
Гагнах
Гагнах
Гагнах
Гагнах
Гагнах

Гагнуурын процессыг хоёр хэсэгт хуваасан. Эхлээд доод давхаргыг гагнах шаардлагатай, дараа нь дээд давхарга.

Би цагны ПХБ -ийг соронзон хальс ашиглан хэд хэдэн эх хавтангийн хооронд бэхэлсэн. Энэ нь гагнуурын явцад ПХБ хөдлөхгүй байх баталгаа болсон бөгөөд энэ нь маш чухал юм. Дараа нь би гагнуурын стенилийг ПХБ -ийн дээгүүр тавьж, бүх гагнуурын дэвсгэрийг хамрахын тулд маш их хэмжээний гагнуурын оо ашигласан. Би бүх бүрэлдэхүүн хэсгүүдийг харгалзах дэвсгэр дээр байрлуулахын тулд нимгэн хясаа ашиглаж эхлэв. Дараа нь би дулааны буу ашиглан бүх бүрэлдэхүүн хэсгүүдийг дахин гагнах ажлыг гүйцэтгэв.

Доод давхаргыг гагнах үед би гагнуур амжилттай болсон эсэхийг шалгахын тулд хурдан харааны үзлэг хийв. Дараа нь би самбарыг эргүүлээд нөгөө талаас гагнуурын процессыг давтан хийлээ. Доод талын бүх бүрэлдэхүүн хэсгүүд унах эрсдэлтэй тул дээд давхаргыг гагнах үед хавтанг хэт халаахгүй байх нь маш чухал юм. Аз болоход бүх бүрэлдэхүүн хэсгүүд байрандаа үлдэж, ердийн гагнуурын төмрийг ашиглан товчлууруудыг гагнасны дараа ПХБ дууссан байна!

Эцсийн чуулган болох цаг боллоо!

Алхам 11: Чуулган

Чуулган
Чуулган

Угсралт нь маш энгийн байсан. Би зайг ПХБ -тэй холбож, зай болон ПХБ -ийг 3D хэвлэсэн хашлага дотор байрлуулав. Би ПХБ -ийн булан бүрийн бэхэлгээний нүхэнд дөрвөн боолтыг шургуулж эхлэв. Үүний дараа би 18 мм -ийн хаврын баар ашиглан цагны оосор зүүсэн бөгөөд цаг дууссан!

Алхам 12: Дүгнэлт ба сайжруулалт

Дүгнэлт ба сайжруулалт
Дүгнэлт ба сайжруулалт
Дүгнэлт ба сайжруулалт
Дүгнэлт ба сайжруулалт

Цаг нь хүлээгдэж буй байдлаар ажилладаг бөгөөд энэ нь хэрхэн болсонд би маш их баяртай байна. Надад одоогоор ямар ч асуудал гараагүй бөгөөд бүтэн долоо хоног ашигласны дараа батерей нь бараг бүрэн цэнэглэгдсэн хэвээр байна.

Би ирээдүйд цагны бусад онцлог шинж чанаруудыг нэмж магадгүй юм. USB порт нь микроконтроллерт холбогдсон тул програм хангамжийг хүссэн үедээ шинэчилж болно. Одоогийн байдлаар би цагны энэ хувилбарыг үргэлжлүүлэн ашиглаж, удаан хугацаагаар ашигласны дараа хэрхэн яаж хадгалагдаж байгааг харах болно.

Хэрэв танд энэ төслийн талаар санал, сэтгэгдэл, асуулт байвал доор үлдээнэ үү. Та мөн [email protected] хаягаар илгээж болно.

Цагны уралдаан
Цагны уралдаан
Цагны уралдаан
Цагны уралдаан

Цагийн уралдааны тэргүүн шагнал

Зөвлөмж болгож буй: