Përmbajtje:
- Hapi 1: Pjesët e nevojshme
- Hapi 2: Ndryshoni Kapelën
- Hapi 3: Lidheni atë
- Hapi 4: Programimi
- Hapi 5: Avancuar dhe Opsional: Brenda Kodit
Video: Kapelë e zbukuruar LED: 5 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:26
Unë gjithmonë kam dashur të bëj një projekt Arduino, por kurrë nuk kam pasur ndonjë ide të mrekullueshme për një derisa familja ime ishte e ftuar në një festë të mrekullueshme të kapelave. Me dy javë kohë, unë isha kurioz nëse mund të planifikoja dhe ekzekutoja një kapelë animacioni LED të ndjeshme ndaj lëvizjes. Rezulton se mundem! Unë ndoshta kam shkuar pak jashtë bordit, por projekti i përgjithshëm kushtoi rreth 80 dollarë. Me eksperimentimin dhe disa kodime mund ta bëni për më pak.
Goli me kapelë ishte si më poshtë:
- Lërini një sërë dritash të lëvizin nga pjesa qendrore e kapelës në pjesën e pasme, një dritë në secilën anë
- Ndryshoni shpejtësinë e udhëtimit të dritës të diktuar nga pjerrësia e kapelës përpara në mbrapa
- Lejoni që dritat të kthehen mbrapsht kur brezi i kapelës ishte i përkulur poshtë (dmth. Të imitoni efektin e gravitetit në dritat)
- Ndryshoni ngjyrën bazuar në pjerrësinë e kapelës nga e majta në të djathtë
- Ndjeni tronditjet dhe shfaqni një efekt të veçantë
- Ndjeni që bartësi rrotullohet dhe shfaqni një efekt të veçantë
- Mbajeni atë plotësisht në kapelë
Hapi 1: Pjesët e nevojshme
Kam përdorur komponentët kryesorë të mëposhtëm (përfshihen lidhjet Amazon jo-bashkëpunuese):
- Mikrokontrolluesi Teensy LC - Zgjodha këtë mbi një Arduino të zakonshëm për shkak të madhësisë së tij të vogël, dhe që kishte një lidhje të veçantë për kontrollin e LED -ve të mia, si dhe bibliotekën dhe mbështetjen e fortë të komunitetit.
- Sensori i pozicionimit i bazuar në Bosch BNO055 - sinqerisht një nga të parët që gjeta dokumentacionin. Ka mundësi shumë më pak të shtrenjta, megjithatë sapo të kuptoni Bosch -in, kjo bën shumë për ju, përndryshe do të duhej të bënit në kod
- Shirit LED i adresueshëm WS2812 - Zgjodha një gjatësi 1 metër me 144 LED për metër. Të kesh atë densitet e ndihmon dritën të duket më shumë si të lëvizë, sesa elementët individualë që ndriçojnë me radhë.
Dhe përbërësit e mëposhtëm të vegjël:
- Një kapelë - çdo kapelë me kapelë do të bëjë. Kjo është një kapelë prej 6 dollarësh nga një dyqan lokal. Nëse ka një qepje në pjesën e pasme, do të jetë më e lehtë të kalosh telat. Kushtojini vëmendje nëse brezi i kapelës është ngjitur pasi kjo gjithashtu do të shkaktojë disa vështirësi shtesë. Ky është i qepur përgjatë pjesës së sipërme, por pjesa e poshtme tërhiqet lehtë.
- Rezistenca 4.7K ohm
- Rasti i baterisë 3x AAA - përdorimi i 3 baterive AAA nxjerr tension pikërisht në intervalin që elektronika dëshiron, gjë që thjeshton gjërat. AAA përshtatet në një kapelë më lehtë se AA dhe ka akoma kohë të shkëlqyeshme.
- Teli i vogël matës - Kam përdorur një tel të fortë që kisha hedhur nga një projekt i mëparshëm LED.
- Saldim dhe saldim
- Disa material elastik që përputhet me ngjyrën e brendshme të kapelës dhe fijeve
Sugjeruar, por jo opsionale:
- Lidhës të shpejtë për telat e baterisë
- Mjet ndihmues i duarve, këto gjëra janë shumë të vogla dhe të vështira për t'u bashkuar
Hapi 2: Ndryshoni Kapelën
Ju do të keni nevojë për një vend në kapelë për të montuar pajisjet elektronike dhe një vend për baterinë. Gruaja ime punon me veshje në mënyrë profesionale, kështu që i kërkova këshillë dhe ndihmë. Ne përfunduam duke krijuar dy xhepa me material elastik. Xhepi i parë më i vogël drejtuar nga ana e përparme është treguar si kapelë në mënyrë që kur të instalohen pajisjet elektronike, sensori i pozicionit të mbahet në vend mjaft mirë, megjithatë mund të hiqet lehtë nëse është e nevojshme. Xhepi i dytë drejt pjesës së pasme është mbajtja e baterisë në vend.
Xhepat u mbollën me fije që përputheshin me ngjyrën e kapelës, gjatë gjithë vijës së kurorës. Në varësi të stilit të kapelës dhe materialeve është bërë nga YMMV me këtë teknikë.
Ne gjithashtu zbuluam brezin e kapelave të futur në vetvete në njërën anë, dhe ajo ishte e qepur plotësisht në kapelën në atë vend. Na u desh të hiqnim qepjen origjinale në mënyrë që të ndiznim LED nën brezin. Gjatë ndërtimit u mbajt në vend me kunja, dhe më pas u qep me fije që përputhen kur përfundoi.
Më në fund ne hapëm shtresën në anën e pasme të kapelës nëse ajo ishte e mbuluar nga brezi. Ne futëm parzmoren e telit që erdhi me LED në atë shtresë dhe rreshtuam LED -in e parë në shirit që të ishte drejtë në tegel. Ne pastaj i mbështollëm LED -et rreth kapelës dhe e preu shiritin poshtë në mënyrë që LED -ja e fundit të ishte menjëherë pranë së parës. Shiriti LED mund të mbahet në vend vetëm me brezin e kapelës, megjithatë në varësi të brezit dhe materialit tuaj mund t'ju duhet të siguroni LED -të duke qepur ose ngjitur.
Hapi 3: Lidheni atë
Bordi Teensy dhe LED -të do të punojnë me diku nga 3.3v në 5v për energji. Kjo është arsyeja pse unë zgjodha të përdor 3 bateri AAA, tensioni i daljes prej 4.5v është bukur në atë interval, dhe ato kanë shumë kohë për mënyrën se si i kam programuar LED -et për të punuar. Ju duhet të jeni në gjendje të kaloni më shumë se 8 orë kohë ekzekutimi.
Instalimi i energjisë
I bashkova lidhjet pozitive dhe negative nga kutia e baterisë dhe LED -të së bashku, pastaj i bashkova në Teensy në vendet e duhura. Pozitivi nga bateria duhet të lidhet me kunjin e sipërm të djathtë të Teensy në diagram (të etiketuar Vin në tabelë), dhe negativi mund të lidhet me çdo kunj të etiketuar GND. Me lehtësi ekziston një drejtpërdrejt në anën e kundërt të tabelës, ose menjëherë pranë kunjit Vin. Diagrami i plotë pinout për tabelën mund të gjendet në fund të kësaj faqe. Dhe në disa raste një kopje letre përfshihet kur porositni tabelën.
Nëse po planifikoni të përdorni kodin që ka vetëm disa LED të ndezur në të njëjtën kohë, mund t'i ndizni LED -et nga vetë Teensy, duke përdorur një dalje 3.3v dhe GND, megjithatë nëse përpiqeni të tërheqni shumë energji, mundeni dëmtojnë bordin. Pra, për t'i dhënë vetes opsionet më të mira, është më mirë t'i lidhni LED -et në burimin e baterisë tuaj drejtpërdrejt.
Instalimi i LED -ve
Zgjodha Teensy LC për këtë projekt pasi ka një kunj që e bën shumë më të lehtë lidhjen e LED -ve të adresueshëm. Në pjesën e poshtme të tabelës kunja që është e dyta nga pasqyrat e majta Pin #17, por gjithashtu ka 3.3v mbi të. Kjo quhet tërheqje dhe në dërrasat e tjera do të duhet të lidhni një rezistencë për të siguruar atë tension. Në rastin e Teensy LC, thjesht mund të lidhni tela nga ajo kunj direkt në telin tuaj të të dhënave LED.
Instalimi i sensorit të pozicionit
Disa nga bordet BNO055 të disponueshëm janë shumë më të rreptë në tension dhe duan vetëm 3.3v. Për shkak të kësaj, unë instalova Vin në bordin BNO055 nga dalja e dedikuar 3.3v në Teensy, e cila është kunja e tretë poshtë në të djathtë. Pastaj mund ta lidhni GND në BNO055 me çdo GND në Teensy.
Sensori i pozicionit BNO055 përdor I2c për të folur me Teensy. I2c kërkon tërheqje, kështu që lidhi dy rezistencë 4.7K Ohm nga një dalje 3.3v në Teensy në kunjat 18 dhe 19. Unë pastaj e lidha kunjin 19 në kunjin SCL në tabelën BNO055 dhe 18 në kunjin SDA.
Këshilla/truket për instalime elektrike
Për të bërë këtë projekt unë kam përdorur tela të ngurtë në vend se të bllokuar. Një avantazh i telit të ngurtë është ndërsa bashkohet me pllaka prototip si këto. Ju mund të hiqni një tel, ta përkulni atë në 90 gradë dhe ta futni atë në fund të njërit prej terminaleve, në mënyrë që skaji i prerë i telit të ngjitet mbi tabelën tuaj. Atëherë ju duhet vetëm një sasi e vogël saldimi për ta mbajtur atë në terminal, dhe mund ta ndërprisni lehtë tepricën.
Teli i ngurtë mund të jetë më i vështirë për t'u punuar pasi ka tendencë të dëshirojë të mbetet ashtu siç është i përkulur. Megjithatë për këtë projekt ai ishte një avantazh. Kam prerë dhe formuar telat e mi në mënyrë të tillë që orientimi i sensorit të pozicionit të jetë i qëndrueshëm ndërsa futja dhe hiqja pajisjet elektronike nga kapaku për rregullimin dhe programimin.
Hapi 4: Programimi
Tani që gjithçka është mbledhur, do t'ju duhet një mjet programimi i pajtueshëm me Arduino. Kam përdorur ID -në aktuale Arduino (punon me Linux, Mac dhe PC). Ju gjithashtu do të keni nevojë për programin Teensyduino për t'u ndërlidhur me bordin Teensy. Ky projekt përdor shumë bibliotekën FastLED për të bërë programimin e ngjyrave dhe pozicioneve të LED -ve.
Kalibrimi
Gjëja e parë që do të dëshironi të bëni është të shkoni në depon e shkëlqyer të GitHub të Kris Winer për BNO055 dhe të shkarkoni skicën e tij BNO_055_Nano_Basic_AHRS_t3.ino. Instaloni atë kod me Monitorin Serial që funksionon dhe do t'ju tregojë nëse bordi BNO055 vjen siç duhet në internet dhe kalon vetë testet e tij. Gjithashtu do t'ju përcjellë përmes kalibrimit të BNO055, i cili do t'ju japë rezultate më të qëndrueshme më vonë.
Fillimi me skicën Fancy LED
Kodi për kapelën Fancy LED është bashkangjitur posaçërisht, dhe gjithashtu në depon time GitHub. Kam në plan të bëj më shumë rregullime në kod dhe ato do të postohen në repon e GitHub. Skedari këtu pasqyron kodin kur ky Instructable u botua. Pas shkarkimit dhe hapjes së skicës, ka disa gjëra që do t'ju duhet të ndryshoni. Shumica e vlerave të rëndësishme për të ndryshuar janë në krye si deklarata #të përcaktuara:
Linja 24: #përcaktoni NUM_LEDS 89 - ndryshoni këtë në numrin aktual të LED -ve në shiritin tuaj LED
Linja 28: #përcakto SERIAL_DEBUG false - ju ndoshta do të dëshironi ta bëni këtë të vërtetë, në mënyrë që të shihni daljen në monitorin serik
Kodi i zbulimit të pozicionit
Zbulimi i pozicionit dhe shumica e ndryshimeve tuaja fillojnë në rreshtin 742 dhe kalojnë nëpër 802. Ne marrim të dhëna Pitch, Roll dhe Yaw nga sensori i pozicionit dhe i përdorim ato për të vendosur vlera. Në varësi të mënyrës se si janë montuar pajisjet elektronike, mund t'ju duhet t'i ndryshoni ato. Nëse montoni sensorin e pozicionit me çipin drejt majës së kapelës, dhe shigjeta pranë X e shtypur në tabelë e drejtuar në pjesën e përparme të kapelës duhet të shihni sa vijon:
- Katran po ju tund kokën
- Roll po ju kthen kokën, p.sh. prek veshin në shpatull
- Yaw është cili drejtim. ju jeni përballur (Veri, Perëndim, etj).
Nëse bordi juaj është montuar në një orientim tjetër, do t'ju duhet të ndërroni Pitch/Roll/Yaw që ata të sillen ashtu siç dëshironi.
Për të rregulluar cilësimet e Roll, mund të ndryshoni vlerat e mëposhtme #përcaktoni:
- ROLLOFFSET: me kapelën tuaj të qëndrueshme dhe aq të përqendruar sa mund të jetë, nëse Roll nuk është 0, ndryshojeni këtë me diferencën. Dmth nëse po shihni Roll në -20 kur kapela juaj është në qendër, bëni këtë 20.
- ROLLMAX: vlera maksimale për t'u përdorur për matjen e rrotullës. Më e lehtë për tu gjetur duke veshur kapelën dhe duke lëvizur veshin tuaj të djathtë drejt shpatullës tuaj të djathtë. Do t'ju duhet një kabllo USB e gjatë për ta bërë këtë ndërsa përdorni monitorin serik.
- ROLLMIN: vlera më e ulët për t'u përdorur për matjen e rrotullës, kur anoni kokën majtas
Në mënyrë të ngjashme, për Pitch:
- MAXPITCH - vlera maksimale kur shikoni lart
- MINPITCH - vlera minimale kur shikoni poshtë
- PITCHCENTER - vlera e katranit kur shikoni drejt përpara
Nëse vendosni SERIALDEBUG si të vërtetë në krye të skedarit, duhet të shihni vlerat aktuale për daljen Roll/Pitch/Yaw në monitorin serik për të ndihmuar në ndryshimin e këtyre vlerave.
Parametra të tjerë që mund të dëshironi të ndryshoni
- MAX_LED_DELAY 35 - më e ngadalta që grimca LED mund të lëvizë. Kjo është në milisekonda. Shtë vonesa nga lëvizja nga një LED në tjetrën në varg.
- MIN_LED_DELAY 10 - agjërimi që grimca LED mund të lëvizë. Sa më sipër është në milisekonda.
Përfundim
Nëse keni shkuar deri këtu, duhet të keni një kapelë LED funksionale dhe argëtuese! Nëse doni të bëni më shumë me të, faqja tjetër ka disa informacione të avancuara për ndryshimin e cilësimeve dhe bërjen e gjërave tuaja. si dhe disa shpjegime se çfarë po bën pjesa tjetër e kodit tim.
Hapi 5: Avancuar dhe Opsional: Brenda Kodit
Zbulimi i ndikimit dhe rrotullimit
Zbulimi i ndikimit/rrotullimit bëhet duke përdorur funksionet e sensorit të lartë G të BNO055. Ju mund të ndryshoni ndjeshmërinë e tij me rreshtat e mëposhtëm në initBNO055 ():
- Linja #316: BNO055_ACC_HG_DURATION - sa kohë duhet të zgjasë ngjarja
- Linja #317: BNO055_ACC_HG_THRESH - sa i fortë duhet të jetë ndikimi
- Linja #319: BNO055_GYR_HR_Z_SET - pragu i shpejtësisë së rrotullimit
- Linja #320: BNO055_GYR_DUR_Z - sa kohë duhet të zgjasë rrotullimi
Të dy vlerat janë binare 8 bit, aktualisht ndikimi është vendosur në B11000000, që është 192 nga 255.
Kur zbulohet një ndikim ose rrotullim, BNO055 vendos një vlerë të cilën kodi e kërkon pikërisht në fillim të Lakut:
// Zbuloni çdo ndërprerje të shkaktuar, domethënë për shkak të G byte të lartë intStatus = readByte (BNO055_ADDRESS, BNO055_INT_STATUS); if (intStatus> 8) {ndikim (); } else if (intStatus> 0) {tjerr (); }
Shikoni vijën e ndikimit të zbrazët () më lart në kod për të ndryshuar sjelljen në ndikim, ose rrotullimin e zbrazët () për të ndryshuar sjelljen e rrotullimit.
Ndihmësit
Unë kam krijuar një funksion të thjeshtë ndihmës (void setAllLeds ()) për vendosjen e shpejtë të të gjitha LED -ve në një ngjyrë të vetme. Përdoreni për t'i fikur të gjitha:
setAllLeds (CRGB:: E zezë);
Ose mund të zgjidhni çdo ngjyrë të njohur nga biblioteka FastLED:
setAllLeds (CRGB:: E kuqe);
Ekziston gjithashtu një funksion fadeAllLeds () që do të zbehë të gjitha LED -të me 25%.
Klasa e grimcave
Për të thjeshtuar në masë të madhe instalimet elektrike, doja të përdorja një varg të vetëm LED, por bëj që ata të sillen si tela të shumtë. Meqenëse ky ishte përpjekja ime e parë, doja ta mbaja sa më të thjeshtë, kështu që unë e trajtoj vargun e vetëm si dy, me LED -të e mesëm që do të ishin ndarja. Meqenëse ne mund të kemi një numër çift ose një numër tek, ne duhet të japim llogari për këtë. Filloj me disa ndryshore globale:
/ * * Variabël dhe kontejnerë për LED */ CRGB leds [NUM_LEDS]; statike e panënshkruar int curLedDelay = MAX_LED_DELAY; qendra int statikeLed = NUM_LEDS / 2; int statL maxLedPos = NUM_LEDS / 2; bool statik oddLeds = 0; grimcë statike boolDir = 1; bool statike speedDir = 1; dirCount i gjatë i panënshkruar; nuancë e gjatë e panënshkruarCount;
Dhe disa kode në konfigurim ():
nëse (NUM_LEDS % 2 == 1) {oddLeds = 1; maxLedPos = NUM_LEDS/2; } else {oddLeds = 0; maxLedPos = NUM_LEDS/2 - 1; }
Nëse kemi numra tek, duam të përdorim pikën 1/2 si mes, përndryshe duam pikën 1/2 - 1. Kjo është e lehtë të shihet me 10 ose 11 LED:
- 11 LED: 11/2 me numra të plotë duhet të vlerësohen në 5. dhe kompjuterët numërojnë nga 0. Pra, 0 - 4 është një gjysmë, 6 - 10 është gjysma tjetër, dhe 5 është midis tyre. Ne e trajtojmë numrin 5 në këtë rast sikur të ishte pjesë e të dyjave, domethënë është #1 për të dy vargjet virtuale të LED -ve
- 10 LED: 10/2 është 5. Por meqenëse kompjuterët numërojnë nga 0 ne duhet të heqim një. Pastaj kemi 0 - 4 për njërën gjysmë, dhe 5 - 9 për tjetrën. #1 për vargun e parë virtual do të jetë 4, dhe #1 për vargun e dytë virtual do të jetë #5.
Pastaj në kodin tonë të grimcave duhet të bëjmë një numërim nga pozicioni ynë i përgjithshëm në pozicionet aktuale në vargun LED:
if (oddLeds) {Pos1 = centerLed + currPos; Pos2 = centerLed - currPos; } else {Pos1 = centerLed + currPos; Pos2 = (qendra e udhëhequr -1) - currPos; }
Kodi gjithashtu ka kushte ku grimca mund të ndryshojë drejtimet, kështu që ne gjithashtu duhet ta kemi parasysh atë:
if (particleDir) {if ((currPos == NUM_LEDS/2) && oddLeds) {currPos = 0; } tjetër nëse ((currPos == NUM_LEDS/2 - 1) && (! oddLeds)) {currPos = 0; } else {currPos ++; }} else {if ((currPos == 0) && oddLeds) {currPos = centerLed; } tjetër nëse ((currPos == 0) && (! oddLeds)) {currPos = centerLed - 1; } else {currPos--; }}
Pra, ne përdorim drejtimin e synuar (particleDir), për të llogaritur se cila LED duhet të ndizet më pas, por gjithashtu duhet të kemi parasysh nëse kemi arritur ose në fundin e vërtetë të vargut LED, ose pikën tonë qendrore, e cila gjithashtu vepron si një fund për secili prej vargjeve virtuale.
Pasi i kemi kuptuar të gjitha këto, ndezim dritën tjetër sipas nevojës:
if (particleDir) {if (oddLeds) {Pos1 = centerLed + currPos; Pos2 = centerLed - currPos; } else {Pos1 = centerLed + currPos; Pos2 = (qendra e udhëhequr -1) - currPos; }} else {if (oddLeds) {Pos1 = centerLed - currPos; Pos2 = centerLed + currPos; } else {Pos1 = centerLed - currPos; Pos2 = (qendraLed -1) + currPos; }} leds [Pos1] = CHSV (currHue, 255, 255); leds [Pos2] = CHSV (currHue, 255, 255); FastLED.shfaqje ();}
Pse ta bëni këtë klasë fare? Siç është, kjo është mjaft e drejtpërdrejtë dhe nuk ka nevojë vërtet të jetë në një klasë. Sidoqoftë, kam plane të ardhshme për të azhurnuar kodin për të lejuar që më shumë se një grimcë të ndodhë në të njëjtën kohë, dhe disa të punojnë në të kundërt, ndërsa të tjerat po shkojnë përpara. Unë mendoj se ka disa mundësi vërtet të mëdha për zbulimin e rrotullimit duke përdorur grimca të shumta.
Recommended:
Llambë e zbukuruar në shtëpi DIY: 5 hapa (me fotografi)
Llambë e zbukuruar në shtëpi DIY: Unë jam një student kolegji aktualisht duke marrë një klasë në qarqe. Gjatë orës së mësimit, pata një ide për të përdorur një qark shumë të thjeshtë për të bërë një projekt praktik të dizajnuar për nxënësit e shkollave fillore që ishte argëtues, krijues dhe informues. Ky projekt përfshin
Hat Not Hat - një kapelë për njerëzit që nuk veshin me të vërtetë kapele, por do të donin një kapelë Përvoja: 8 hapa
Kapelë jo kapelë - një kapelë për njerëzit që nuk veshin me të vërtetë kapele, por do të donin një kapele Përvoja: Unë gjithmonë kam dëshiruar të jem një person i kapelës, por nuk kam gjetur ndonjëherë një kapelë që funksionon për mua. Kjo " Kapelë Jo, " ose magjepsës siç quhet është një zgjidhje me kore të sipërme për problemin tim të kapelës, në të cilën mund të marr pjesë në Derby të Kentucky, vakum
Bëni një kuti zbukurimi të zbukuruar duke përdorur Fusion: 7 hapa (me fotografi)
Bëni një kuti të zbukurimeve me zbukurime duke përdorur Fusion: Kjo është një nga gjërat më të rëndësishme që kam bërë me Fusion. Unë kam përdorur qelqin si material pasi do të më ndihmojë të shikoj. Unë e di dhimbjen e kërkimit të ju stoli;)
Dritat e natës të shtratit të zbukuruar: 6 hapa (me fotografi)
Dritat e natës të shtratit të zbukuruar: Ky është sistemi i dritës së shtratit të së ardhmes! Ato ndizen kur dilni nga shtrati në mes të natës dhe fiken kur hyni në makinën tuaj të rehatshme të ëndrrave. Pra, nuk ka më aksidente gjatë natës dhe thyerje të gishtërinjve të këmbëve! Kjo është super e lehtë për tu prodhuar
Bërja e një shpërthyesi geto kartoni me LED të ndezur të zbukuruar: 5 hapa
Bërja e një shpërthyesi geto kartoni me LED të ndezur të zbukuruar: Bëra një xhel geto kuti kartoni për një festë fustanesh të zbukuruar me temën e viteve '80. Mendova se do të tregoja se si e bëra këtu. Çfarë kam përdorur/Çfarë do t'ju duhet: Kuti kartoni Ngjyra të ndryshme Maskë maskimi 20 LED 40 tela rreth 10 inç të gjatë (në varësi të madhësisë së b