Мазмұны:
- 1 -қадам: материалдарды жинау
- 2 -қадам: салмақ алу
- 3 -қадам: Электроника корпусының құрылысы, 1 -қадам
- 4 -қадам: Электроника корпусының құрылысы, 2 -қадам
- 5 -қадам: электрониканы қосу
- 6 -қадам: өлшенген негіз
- 7 -қадам: NeoPixel Halo сақинасы
- 8 -қадам: кодтар мен тесттер
- 9 -қадам: Үлкен финал
Бейне: HALO: Handy Arduino шам Rev1.0 W/NeoPixels: 9 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Бұл нұсқаулықта мен сізге HALO немесе Handy Arduino Lamp Rev1.0 қалай жасалатынын көрсетемін.
HALO - бұл қарапайым шам, ол Arduino Nano арқылы жұмыс істейді. Оның жалпы көлемі шамамен 2 «3», және қатты тұрақтылық үшін ағаштан жасалған негізі бар. Иілгіш мойын және 12 өте жарқын NeoPixels кез келген беттегі барлық бөлшектерді оңай жарықтандыруға мүмкіндік береді. HALO-да әр түрлі жарық режимдерінде ауысуға арналған екі түйме бар, олардың 15-і алдын ала бағдарламаланған. Arduino Nano процессор ретінде қолданылуына байланысты оны қосымша мүмкіндіктермен қайта бағдарламалау мүмкіндігі бар. Жалғыз потенциометр жарықтықты және/немесе режим көрсетілетін жылдамдықты реттеу үшін қолданылады. Қарапайым металл конструкциясы HALO -ны кез келген шеберханада қолдануға жарамды өте берік шамға айналдырады. Пайдаланудың қарапайымдылығы нано борттық қуат реттегішімен толықтырылады, сондықтан HALO -ны USB немесе артқы жағындағы стандартты 5 мм баррель ұясы арқылы қосуға болады.
Мен жақын арада осы шамдарды қолданатын көптеген адамдарды көремін деп үміттенемін, өйткені бұл дизайнмен ашылатын көптеген мүмкіндіктер бар. Микроконтроллерлер байқауына дауыс беруді өтінемін, егер сізге бұл ұнайтын болса немесе оны пайдалы деп тапсаңыз, мен оны өте бағалаймын.
Бұл нұсқаулыққа кірмес бұрын, менің барлық ізбасарларыма және менің жобаларыма пікір білдірген, ұнатқан немесе дауыс берген кез келген адамға қысқаша рахмет айтқым келеді. Сіздің балаларыңыздың арқасында, менің картон нұсқаулығы үлкен жетістікке жетті, мен қазір жазылушылар саны 100 -ге жетті, менің ойымша, бұл үлкен кезең. Мен Ible -ді салған кезде, сізден алатын барлық қолдауды бағалаймын, және егер ол келгенде, мен сізсіз бүгінгідей болмас едім. Осымен, бәріңізге рахмет!
ЕСКЕРТПЕ: Бұл нұсқаулықта қарамен жазылған фразалар бар. Бұл әр қадамның маңызды бөліктері және оларды елемеуге болмайды, бұл мен айқайлау немесе әдейі дөрекілік емес, мен не істеу керектігін жақсырақ көрсету үшін жаңа жазу техникасын қолданамын. Егер сізге ұнамаса және менің қадамдарымды бұрын қалай жазғанымды қаласаңыз, түсініктемелерде маған айтыңыз, мен бұрынғы стиліме ораламын.
1 -қадам: материалдарды жинау
Мен оны қанша рет айтуым керек? Әрқашан сізге қажет нәрсені алыңыз, және сіз соңына дейін бірдеңе жасай алатындығыңызға кепілдік беріледі.
Ескерту: Олардың кейбіреулері серіктестік сілтемелер болып табылады («al» деп белгіленген), егер сіз олар арқылы сатып алсаңыз, мен сізге қосымша ақы төлемей -ақ, кішкене кері қайтарамын. Егер сіз сілтемелер арқылы сатып алсаңыз, рахмет
Бөлшектер:
1x Arduino Nano Nano - al
1x 10k айналмалы потенциометр 5 пакет 10к потенциометр - al
1х 5мм баррель ұясы (шахта қуырылған Arduino Uno -дан қайта өңделеді) Әйел бөшкесі (5 пакет) - al
2х 2 істікшелі лездік батырмалар 10 пакетті SPST батырмалы қосқышы-al
60 LED/метрлік жіптен 12x NeoPixels (кез келген эквивалент, мысалы, WS2812B, жұмыс істейді) Adafruit NeoPixels
0,5 мм алюминийден жасалған парақ
Ескі иілгіштен жасалған икемді мойын
«Stick and Click» жарықдиодты шкаф шамының жоғарғы қақпағы сақинасы жарықдиодты шкаф шамы - al
1/4 дюймдік фанераның кішкене парағы
Ауыр, жалпақ металдың салмағы (шамамен) 1,5 «-тен 2,5» -ке дейін.25 «
Бұрандалы ядролық электр сымы
Құралдар:
Ыстық желім пистолеті мен желім
Дәнекерлеуіш пен дәнекерлеуіш
Сымсыз электр бұрғылау және әр түрлі ұсақ бұрау
X-акто пышақ (немесе қызметтік пышақ)
Сымды тазартқыштар
Қысқыштар
Сымдарды кесу/кесу
Ауыр жұмыс қайшылары
Егер сізде жалпақ металл салмағы болмаса, сізге қажет:
Арзан дәнекерлеудің 1 орамы (сіз дәнекерлеу үшін пайдаланылатын заттарды емес) Арзан қорғасынсыз дәнекерлеуіш
Алкоголь шамы (немесе Бунзен оттығы)
Кішкене қатайтылған болаттан жасалған ыдыс, сіз оны бұзуға қарсы емессіз (немесе егер сізде кішкене тигель болса)
Бұл ыдысқа/тигельге арналған штатив (мен өзімді 12 калибрлі болат сымнан жасадым)
Балшықтан жасалған өсімдік ыдысы (кастрюльге түсетін заттардың бірі)
Кейбір алюминий фольга
ЕСКЕРТПЕ: Егер сізде дәнекерлеу жинағы немесе 3D принтері болса, мұнда көрсетілген құралдардың бәрі қажет болмауы мүмкін.
2 -қадам: салмақ алу
Бұл өте қиын қадам, сондықтан сіз өте сақ болуыңыз керек. Егер сізде ауыр металдың салмағы немесе тегіс неодимий магниті шамамен 2,75 « - 1,75» - 0,25 «болса, мен оны орнына қолдануды ұсынар едім (және магнит тіпті шамды металл беттерге жағына қоюға мүмкіндік береді!).
Жауапкершіліктен бас тарту: мен сіздің жарақатыңыз үшін жауап бермеймін, сондықтан ақылға жүгініңіз
Сонымен қатар, мұны бетон бетінің үстінде жасаңыз, егер ол сәл күйіп қалса, қарсы болмайсыз (бұл тек сақтық шарасы). Менде бұл процестің суреттері жоқ, өйткені камера маған қажет емес немесе қажет емес қосымша алаңдаушылық болар еді.
Алдымен алюминий фольгадан немесе дымқыл саздан кішкене қалып жасаңыз, шамамен 2 3/4 дюймден 1 3/4 дюймден 1/4 дюймге дейін. Бұл менікі тәрізді жұмыртқа пішіні немесе тіктөртбұрыш болуы мүмкін. Фольганы бірнеше қабатын немесе саздың қалың қабатын қолданыңыз.
Пішінді керамикалық өсімдік ыдысына салыңыз да, қалыпқа да, науаға да суық сумен толтырыңыз.
Алкогольсіз шамды/бунсенді оттықты алыңыз және болат табақты/тигельді штативке қойыңыз, сондықтан жалын ыдыстың ортасын қыздырады (жанғанда). Қыздырғышты жағар алдында, қолыңызда кем дегенде 2 жұқа қысқыш немесе металл өңдеуге арналған қысқыш бар екеніне көз жеткізіңіз.
Келесі бірнеше әрекеттерді орындау кезінде былғары қолғап, ұзын жең, ұзын шалбар, жабық аяқ киім және көзді қорғау керек
Арзан дәнекерленген катушканы бұрап, болаттан жасалған ыдысқа салыңыз, содан кейін оттықты жағыңыз. Катушка толығымен ерігенше күтіңіз, содан кейін дәнекердің қалған бөлігін табаққа қалыпты қарқынмен беруді бастаңыз. Егер дәнекерлеушіде розин бар болса, бұл ыстықта өздігінен жанып, ақшыл сары жалын мен қара түтін шығаруы мүмкін. Уайымдамаңыз, бұл менде бірнеше рет болды және бұл қалыпты жағдай.
Дәнекерлегішті ыдысқа соңғы ерігенше беруді жалғастырыңыз.
Күйдіргіштен шыққан жалын толығымен сөніп қалсын, ал табада ұстау үшін қысқыштарды/қысқыштарды қолданып, еріген металды жалында мұқият сақтай отырып, ақырын айналдырыңыз.
Барлық дәнекерлеу толығымен сұйылтылғанына және жақсы ыстық температурада екеніне сенімді болғаннан кейін, оны жалыннан тез және мұқият алып тастап, қалыпқа құйыңыз. Судың бір бөлігі буланып, қалғанын балқытылған дәнекермен алмастыру үшін қалыптан шығарып жібергенде қатты ысқырған дыбыс пен бу шығады.
Дәнекерді салқындатып, оттықты өшіріңіз/шамды сөндіріңіз және болат ыдысты салқындауға қауіпсіз жерге қойыңыз. Салқындатуды тездету және оны одан әрі қатайту үшін салқындатқыштың үстіне суық су құю қажет болуы мүмкін. (Суық су сыртын ішінен гөрі тез салқындатады, бұл металды қаттырақ және қаттырақ ететін ішкі кернеуді тудырады, бұл ханзада Руперт тамшысына ұқсайды.) Сіз металл ыдыстың үстіне су ағыза аласыз, бірақ бұл оның сынғыш болуына әкеледі. әсіресе бірнеше рет жасалса.
Дәнекер толығымен салқындағаннан кейін (қауіпсіз болу үшін шамамен 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. Иілгіш мойын
Иілгіш мойынды қисық бөліктің жоғарғы жағындағы тесік арқылы тесіңіз. Ыстық желім немесе дәнекерлеу (егер сізде жабдық болса) мойын орнында сенімді.
Егер мен сияқты ыстық желімді қолданатын болсақ, желімнің кейін жабысып қалуын болдырмау үшін оны үлкен аумаққа жағылған желіммен жабыстырған дұрыс.
3 -қадам: Shell құрастыру (3D басып шығарылған қабыққа қолданылмайды)
Дәнекерлеу таяқшасын немесе ыстық желімді қолданып, алдыңғы және артқы тақтайшаларды доғалы қақпақтың тиісті орындарына бекітіңіз. Менің желімімді жабыстыруға бірнеше рет тырысуым керек болды, және бұрынғыдай, мойын сияқты, буынның екі жағына да көптеген желімді қолдану керек. Желіммен жабылған аймақ неғұрлым үлкен болса, соғұрлым жақсы жабысады.
Енді бізде қабық бар, біз барлық схемалық биттерді қосуға көше аламыз.
5 -қадам: электрониканы қосу
Міне қызықты бөлігі: Дәнекерлеу! Соңғы апталарда мен дәнекерлеуден біршама шаршадым, өйткені мен жақында басқа жобаны аяқтау үшін соны істеп жүрмін (роботтық дисплейдің радикалды жаңа нұсқасына назар аударыңыз) платформалар), нәтижесінде мен бір темірді қиратып, екіншісін алдым … Қалай болғанда да, мұнда дәнекерлеу көп емес, сондықтан бұл өте қарапайым болуы керек.
Ескерту: Егер сіздің Nano -да түйін тақырыптары бар болса, мен оларды бұл жобаға байланысты бөлшектеуді ұсынамын, олар тек кедергі жасайды.
Жоғарыдағы суреттерде диаграмма бар, егер қаласаңыз, оны орындауға болады.
1 -қадам: Интерфейс
Коммутаторлардың әрқайсысынан сымды бір істіктен потенциометрдің бүйірлік түйреуішіне дәнекерлеңіз. Дәл сол бүйірлік түйреуіштен сымды нано жердегі түйреуішке дәнекерлеңіз.
Потенциометрдің орталық түйреуішінен наноға A0 дейін сым дәнекерлеңіз.
Нанодағы A1 қосқышының қосылмайтын түйреуішінен сымды дәнекерлеңіз.
Басқа қосқыштағы қосылмайтын түйреуіштен сымды нанодағы A2 -ге жалғаңыз.
Ескерту: Қандай коммутатордың маңызды екендігі маңызды емес, оларды кодта оңай өзгертуге болады, сонымен қатар бір коммутатор екіншісінің керісінше жасайды.
Иілгіш мойыннан 4 дюйм ұзынырақ сымның ұзындығын кесіп, екі жағын шешіңіз. Sharpie көмегімен бір жағын бір сызықпен белгілеңіз.
Потенциометрдің соңғы қосылмайтын бүйірлік түйреуішіне сымды дәнекерлеңіз, осы сымның қосылмайтын ұшын соңғы астыңғы сымның таңбаланбаған ұшымен бұраңыз.
Дәнекерлеу құрылғысы 5 В наноға қосылды.
2 -қадам: дисплей мен қуат сымдары
Иілгіш мойыннан 4 дюйм ұзынырақ 2 сымды кесіңіз де, екі ұшын шешіңіз.
Sharpie көмегімен әр сымның ұштарын белгілеңіз, бір сымды 2 сызықпен, ал біреуін 3.
Нанодағы цифрлық түйреуішке 2 жолды сыммен дәнекерлеңіз.
5 мм баррель ұяшығында сымды орталық түйреуіштен (оң) наноға Винге жалғаңыз.
Бөшке ұясының бүйірлік түйреуішіне (жерге/теріс) басқа сымды дәнекерлеңіз.
Ұзын сымды 3 жолақпен бұраңыз.
Бұл сымдарды нанодағы ашық GND түйреуішіне дәнекерлеңіз.
Қажет болған жағдайда қосылуларды электрлік таспамен немесе ыстық желіммен оқшаулаңыз.
3 -қадам: тесіктерді кесу (тек металл нұсқада, егер сіз қақпақты 3D басып шығарсаңыз, бәрі жақсы болуы керек)
Бұрғылау ұшы мен X-acto немесе утилиталық пышақты қолданып, қақпақтың бүйіріндегі нано USB портына мұқият тесік жасаңыз.
Қақпақтың артқы жағындағы бөшке ұясының беті өлшеміндей тағы бір тесік жасаңыз, мүмкіндігінше USB порты үшін тесікке қарама -қарсы жаққа жақынырақ.
4 -қадам: компоненттерді орнату
Үш ұзын сымды иілгіш мойын арқылы және екінші жағынан беріңіз.
Ыстық желімнің көп мөлшерін қолданып, бөшкелерді қақпақтың жоғарғы жағына қаратып бекітіңіз.
Қайта ыстық желімді қолданып, Наноны орнына қойыңыз, бастапқы қалпына келтіру түймесі төмен қаратып, ұясы USB портымен. Мен баррель ұясы мен нано арасында «ыстық желім көпірін» жасадым, бұл әрқайсысы бір -бірін орнында ұстауға мүмкіндік береді.
Енді біз салмақты негіз жасауға көшуге болады!
6 -қадам: өлшенген негіз
Мен дәнекерлеу шеберлігіме сенімдімін және бұл жақсы жоспарланған, сондықтан мен кодты тексерместен бұрын базаны қостым. Егер сіз өзіңіздің дағдыларыңызға сенімді болмасаңыз, мен бұл қадамды өткізіп жіберуді және бәрі жұмыс істеп тұрғанын білген соң, соған оралуды ұсынар едім.
Егер сіз 3D басып шығару нұсқасын жасасаңыз, бірінші қадамды өткізіп жіберіп, екіншісіне өтуге болады.
1 -қадам: Ағаш
1/4 дюймдік фанера парағынан негізін шамамен 3 дюймден 2 дюймге дейін кесіңіз.
Тегістеу үшін шеттерін тегістеп, дақтар кетіріңіз.
2 -қадам: Салмақ
Алдымен, біз жасаған металл қақпақтың шетіне магнит, металл немесе арнайы дәнекерлегіш сәйкес келетінін, сіздің таңдау салмағыңызды қамтамасыз етіңіз. Менікі бір бағытта үлкен болды, сондықтан мен X-акто пышақпен қырынан қырындым. Егер сіздікі мұны істей алмайтын болса, сізге басқа базалық дизайнмен айналысу қажет болуы мүмкін.
Ыстық желім сіздің салмағыңызды фанера бөлігінің ортасына немесе 3D басып шығарылған жағдайда, мен осы мақсатқа арналған орталық «табақша» аймағына жабыстырыңыз.
3 -қадам: Негіз
Металл қақпақты салмаққа бекітіп, оны ағаш негізге ортаға салыңыз. (3D басып шығарылған дизайнда оны алдын ала жасалған ойықтарға салыңыз.)
Салмақ электроникаға кедергі жасамайтынына көз жеткізіңіз
Негізді бекіту үшін ыстық желімді қолданыңыз. Қатты қосылуды қамтамасыз ету үшін жеткілікті пайдаланыңыз.
Бізде басқару тақтасы толығымен дайын болғандықтан, шамдарға көшейік.
7 -қадам: NeoPixel Halo сақинасы
Бұл шамның атауына шабыт - бұл жарықтандыру көзі ретінде біз қолданатын NeoPixel гало сақинасы. Қажет болса, бұл бөлікті кез келген NeoPixel немесе жеке адрестік жарықдиодты сақинамен өзгертуге немесе ауыстыруға болады.
1 -қадам: дәнекерлеу
NeoPixels 12 светодиодының ұзындығын кесіңіз.
GND түйреуішін 3 сызығы бар иілгіш мойыннан сымға дәнекерлеңіз.
Дин штырын 2 сызығы бар сымға дәнекерлеңіз.
5В істікшені 1 сызығы бар сымға дәнекерлеңіз.
2 -қадам: шамдарды тексеріңіз
Adafruit_NeoPixel кітапханасын жүктеп, орнатыңыз және «strandtest» кодын ашыңыз.
Тұрақты PIN кодын 9 -ға өзгертіңіз.
Жолақ анықталған сызықты 12 жарықдиодты шам үшін конфигурацияланатын етіп өзгертіңіз.
Наноға кодты жүктеңіз және барлық светодиоды дұрыс жұмыс жасайтынына көз жеткізіңіз.
Бүкіл жолақ жұмыс істемейінше, кез келген ақаулы жарық диодты жұмыс істейтін шамдарға ауыстырыңыз.
3 -қадам: қоңырау
Жоғарғы сақинаны «Stick and Click» шамынан алыңыз да, ішкі жиектегі бұрандалы бекітпелерді кесіңіз.
Жолақтан сымдар үшін шетінен кішкене ойықты кесіңіз.
NeoPixels -тің артқы жағындағы жабысқақ таспаның қақпағын алыңыз (егер бар болса) және оларды сақинаның ішіне жабыстырыңыз, жолақтың екі ұшын біз жасаған ойыққа дәл қойыңыз.
Жолақтың шеттерін мықтап бекіту үшін ыстық желімді қолданыңыз
Желім толық салқындағаннан кейін пикселдерді қайтадан тексеріңіз. Бұл жылу мен бұйралауға ешкімнің де қатысы жоқ екеніне көз жеткізу үшін (менің кейбіреулерім).
4 -қадам: Тау
Сақинаның биіктігі мен ені 2/3 есе болатын 1/4 дюймдік ағаштан екі кішкентай төртбұрышты кесіңіз.
Саңылауларды сымдардың екі жағына бір -біріне параллель жабыстырыңыз, саңылауды толтырыңыз және арасындағы сымдарды толығымен желіммен жабыңыз.
Сымның артық ұзындығын иілгіш мойынға абайлап итеріңіз, содан кейін ағаш бөлшектерін мойынның ұшына жабыстырыңыз, көп желімді қолданыңыз және бос жерлерді мұқият толтырыңыз (мойынды желіммен толтырмай).
6 -қадам: Аяқтау
Сіз сақинаны бояй аласыз және қаласаңыз, кез -келген түсті орната аласыз, мен күмісті қаптаманы жақсы көрдім, сондықтан мен сақинаға (ренжіген түрде) басылған логотипті жабу үшін Sharpie -ді қолдандым. Бұл шамның қалған бөлігіне де қатысты.
Енді біз соңғы кодты аяқтауға көшуге болады!
8 -қадам: кодтар мен тесттер
Енді бізге шамды бағдарламалау және оны тексеру ғана қажет. Ағымдағы код нұсқасы (rev1.0) қоса берілген, мен бұл кодты өте кеңінен тексердім және ол өте жақсы жұмыс істейді. Мен rev2.0 -де жұмыс жасаймын, онда түймелер сыртқы үзілістер ретінде конфигурацияланған, сондықтан режимдерді оңай ауыстыруға болады, бірақ бұл нұсқа қате және әлі шығаруға дайын емес. Ағымдағы нұсқада сіз «Динамикалық» ілмектерді тітіркендіруі мүмкін күйді өзгертуді білмейінше және күйдің өзгеруін танығанша түймені ұстап тұруыңыз керек. Төменде кейбір түсініктемелер жазылған код бар (жүктелетін нұсқада дәл осындай түсініктемелер бар).
#қосу #ifdef _AVR_ #include #endif
#PIN кодын анықтаңыз 9
#анықтайтын POT A0 #анықтайтын түйме1 A1 #анықтайтын түйме2 A2
// Параметр 1 = жолақтағы пиксель саны
// 2 -параметр = Arduino түйреуішінің нөмірі (көпшілігі жарамды) // 3 -параметр = пиксель түріндегі жалаушалар, қажет болған жағдайда қосыңыз: // NEO_KHZ800 800 КГц бит ағыны (NeoPixel өнімдерінің көпшілігі WS2812 светодиодымен) // NEO_KHZ400 400 КГц (классикалық) v1 '(v2 емес) FLORA пиксельдері, WS2811 драйверлері) // NEO_GRB пиксельдері GRB бит ағыны үшін сымды (NeoPixel өнімдерінің көпшілігі) // NEO_RGB пикселдері RGB бит ағыны үшін сымды (v1 FLORA пиксельдер, v2 емес) // NEO_RGBW пикселдері сымды RGBW бит ағыны (NeoPixel RGBW өнімдері) Adafruit_NeoPixel halo = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800);
// Ал енді, біздің достарымыздан Adafruit -те қауіпсіздік туралы хабарлама:
// МАҢЫЗДЫ: NeoPixel -тің күйіп қалу қаупін азайту үшін 1000 уФ конденсаторды қосыңыз
// пиксельдік қуат сымдары, бірінші пиксельдің мәліметтеріне 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 (read2! = buttonState2) {buttonState2 = оқу2; if (buttonState2 == LOW) {mode = mode - 1; if (mode == -1) {mode = 15; }}}} // оқуды келесі жолы цикл арқылы сақтаңыз lastButtonState1 = reading1; lastButtonState2 = оқу2; }
void getBright () {// біздің потенциометрді оқуға арналған кодымыз 0 мен 255 аралығындағы мәнді шығарады. Кейбір режимдерде жарықтықты, ал басқаларында жылдамдықты орнату үшін қолданылады.
int potVal = analogRead (POT); brightVal = карта (potVal, 0, 1023, 0, 255); }
// Міне біздің түс режимдеріміз. Олардың кейбіреулері ең қатал мысалдан алынған, басқалары түпнұсқа.
// Нүктелерді бірінен кейін бірін түспен толтырыңыз (бояғышпен сүрту, 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
// Аздап өзгеше, бұл кемпірқосақты барлық жерде бірдей таратады
жарамсыз кемпірқосақ циклы (uint8_t күту) {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) {halo. Color қайтару (255 - WheelPos * 3, 0, WheelPos * 3); } if (WheelPos <170) {WheelPos -= 85; halo. Color қайтару (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; қайтару гало. 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 (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, brightVal)); // барлық пиксельдерді ақ етіп орнатыңыз} halo.show (); }; егер (режим == 1) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, 0))); // барлық пикселдерді қызыл етіп орнатыңыз} halo.show (); }; егер (режим == 2) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, 0))); // барлық пикселдерді жасыл түске}} halo.show (); }; егер (режим == 3) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, 0, brightVal)); // барлық пикселдерді көк түске} halo.show () қойыңыз; }; егер (режим == 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 (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, brightVal)); // барлық пикселдерді қошқыл/қызғылт} halo.show () мәніне орнатыңыз; }; егер (режим == 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); // Жасыл}; егер (режим == 9) {getBright (); colorWipe (halo. Color (0, 0, brightVal), 50); // көк}; егер (режим == 10) {getBright (); colorWipe (halo. Color (brightVal, brightVal, brightVal), 50); // ақ}; егер (режим == 11) {getBright (); colorWipe (halo. Color (brightVal, brightVal, 0), 50); // сарғыш/сары}; егер (режим == 12) {getBright (); colorWipe (halo. Color (0, brightVal, brightVal), 50); // көгілдір}; if (mode == 13) {getBright (); colorWipe (halo. Color (brightVal, 0, brightVal), 50); // күлгін/қызғылт}; if (mode == 14) {// соңғы екеуі - жылдамдықты басқару, себебі жарықтық динамикалық getBright (); кемпірқосақ (жарқын Вал); }; if (mode == 15) {getBright (); кемпірқосақ циклы (жарқын Вал); }; кешіктіру (10); // процессорға біраз демалуға рұқсат етіңіз}
9 -қадам: Үлкен финал
Ал енді бізде керемет, өте жарқын кішкентай шам бар!
Сіз оны осы жерден өзгерте аласыз немесе оны сол күйінде қалдыра аласыз. Сіз кодты өзгерте аласыз немесе жаңасын толығымен жаза аласыз. Базаны үлкейтуге және батареяларды қосуға болады. Желдеткішті қосуға болады. Сіз неопиксельдерді қоса аласыз. Сіз мұны істей алатын барлық нәрселердің тізімі шексіз. Мен «дерлік» деймін, өйткені бізде оны шағын портал генераторына айналдыратын технология әлі жоқ екеніне сенімдімін (өкінішке орай), бірақ мұндай нәрселерден басқа, сіздің қиялыңыз ғана шектеледі (және белгілі бір дәрежеде, Мен жақында тапқандай, сіздің шеберханада құралдар). Бірақ егер сізде құралдар болмаса, сізге кедергі жасамаңыз, егер сіз шынымен бірдеңе жасағыңыз келсе, әрқашан жол бар.
Бұл - бұл жобаның бір бөлігі, мен өзіме (және аз дәрежеде әлемге) мен басқа адамдарға ұнайтын пайдалы заттарды жасай алатынымды дәлелдеу үшін, тіпті егер менде тек қана ескі және қоқыс қалдықтары болса да. компоненттер мен Arduino қорапшасы.
Мен бұл жерден кетемін, өйткені менің ойымша, бұл жақсы болды. Егер сізде жақсарту бойынша ұсыныстарыңыз немесе менің әдістерім туралы сұрақтарыңыз болса, төменде түсініктеме қалдырыңыз. Егер сіз мұны жасаған болсаңыз, суретке түсіріңіз, біз бәріміз көргіміз келеді!
Егер сізге ұнаса, дауыс беруді ұмытпаңыз!
Әдеттегідей, бұл қауіпті жарылғыштың жобалары, оның өмірлік миссиясы: «Құрғыңыз келетін нәрсені батыл түрде салу және тағы басқалар!»
Қалған жобаларымды мына жерден таба аласыз.
Оқығаныңыз үшін рахмет, және бақытты жасау!
Ұсынылған:
DIY үйдегі сәнді шам: 5 қадам (суреттермен)
DIY үйдегі сәнді лампа: мен қазір колледж студентімін, схемалар бойынша сабақ аламын. Сабақ кезінде мен қарапайым схеманы қолдана отырып, бастауыш сынып оқушыларына арналған қызықты, шығармашылық және ақпараттандыратын жоба жасауды ойладым. Бұл жобаға мыналар кіреді
Flexlight: дәнекерленбейтін монеталық ұялы жарықдиодты шам: 3 қадам (суреттермен)
Flexlight: дәнекерленбейтін монеталық ұялы жарықдиодты фонарь: Менің бұл жобадағы мақсатым-бөлшектері аз және дәнекерлеуді қажет етпейтін қарапайым аккумуляторлық жарықдиодты шам жасау. Сіз бөлшектерді бірнеше сағат ішінде басып шығара аласыз және оны шамамен 10 минут ішінде жинай аласыз, бұл оны (ересектердің қадағалауымен) артқа жақсы етеді
Ескі LiIon батареясынан қайта зарядталатын жарықдиодты шам / шам: 15 қадам
Ескі LiIon батареясынан қайта зарядталатын жарықдиодты шам / шам: сәлем, арзан ebay компоненттерінен және ескі электроникадан LI-иондық батареялардан бірнеше қайта зарядталатын шамдар жасадым
ARDUINO & EPOXY RESIN қолданатын түнгі шам: 9 қадам (суреттермен)
ARDUINO & EPOXY RESIN ҚОЛДАНЫЛАТЫН түнгі шам: Сәлеметсіздер ме, бүгін біз сіздерге жаңа жобаны көрсеткіміз келеді. Үстелдеріңізді безендіретін стильді түнгі жарық. Біз оны «Теңіз астындағы жарық» деп атадық. Сіз оны өзіңіз қолдансаңыз да, жақындарыңызға сыйлық берсеңіз де. Біз эпоксидті шайыр мен құйманы жинадық
Интерактивті жарықдиодты шам - Tensegrity құрылымы + Arduino: 5 қадам (суреттермен)
Интерактивті жарықдиодты шам | Tensegrity құрылымы + Arduino: Бұл бөлік қозғалысқа жауап беретін шам. Шам шамалы мүсін ретінде жасалған, бүкіл құрылымның бағыты мен қозғалысына жауап ретінде түстердің конфигурациясын өзгертеді, басқаша айтқанда, оның бағытына байланысты