Съдържание:

Лесно безкрайно огледало с Arduino Gemma & Neo Пиксели: 8 стъпки (със снимки)
Лесно безкрайно огледало с Arduino Gemma & Neo Пиксели: 8 стъпки (със снимки)

Видео: Лесно безкрайно огледало с Arduino Gemma & Neo Пиксели: 8 стъпки (със снимки)

Видео: Лесно безкрайно огледало с Arduino Gemma & Neo Пиксели: 8 стъпки (със снимки)
Видео: 3D LED Люстра своими руками Modern Infinity mirror chandelier DIY 2024, Юли
Anonim
Лесно безкрайно огледало с Arduino Gemma и NeoPixels
Лесно безкрайно огледало с Arduino Gemma и NeoPixels

Вижте! Погледнете дълбоко в омайващото и измамно просто огледало на безкрайността! Една лента от светодиоди свети навътре върху огледален сандвич, за да създаде ефект на безкрайно отражение. Този проект ще приложи уменията и техниките от моя интро клас Arduino и ще го сглоби във финална форма, използвайки по -малка дъска Arduino Gemma.

Гледайте уебинар по този проект! Вижте този уебинар, който проведох на 28 юни 2017 г., за да видя как завършвам тази компилация!

За да сте в крак с това, върху което работя, следвайте ме в YouTube, Instagram, Twitter, Pinterest и се абонирайте за моя бюлетин.

Стъпка 1: Консумативи

Консумативи
Консумативи

За да следвате този урок, ще ви трябва:

  • Остър служебен нож
  • Метална линийка или Т-квадрат
  • Подложка за рязане или картон за скрап
  • Принтер за шаблон или компас за рисуване на кръг
  • Пластмасов нож за врязване (по избор, но хубав)
  • Пистолет за лепило за топене или лепило за занаяти E6000/Quick Hold
  • Закопчалка (по избор, за използване като скоба за лепило)
  • 4 "кръгло огледало
  • Прозрачна пластмаса за огледало
  • Черна дъска от пяна, 3/16 "дебелина
  • Arduino Uno и планка за запояване върху монтажна плоча
  • USB A-B кабел
  • Малък бутон (който сте запоявали по -рано)
  • Кабелни платки
  • RGBW NeoPixel лента (или друга WS2812b RGBW LED лента) (19 пиксела, използва същата лента, която сте запоявали по -рано)
  • Поялник и спойка
  • Машини за сваляне на тел
  • Фрези с диагонален диаметър
  • Инструмент от трета ръка
  • Мултицет (по избор)
  • Малки клещи с игла
  • Пинсети
  • Дъска Arduino Gemma
  • Микро USB кабел
  • USB хъб, ако компютърът ви има само USB 3 портове (като по -нови Macs)
  • USB удължителен кабел (по избор)
  • USB захранващ адаптер
  • Lipoly батерия и зарядно устройство (по избор)

Този проект ще ви преведе през изграждането на корпус за електроника от дъска от пяна, която изисква защитена работна повърхност (режеща подложка или множество слоеве картон за скрап), метална линийка и остър нож. Можете да използвате пистолет за горещо лепило, за да сглобите парчетата, или да изберете занаятчийско лепило като E6000. Кръгло стъклено огледало е в центъра на безкрайното огледало, а парче прозрачна огледална пластмаса е тайната съставка за ефекта на безкрайния тунел. Ако нямате пластмасов нож, можете да използвате чифт здрави ножици, за да изрежете огледалната пластмаса, но оставете по-широк ръб, отколкото си мислите, че ще ви е необходим, тъй като огледалният филм има тенденция да се лющи малко около ножицата- изрязани ръбове. Бъдете внимателни, когато използвате остри инструменти, дръжте купа с ледена вода близо до всеки проект за горещо лепило за бързо третиране на изгаряне и използвайте подходяща вентилация за всякакви лепила.

Образ
Образ

Arduino Gemma - Проектът за безкрайно огледало миниатюризира веригата Arduino, като замества Arduino Uno с Arduino Gemma. Gemma е малка платка, изградена около микроконтролера ATTiny85, която има по -малко памет и по -малко функции от Atmega328 на Uno, но също така е по -малка и с по -ниска цена. Големите подложки са супер лесни за запояване (и зашиване с проводяща нишка, но това е тема за различен клас). Gemma използва микро USB кабел за свързване към вашия компютър и има JST порт за свързване на батерия. Ще научите как да програмирате Gemma от софтуера Arduino и да го вградите в окончателния проект. Можете също така да използвате Adafruit Gemma вместо това, но ще трябва да извършите допълнителна стъпка, за да конфигурирате софтуера Arduino.

Образ
Образ

RGBW NeoPixel лента - Тази дигитално адресируема лента съдържа чипове WS2812b, управляващи сложни светодиоди в червено, зелено, синьо и бяло. NeoPixel е марката на Adafruit, но можете също да намерите тази лента, като потърсите „WS2812b RGBW лента“на сайта на любимия си доставчик. Примерният код, предоставен в този клас, няма да работи с RGB (без бяла) лента, аналогова LED лента или с друг вид цифров контролен чип (като APA104, известен още като DotStar)

Стъпка 2: Изрежете части от рамката

Изрежете парчета рамка
Изрежете парчета рамка

Пригответе се за хартия! Тази стъпка включва остри инструменти и изисква внимание към детайлите, затова се уверете, че сте добре отпочинали, но и не прекалено съдържащи кофеин. Използвайте ярко осветление и голяма, чиста работна повърхност, защитена с режеща рогозка или скрап картон.

Ако сте нов в рязането и лепенето на пяна, вземете допълнително за практика и грешки- три опаковки от 16x20in дъски би трябвало да са достатъчни (и можете да правите други проекти с нея, ако ви е останало допълнително). За да предотвратите нараняване, използвайте остро острие, метална линийка, бавно темпо и много предпазливост. Нормално е да се преработват няколко парчета поради грешно приплъзване или забиване на острието.

Има два начина за създаване на фигурите, които ще изрязвате: разпечатайте шаблона или нарисувайте фигурите с компас за рисуване на кръг. И в двете няма ясно предимство, но вашите умения и инструменти могат да ви поклатят по един или друг начин. Шаблонът се предлага като PDF с плочки за хартия с размер на буква, която ще залепите заедно и ще използвате лепило, за да го залепите към вашия пяна. Има и незавършена версия на файла с шаблони, в случай че искате да го отпечатате на широкоформатен принтер или да направите промени.

Образ
Образ
Образ
Образ

Наистина е много лесно да рисувате фигурите на ръка, обещавам! Първо нарисувайте кръг, който да съответства на вашия размер на огледалото, като настроите компаса до неговия радиус (4 "огледало = 2" радиус) и нарисувайте кръг върху пяната си поне на 5 инча от всеки ръб. Разбира се, можете просто да проследите обиколката на огледалото, но тогава ще трябва да намерите и маркирате центъра! Компасът прави вдлъбнатина в централната точка, която е удобна за направата на втория концентричен кръг.

Образ
Образ
Образ
Образ

Сега разширете компаса си до 4 и изчертайте по-големия кръг около първия. Това е пълното дъно/задната част на вашето огледало- маркирайте го като такова.

Образ
Образ
Образ
Образ

Горната/предната част трябва да е малко по -голяма, така че разширете компаса си до 4 3/16 и го издърпайте на безопасно разстояние от долната част.

Образ
Образ
Образ
Образ

Прозорецът за гледане трябва да е малко по -малък от огледалото, въпреки че не е важно точно колко. Настройте компаса си на около 1/8 инча по -малък от радиуса на огледалото и след това изчертайте кръга, използвайки същата централна точка като по -големия преден/горен периметър.

Образ
Образ

Етикетирайте това парче в по -малкия кръг, който ще бъде изрязан след няколко минути.

Образ
Образ
Образ
Образ

Покрай една дълга страна на вашия пяна, маркирайте и изрежете една лента с ширина 1/2 ", а друга с ширина 1".

Образ
Образ

Тясната лента ще прегърне огледалото и ще поддържа вашата лента NeoPixel, докато по -широката ще образува външната стена на кръглата рамка.

Образ
Образ
Образ
Образ

За изрязване на кръговете! Някои финес и търпение са полезни тук. Обичам да използвам по -малък занаятчийски нож за изрязване на кръгове, защото чувствам, че имам по -голям контрол. Конкретният нож, който използвам тук, взема обикновени остриета X-acto и го намерих в пътеката за албуми.

Първо, леко плъзнете ножа си по цялата обиколка на долната част, като пробиете само горния слой хартия. По време на този проход вие сте свободни да наклоните острието, но е най -удобно и произвежда най -прецизната форма.

Изрежете отново кръга, проследявайки линията, която сте направили в предишния проход. Този път обърнете внимание на ъгъла на острието, който трябва да бъде 90 градуса (право нагоре и надолу). Натискайте здраво, докато правите този разрез, и дръжте пръстите си извън пътя на острието. Вземете дъската си и проверете дали сте прекъснали докрай. Направете още един проход с острието си, за да прорежете останалите петна по периметъра.

Образ
Образ
Образ
Образ

След това изрежете горната част и след това изрежете вътрешния й кръг. Това парче се вижда повече от всяко друго, затова му дайте малко допълнително почистване, за да изправите всички неравни ръбове.

Образ
Образ
Образ
Образ

За извития вътрешен пръстен правете напречни разфасовки на всеки 1/4 по дължината на по-тънката лента от пяна, но не прерязвайте докрай! По-лесно е, отколкото звучи- просто направете два светлинни прохода и ще получите окачете бързо. Тези разфасовки позволяват на парчето да се извие, като същевременно осигурява гладка вътрешна повърхност.

Образ
Образ
Образ
Образ

Външната част на рамката трябва да бъде поставена най -добре с лицето навън, така че ще направим напречни разрези в малко по -различен модел. Първо се подгответе за скута, като отбележите линия 3/16 "от ръба. Направете леки напречни разрези по лентата, като редувате дебели и тънки участъци съответно на около 3/8" и 1/8 ".

Образ
Образ

За да премахнете материала, където ръбът ще се притисне, поставете лентата по ръба на режещата повърхност и плъзнете ножа си хоризонтално, за да отделите излишната пяна, оставяйки долния слой хартия непокътнат.

Образ
Образ

Сега премахнете тънките части, като ги издърпате с чифт пинсети или клещи. Те пускат със задоволителен пукащ звук. С това допълнително пространство лентата вече може да се извие върху себе си и да образува чистата външна обвивка на проекта!

Образ
Образ
Образ
Образ

Изрежете парче от прозрачната си огледална пластмаса, за да бъде по-голямо от огледалото, но по-малко от външната рамка. Не се притеснявайте да се опитвате да го изрежете в кръг. Ако имате пластмасов нож, това е най -добре. Плъзнете жлеба по линийката си няколко пъти, след което щракнете пластмасата по делителя. Помощният нож обаче лесно изрязва и този тънък материал, макар и с известно лющене на огледалния материал по изрязания ръб, който така или иначе ще бъде скрит вътре в рамката.

Стъпка 3: Сглобете рамката

Сглобете рамката
Сглобете рамката
Сглобете рамката
Сглобете рамката

Защитете работната си повърхност с малко скрап материал. Загрейте пистолета за лепило и пригответе купа с ледена вода, която да държите наблизо, в случай че се изгорите. Можете да използвате различни лепила за този проект, ако предпочитате.

Образ
Образ
Образ
Образ

Нанесете капка лепило в центъра на долния кръг и залепете огледалото си към него. Завъртете и притиснете огледалото внимателно към пяната, като го подравните с маркирания кръг. След това залепете тънката си лента по периметъра на огледалото и откъснете излишъка, оставяйки малка празнина за преминаване на проводниците.

Образ
Образ
Образ
Образ

Поставете предното си парче „поничка“с лицето надолу върху работната повърхност и залепете върху прилепналия ръб. Натискайте многократно тези парчета заедно и надолу върху работната повърхност, докато лепете в движение, така че предният ръб да се окаже хубав и чист. Външната джанта няма да се върти наоколо и това е добре- можете да изберете да затворите тази празнина по-късно, ако искате.

Образ
Образ
Образ
Образ

Прокарайте проводниците на лентата NeoPixel през малката пролука на ръба на огледалото и я залепете към вътрешността. По желание използвайте щипка за дрехи, за да затегнете лентата, докато лепилото се охлади. Опитайте се да избегнете получаването на горещо лепило върху огледалото, но ако го направите, всичко е наред! Малко втриващ алкохол ще освободи задържането на непорести повърхности като стъкло.

