INHOUDSOPGAWE:

Slim kaart van Idaho met LED -data + kuns: 8 stappe (met foto's)
Slim kaart van Idaho met LED -data + kuns: 8 stappe (met foto's)

Video: Slim kaart van Idaho met LED -data + kuns: 8 stappe (met foto's)

Video: Slim kaart van Idaho met LED -data + kuns: 8 stappe (met foto's)
Video: 26 Julie 2020 - Lucio Basson - Profisieë en drome in die broeikas. 2024, November
Anonim
Image
Image

Volg meer deur die skrywer:

Slim wêreldkaart met dataskerms en programmeerbare DMX -beligting
Slim wêreldkaart met dataskerms en programmeerbare DMX -beligting
Baardige iris - verdeel en oorwin
Baardige iris - verdeel en oorwin
Baardige iris - verdeel en oorwin
Baardige iris - verdeel en oorwin
Webverbinde SMART LED-animasieklok Met webgebaseerde bedieningspaneel, tydbediener gesinkroniseer
Webverbinde SMART LED-animasieklok Met webgebaseerde bedieningspaneel, tydbediener gesinkroniseer
Webverbinde SMART LED-animasieklok Met webgebaseerde bedieningspaneel, tydbediener gesinkroniseer
Webverbinde SMART LED-animasieklok Met webgebaseerde bedieningspaneel, tydbediener gesinkroniseer

Ek wou nog altyd 'n manier hê om geografiese data artistiek en dinamies te vertoon deur 'n kaart met lig te "skilder". Ek woon in Idaho en is mal oor my staat, so ek het gedink dit sou 'n goeie plek wees om te begin! Behalwe dat dit 'n kunswerk is met koel beligtingseffekte, bied dit ook nuttige inligting. U kan byvoorbeeld 'n "hittekaart" per telling van bevolkingsdigtheid, neerslagvlakke, maksimumhoogtes/minimums, aantal hektaar wildernisgebied, ens. Wys. Nadat ek hierdie kaart van Idaho gedoen het, is ek gemotiveerd om iets soortgelyks te doen op 'n wêreldwye skaal!

Vir hierdie instruksies benodig u die volgende:

  • (2) 2'x4 'vel van 1/4MDF
  • (1) Dennebord van 10 'stuk 1' x 8 '
  • (1) vel lig wat diffundeer akriel
  • 2 snare van (50) ws2812B vooraf bedrade indeksbare LED
  • 5 volt kragtoevoer
  • Vlek, verf, gom
  • Arduino Micro of ekwivalent

Gereedskap benodig

  • CNC masjien
  • Soldeerbout
  • Klampe
  • Sandpapier

Stap 1: Plak die hout vas

Plak die hout vas
Plak die hout vas
Plak die hout vas
Plak die hout vas
Plak die hout vas
Plak die hout vas
Plak die hout vas
Plak die hout vas

Elke keer as ek houtpanele vasgom, sit ek altyd die koekies bymekaar. Dit voorkom splitsing as gevolg van krimping terwyl die hout droog word. Dit is veral belangrik vir hierdie projek, aangesien die oppervlak wat die stukke met mekaar verbind, verminder sal word as gevolg van die CNC -sakwerk. Nadat u 'n goeie stuk gom aan beide kante en in albei helftes van die beskuitjieholtes gekry het, klem en laat staan vir 24 uur.

Nadat u die klemme uitmekaar getrek het, gebruik 'n palmskuurder (of as u dapper is, 'n bandskuurder) en skuur die gewrigte glad. U moet altyd die gom uit die gewrigte druk, en u wil die bord so glad as moontlik laat vlek.

noudat ons die drie panele het wat ons benodig, gaan ons verder met die CNC -werk!

Stap 2: CNC die drie panele (grenspaneel, dennekern en LED -paneel)

CNC die drie panele (grenspaneel, dennekern en LED -paneel)
CNC die drie panele (grenspaneel, dennekern en LED -paneel)
CNC die drie panele (grenspaneel, dennekern en LED -paneel)
CNC die drie panele (grenspaneel, dennekern en LED -paneel)
CNC die drie panele (grenspaneel, dennekern en LED -paneel)
CNC die drie panele (grenspaneel, dennekern en LED -paneel)
CNC die drie panele (grenspaneel, dennekern en LED -paneel)
CNC die drie panele (grenspaneel, dennekern en LED -paneel)

Daar is drie panele waaruit die projek bestaan. U kan die modelle sien in die sagteware wat ek gebruik. Die kaartdata is gekoop uit die uitstekende royalty -vrye Maptoriaanse kaartpakkette. Fantastiese detail en waarde hier! Die CAD -lêers word in die volgende stap aangeheg as u die DXF vir die CAD- of die Vector -lêers wil hê.

Die LED -kernpaneel is basies 'n bewerkte 1/4 "MDF -vel wat die LED's met 'n noue wrywing pas. U sal op hierdie paneel 'n groot" sak "rondom die LED sien. Dit is sodat die lig so vinnig kan versprei as moontlik om warm kolle op die akriel te vermy.

Die kern is die dennepaneel wat ons in die vorige stap vasgeplak het en verteenwoordig die agtergrond vir die projek. Om die lig by die akrielpanele te bereik, het ons elke provinsie weggewerk.

Uiteindelik word die boonste paneel bewerk met slegs die buitelyne van die provinsies en die staatsgrens. Elke provinsie het 'n klein rak wat die 1/8 duim ligte diffuserende akriel ontvang.

As ons van akriel praat, is dit tyd om dit volgende te bewerk.

Stap 3: Masjien die graafskappe uit 'n akrielblad

Image
Image
Masjien die graafskappe uit 'n akrielblad
Masjien die graafskappe uit 'n akrielblad
Masjien die graafskappe uit 'n akrielblad
Masjien die graafskappe uit 'n akrielblad

Om die provinsies van akriel te bewerk, het 'n bietjie beproewing opgedoen. Akriel kan smelt as dit stadig bewerk word, sodat 'n behoorlike voedingssnelheid nodig is om goeie resultate te behaal. Nog 'n wenk is om 'n so groot as moontlik instrument met 'n goeie suiging te gebruik om die skyfies te verwyder. Klein gereedskap maak die skyfies nie so maklik skoon nie en bou hitte op wat die ongewenste smelt veroorsaak.

Ek kon die resolusie kry wat ek nodig gehad het met 'n 1/8 duim -upcut twee fluit spiraalbits by 18, 500 rpm en 'n voedingssnelheid van 200ipm. 'N Goeie voedings- en snelheidsrekenaar is hier nuttig! Ek sal die een aanbeveel by cnccookbook.com. 'N Enkele fluitkop sou selfs beter gewerk het, maar ek het nie een byderhand nie. Dit is belangrik om hierdie stukke in die CAM -werk klein te hou, sodat die voltooide stukke nie kan wegbreek en in die kamer geprojekteer word nie!

Die magiese kompensasie vir die maak van graafskappe in die regte grootte, blyk 'n terugslag van 075 te wees vanaf die middellyn op die CAD -tekening. Dit maak voorsiening vir 1/2 van die 1/8 rand plus 'n bietjie ekstra vir die paneel om op sy plek te val. 'N Klein bietjie skuur was nodig op sekere stukke om dit op hul plek te laat val. Weer 'n klomp wrywing passtukke het hierdie vinnige en maklike werk gemaak.

Dit was maklik om al die provinsies op 'n enkele stuk akriel te laat pas, met my vektriese sagteware wat 'n nesfunksie het om die velgebruik te maksimeer.

Net vir die pret het ek 'n paar stukke begin toets. Begin saamkom. Koel!

Ek wil die lêers hê om die provinsies te bewerk. Sekerlik! Sien aanhangsel.

Stap 4: Verf en vlek

Verf en vlek
Verf en vlek
Verf en vlek
Verf en vlek
Verf en vlek
Verf en vlek

Voordat ons al ons stukke bymekaarmaak, moet ons eers verf en vlek. Ek gebruik 'n kombinasie van vlekke vir die houtpaneel, spuitverf vir die randlaag en 'n reflekterende wit vir die LED -laag. Vinnige werk en ons is besig met die vergadering. Pret hê!

Stap 5: Plak die panele vas

Plak panele vas
Plak panele vas
Plak panele vas
Plak panele vas
Plak panele vas
Plak panele vas

Dit is nou tyd om die onderste paneel aan die onderkant van die dennekern vas te plak en dan die MDF -randpaneel aan die onderkant van die dennekern. Ek het net 'n reeks klampe gebruik om dit te doen.

Stap 6: Bedek die LED's met wrywing en pas Arduino aan

Verbind die LED's met wrywing en pas Arduino aan
Verbind die LED's met wrywing en pas Arduino aan
Verbind die LED's met wrywing en pas Arduino aan
Verbind die LED's met wrywing en pas Arduino aan
Verbind die LED's met wrywing en pas Arduino aan
Verbind die LED's met wrywing en pas Arduino aan

Hierdie nagmerriewerk was super eenvoudig met die wrywingstoleransies hier. Ek het die agterkant van 'n pen gebruik om dit op hul plek te druk. Die mense het feitlik ingekap en sal nie sonder groot krag uitkom nie. Geen gom van enige aard is vir hierdie deel van die projek gebruik nie. Dit maak die vergadering baie makliker! Ek het baie projekte gedoen waar ek die bedrading ure lank moes oproer, en dit het letterlik 10 minute geneem. Dit is verreweg die maklikste manier. Ek het probeer om die staat in 'n zigzag -volgorde op te knap, sodat die groeperinge so was dat elke land langs die tou opeenvolgend was.

Die verbinding met die arduino was eenvoudig deur die gebruik van 'n klein broodbord en draaddrade. Die kragtoevoer was 'n koop op eBay. 5v en 8amp is te veel vir hierdie projek, maar dit bied baie oorhoofse koste. Dit is eenvoudig om hierdie dinge aan te sluit. +5v na die VCC -pen, grond tot op die grondpen en voer dan die draad aan met dieselfde 5v -bron. Die enigste oorblywende pen is die data -pen wat die string aandryf! In my geval het ek D7 vir data gebruik. Nou na die programmering!

Stap 7: Kodering van die Arduino

Kodering van die Arduino
Kodering van die Arduino
Kodering van die Arduino
Kodering van die Arduino

Die LED's word aangedryf deur 'n arduino wat 'n koderingskoek maak. Sommige van die aanvanklike roetines is geleen (dws gesteel) uit die uitstekende ws2813fx -biblioteek op github. Dit was maklik om hierdie roetines aan te pas om te doen wat ek nodig gehad het. Dit is moeilik om die volledige omvang van die kode volledig te verduidelik, maar hier is 'n paar hoogtepunte!

Hier is die beskikbare demonstrasie -roetines:

# define FX_MODE_STATIC 0 # definieer FX_MODE_BLINK 1 # define FX_MODE_BREATH 2 # define FX_MODE_COLOR_WIPE 3 # define FX_MODE_COLOR_WIPE_INV 4 # define FX_MODE_COLOR_WIPE_REV 5 # define FX_MODE_COLOR_WIPE_REV_INV 6 # define FX_MODE_COLOR_WIPE_RANDOM 7 # define FX_MODE_RANDOM_COLOR 8 # define FX_MODE_SINGLE_DYNAMIC 9 # define FX_MODE_MULTI_DYNAMIC 10 # define FX_MODE_RAINBOW 11 # define FX_MODE_RAINBOW_CYCLE 12 # define FX_MODE_SCAN 13 # define FX_MODE_DUAL_SCAN 14 # define FX_MODE_FADE 15 # define FX_MODE_THEATER_CHASE 16 # define FX_MODE_THEATER_CHASE_RAINBOW 17 # define FX_MODE_RUNNING_LIGHTS 18 # define FX_MODE_TWINKLE 19 # define FX_MODE_TWINKLE_RANDOM 20 # define FX_MODE_TWINKLE_FADE 21 # define FX_MODE_TWINKLE_FADE_RANDOM 22 # define FX_MODE_SPARKLE 23 # define FX_MODE_FLASH_SPARKLE 24 #define FX_MODE_HYPER_SPARKLE 25 #define FX_MODE_STROBE 26 #define FX_MODE_STROBE_RAINBOW 27 #define FX_MODE_MULTI_STROBE 28 #define FX_MODE_BLINK_RAINBASE_DE_DE_DE_DE_DE_DE_DE_DE_DE_DE_DE_DE_DE_DE_DE_DE_DE_DE_DE_DE_DE_VIS_MODE_DE_DE_VIS_MODE_DE_VIS_MODE_DE_VIS_MODE_DE_VOER_MODE_DE_VOORSET ne FX_MODE_CHASE_RANDOM 32 # define FX_MODE_CHASE_RAINBOW 33 # define FX_MODE_CHASE_FLASH 34 # define FX_MODE_CHASE_FLASH_RANDOM 35 # define FX_MODE_CHASE_RAINBOW_WHITE 36 # define FX_MODE_CHASE_BLACKOUT 37 # define FX_MODE_CHASE_BLACKOUT_RAINBOW 38 # define FX_MODE_COLOR_SWEEP_RANDOM 39 # define FX_MODE_RUNNING_COLOR 40 # define FX_MODE_RUNNING_RED_BLUE 41 # define FX_MODE_RUNNING_RANDOM 42 # define FX_MODE_LARSON_SCANNER 43 # define FX_MODE_COMET 44 # define FX_MODE_FIREWORKS 45 # define FX_MODE_FIREWORKS_RANDOM 46 # define FX_MODE_MERRY_CHRISTMAS 47 # define FX_MODE_FIRE_FLICKER 48 # define FX_MODE_FIRE_FLICKER_SOFT 49 # define FX_MODE_FIRE_FLICKER_INTENSE 50 # define FX_MODE_CIRCUS_COMBUSTUS 51 # define FX_MODE_HALLOWEEN 52 # define FX_MODE_BICOLOR_CHASE 53 # define FX_MODE_TRICOLOR_CHASE 54 # define FX_MODE_ICU 55

En 'n blik op een van die voorbeeldroetines.

uint16_t WS2812FX:: mode_breath (leeg) {// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 // stap uint16_t breath_delay_steps = {7, 9, 13, 15, 16, 17, 18, 930, 19, 18, 15, 13, 9, 7, 4, 5, 10}; // towergetalle vir asemhaling LED uint8_t breath_brightness_steps = {150, 125, 100, 75, 50, 25, 16, 15, 16, 25, 50, 75, 100, 125, 150, 220, 255}; // nog meer towergetalle!

as (SEGMENT_RUNTIME.counter_mode_call == 0) {

SEGMENT_RUNTIME.aux_param = breath_brightness_steps [0] + 1; // ons gebruik aux_param om die helderheid te stoor}

uint8_t breath_brightness = SEGMENT_RUNTIME.aux_param;

as (SEGMENT_RUNTIME.counter_mode_step <8) {breath_brightness--; } anders {breath_brightness ++; }

// werk indeks van huidige vertraging by wanneer die doelhelderheid bereik word, begin weer na die laaste stap

as (breath_brightness == breath_brightness_steps [SEGMENT_RUNTIME.counter_mode_step]) {SEGMENT_RUNTIME.counter_mode_step = (SEGMENT_RUNTIME.counter_mode_step + 1) % (sizeof (breath_brightness_steps)/sizeof (uint8_t)); }

int lum = kaart (asem_ helderheid, 0, 255, 0, _ helderheid); // hou die helderheid onder die helderheid wat die gebruiker stel

uint8_t w = (SEGMENT.colors [0] >> 24 & 0xFF) * lum / _brightness; // verander RGBW -kleure met helderheidsinligting uint8_t r = (SEGMENT.colors [0] >> 16 & 0xFF) * lum / _brightness; uint8_t g = (SEGMENT.colors [0] >> 8 & 0xFF) * lum / _brightness; uint8_t b = (SEGMENT.colors [0] & 0xFF) * lum / _brightness; for (uint16_t i = SEGMENT.start; i <= SEGMENT.stop; i ++) {Adafruit_NeoPixel:: setPixelColor (i, r, g, b, w); }

SEGMENT_RUNTIME.aux_param = asem_helderheid;

gee asem_vertragingstappe terug [SEGMENT_RUNTIME.counter_mode_step]; }

Die volledige bron kan afgelaai word vanaf die ws2812fx github -bewaarplek.

Stap 8: Geniet die artistieke ligskerm

Ek was baie tevrede met die resultaat! Dit is regtig 'n plesier om na te kyk, en ek is opgewonde om voort te gaan om te speel met verskillende konfigurasies vir datavertoning! Vra gerus enige vrae of bel my vir enige inligting wat ek gemis het.

LED wedstryd 2017
LED wedstryd 2017
LED wedstryd 2017
LED wedstryd 2017

Tweede prys in die LED -kompetisie 2017

Arduino wedstryd 2017
Arduino wedstryd 2017
Arduino wedstryd 2017
Arduino wedstryd 2017

Naaswenner in die Arduino -kompetisie 2017

Aanbeveel: