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

Space Invaders Clock (төсөвт!): 6 алхам (зурагтай)
Space Invaders Clock (төсөвт!): 6 алхам (зурагтай)

Видео: Space Invaders Clock (төсөвт!): 6 алхам (зурагтай)

Видео: Space Invaders Clock (төсөвт!): 6 алхам (зурагтай)
Видео: 【生放送】ロシアによる侵略。ウクライナがどれだけ持ちこたえられるのか。現状の解説などでライブ 2024, Долдугаар сарын
Anonim
Image
Image
Эд анги цуглуулах
Эд анги цуглуулах

Саяхан би GeckoDiode -ийн гоёмсог барилгыг олж хараад шууд л өөрөө барихыг хүссэн юм. Instructable бол Space Invaders ширээний цаг бөгөөд үүнийг уншаад үзэхийг танд зөвлөж байна.

Энэхүү төслийг бараг л 3D хэвлэмэл хашлага бүхий Adafruit -ээс авсан эд анги, лазераар зүсэгдсэн фасиагаар хийсэн. Барилгын өртөгийг бүгдийг нь нэмэх нь маш үнэтэй болно! (ойролцоогоор 100 фунт стерлинг ба түүнээс дээш). Асуудал нь хэрэв та 3D принтер эзэмшээгүй бол загвараа хэвлүүлэхийн тулд мөнгө төлөх ёстой, эсвэл ebay дээрээс ихэвчлэн хэтэрхий жижиг, хэт нарийхан, богино, эсвэл эсрэгээрээ муухай хашлага худалдаж авах хэрэгтэй болно.

Миний ихэнх бүтээн байгуулалт нь сонирхогчдын төсөв дээр хийгдэх ёстой бөгөөд хаалт нь үргэлж хамгийн үнэтэй хэсэг болдог. Тиймээс би ижил цагийг гэхдээ боломжийн төсөвт хийхээр шийдсэн.

Хэрэв та хачирхалтай цаг үзэх дуртай бол хашаа барихад ижил барилгын материал ашигладаг миний Steampunk вольтметр цагийг үзээрэй:-)

Алхам 1: эд ангиудыг цуглуулах

Энэхүү төслийг хэрэгжүүлэхийн тулд танд дараахь зүйлс хэрэгтэй болно. Та бусад төслүүдэд ашиглаж болох үлдэгдэл үлдэгдэл ихтэй байх болно (энэ нь ирээдүйн барилгын өртөгийг улам хямдруулдаг). Хэрэв та ebay дээрх үнийг шалгаж үзэхийг хүсч байвал танд хэрэгтэй зүйлсийн PDF -ийг байршуулсан болно.

Багаж хэрэгсэл (танд эдгээр нь аль хэдийн байх болно гэж бодож байна)

  • Гагнуурын төмөр
  • Гагнуур
  • Гагнуурын насос (хэрэв та алдаа гаргаж, гагнуурыг зайлуулах шаардлагатай бол)
  • Халуун цавуу буу
  • Халуун цавуу мод
  • Гар урлалын хутга (өөрөөр хэлбэл Стэнлийн хутга)
  • Захирагч / хэмжих соронзон хальс / Верниер диаметр хэмжигч
  • Утасгүй өрөм + өрмийн бит (1 мм -ээс 13 мм хүртэл)
  • Зүсэх диск бүхий эргэлтэт олон хэрэгсэл (aka D. Dremel)
  • Изопропил-спирт шиг цэвэрлэх шингэн
  • Хамгаалалтын маск (будгаар шүршихэд ашигладаг)

Электроник (Электроникийн зардал = 13.05 фунт стерлинг)

Эдгээрийн заримыг би үнэгүй авч байсан. Хуучин электрон тоглоомууд дотор нь эдгээр сайхан Mylar чанга яригч байдаг, хэрэв та тэдгээрийг салгаж авбал. Та тэнд байхдаа DC баррель, товчлуур авах боломжтой.

  • Dupont / Jumper кабель - 0.99 фунт
  • DS1307 Бодит цагийн цагийн модуль - 0.99 фунт (боломжтой бол DS3231 авахыг зөвлөж байна)
  • Arduino нано + USB кабель - 2.23 фунт стерлинг
  • 8 Ом Mylar чанга яригч - 0.99 фунт
  • SPST түр зуурын товчлуур - 1.49 фунт
  • 5.5 мм DC баррель залгуур - 1.26 фунт
  • 5v, 0.5А тогтмол гүйдлийн цахилгаан хангамж - 2.83 фунт
  • MAX7219 Дот матрицын дэлгэц - 3.76 фунт