Образ
Образ
Образ
Образ

Почистете работното си място, за да премахнете праха и парченцата пяна. Използвайте кърпа без влакна, за да избършете огледалото напълно чисто, след това вземете прозрачното си огледало и отлепете защитния капак от едната страна. Нанесете малко количество лепило в четири точки около вътрешната стена (дръжте движенията на пистолета за лепило да не се плъзгат по огледалото, за да избегнете бездомните нишки) и залепете прозрачното огледало на място. Сега вашите отразяващи повърхности са запечатани и защитени от прах.

Образ
Образ

Насладете се на двойната отразяваща способност, като включите вашата NeoPixel лента във вашата Arduino платка, изпълнявайки примерния код на NeoPixel, описан в моя урок по Arduino Class по темата.

Стъпка 4: Електрическа схема и псевдокод

Електрическа схема и псевдокод
Електрическа схема и псевдокод

Въпреки че сте добре дошли да се позовавате на диаграмата, показана тук по време на вашата компилация, силно ви препоръчвам да нарисувате своя собствена. Ще имате справка с един поглед, докато изграждате своя макет и окончателни прототипи, а схематизирането на вашите схеми ще улесни проектирането на вашите собствени проекти в бъдеще. Целта на електрическата схема е да покаже всички електрически връзки във верига, не е необходимо тяхното физическо положение или ориентация.

Връзките са както следва:

NeoPixel 5V -> Arduino 5V

NeoPixel GND -> Arduino GND

NeoPixel Din (данни в) -> Arduino цифров I/O пин (конфигурируем)

едната страна на моментния превключвател с бутон -> Arduino цифров I/O щифт (конфигурируем)

другата страна на моментния бутон -> Arduino GND

Тази схема съчетава лента NeoPixel с бутон за задействане на различни LED анимации и ще използва вътрешен резистор за изтегляне, както видяхте в урока за вход/изход. Използвайки цялата тази информация, можем да напишем четим от човека макет на нашата програма Arduino, наречен "псевдокод:"

Променливи: ПИН номер на NeoPixel, номер на пина на бутона, колко светодиоди има, колко ярки трябва да са светодиодите

Еднократни задачи: инициализирайте щифта на бутона като вход с вътрешен издърпващ се резистор, инициализирайте NeoPixel лента, опишете LED анимации

Циклични задачи: проверете дали бутонът е натиснат и ако е, преминете към различна LED анимация

Може да изглежда просто, но отделянето на време за писане на псевдокод за вашия проект ще ви помогне да напишете последната си скица Arduino по -бързо и с по -малко объркване. Той функционира малко като списък със задачи, както и справочно ръководство, когато плувате в код и не можете да си спомните какво се опитвате да постигнете!

Стъпка 5: Прототип на дъската

Прототип на дъската
Прототип на дъската

Вземете своя Arduino и макет и се уверете, че USB кабелът е изключен. Включени ли са вашите NeoPixels от по -рано? Страхотен! Ако не, свържете ги: 5V към захранващата шина, Din към Arduino пин 6, GND към заземителната шина.

След това добавете моментен бутон към дъската си, пресичайки централната разделителна линия. Свържете единия крак към заземителната релса, а съседния му крак към щифт Arduino 2. Изтеглете кода за този проект директно или в модула Autodesk Circuits по -горе, щракнете върху бутона „Редактор на кодове“, след това „Изтеглете кода“и отворете файла в Arduino или копирайте и поставете кода в нова празна скица на Arduino.

Образ
Образ

Включете USB кабела и качете кода на дъската Arduino. Натисни бутона; тя трябва да задейства нова анимация за възпроизвеждане в NeoPixels. 5V релсата е достатъчна за тези няколко пиксела при ограничена яркост, но за бъдещи проекти с повече светодиоди ще ви е необходимо отделно захранване, както е обсъдено в урока за умения в моя интро клас Arduino.

Стъпка 6: Код

Нека разгледаме кода по -подробно:

#define BUTTON_PIN 2 // Цифров IO щифт, свързан с бутона. Това ще бъде

