Мазмуну:
- 1 -кадам: материалдарды чогултуу
- 2 -кадам: салмак кошуу
- 3 -кадам: Электроника корпусун куруу, 1 -кадам
- 4 -кадам: Электроника корпусун куруу, 2 -кадам
- 5 -кадам: Электрониканы кошуу
- 6 -кадам: Салмактуу база
- 7 -кадам: NeoPixel Halo Ring
- 8 -кадам: Коддор жана тесттер
- 9 -кадам: Чоң финал
Video: HALO: Handy Arduino Lamp Rev1.0 W/NeoPixels: 9 Steps (Сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Бул көрсөтмөдө мен сизге HALO же Handy Arduino Lamp Rev1.0 кантип курууну көрсөтөм.
HALO - бул жөнөкөй чырак, Arduino Nano тарабынан иштейт. Бул болжол менен 2 "3" жалпы изи жана өтө туруктуулук үчүн салмактуу жыгач базасы бар. Ийкемдүү моюн жана 12 супер жаркыраган NeoPixels каалаган бетиндеги ар бир деталды оңой жарыктандырууга мүмкүндүк берет. HALOдо ар кандай жарык режимдери аркылуу өтүү үчүн эки баскыч бар, алардын 15инде алдын ала программаланган. Ардуино Нано процессор катары колдонулгандыктан, аны кошумча мүмкүнчүлүктөр менен кайра программалоо мүмкүнчүлүгү бар. Жалгыз потенциометр жарыктыгы жана/же режими көрсөтүлгөн ылдамдыгын тууралоо үчүн колдонулат. Жөнөкөй металл конструкциясы HALOну абдан бышык лампага айландырат, аны каалаган цехте колдонууга ылайыктуу. Колдонуунун оңойлугу Нанонун борттогу кубаттуулугун жөнгө салуучу менен коштолот, андыктан HALO USB аркылуу же арткы жагындагы стандарттык 5мм баррель уячасы аркылуу иштейт.
Мен жакын арада бул лампаларды колдонгон көптөгөн адамдарды көрөм деп үмүттөнөм, анткени бул дизайн менен ачылган көптөгөн мүмкүнчүлүктөр бар. Сураныч, эгер сиз муну жактырсаңыз же кандайдыр бир жол менен пайдалуу деп тапсаңыз, Микроконтроллер Конкурсуна добуш бериңиз, мен аны абдан баалайм.
Бул Нускамага кирерден мурун, менин жолдоочуларыма жана менин долбоорлорумдун бирине комментарий берген, жактырган же добуш бергендерге кыскача рахмат айткым келет. Силерге рахмат, менин Картон үйрөткүчүм чоң ийгиликтерге жетти, мен азыр аны жазууда 100гө жакын жолдоочуларына жетип жатам, менин оюмча чоң этап. Мен чындыгында Ible'леримди койгондо, мен сизден алган бардык колдоону баалайм жана ага келгенде, мен сизсиз азыркы абалда болмок эмесмин. Муну менен, баарыңарга рахмат!
ЭСКЕРТҮҮ: Бул Нускамада кара сөз менен жазылган фразалар бар. Бул ар бир кадамдын маанилүү бөлүктөрү жана аларды этибарга албоо керек эмес. Бул мен кыйкырып же атайылап орой мамиле кылуу эмес, мен жөн гана жаңы жазуу ыкмасын жакшыраак кылып, эмне кылуу керек экенин баса белгилеп жатам. Эгер сизге жакпаса жана менин кадамдарымды кантип жазууну кааласам, комментарийлерде мага билдириңиз, мен эски стилиме кайтам.
1 -кадам: материалдарды чогултуу
Канча жолу айтышым керек? Ар дайым сизге керектүү нерсеге ээ болуңуз жана бир нерсени аягына чейин курууга кепилдик бар.
Эскертүү: Булардын айрымдары өнөктөштүк шилтемелери ("al" деп белгиленген), эгер сиз алар аркылуу сатып алсаңыз, мен сизге кошумча акы төлөбөстөн кичине артка кетем. Шилтемелер аркылуу сатып алсаңыз, рахмат
Бөлүктөр:
1x Arduino Nano Nano - al
1x 10k Ротари потенциометр 5 пакет 10к потенциометр - al
1х 5мм баррель джек (меники куурулган Arduino Unoдон кайра иштетилет) Аял баррели Джек (5 пакет) - ал
2x 2-pin убактылуу баскычтар 10 пакет SPST баскычын которгуч-al
60 LED/метрден 12x NeoPixels (каалаган эквиваленти, мис. WS2812B, иштейт) Adafruit NeoPixels
0,5 мм алюминийден жасалган барак
Эски ийилгич отундан ийкемдүү моюн
"Stick and Click" LED шкафынын жогорку капкак шакеги LED кабинеттик жарык - al
1/4 дюймдук фанеранын кичинекей баракчасы
Өлчөмү оор (жалпак) металл салмагы (болжол менен) 1,5 "2,5" х.25"
Күчтүү өзөктүк электр зымы
Куралдар:
Hot Glue Gun and Glue
Паяльник жана Лайк
Зымсыз электр бургу жана ар кандай кичине бурулуштар
X-acto бычагы (же пайдалуу бычак)
Сым тазалагычтар
Pense
Зым кескичтер/кескичтер
Оор жүк ташуучу кайчы
Эгерде сизде жалпак металлдын салмагы жок болсо, сизге дагы керек:
1 түрмөк арзан ширетүүчү (сиз ширетүү үчүн колдоно турган нерселер эмес) Арзан коргошунсуз ширетүүчү
Спирт шамы (же Бунзен күйгүзгүч)
Кичине катууланган болот идишти бузууга каршы эмеспиз (же эгерде бар болсо кичинекей тигель)
Бул табак/тигель үчүн штатив (меники 12 калибрлүү темирден жасалган)
Чопо идиш (идиштин астына кирген нерселердин бири)
Кээ бир алюминий фольга
ЭСКЕРТҮҮ: Эгерде сизде ширетүүчү комплект же 3D принтер болсо, анда бул жерде саналып өткөн бардык инструменттердин кереги жок болушу мүмкүн.
2 -кадам: салмак кошуу
Бул өтө татаал кадам, жана аны жасоодо өтө этият болуш керек. Эгерде сизде оор металлдын салмагы же жалпак неодимий магнити болжол менен 2,75 "1,75" менен 0,25 "болсо, анда мен аны колдонууну сунуштайт элем (жана магнит чыракты металл бетине капталына коюуга мүмкүндүк берет!).
Жоопкерчиликтен баш тартуу: Мен сиз тараптан эч кандай жаракат үчүн жооптуу эмесмин, андыктан акыл -эсти колдонуңуз
Ошондой эле, муну сыртта конкреттүү бетинин үстүндө жасаңыз, эгер ал бир аз күйүп калса каршы болбойт (бул жөн эле сактык). Менде бул процесстин сүрөттөрү жок, анткени камера мага керек эмес же каалабаган кошумча алаксытуу болмок.
Биринчиден, алюминий фольгасынан же нымдуу чоподон, болжол менен 2 3/4 дюймдан 1 3/4 дюймдан 1/4 дюймга чейин ички өлчөмдөрдү жасаңыз. Бул меникиндей овоид формасы же тик бурчтук болушу мүмкүн. Фольганы бир нече катмарын же чопонун калың катмарын колдонуңуз.
Көктү керамикалык өсүмдүк идишине салып, калыпты да, лотокту да муздак суу менен толтуруңуз.
Күйгүзүлбөгөн спирт шамыңызды/бунсенди күйгүзгүчтү алыңыз жана болот идишти/тигилди штативге коюңуз, ошондо жалын идиштин ортосун жылытат (күйгөндө). Күйгүчтү күйгүзүүдөн мурун, колуңузда жок дегенде 1 жупчук же металл иштетүүчү кычкач бар экенин текшериңиз.
Кийинки кадамдарды жасоодо булгаары мээлей, узун жең, узун шым, жабык бут кийим жана көздү коргоо жакшы идея
Катушкадан бир аз арзан ширетүүнү үзүп, болот идишке салыңыз, андан кийин күйгүзгүчтү күйгүзүңүз. Катушки толугу менен ээригиче күтө туруңуз, андан кийин калган ширелерди орточо темп менен табакка салып баштаңыз. Эгерде солярда кандайдыр бир розин бар болсо, бул ысыкта өзүнөн өзү күйүп, ачык сары жалын жана кара түтүн пайда кылышы мүмкүн. Кабатыр болбоңуз, бул менде бир нече жолу болгон жана бул нормалдуу көрүнүш.
Соңку ээригенче табакка салфетканы берүүнү улантыңыз.
Күйүүчү кайнатмадан чыккан жалындар толугу менен өчүп калсын жана идишти кармоо үчүн кычкачтарды/кычкачтарды колдонуңуз жана ээриген металлды акырын отто сактап, ичинде айлантыңыз.
Сиз бүт ширетүү толугу менен суюлтулганына жана жакшы ысык температурада экенине көзүңүз жеткенден кийин, аны оттон тез жана кылдаттык менен чыгарып, калыпка куюңуз. Суунун бир бөлүгү бууланганда, калганы калыптан чыгарылып, ээриген ширетүүгө алмаштырылганда катуу ышкырык үнү жана буу чыгат.
Лайкты муздатып, күйгүзгүчтү өчүрүңүз/шамыңызды өчүрүңүз жана болот идишти муздатуу үчүн коопсуз жерге коюңуз. Сиз муздатууну тездетүү жана андан ары катуулатуу үчүн муздатуучу ширеге муздак суу куюңуз. (Муздак суу сыртын ичине караганда тезирээк муздатып, ички чыңалууну жаратат, бул металлды катуураак жана катуураак кылат, Принс Руперт тамчысына окшош.) Сиз металл идиштин үстүнө суу куюп койсоңуз болот, бирок бул анын морттук болушуна алып келет. айрыкча, бир нече жолу жасалат.
Лайк толугу менен муздагандан кийин (коопсуз болуу үчүн болжол менен 20 мүнөт), фольга формасынан алыңыз.
Меники бир жагынан экинчи тарапка караганда калыңыраак болуп калды, ошондуктан мен балканы колдонуп, тегиздеп, четтерин тегиздедим (натыйжада сүрөттөрдө көрүп турасыз). Мен аны аккан суунун астына бир аз жылмалап, кийинкиге калтырдым.
3 -кадам: Электроника корпусун куруу, 1 -кадам
Бул кабыктын бөлүктөрү, алар нанону жайгаштырат, интерфейсти орнотот жана негизинен HALO чырагын бириктирет. Мен 0.5 мм алюминий жана ысык клей менен мина жасадым, бирок эгерде сизде 3D принтер болсо (мен дүкөнүмө бир аздан бери алууга аракет кылып жатам), мен сиз үчүн тиркелген Tinkercadда. STL версиясын түздүм. жүктөө Менде принтер жок болгондуктан, мен моделдин басып чыгарылышын текшере албай койдум, бирок баары туура басып чыгарылганын билиш үчүн, бирок эгер сиз кескичке тийиштүү колдоо структураларын кошсоңуз жакшы болмок деп ойлойм. Ошондой эле, эгер сиз бир аз башкача дизайн же эстетикага муктаж болсоңуз, булак файлын бул жерден көчүрүп жана түзөтө аласыз.
Өлчөмдөр чындыгында мен электрониканын өлчөмүнөн эмес, өзүм үчүн жасалган металлдын салмагынан алынган, бирок баары бир абдан жакшы чыкты жана өлчөмдөрү абдан оптималдуу.
Сүрөттөр мен бул жерде жаза турган нерселерден бир аз башкача тартипти сүрөттөйт, себеби мен баштапкы методумдун жыйынтыгына негизделген жакшыртылган ыкманы ойлоп таптым.
Эгерде сиз мен сыяктуу металлдан чогултуп жатсаңыз, бул жерде сиз эмне кылышыңыз керек:
1 -кадам: Бет табактары
Болжол менен 1,5 "бийик жана 3" туурасында эки бирдей жарым тегерек формасын кесиңиз. (Мен өзүмдүн колумду бошоттум, ошондуктан алар джук кутусунун маңдайына окшош).
Эки плитанын биринде топчу жана потенциометр үчүн үч тешикти бургулаңыз. Меники ар бири 1/4 дюйм болгон. Булар каалаган макетте болушу мүмкүн, бирок мен потенциометримдин борборунда бир аз көтөрүлүшүн жактырам, эки жагындагы баскычтар тең бурчтуктун үч бурчтугун түзөт. Бургулоодо, мен ар дайым керектүү өлчөмгө өтүүдөн мурун кичинекей пилоттук тешик жасайм, бул тешиктерди борборго бөлүп, аларды бир аз таза кылат.
2 -кадам: аркалуу капкак
Алюминийдин бир бөлүгүн ийип, бет плиталардын биринин ийри сызыгына туура келип, четинин туура узундугун белгилеңиз.
Бул узундуктагы жана туурасы болжол менен 2 дюйм болгон тилкени кесип, аны эки тарабындагы бет плиталардын ийри формасына дал келген догого айлантыңыз.
Ийри чокунун борбордук чекитин таап, күйгүзгүчтүн ийкемдүү моюнуна туура келүүчү тешик жасаңыз. Мен шахтадагы арткы бурчтарды жылдырдым, анткени менин чырагым негизинен моюну алдыга кыйшайып калат, ошондуктан мен буга бир аз тең салмактуулукту кошкум келди. Менин ийкемдүү моюнум диаметри 1/4 дюймдан бир аз ашкан, ошондуктан мен 1/4 дюймдук битти колдондум (менде эң чоң бурулуш бит 3/4 дюймга жетпейт) жана кылдаттык менен бурчка бурулду моюн туура келгенге чейин тешикти "тешүү" үчүн бургулаңыз.
Азыр бизде кабыктын бөлүктөрү бар, кийинки кадам - электрониканы кошуу жана аны бириктирүү!
4 -кадам: Электроника корпусун куруу, 2 -кадам
Эми биз баскычтарды жана потенциометрди кошуп, баарын бириктиребиз.
1 -кадам: Баскычтар жана болттор
Баскычтарыңыздагы жана потенциометрдеги алты бурчтуу гайкаларды чечип алыңыз. Жаңгактын астында кармоочу шакек түзүлүш болушу керек, муну ордунда калтырыңыз.
Компоненттердин ар бирин тиешелүү тешиги аркылуу оюп, анан гайкаларды артка бурап, ар бирин ордуна коюңуз. Жаңгактарды ар бир компонент толугу менен коопсуз экенине ишениңиз.
Кадам 2. Flex Neck
Ийилген бөлүктүн үстүндөгү тешиктен ийкемдүү моюнду оюңуз. Ысык желим же ширетүүчү (эгерде сизде жабдыктар болсо) моюнуңуз коопсуз жерде.
Эгерде мен сыяктуу ысык желимди колдонуп жатсаңыз, аны кийинчерээк жабышып кетпеши үчүн чоң аянтка жайылган көп тарапка желим менен жабыштыруу жакшы.
3 -кадам: Shell Ассамблеясы (3D басылган кабыкка колдонулбайт)
Ширетүүчү же ысык желимди колдонуп, алдыңкы жана арткы плиталарды аркалуу капкактын тиешелүү жерлерине бекиңиз. Мага клейимди жабыштыруу үчүн бир нече аракет кылдым, жана мурункудай эле, трюк мойнунун эки жагына да көп желимди колдонуу болуп саналат. Клей менен жабылган аймак канчалык чоң болсо, ошончолук жакшы жабышып калат.
Эми бизде кабык бар, биз схеманын бардык биттерин кошууга өтө алабыз.
5 -кадам: Электрониканы кошуу
Ал эми бул жерде кызыктуу бөлүгү: Soldering! Акыркы жумаларда чындыгында мен ширетүүдөн бир аз чарчадым, анткени мен жакында эле башка долбоорду бүтүрүү үчүн аракет кылып жүрдүм (робот дисплейимдин радикалдашкан жаңы версиясына көз салып туруңуз) платформалар), натыйжада мен бир темирди талкалап, экинчисин алдым … Баары бир бул жерде көп деле ширетүү жок, андыктан бул абдан жөнөкөй болушу керек.
Эскертүү: Эгерде сиздин Наноңузда төөнөгүч аталыштар бар болсо, анда мен аларды бул долбоор үчүн тазалоону сунуштаар элем, алар жолго түшүшөт.
Жогорудагы сүрөттөрдө диаграмма бар, эгер кааласаңыз, аны аткарсаңыз болот.
1 -кадам: Interface
Ар бир өчүргүчтөн потенциометрдин каптал пинине бир зымдан зым кошуңуз. Ушул эле капталдагы зымдан Нанодогу жерге туташтыргычка зым кошуңуз.
Потенциометрдин борбордук пининен Нанодогу A0го чейин зым менен ширетүү.
Нанодогу A1 которуштургучтун туташтырылбаган пининен зым менен туташтырыңыз.
Башка которгучтагы туташпаган төөнөгүчтөн зымды Нанодогу A2 ге туташтырыңыз.
Эскертүү: Кайсы которгучтун мааниси жок, аларды коддо оңой эле өзгөртө аласыз, бир которгуч экинчисине карама -каршы келет.
Ийилген моюнга караганда 4 дюймга узун болгон зымды кесип, эки жагын сыйрып алыңыз. Sharpie колдонуп, бир жагын бир сызык менен белгилеңиз.
Потенциометрдин акыркы туташпаган каптал пинине зым эриңиз, бул зымдын туташпаган учун зымдын белгисиз учу менен бирге акыркы астыңкы этаптан бураңыз.
Solder бул Nano боюнча 5V аягына чейин кошулду.
2 -кадам: Дисплей жана электр зымдары
Ийилген моюнга караганда 4 дюймга узун болгон 2 зымды кесип, эки учун сыйрып алыңыз.
Sharpie колдонуп, ар бир зымдын учтарын, 2 зым менен бир зымды жана 3 менен белгилеңиз.
Нанодогу санариптик 9 -пинге 2 сызык менен зымды кошуңуз.
Сиздин 5мм баррель уячаңызда, зымды борбордук пинден (оң) Нанодогу Винге кошуңуз.
Баррель уячасынын каптал пинине (жерге/терске) дагы бир зымды ээрчиңиз.
Узун зымды 3 линия менен бурап койгула, баррель уячасынын каптал казыгынан зым менен.
Бул зымдарды нанодогу ачык GND пинине туташтырыңыз.
Керек болгон жерде электр лента же ысык желим менен байланыштарды бөлүп коюңуз.
3 -кадам: Тешиктерди кесүү (металл түрүндө гана, эгер сиз капкагын 3D басып чыгарсаңыз, анда жакшы болушуңуз керек)
Бургулоону жана X-acto же Utility Knife'ти колдонуп, капкактын капталынан кылдаттык менен Нанонун USB порту үчүн тешик жасаңыз.
Капкактын артындагы баррель джекинин бетинин чоңдугуна жакын дагы бир тешик жасаңыз, USB портунун тешигине карама -каршы жакка жакыныраак.
4 -кадам: компоненттерди орнотуу
Үч узун зымды ийкемдүү моюн аркылуу жана башка тараптан өткөрүңүз.
Көп ысык желимди колдонуп, баррелдин уячасын капкактын үстүнө караган казыктары менен ордуна орнотуңуз.
Кайра ысык клейди колдонуп, Нанону ордуна коюңуз, баштапкы абалга келтирүү баскычы ылдый каратып, USB порту анын уячасында. Мен баррель жана Нанонун ортосунда "ысык желим көпүрө" жасадым, бул бири -бирин бекем кармап турат.
Эми биз салмактуу базаны түзө алабыз!
6 -кадам: Салмактуу база
Мен ширетүү жөндөмүмө ишенем жана муну жакшы пландаштырып койгом, андыктан алдыга чыгып, кодду текшерүүдөн мурун базаны кошуп койгом. Эгерде сиз өзүңүздүн жөндөмүңүзгө анча ишенбесеңиз, анда мен бул кадамды өткөрүп жиберип, баары иштеп жатканын билгенден кийин аягына кайтууну сунуштайт элем.
Эгер сиз 3D басылган версиясын түзсөңүз, анда биринчи кадамды өткөрүп жиберип, экинчисине өтүңүз.
1 -кадам: жыгач
1/4 дюйм фанеранын баракчасынан болжол менен 3 дюймдан 2 дюймга чейин базаны кесип алыңыз.
Четтерин тегиздөө үчүн, тегиздөө жана дуктарды кетирүү.
2 -кадам: Салмагы
Биринчиден, биз тандаган темир капкактын четине магниттин, металлдын же колдонулуучу ширетүүнүн туура келгенин тандап алыңыз. Меники бир багытта бир аз чоң болгондуктан, X-acto бычагы менен капталынан бир аз кырдырдым. Эгерде сиздики муну кыла турган түрү болбосо, анда башка базалык дизайн менен тегеренип калышыңыз мүмкүн.
Ыстык клей өз салмагыңызды фанеранын ортосуна, же 3D басып чыгарылган дизайнга карата, мен ушул максат үчүн иштелип чыккан "лотоктун" борборунда.
3 -кадам: Негиз
Темир капкакты салмагынын үстүнө орнотуп, аны жыгачтын түбүнө такаңыз. (3D басып чыгарылган дизайнда, аны алдын ала жасалган оюктарга салыңыз.)
Салмагы электроникага эч кандай тоскоолдук кылбасын
Базаны бекем орнотуу үчүн ысык желимди колдонуңуз. Бекем байланышты камсыз кылуу үчүн жетиштүү колдонуу.
Эми көзөмөлдөө кутучабыз толугу менен жасалып бүткөндөн кийин, жарыкка өтөлү.
7 -кадам: NeoPixel Halo Ring
Бул чырактын аталышына шыктануу, бул бөлүк - бул жарыктын булагы катары колдонула турган NeoPixel гало шакеги. Кааласаңыз, бул бөлүктү каалаган NeoPixel же жеке даректүү LED шакеги менен алмаштырса болот.
1 -кадам: ширетүү
NeoPixels 12 светодиодунун узундугун кесип алыңыз.
GND пинин 3 сызыктан турган ийкемдүү моюндан зымга туташтырыңыз.
Дин линиясын 2 линиясы бар зымга кошуңуз.
5V пинди 1 линиясы бар зымга кошуңуз.
2 -кадам: Жарыктарды сыноо
Adafruit_NeoPixel китепканасын жүктөп алып, орнотуңуз жана "strandtest" кодун ачыңыз.
Туруктуу ПИНди 9га өзгөртүңүз.
Тасма аныкталган сызыкты 12 LED үчүн конфигурацияланган кылып өзгөртүңүз.
Наного кодду жүктөп бериңиз жана бардык светодиоддоруңуздун туура иштешин камсыз кылыңыз.
Бардык тилкеси иштей электе, ар кандай туура эмес LED ди алмаштыргыла.
3 -кадам: Ринг
"Таяк жана чыкылдатуу" жарыгынан үстүңкү шакекти алыңыз жана ички алкактагы бурама орнотмолорду кесип алыңыз.
Тилкеден келген зымдар үчүн четинен кичинекей оюк кесип алыңыз.
NeoPixelsтин артындагы жабышчаак тасманын капкагын сыйрып алыңыз (эгер бар болсо) жана аларды шакектин ичине жабыштырыңыз, тилкенин эки учу биз жасаган оюкка туура келет.
Тилкенин четин бекем бекитүү үчүн ысык желимди колдонуңуз
Желим толугу менен муздагандан кийин, пикселдерди кайра сынап көрүңүз. Бул эч ким ысыкка жана керлингге татыктуу эмес экенине ынануу үчүн (меники бир аз болгон).
4 -кадам: Тоо
1/4 дюйм жыгачтан, шакектин бийиктигине жана туурасынан 1 2/3 эсеге жакын эки кичинекей тик бурчтукту кесип алыңыз.
Буларды зымдардын эки жагына бири -бирине параллель чаптап, боштукту толтуруп, ортосундагы зымдарды толугу менен клей менен жабыңыз.
Этияттык менен зымдын ашыкча узундугун ийилчээк моюнга түртүп, андан кийин жыгачтын кесимдерин мойнунун аягына жабыштырыңыз, көп желимди колдонуңуз жана боштуктарды кылдаттык менен толтуруңуз (мойнун желим менен толтурбастан).
6 -кадам: Бүтүрүү
Кааласаңыз, шакекти боёп, каалаган түстү орнотсоңуз болот, мен күмүштү артык көрчүмүн, ошондуктан мен Sharpie менен рингге басылган логиканы жаап коюу үчүн гана колдонгом. Ошол эле чырактын калган бөлүгүнө да тиешелүү.
Эми биз акыркы кодду аягына чейин чыгара алабыз!
8 -кадам: Коддор жана тесттер
Ошентип, азыр бизге чыракты программалоо жана аны текшерүү гана керек. Учурдагы коддун версиясы тиркелген (rev1.0), мен бул кодду абдан кеңири сынап көрдүм жана ал абдан жакшы иштейт. Мен rev2.0 үстүндө иштеп жатам, ал жерде баскычтар тышкы үзгүлтүктөр катары конфигурацияланган, ошондуктан режимдерди оңой алмаштырууга болот, бирок бул версия ката жана азырынча чыгарууга даяр эмес. Учурдагы версия менен, баскычты Debounce циклине өтмөйүнчө жана абалдын өзгөрүшүн тааныганга чейин кармап туруу керек, бул узунураак "Динамикалык" циклдерди кыжырдантышы мүмкүн. Төмөндө кээ бир түшүндүрмөлөр жазылган код бар (жүктөлүп алынган версияда ошол эле түшүндүрмөлөр бар).
#кошуу #ifdef _AVR_ #кошуу #endif
#аныктоо PIN 9
#аныктоо POT A0 #аныктоо BUTTON1 A1 #аныктоо BUTTON2 A2
// Параметр 1 = тилкедеги пикселдердин саны
// Параметр 2 = Arduino пин номери (көбү жарактуу) // Параметр 3 = пикселдик типтеги желектер, керек болгондо кошуңуз: // NEO_KHZ800 800 KHz бит агымы (NeoPixelдин көпчүлүк продуктылары WS2812 LED) // NEO_KHZ400 400 KHz (классикалык) v1 '(v2 эмес) FLORA пикселдери, WS2811 драйверлери) // NEO_GRB Пикселдери GRB бит агымы үчүн зымдуу (NeoPixelдин көпчүлүк продуктулары) RGBW bitstream (NeoPixel RGBW продуктулары) Adafruit_NeoPixel halo = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800);
// Эми, Adafruitтеги досторубуздун коопсуздук билдирүүсү:
// МААНИЛҮҮ: NeoPixel күйүп кетүү коркунучун азайтуу үчүн, 1000 uF конденсаторун кошуңуз
// пикселдик кубаттуулукту алып келет, биринчи пикселдин маалыматына 300 - 500 Ом каршылыгын кошуп // жана Arduino менен биринчи пикселдин ортосундагы аралыкты азайтыңыз. Жандуу чынжырга // туташуудан алыс болуңуз … эгер керек болсо, биринчи GND туташыңыз.
// Өзгөрмөлөр
int buttonState1; int buttonState2; // киргизүү пининен учурдагы окуу int lastButtonState1 = LOW; // киргизүү пиненен мурунку окуу int lastButtonState2 = LOW; int режими; // биздин чырактардын режими 16 жөндөөнүн бири болушу мүмкүн (0ден 15ке чейин) int brightVal = 0; // жарыктык/ ылдамдык, потенциометр тарабынан коюлган
// төмөнкү өзгөрмөлөр узун, анткени убакыт миллисекунд менен өлчөнөт, // int ичинде сакталгандан тез эле чоңураак болуп калат. long lastDebounceTime = 0; // акыркы жолу чыгаруу пин узак debounceDelay = 50 которулду; // чыгуу убактысы; чыгаруу жылтылдаса көбөйтүү
жокко чыгаруу () {
// которгучтун абалын жергиликтүү өзгөрмөгө окуңуз: int reading1 = digitalRead (BUTTON1); int read2 = digitalRead (BUTTON2); // Эгерде баскычтардын бирөөсү ызы -чуудан же басуудан улам өзгөрсө: if (reading1! = LastButtonState1 || reading2! = LastButtonState2) {// дебудинг таймерин баштапкы абалга келтирүү lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// эгерде баскычтын абалы басууга/бошотууга байланыштуу өзгөргөн болсо: if (reading1! = buttonState1) {buttonState1 = reading1; // эгерде ал өзгөрсө, аны окуу катары коюңуз (buttonState1 == LOW) {// булар активдүү төмөн которуштуруу режими ++ катары коюлган; if (mode == 16) {mode = 0; }}} if (reading2! = buttonState2) {buttonState2 = reading2; if (buttonState2 == LOW) {mode = mode - 1; if (mode == -1) {mode = 15; }}}} // окууну кийинки жолу lastButtonState1 = read1 цикли аркылуу сактаңыз; lastButtonState2 = окуу2; }
void getBright () {// биздин код потенциометрди окуу үчүн 0дөн 255ке чейинки маанини коёт. Кээ бир режимдерде жарыктыкты, башкаларында ылдамдыкты коюу үчүн колдонулат.
int potVal = analogRead (POT); brightVal = карта (potVal, 0, 1023, 0, 255); }
// Бул жерде биздин түс режимдерибиз. Булардын кээ бири эң татаал мисалдан алынган, башкалары оригиналдуу.
// Чекиттерди биринин артынан бири түскө толтуруңуз (colorwipe, strandtestтен алынган)
void colorWipe (uint32_t c, uint8_t күтүү) {үчүн (uint16_t i = 0; i
// асан -үсөн функциялары (ошондой эле strandtestтен алынган)
бош асан -үсөн (uint8_t күтүү) {
uint16_t i, j;
for (j = 0; j <256; j ++) {for (i = 0; i
// Бир аз башкача, бул асан -үсөндү бирдей бөлүштүрөт
void rainbowCycle (uint8_t wait) {uint16_t i, j;
for (j = 0; j <256*5; j ++) {// дөңгөлөктөгү бардык түстөрдүн 5 цикли үчүн (i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, Wheel (((i * 256 / halo.numPixels ()) + j) & 255)); } halo.show (); кечиктирүү (күтүү); }}
// Түс маанисин алуу үчүн 0дон 255ке чейин маанини киргизиңиз.
// Түстөр r - g - b - кайра rга өтүү. uint32_t Wheel (байт WheelPos) {WheelPos = 255 - WheelPos; if (WheelPos <85) {return halo. Color (255 - WheelPos * 3, 0, WheelPos * 3); } if (WheelPos <170) {WheelPos -= 85; кайра halo. Color (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; кайра halo. Color (WheelPos * 3, 255 - WheelPos * 3, 0); }
жараксыз орнотуу () {
// Бул Trinket 5V 16MHz үчүн, эгер сиз Trinket #if (_AVR_ATtiny85_) эгерде (F_CPU == 16000000) clock_prescale_set (clock_div_1) колдонбосоңуз, анда бул үч сапты алып салсаңыз болот; #endif // пинмоддун атайын кодунун соңу pinMode (POT, INPUT); pinMode (BUTTON1, INPUT_PULLUP); pinMode (BUTTON2, INPUT_PULLUP); pinMode (PIN, OUTPUT); Serial.begin (9600); // мүчүлүштүктөрдү оңдоо halo.begin (); halo.show (); // Бардык пикселдерди "өчүрүү" үчүн баштапкы абалга келтирүү}
void loop () {
алып салуу ();
//Serial.println(mode); // дагы мүчүлүштүктөрдү оңдоо //Serial.println(lastButtonState1); //Serial.println(lastButtonState2);
эгер (режим == 0) {
getBright (); үчүн (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, brightVal)); // бардык пикселдерди ак кылып коюңуз} halo.show (); }; if (mode == 1) {getBright (); үчүн (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, 0))); // бардык пикселдерди кызылга коюу} halo.show (); }; if (mode == 2) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, 0)); // бардык пикселдерди жашылга коюу} halo.show (); }; if (mode == 3) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, 0, brightVal)); // бардык пикселдерди көккө коюу} halo.show (); }; if (mode == 4) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, brightVal)); // бардык пикселдерди cyan} halo.show () коюңуз; }; if (mode == 5) {getBright (); үчүн (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, brightVal)); // бардык пикселдерди кызгылт/кызгылт көккө коюңуз} halo.show (); }; if (mode == 6) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, 0))); // бардык пикселдерди кызгылт сары/сарыга коюу} halo.show (); }; if (mode == 7) {// эми динамикалык режимдер getBright (); colorWipe (halo. Color (brightVal, 0, 0), 50); // Кызыл }; if (mode == 8) {getBright (); colorWipe (halo. Color (0, brightVal, 0), 50); // Жашыл }; if (mode == 9) {getBright (); colorWipe (halo. Color (0, 0, brightVal), 50); // Көк }; if (mode == 10) {getBright (); colorWipe (halo. Color (brightVal, brightVal, brightVal), 50); // Ак }; if (mode == 11) {getBright (); colorWipe (halo. Color (brightVal, brightVal, 0), 50); // кызгылт сары/сары}; if (mode == 12) {getBright (); colorWipe (halo. Color (0, brightVal, brightVal), 50); // көгүш}; if (mode == 13) {getBright (); colorWipe (halo. Color (brightVal, 0, brightVal), 50); // кызгылт/кызгылт}; if (mode == 14) {// акыркы экөө ылдамдыкты көзөмөлдөө, анткени жарыктык динамикалык getBright (); асан -үсөн (brightVal); }; if (mode == 15) {getBright (); rainbowCycle (brightVal); }; кечигүү (10); // процессорго бир аз эс алууга уруксат берүү}
9 -кадам: Чоң финал
Эми бизде фантастикалык, супер жаркыраган кичинекей чырак бар!
Аны бул жерден ары өзгөртсөңүз болот, же ошол бойдон калтырсаңыз болот. Сиз кодду өзгөртө аласыз, же толугу менен жаңысын жаза аласыз. Сиз базаны чоңойтуп, батареяларды кошо аласыз. Сиз желдеткич кошо аласыз. Сиз дагы NeoPixels кошо аласыз. Муну кыла турган нерселердин тизмеси дээрлик чексиз. Мен "дээрлик" деп айтам, анткени бизде муну азырынча мини -портал генераторуна айлантуу үчүн техникабыз жок экенине ишенем (тилекке каршы), бирок мындай нерселерден тышкары, бир гана чек - бул сиздин фантазияңыз (жана кандайдыр бир деңгээлде, жакында эле тапкандай, устаканаңыздагы куралдар). Бирок эгерде сизде шаймандар жок болсо, анда бул сизге тоскоолдук кылбасын, эгер сиз чындап эле бир нерсе кылгыңыз келсе, анда дайыма жол бар.
Бул долбоордун маанисинин бир бөлүгү, мен өзүмө (жана азыраак даражада, дүйнөгө) башка адамдарга жаккан пайдалуу нерселерди жасай алаарымды далилдөө үчүн, менде бар болгондун баары эски үйүлгөн калдыктар болсо керек компоненттери жана Arduino жабдыктарынын кутусу.
Мен бул жерден кетем, анткени бул абдан жакшы болду деп ойлойм. Эгерде сизде жакшыртуу боюнча сунуштарыңыз болсо же менин ыкмаларым жөнүндө суроолоруңуз болсо, астына комментарий калтырыңыз. Эгер сиз муну жасаган болсоңуз, сүрөткө тартыңыз, биз баарыбыз көргүбүз келет!
Сураныч, эгер бул сизге жакса, добуш берүүнү унутпаңыз!
Дайыма эле, бул Dangerously Explosive долбоорлору, анын өмүр бою миссиясы: "Каалаган нерсеңди тайманбастык менен куруу жана башкалар!"
Калган долбоорлорумду бул жерден таба аласыз.
Окуганыңыз үчүн рахмат жана бактылуу болуу!
Сунушталууда:
Easy Infinity Mirror Arduino Gemma & NeoPixels менен: 8 кадам (сүрөттөр менен)
Easy Infinity Mirror Arduino Gemma & NeoPixels менен: Мына! Сыйкырдуу жана алдамчы жөнөкөй чексиздик күзгүсүнө терең караңыз! Жарык диоддордун бир тилкеси чексиз чагылуу эффектин түзүү үчүн күзгү сэндвичтин ичине жаркырайт. Бул долбоор менин Ардуин интросунун көндүмдөрүн жана ыкмаларын колдонот
LED сааты Neopixels менен: 4 кадам (сүрөттөр менен)
LED сааты неопикселдерди колдонуу: 60 неопикселди колдонуп LED саат жасоо боюнча менин көрсөтмөмө кош келиңиз. Сиз 3 PDFтин тиркемесин сааттын сегменттери үчүн, экинчисин база үчүн жана акыркысы чаптоодо жардам берүү үчүн шаблон деп табасыз. бөлүмдөр бирге. Ошентип, ком
Spiral Lamp (aok aoka Loxodrome Desk Lamp): 12 кадам (Сүрөттөр менен)
Spiral Lamp (aoka Loxodrome Desk Lamp): Spiral Lamp (a.k.a The Loxodrome Desk Lamp) - мен 2015 -жылы башталган проект. Бул Пол Найландердин Локсодром Шамынан шыктандырылган. Менин баштапкы идеям моторлонгон стол чырагы болчу, ал дубалга агып жаткан нурлардын проектиси. Мен иштеп чыктым жана
BALLON LAMP !!! AMAZING !!! (жөнөкөй Awsome Ballon Lamp) !!: 6 Steps (Сүрөттөр менен)
BALLON LAMP !!! AMAZING !!! (жөнөкөй Awsome Ballon Lamp) !!: Жөнөкөй баллон лампасы шарлардан жана 12в ледди алып келген айдоочу менен жасалган
Arduino Music Reactive Desktop Lamp: 8 Steps (Сүрөттөр менен)
Arduino Music Reactive Desktop Lamp: Баарына салам! Бул курууда биз жөнөкөй компоненттерди жана кээ бир негизги Arduino программалоолорун колдонуп, реактивдүү LED стол чырагын жасайбыз. Бул жарык бардык үндөргө жана музыкага бийлей турган таасирдүү эффект түзөт. Мен бул долбоорду командалашым менен бирге бүтүрдүм