Хашаа (хашлага материалын зардал = 17.19 фунт стерлинг)

  • 60мм квадрат ус зайлуулах хоолой - 5.99 фунт
  • Хар шүршигч будаг - 4.85 фунт
  • Хар PVC (хөөсөнцөр хавтан) - 2.99 фунт
  • Супер цавуу - 0.99 фунт
  • 60 мм төгсгөлийн таг - 2.37 фунт

Нийт өртөг = 30.24 фунт:-) …….. өнөөдрийн байдлаар энэ нь олон улсын уншигчдын хувьд 38 ам.доллартай тэнцэж байна.

Би PVC дөрвөлжин хоолойгоор ажиллах дуртай. Тэдгээрийг өрөмдөх, зүсэх, будахад хялбар байдаг бөгөөд би үүнийг Steampunk цагтаа ашигладаг байсан.

Алхам 2: Ус зайлуулах хоолойг бэлтгэ

Ус зайлуулах хоолойг бэлтгэ
Ус зайлуулах хоолойг бэлтгэ

Юуг хаана байрлуулахыг хүсч байгаагаа тэмдэглээрэй

Энэ маш амархан байсан. Би гоёмсог зүйл хэрэглээгүй. Эхлээд би 2.5 м уртыг гэрийнхээ вандан сандлын хувьд боломжийн хэмжээгээр (30 орчим см) хайчаар хөрөөдөж хайчиллаа. Дараа нь би ирмэгийг сайхан, шулуун болгохын тулд үүнийг дремель ашиглан хайчилж авлаа. Дараа нь би бүрэлдэхүүн хэсгүүдийг хоолойны гадаргуу дээр байрлуулж, байнгын зах ашиглан өрөмдөж, хайчлахыг хүссэн газраа тэмдэглэв. Би LED матрицын гадна талыг судалж, дугуй хэлбэртэй олон багаж ашиглан дөрвөлжин нүхийг зүсэхийн тулд огтлов. Би дижитал диаметр хэмжигч ашиглан түлхэх товчлуурын диаметрийг хэмжиж, арын болон дээд талын зөв нүхийг таслав.

Бүрхүүл хайчил

Надад өмнөх төслүүдээс маш олон тооны PVC хөөсөн хавтан байдаг. Эдгээр нь хэлхээг хашлага дотор бэхлэх, эпокси холих, бусад бит, боб хийхэд маш тохиромжтой. А4 эсвэл А5 хэмжээтэй хэмжээтэй хэсгийг авч, LED матрицыг бүрдүүлэхийн тулд 5 мм хэмжээтэй дөрвөлжин тойрог эсвэл хүрээ хайчилж ав. Энэ нь матрицын дөрвөлжин нүхийг огтлох үед хийсэн ямар ч төгсгөлийг нуух болно. Үүний тулд би Inkscape дээр жижиг загвар зурж хэвлэв (SVG файл хавсаргасан болно). Дараа нь би хөөсний хавтан дээр маск соронзон хальсаар наагаад гар урлалын хутгаар болгоомжтой хайчилж авав. Зөвийг олж авах нь маш хэцүү байдаг тул эхлээд дотор талыг, дараа нь гадна талыг нь огтолж авахыг зөвлөж байна.

Бүгдийг будах

Бүх нүхийг өрөмдөж хайчилж авсны дараа ирмэгийг нь арилга. Тоос, бохирдлыг арилгахын тулд гадаргууг спиртийн алчуураар цэвэрлээрэй (эсвэл IPA байхгүй бол хямд үнээр хуссаны дараа). Агааржуулалт сайтай газарт шүршихийг хичээ, боломжтой бол маск хэрэглээрэй. Би үүнийг гадаа шалан дээр цаасан картоноор хийсэн боловч энэ нь тийм ч тохиромжтой биш, жаахан сэвшээ салхи хүртэл будаг будаг руу буцааж нэвтэрч болно. Боломжтой бол болгоомжтой байгаарай, хамгаалалтын хэрэгсэл өмс.