// задвижван с издърпващ се резистор, така че превключвателят трябва // да издърпа щифта към земята за момент. При висок -> нисък // преход ще се изпълни логиката за натискане на бутон. #define PIXEL_PIN 6 // Цифров IO щифт, свързан към NeoPixels. #define PIXEL_COUNT 19 #define BRIGHTNESS 100 // 0-255 // Параметър 1 = брой пиксели в лентата // Параметър 2 = пинов номер (повечето са валидни) // Параметър 3 = флагове тип пиксел, добавете заедно според необходимостта: / / NEO_RGB Пиксели са свързани за RGB битови потоци // NEO_GRB Пикселите са свързани за GRB битови потоци, правилно, ако цветовете се сменят при тестване // NEO_RGBW Пикселите са свързани за RGBW битови потоци // NEO_KHZ400 400 KHz битов поток (напр. FLORA пиксели) // NEO_KHZ800 800 KHz битов поток (напр. LED лента с висока плътност), правилно за неопикселова пръчка Adafruit_NeoPixel strip = Adafruit_NeoPixel (PIXEL_COUNT, PIXEL_PIN, NEO_GRBW + NEO_KHZ800); bool oldState = HIGH; int showType = 0;

Подобно на примерния код на NeoPixel, този първи раздел настройва лентата NeoPixel и променливите за щифта с бутон за управление, пиксела за управление на пикселите и т.н.

void setup () {

pinMode (BUTTON_PIN, INPUT_PULLUP); strip.setBrightness (BRIGHTNESS); strip.begin (); strip.show (); // Инициализиране на всички пиксели на „изключено“} Функцията за настройка задава щифт 2 към вход с активиран вътрешен издърпващ резистор, задава глобалната яркост на пикселите и стартира връзката за данни за пиксели.

void loop () {

// Получаване на текущо състояние на бутона. bool newState = digitalRead (BUTTON_PIN); // Проверете дали състоянието е променено от високо на ниско (натискане на бутон). if (newState == LOW && oldState == HIGH) {// Бутон за кратко забавяне за деблокиране. забавяне (20); // Проверете дали бутонът все още е нисък след деблокиране. newState = digitalRead (BUTTON_PIN); if (newState == LOW) {showType ++; if (showType> 6) showType = 0; startShow (showType); }} // Задайте последното състояние на бутона на старо състояние. oldState = newState; }

Функцията цикъл първо проверява текущото състояние на бутона и го съхранява в булева променлива (може да бъде едно от двете състояния: HIGH или LOW). След това проверява и проверява двойно дали това състояние преминава от ВИСОКО към НИСКО. Ако това се случи, showType се увеличава с едно и се извиква функцията startShow, като текущият showType му се предава като аргумент (showType е ограничен до 0-6). Променливата oldState се актуализира, за да отразява последното състояние на бутона.

void startShow (int i) {

превключвател (i) {случай 0: colorWipe (strip. Color (0, 0, 0), 50); // Black/off break; случай 1: colorWipe (strip. Color (255, 0, 0), 50); // Червена пауза; случай 2: colorWipe (strip. Color (0, 255, 0), 50); // Зелена пауза; случай 3: colorWipe (strip. Color (0, 0, 255), 50); // Синя пауза; случай 4: pulseWhite (5); прекъсване; случай 5: rainbowFade2White (3, 3, 1); прекъсване; случай 6: fullWhite (); прекъсване; }}

Функцията startShow съдържа оператор switch/case, който е просто фантастичен бърз начин за подреждане на куп инструкции if/else. Случаят за превключване сравнява променливата i със стойностите на всеки случай, след което изпълнява кода в този израз. Ключовата дума

прекъсване;

излиза от оператора switch/case. Този превключвател/калъф се използва за извикване на различни анимационни функции всеки път, когато натиснете бутона.

Образ
Образ

Сега, когато имате функционален прототип на макет, е време да превърнете това в завършен проект, като използвате Arduino Gemma, който е по -малък, по -малко функционален и с по -ниска цена от Arduino Uno. Можете също така да използвате Adafruit Gemma вместо това, но ще трябва да извършите допълнителна стъпка, за да конфигурирате софтуера Arduino.

Първо, променете пин променливата NeoPixel от 6 на 1 във вашия код:

#define PIXEL_PIN 1 // Цифров IO щифт, свързан към NeoPixels.

Включете вашия Arduino Gemma в компютъра си с помощта на USB кабел и изберете „Arduino Gemma“като тип дъска в менюто Arduino Tools.

Образ
Образ

Ограничените функции на вградения микроконтролер ATTiny85 не поддържат сериен порт по същия начин като Uno, така че не е нужно да избирате нищо от менюто Port. Не забравяйте обаче да изберете „Arduino Gemma“под елемента от менюто на програмиста.

Образ
Образ

Дъската се нуждае от малко помощ, за да разберете кога се опитвате да я програмирате, така че натиснете бутона за нулиране на дъската и докато червеният светодиод пулсира, натиснете бутона за качване, за да заредите скицата си в Gemma. Ако вашият червен светодиод не пулсира, когато натиснете бутона за нулиране, вашият USB кабел може да е само за захранване и трябва да бъде заменен с USB кабел, който има връзки за захранване и данни. Друга причина, поради която вашият светодиод може да не пулсира, е ако използвате USB 3 порт (всички по -нови Macs), който има проблеми с разпознаването на зареждащото устройство Gemma. Използвайте USB 2 порт на вашия компютър или USB хъб между компютъра и Gemma.

Стъпка 7: Верига за запояване

Образ
Образ
Образ
Образ

За да стартираме веригата с вашата Gemma, ще запояваме проводниците директно към подложките на платката. Извадете конектора на макетната платка и отстранете, завъртете и оловете кабелите на проводниците на NeoPixel лентата. Запоявайте проводници върху диагонални проводници на бутон по същия начин (можете да използвате бутона от урока по запояване). Завийте и запойте заедно двата заземяващи проводника.

Образ
Образ
Образ
Образ

Големите отвори на Джема улесняват сглобяването на тази верига без допълнителни части- просто прокарайте консервираните проводници през отворите и увийте излишъка около подложката за запояване. Връзките са както следва:

  • NeoPixel 5V -> Gemma Vout
  • NeoPixel Din -> Gemma 1 ~ (цифров извод 1)
  • NeoPixel GND -> едната страна на бутона -> Gemma GND
  • другата страна на бутона -> Gemma 2 (цифров щифт 2)

Поставете вашата платка в инструмент от трета ръка и загрейте връзките с поялника си, преди да приложите още спойка, за да погълнете подложката и проводника. След като всички връзки се охладят, отрежете излишния проводник с фишовете.

Образ
Образ
Образ
Образ

Горещо залепете вашата Gemma на място с USB порта към ръба на кръга.

Образ
Образ
Образ
Образ
Образ
Образ
Образ
Образ
Образ
Образ

Нанесете предния/горния капак и манипулирайте ръба, за да поставите парчетата чисто заедно. Може да се наложи да подрежете малко долния си кръг, за да го поставите, и по същия начин да издърпате ръба, за да поберете своя партньор. Залепете бутона на място, където желаете.

Стъпка 8: Използвайте го

Включете USB кабел, натиснете бутона и се наслаждавайте! Можете да превключите цветовете и анимациите, като промените кода. Използвайте USB захранващ адаптер, ако искате да го монтирате на стена. В този момент можете да направите още едно малко парче ръб от пяна, за да затворите останалата празнина, ако желаете. Някои предлагани приложения: закачете го на стената си, дръжте го на бюрото си, дайте го на приятел!

Образ
Образ

Можете лесно да стартирате този проект с вътрешна батерия, вместо да свържете USB кабел. Ориентацията, при която лепите Gemma, ще определи достъпа до порта за батерията, така че може да искате да го залепите отново под различен ъгъл. 19 RGBW пиксела по 80ma max ток (плюс ~ 10ma за Gemma) се равнява на 1530ma, което означава, че технически се нуждаем от батерия с поне толкова mAh. Кодът за огледалото обаче не се доближава до използването на светодиодите на четирите пиксела при пълна яркост заедно, така че в действителност максималното изтегляне на ток е далеч по -малко. Здравословен батериен компромис е 1200mAh акумулаторна липолийна батерия.

Образ
Образ

Благодаря, че следвате заедно с този проект на Arduino! За да научите повече основи, вижте моя уводен клас Arduino. Нямам търпение да видя вашите версии в коментарите и да приветствам вашите мисли и отзиви.

Препоръчано: