Мазмуну:
- 1 -кадам: Бөлүктөрдү чогултуу
- 2 -кадам: Дренаждык түтүктү даярдаңыз
- 3 -кадам: Arduino программасы
- 4 -кадам: Электрониканы чогултуу
- 5 -кадам: Электрониканы орнотуңуз жана жабыңыз
- 6 -кадам: ырахат алыңыз
Video: Space Invaders Сааты (бюджетте!): 6 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Жакында мен GeckoDiodeдун салкын курулушун көрдүм жана аны дароо өзүм кургум келди. Instructable - Space Invaders Desktop Clock жана муну окуган соң карап көрүүнү сунуштайм.
Долбоор дээрлик 3D басылган корпусу бар Adafruitтен алынган бөлүктөрдөн жана лазерден жасалган фасиядан курулган. Курулуштун баасын кошуу абдан кымбатка түшөт! (£ 100 же андан көп). Көйгөй, эгерде сизде 3D принтер жок болсо, анда сиз моделди басып чыгаруу үчүн төлөшүңүз керек, же ebayден кичинекей, өтө тар, кыска же тескерисинче начар корпусун сатып алышыңыз керек.
Менин курулуштарымдын көбү хоббиисттик бюджеттин эсебинен жасалышы керек жана корпустар дайыма эң кымбат бөлүгү болуп калат. Ошентип, мен ошол эле саатты, бирок татыктуу бюджетке курууну чечтим.
Эгерде сиз кызыктай сааттарды кароону жактырсаңыз, менин Steampunk вольтметр саатын караңыз, ал корпус үчүн ошол эле курулуш материалдарын колдонот:-)
1 -кадам: Бөлүктөрдү чогултуу
Бул долбоорду ишке ашыруу үчүн сизге төмөнкүлөр керек болот. Корпустун материалдарын эстен чыгарбаңыз, сизде башка долбоорлордо колдоно турган көп нерселер болот (бул келечектеги курулуштардын баасын дагы арзан кылат). Эгерде сиз ebayдеги бааны текшергиңиз келсе, сизге керектүү нерселердин PDF файлдарын жүктөдүм.
Куралдар (сизде буга чейин болот деп ойлойм)
- Кандооч
- Solder
- Solder насос
- Ысык желим мылтык
- Ысык клей таякчалары
- Кол өнөрчүлүк бычагы (aka stanley бычак)
- Сызгыч / өлчөөчү лента / Верниер калибри
- Зымсыз бургулоо + бургулоочу биттер (1 ммден 13 ммге чейин)
- Кесүүчү диск менен айлануучу көп аспап (aka 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.5A DC электр менен камсыздоо - £ 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 матрицасынын сыртынан байкап көрдүм жана айланма мультиструмдун жардамы менен тегиздөө үчүн төрт бурчтуу тешикти кесип алдым. Мен баскычтын диаметрын өлчөө үчүн санарип калибрди колдондум жана DC баррелинин арткы жана үстүндөгү туура өлчөмдөгү тешиктерди кесүү үчүн.
Корпусту кесүү
Менде мурунку долбоорлорго ылайыкталган ПВХ көбүгү бар. Алар микросхемаларды корпуска орнотуу, аны эпоксидин аралаштыруу жана башка биттер менен бобдорду жасоо үчүн эң сонун. A4 же A5 өлчөмүндөгү кесимди алып, LED матрицасын кароо үчүн 5 мм төрт бурчтуу тегеректи же кашекти кесип алыңыз. Бул матрица үчүн төрт бурчтуу тешикти кесүүдө жасаган бардык жаман нерселериңизди жашырат. Бул үчүн мен Inkscapeке кичинекей шаблон тартып, аны басып чыгардым (SVG File тиркелет). Андан кийин мен аны көбүк тактайына маска тасмасы менен чаптап, кылдаттык менен бычак менен кесип алдым. Туура айтуу кыйын, мен биринчиден ичинен, анан сыртын кесүүнү сунуштайм.
Баарын боё
Бардык тешиктер бургуланып, кесилгенден кийин, бурулган четтерин алып салыңыз. Ар кандай чаңды же булганууну кетирүү үчүн беттерди спирт сүрткүчтөрү менен тазалаңыз (же эгер сизде эч кандай IPA жок болсо, кээ бир арзан чачтарачтан кийин). Жакшы желдетилген жерге чачып, мүмкүн болушунча масканы колдонуңуз. Мен муну сыртта полго бир нече картон менен кылдым, бирок бул идеалдуу эмес, кичинекей шамал дагы боёктун бетиңизге кайра учуп кетишине себеп болот. Мүмкүн болгон жерде этият болуңуз жана коргоочу шаймандарды кийиңиз.
Түтүктү, капкакты жана капкактарды чачкыла, алар баары бирдей кара түстө, андан кийин бир нече саатка кургатыңыз.
3 -кадам: Arduino программасы
Код жөнүндө кээ бир маалыматтар
GeckoDiodeге кредит, анткени мен анын кодун алып, MAX7219 чипи менен иштөө үчүн өзгөрттүм. Adafruit версиясы I2C автобусун колдонот жана MAX SPI автобусун колдонот. Бул үчүн мен Arduino IDEге жүктөп алып орноткон MaxMatrix китепканасын колдондум. Эгерде сиз MaxMatrix жана LED матрицасы жөнүндө көбүрөөк билгиңиз келсе, HowToMechatronics.com сайтында абдан кыска үйрөткүч бар. LED матрицасы көп түстүү дисплейге ээ болбостон, бир гана түстүү LEDдан турат.
Менде болгон бир нааразычылык - бул китепкана үчүн кандай функциялар бар экенин жана алардын ар бирине кандай аргументтерди киргизүү керектигин так аныктоо жок. Бактыга жараша, мен сыноо жана ката менен эмне кылганын биле алдым жана аягында аны туура иштетүү өтө кыйын болгон жок. Түшүнүү үчүн биринчи нерсе - бул сиздин матрицаңызда канча 8x8 модуль бар экенин аныктоо керек. Менин кодумда бул "модулдар" деп аталган бүтүн санда сакталат:
"int модулдары = 4;"
Бул сиздин дисплейиңизде байланыштырган 8x8 модулдарынын САНЫ. Жарык диоддорунун саны же кайсы пинди жөнөтүү маалыматын колдонуп жатканыңызды эстен чыгарбаңыз. Кийинки нерсе, эгер сиздин "спрайт" же төрт матрицаны камтыган нерсе болсо, анда байт массивин мындай аныктоо керек:
"байт 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 сапка же мамыга өйдө же ылдый түрткүңүз келсе, анда санды оң же минус көбөйтөсүз. 8x8 матрицасы үчүн жетиштүү жөнөкөй, бирок сиздин спрайт бир нече матрицаны камтыганда, сиз ошого жараша үй абалын коюуга туура келет. "POP" спрайт төмөндө көрсөтүлгөн:
"matrix.writeSprite (16, 0, invader_pop_bmp);"
Эми байкап көрүңүз, үйдүн позициясы 16 эмес 8 эмес? Бул жерде код спрайт солдон оңго карай саптан/мамычадан 16. көрсөтүлөт. Бул эки 8x8 дисплейди 4 болсо да, бир 16x8 дисплей деп эсептейт! Андыктан спрайт канча дисплейде көрсөтүлөөрү жана ошого жараша ар бир спрайттын байт массивинин өлчөмү жөнүндө ойлонуу маанилүү. Болбосо сизде абдан кызыктуу сприттер болот!
DS1307 RTC
Alphought DS1307 Adafruit RTClib.h китепканасы менен жакшы иштейт, сиз убакытты кол менен жөндөй албайсыз, бул оору гана. Мен жөн эле муну менен бардым, анткени ал кодду өзгөртүү үчүн азыраак дегенди билдирет. DS1307 коду компьютериңиздин убактысынан баштап түзүлгөн убакытты жана датаны колдонуп убакытты белгилейт. Анын ордуна DS3231 китепканасын колдонууну үйрөнүңүз жана келечекте бир же эки мүнөт алдыга коюңуз. Ошондой эле, "дрейф" азыраак болгондуктан, убакыттын өтүшү менен убакытты жакшыраак сактайт. Эки модуль тең I2C автобусун колдонушат жана мен ойлойм, эгер аны колдонууну улантууну кааласаң, DS3231 RTClib.h менен колдонулушу мүмкүн.
Кодду жүктөңүз
Сиз код менен бактылуу болгондон кийин, аны Arduinoго жүктөңүз. Мен сиздин карооңуз үчүн Arduino эскизимди тиркеп койдум.
4 -кадам: Электрониканы чогултуу
Кодду жүктөөдө мен электрониканы дупонт/секирүүчү зымдар менен чогуу панелге орнотууну сунуштаар элем, андыктан кодду жүктөгөндө баары ойдогудай иштээрин билесиң. Бул сизге жабыштырууну жана жабыштырууну баштоодон мурун спрайттарды ж.б көрсөтүү менен байланышкан маселелерди чечүүгө мүмкүндүк берет. Менин кодумда мен 4, 5, 6, 7, 9 санарип казыктарын колдонуп жатканымды көрө аласыз, бирок керек болсо буларды өзгөртө аласыз. Сизге кабелдерди баскычка, DC уячасына жана динамикке ширетүү керек болушу мүмкүн, бирок көпчүлүгү жеңил түрдөгү стиль коннекторлору болушу керек.
Электрондук шаймандар бактылуу болгондон кийин, туташууларды туташтыруу керек. Сиз муну жезден жасалган лента/вероборд менен жасай аласыз, бирок анча чоң эмес компоненттер үчүн сиз Arduino казыктарына туташтыра аласыз. Бул келемиштердин уясына окшош болот, бирок аны монтаждагандан кийин корпустун ичин эч ким көрбөйт, жөн гана бардык металл бөлүктөрү бөлүнүп алынганына ынангыла, анда иштин кыскарышын каалабайсың.
Мен баскычты "mainButton" пин төмөн тартылганда иштедим. Мен Arduino калкып бара жаткан электроника отурганда жалган баскыч басылганын тааныганын көрдүм. Басуу баскычында 10K түшүүчү резисторду колдонуу жана пинди "INPUT_PULLUP" деп коюу мен үчүн бул көйгөйдү чечти.
PDF жана PNGдеги схемалар тиркелет, андыктан казыктарды кайда туташтыруу керек экенин билесиз.
5 -кадам: Электрониканы орнотуңуз жана жабыңыз
Саатым үчүн мен электрониканы ысык клей менен орнотуп койдум, бирок өтө көп колдонуудан сак болуңуз (электроника көпкө чейин ысытылганды жактырбайт). Мен кичинекей тамчы супер клейди колдонуп, аны маңдайына кысып койдум. Мен корпусту ар бир четиндеги капкактарды түртүп бүтүрдүм. Албетте, жыйынды толугу менен жабуу үчүн, акыркы капкактарды жабыштырсаңыз болот, бирок мен бир жагымды ачык калтырдым, ошондо дагы келечектеги датаны жана убакытты калыбына келтирүү үчүн arduino USB портуна кире алам.
6 -кадам: ырахат алыңыз
Жалпысынан алганда, мен муну кандайдыр бир суу түтүкчөсү жана спрей боёгу менен карап чыгып, кубанычтамын. Мен сизге жагат деп үмүттөнөм жана сиз кошо турган кандайдыр бир сонун жаңыртуу жөнүндө ойлонсоңуз мага кабарлаңыз. Кимдир бирөө муну арзаныраак кыла алабы же кийинки долбоордо колдоно турган корпус жасоонун дагы бир үнөмдүү жолу барбы же жокпу билгим келет.
Сунушталууда:
"Уизлинин" жайгашуу сааты 4 кол менен: 11 кадам (сүрөттөр менен)
"Уизлинин" жайгашкан жери боюнча саат 4 кол менен: Ошентип, Raspberry Pi менен бир топко чейин тепкилеп жүргөндө, мен аны мыкты колдонууга мүмкүндүк бере турган жакшы долбоорду тапкым келди. Мен бул улуу Instructable Build Your Own Weasley жайгашуу саатын ppeters0502 менен жолуктурдум жана ойлодум
LED сааты Neopixels менен: 4 кадам (сүрөттөр менен)
LED сааты неопикселдерди колдонуу: 60 неопикселди колдонуп LED саат жасоо боюнча менин көрсөтмөмө кош келиңиз. Сиз 3 PDFтин тиркемесин сааттын сегменттери үчүн, экинчисин база үчүн жана акыркысы чаптоодо жардам берүү үчүн шаблон деп табасыз. бөлүмдөр бирге. Ошентип, ком
Баланын биринчи сааты - Жарык таймер менен: 16 кадам (Сүрөттөр менен)
Бөбөктүн биринчи сааты - Жарык күйгүзүүчү таймер менен: Бул колдонмо баланын сүрөттөрүн, үй -бүлөлүк/үй жаныбарларынын сүрөттөрүн же башка нерселерди камтышы мүмкүн болгон алмаштырылуучу сааттын "жүздөрүн" жасоону көрсөтөт, аны сиз мезгил -мезгили менен алмаштырып турууну жакшы көрөсүз. Жөн гана каалаган нерсеге ачык перспективаны кысыңыз
Ай сааты ажыдаар менен: 8 кадам (сүрөттөр менен)
Ай сааты менен ажыдаар: *** Менин блогумдагы жазуу https://blog.familie-fratila.de/bone-dragon-moonlight-clock/ *** Мындан бир аз мурун мен бөлмөмө саат кургам, анткени мен жок дегенде чыдай турган конструкциялары бар эч нерсе сатып алган жокмун :-) Албетте, муну көргөн баламдын суранычы бар болчу
60 Гц электр линиясы менен синхрондуу Arduino санариптик сааты: 8 кадам (сүрөттөр менен)
Arduino санариптик сааты 60 Гц электр линиясы менен синхрондоштурулган: Бул Arduino негизделген санариптик саат 60 Гц электр линиясы менен синхрондоштурулган. Бул жөнөкөй жана арзан жалпы анод 4 цифралуу 7 сегменттүү дисплейге ээ, ал сааттарды жана мүнөттөрдү көрсөтөт. Бул 60 Гц синус толкуну качан кирерин аныктоо үчүн кайчылаш детекторду колдонот