Хоолой, халхавч, төгсгөлийн тагийг ижил төрлийн хар өнгөтэй болгож шүршиж, дараа нь хэдэн цагийн турш хатаана.

Алхам 3: Arduino програмчлах

Arduino програмчлах
Arduino програмчлах

Кодын талаархи зарим мэдээлэл

Би түүний кодыг аваад MAX7219 чиптэй ажиллахаар өөрчилсөн тул GeckoDiode -д зээл. Adafruit хувилбар нь I2C автобусыг ашигладаг бөгөөд MAX нь SPI автобусыг ашигладаг. Үүний тулд би Arduino IDE -д татаж аваад суулгасан MaxMatrix номын санг ашигласан. Хэрэв та MaxMatrix болон LED матриц хэрхэн ажилладаг талаар илүү ихийг мэдэхийг хүсч байвал HowToMechatronics.com дээр маш богино заавар байдаг. LED матриц нь олон өнгийн дэлгэцтэй байхаас илүү ганцхан LED-ээс бүрддэг.

Надад тохиолдсон нэг бухимдал бол номын санд ямар чиг үүргийг гүйцэтгэдэг, ямар аргументыг тус бүрт оруулах шаардлагатай талаар тодорхой тодорхойлолт байдаггүй. Аз болоход би юу хийснийг туршилт, алдааны тусламжтайгаар олж мэдсэн бөгөөд эцэст нь үүнийг зөв ажиллуулахад тийм ч хэцүү байгаагүй. Таны ойлгох ёстой хамгийн эхний зүйл бол таны матрицад хичнээн 8x8 модуль байгааг тодорхойлох ёстой. Миний кодонд үүнийг "модуль" нэртэй бүхэл тоонд хадгалдаг.

"int модулиуд = 4;"

Энэ бол таны дэлгэцэн дээр холбосон 8x8 модулийн NUMBER юм. Дараахь зүйл бол хэрэв таны "спрайт" эсвэл дөрвөн матрицыг хамарсан зүйл бол байтын массивыг дараах байдлаар тодорхойлох шаардлагатай болно.

"байт text_start_bmp = {32, 8,…*зарим байтын өгөгдөл*…};"

Тоонууд нь матриц дахь мөр, баганын хэмжээг заана. Энэ тохиолдлоор "text_start_bmp" нэртэй байтыг 32 багана, 8 мөр дээр харуулав. Тоонуудыг зөвхөн 8x8 хэмжээтэй ганц матриц дээр харуулдаг тул 10 дахь минутын дугаар иймэрхүү харагдаж байна.

"byte minutes_ten_bmp = {8, 8,…*зарим байтын өгөгдөл*…};"

Түрэмгийлэгчид хоёр матрицыг хамардаг тул байтын өгөгдөлд байт 16, 8 өгөгдөх болно.

Намайг олж харсан өөр нэг зүйл бол спрайт өгөгдлийн байршил байв. Та Arduino -аас спрайтийг матриц дээрх үндсэн байрлалаас өөр X/Y байрлалд харуулахыг хүсч болно. Код тэг минутын хувьд иймэрхүү харагдаж байна:

"matrix.writeSprite (8, 0, minutes_zero_bmp);"

Нэг тоо нь X тохируулга, нөгөө нь Y байна. Аль нь болохыг одоо санахгүй байна, гэхдээ хэрэв та спрайтийг 1 мөр эсвэл баганаар дээш, доош нь түлхэхийг хүсвэл тоог эерэг эсвэл хасах тоогоор нэмнэ үү. 8х8 хэмжээтэй матриц хийхэд хангалттай энгийн боловч таны спрайт нэгээс олон матрицыг хамарсан тохиолдолд та гэрийн байрлалыг тохируулах ёстой. "POP" спрайтийг доор үзүүлэв.

"matrix.writeSprite (16, 0, invader_pop_bmp);"

Гэрийн байрлал 16 биш 8 биш яаж байгааг одоо анзаарч байна уу? Энд код нь спрайт нь байрлалын мөр/баганаас 16 -аас зүүн тийш баруун тийш харуулагдаж байгааг харуулж байна. Энэ нь 4 ширхэг байсан ч гэсэн 8x8 хэмжээтэй хоёр дэлгэцийг 16x8 хэмжээтэй ганц дэлгэц гэж үздэг. Тиймээс спрайтийг хэдэн дэлгэц дээр харуулах талаар бодож, спрайт бүрийн байтын массивыг зохих хэмжээгээр тохируулах нь чухал юм. Үгүй бол танд маш сонирхолтой спрайт байх болно!

DS1307 RTC

DS1307 нь Adafruit RTClib.h номын санд сайн ажилладаг ч гэсэн та цагийг гараар тохируулах боломжгүй байдаг. Кодыг өөрчлөх нь бага гэсэн үг учраас би үүнийг л хийсэн. DS1307 нь кодыг таны компьютерын үеэс эмхэтгэсэн цаг, огноог ашиглан цагийг тохируулдаг. Үүний оронд DS3231 номын санг хэрхэн ашиглах талаар сурч, ирээдүйд нэг эсвэл хоёр минутын өмнө нэг удаа тохируулаарай. Энэ нь мөн "дрифт" багатай тул цаг хугацаа өнгөрөх тусам цагийг илүү сайн байлгадаг. Хоёр модуль хоёулаа I2C автобусыг ашигладаг бөгөөд хэрэв та үргэлжлүүлэн ашиглахыг хүсч байвал DS3231 -ийг RTClib.h -т ашиглах боломжтой гэж би бодож байна.

Кодыг байршуулна уу

Хэрэв та код баяртай байвал Arduino руу оруулна уу. Би танд анхаарал хандуулахын тулд Arduino ноорогоо хавсаргав.

Алхам 4: Электроникийг угсрах

Электроник угсрах
Электроник угсрах

Кодыг байршуулахдаа электрон хэрэгслийг дупонт/холбогч утсаар талхны самбар дээр угсрахыг зөвлөж байна, ингэснээр та кодыг байршуулахдаа бүх зүйл төлөвлөсний дагуу ажилладаг болохыг та мэднэ. Энэ нь нааж, наалдахаасаа өмнө спрайт гэх мэтийг харуулахтай холбоотой аливаа асуудлыг арилгах боломжийг танд олгоно. Миний код дээр би 4, 5, 6, 7, 9 дижитал тээглүүр ашиглаж байгааг харж болно, гэхдээ шаардлагатай бол та тэдгээрийг өөрчилж болно. Та кабелийг товчлуур, DC залгуур, чанга яригч дээр гагнах хэрэгтэй байж магадгүй, гэхдээ ихэнх нь түлхэх зориулалттай хэв маягийн холбогч байх ёстой.

Цахилгаан хэрэгсэл хүссэнээрээ ажиллаж байгаад баяртай байвал холболтыг гагнах талаар бодох хэрэгтэй. Та үүнийг зэс тууз/veroboard ашиглан хийж болно, гэхдээ бага хэмжээний бүрэлдэхүүн хэсгүүдийн хувьд та Arduino -ийн голтой шууд гагнах боломжтой. Энэ нь хархны үүр шиг харагдах болно, гэхдээ угсарсаны дараа хашаа дотор хэн ч харагдахгүй, зөвхөн бүх металл эд ангиудыг тусгаарласан эсэхийг шалгаарай.

"MainButton" зүүг доош татах үед би товчлуурыг ажиллуулсан. Хөвөгч цахилгаан хэрэгсэл дээр суух үед Arduino хуурамч товчлуур дарагдсан болохыг олж мэдэв. Товчлуур дээр 10K бууж өгөх резисторыг ашиглаж, зүүг "INPUT_PULLUP" болгож тохируулснаар миний хувьд энэ асуудлыг шийдсэн.

Схемийг PDF болон-p.webp

Алхам 5: Электроникийг холбож, ойртуулна уу

Электроникийг холбож, хаах
Электроникийг холбож, хаах
Электроникийг холбож, хаах
Электроникийг холбож, хаах

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

Алхам 6: Таашаал аваарай

Зугаацаарай
Зугаацаарай
Зугаацаарай
Зугаацаарай

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

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