Indholdsfortegnelse:

Smart kort over Idaho med LED -data + kunst: 8 trin (med billeder)
Smart kort over Idaho med LED -data + kunst: 8 trin (med billeder)

Video: Smart kort over Idaho med LED -data + kunst: 8 trin (med billeder)

Video: Smart kort over Idaho med LED -data + kunst: 8 trin (med billeder)
Video: ДТП - кто виноват?) #АзбукАСпорта #волейбол #дети #ярцево 2024, November
Anonim
Image
Image

Af jwolinFølg mere af forfatteren:

Smart verdenskort med dataskærme og DMX programmerbar belysning
Smart verdenskort med dataskærme og DMX programmerbar belysning
Bearded Iris - Del og erobre
Bearded Iris - Del og erobre
Bearded Iris - Del og erobre
Bearded Iris - Del og erobre
Web-tilsluttet SMART LED-animationsur Med webbaseret kontrolpanel, tidsserver synkroniseret
Web-tilsluttet SMART LED-animationsur Med webbaseret kontrolpanel, tidsserver synkroniseret
Web-tilsluttet SMART LED-animationsur Med webbaseret kontrolpanel, tidsserver synkroniseret
Web-tilsluttet SMART LED-animationsur Med webbaseret kontrolpanel, tidsserver synkroniseret

Jeg har altid ønsket en måde at kunstnerisk og dynamisk vise geografiske data ved at "male" et kort med lys. Jeg bor i Idaho og elsker min stat, så jeg tænkte, at dette ville være et godt sted at starte! Udover at være et kunstværk med seje belysningseffekter, giver det også nyttig information. For eksempel kan du vise et "varmekort" pr. Tælling af befolkningstæthed, nedbørsniveauer, højde maksimum/minimum, antal hektar vildmarksområde osv. Efter at have lavet dette kort over Idaho, er jeg motiveret til at gøre noget lignende på en global skala!

Til denne instruktive skal du bruge følgende:

  • (2) 2'x4 'ark med 1/4MDF
  • (1) 10 'stykke 1 "x8" fyrretræsplade
  • (1) lysdiffunderende akryl
  • 2 strenge af (50) ws2812B forvarmet indeksibel LED
  • 5 volt strømforsyning
  • Plet, maling, lim
  • Arduino Micro eller tilsvarende

Nødvendige værktøjer

  • CNC maskine
  • Loddekolbe
  • Klemmer
  • Sandpapir

Trin 1: Lim træet op

Lim træet op
Lim træet op
Lim træet op
Lim træet op
Lim træet op
Lim træet op
Lim træet op
Lim træet op

Når jeg limer træplader op, koger jeg altid dem sammen. Dette forhindrer spaltning på grund af krympning, når træet tørrer. Dette er især vigtigt for dette projekt, da overfladearealet, der forbinder stykkerne sammen, vil blive reduceret på grund af CNC -lommeopgaverne. Efter at have fået en god limpærre ind på begge sider såvel som i begge halvdele af kikshulrummene, klemmes og efterlades i 24 timer.

Når du har trukket klemmerne fra hinanden, skal du bruge en håndfladeslibemaskine (eller hvis du er modig en båndsliber) og slibe leddene glatte. Du vil altid få lim til at klemme leddene ud, og du vil slibe brættet ned for at være så fladt og fejlfrit som muligt.

nu hvor vi har de tre paneler, vi får brug for, lad os gå videre til CNC -arbejdet!

Trin 2: CNC de tre paneler (kantpanel, fyrretræskerne og LED -panel)

CNC de tre paneler (kantpanel, fyrretræskerne og LED -panel)
CNC de tre paneler (kantpanel, fyrretræskerne og LED -panel)
CNC de tre paneler (kantpanel, fyrretræskerne og LED -panel)
CNC de tre paneler (kantpanel, fyrretræskerne og LED -panel)
CNC de tre paneler (kantpanel, fyrretræskerne og LED -panel)
CNC de tre paneler (kantpanel, fyrretræskerne og LED -panel)
CNC de tre paneler (kantpanel, fyrretræskerne og LED -panel)
CNC de tre paneler (kantpanel, fyrretræskerne og LED -panel)

Der er tre paneler, der udgør projektet. Du kan se modellerne i den software, jeg bruger. Kortdataene blev købt fra de fremragende royaltyfrie maptoriske kortpakker. Fantastiske detaljer og værdi her! CAD -filerne vedhæftes i det næste trin, hvis du enten vil have DXF til CAD- eller vektorfilerne.

LED -kernepanelet er dybest set et bearbejdet 1/4 "MDF -ark, der holder lysdioderne med en tæt friktionspasning. Du vil bemærke på dette panel en stor" lomme "omkring LED'en. Dette er for at lade lyset diffundere så hurtigt som muligt for at undgå hot spots på akrylen.

Kernen er fyrretræspladen, vi limede op i det foregående trin og repræsenterer baggrunden for projektet. For at lyset skulle nå akrylpanelerne bearbejdede vi hvert amt væk.

Endelig er det øverste panel bearbejdet med kun konturerne af amterne og statsgrænseren. Hvert amt har en lille hylde, der modtager 1/8 lysdiffunderende akryl.

Apropos akryl, tid til at bearbejde disse næste.

Trin 3: Maskinér amterne fra et akrylark

Image
Image
Maskinér amterne fra et akrylark
Maskinér amterne fra et akrylark
Maskinér amterne fra et akrylark
Maskinér amterne fra et akrylark

At bearbejde amterne fra akryl tog lidt prøvelse og fejl. Akryl kan smelte, hvis det bearbejdes til langsomt, så en korrekt fremføringshastighed er nødvendig for at få gode resultater. Et andet tip er at bruge et så stort værktøj som muligt med godt sug til at fjerne chipsene. Små værktøjer har en tendens til ikke at rydde chipsene så let og opbygge varme, der producerer den uønskede smeltning.

Jeg var i stand til at få den opløsning, jeg havde brug for, med en 1/8 upcut to fløjte spiralbit ved 18, 500rpm og en feedrate på 200ipm. En god feeds og hastighedsberegner er nyttig her! Jeg vil anbefale den på cnccookbook.com. En enkelt fløjtebit ville have fungeret endnu bedre, men jeg havde ikke en ved hånden. Det er vigtigt at holde små faner på disse stykker i CAM -arbejdet for at forhindre de færdige stykker i at bryde væk og blive projiceret ind i rummet!

Den magiske forskydning til at gøre amter i den rigtige størrelse viste sig at være.075 tilbageslag fra midterlinjen på cad -tegningen. Dette tog højde for 1/2 af 1/8 grænsen plus lidt ekstra for panelet til at falde på plads. En lille mængde slibning var påkrævet på bestemte stykker for at få dem til at falde på plads. Igen en flok friktion passende stykker gjorde dette hurtigt og let arbejde.

At få alle amterne til at passe på et enkelt stykke akryl var let arbejde med min vektriske software, der har en indlejringsfunktion til at maksimere arkbrug.

Bare for sjov begyndte jeg at teste nogle stykker. Begynder at komme med. Fedt nok!

Ønsker filerne til bearbejdning af amterne. Jo da! Se vedhæftet fil.

Trin 4: Mal og farv

Maling og bejdsning
Maling og bejdsning
Maling og bejdsning
Maling og bejdsning
Maling og bejdsning
Maling og bejdsning

Inden vi samler alle vores stykker, skal vi male og plette først. Jeg brugte en kombination af pletter til træpanelet, spraymaling til kantlaget og en reflekterende hvid til LED -laget. Hurtigt arbejde, og vi går videre til forsamlingen. Har det sjovt!

Trin 5: Lim op paneler

Lim op paneler
Lim op paneler
Lim op paneler
Lim op paneler
Lim op paneler
Lim op paneler

Nu er det tid til at lime bundpanelet til bunden af fyrkernen og derefter MDF -statens kantpanel til pinjekernen. Jeg har lige brugt en række klemmer til at gøre dette.

Trin 6: Tilslut LED'erne med friktionspasning og tilslut Arduino

Tilslut LED'erne med friktionspasning og tilslut Arduino
Tilslut LED'erne med friktionspasning og tilslut Arduino
Tilslut LED'erne med friktionspasning og tilslut Arduino
Tilslut LED'erne med friktionspasning og tilslut Arduino
Tilslut LED'erne med friktionspasning og tilslut Arduino
Tilslut LED'erne med friktionspasning og tilslut Arduino

Dette mareridtjob var super enkelt med tolerancerne for friktionstilpasning her. Jeg brugte den bageste ende af en pen til at trykke dem på plads. De nærmest slog til og vil ikke komme ud uden væsentlig kraft. Der blev ikke brugt lim af nogen art til denne del af projektet. Dette gør montering, MÅ let! Jeg har lavet mange projekter, hvor jeg har været nødt til at sno ledninger i timevis, og det tog bogstaveligt talt 10 minutter. Dette er langt den nemmeste måde. Jeg forsøgte at opbygge staten i zigzag -rækkefølge, så grupperingerne blev holdt sådan, at hvert amt var sekventielt langs strengen.

Tilslutning til arduino var enkel ved brug af et lille brødbræt og tilslutning af ledninger. Strømforsyningen var et ebay -køb. 5v og 8amp er overkill for dette projekt, men giver masser af overhead. Kabelføring af disse ting er død enkel. +5v til VCC -stiften, Jord til jordstiften, og strøm derefter strengen med den samme 5v -kilde. Den eneste tilbageværende pin er datapinden, der driver strengen! I mit tilfælde brugte jeg D7 til data. Nu til programmering!

Trin 7: Kodning af Arduino

Kodning af Arduino
Kodning af Arduino
Kodning af Arduino
Kodning af Arduino

LED'erne drives af en arduino, der laver kodningskage. Nogle af de indledende rutiner blev lånt (dvs. stjålet) fra det fremragende ws2813fx -bibliotek på github. Det var let at ændre disse rutiner for at gøre, hvad jeg havde brug for dem til at gøre. Det fulde omfang af koden ville være svært at forklare i sin helhed, men her er et par højdepunkter!

Her er de tilgængelige demonstrationsrutiner:

#define FX_MODE_STATIC 0 # definerer 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_FEJ_MODE_DE_DE_MÆSKE_MÆSKE_MÆSKE_MÆSKE_MODE_MÆSKER_MÆSKER_MÆRKE_MÆRKE_MODE_MÆSKE 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

Og et kig ind i en af prøverutinerne.

uint16_t WS2812FX:: mode_breath (void) {// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 // trin uint16_t breath_delay_steps = {7, 9, 13, 15, 16, 17, 18, 930, 19, 18, 15, 13, 9, 7, 4, 5, 10}; // magiske tal til vejrtrækning LED uint8_t breath_brightness_steps = {150, 125, 100, 75, 50, 25, 16, 15, 16, 25, 50, 75, 100, 125, 150, 220, 255}; // endnu flere magiske tal!

hvis (SEGMENT_RUNTIME.counter_mode_call == 0) {

SEGMENT_RUNTIME.aux_param = breath_brightness_steps [0] + 1; // vi bruger aux_param til at gemme lysstyrken}

uint8_t breath_brightness = SEGMENT_RUNTIME.aux_param;

hvis (SEGMENT_RUNTIME.counter_mode_step <8) {breath_brightness--; } andet {breath_brightness ++; }

// opdater indeks for den aktuelle forsinkelse, når målets lysstyrke er nået, start forfra efter det sidste trin

hvis (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 = kort (ånde_brightness, 0, 255, 0, _brightness); // holde lysstyrken under lysstyrken indstillet af brugeren

uint8_t w = (SEGMENT.colors [0] >> 24 & 0xFF) * lum / _brightness; // rediger RGBW -farver med lysstyrkeinfo uint8_t r = (SEGMENT.farver [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 = ånde_lysstyrke;

returner breath_delay_steps [SEGMENT_RUNTIME.counter_mode_step]; }

Fuld kilde kan downloades fra ws2812fx github -depotet.

Trin 8: Nyd det kunstneriske lysdisplay

Jeg var meget glad for resultatet! Det er virkelig en glæde at se, og jeg glæder mig til at fortsætte med at lege med forskellige datavisningskonfigurationer! Du er velkommen til at stille spørgsmål eller slå mig for oplysninger, jeg savnede.

LED konkurrence 2017
LED konkurrence 2017
LED konkurrence 2017
LED konkurrence 2017

Anden pris i LED -konkurrencen 2017

Arduino konkurrence 2017
Arduino konkurrence 2017
Arduino konkurrence 2017
Arduino konkurrence 2017

Runner Up i Arduino Contest 2017

Anbefalede: