Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

LED-toren kunst: Programmeerbare RGB cilindervormige ontwerp

Onderdelen en benodigdheden

APA106 programmeerbare RGB LED, 8 mm × 288
Arduino UNO × 1
22 gauge verzinkt koperdraad × 1
8-inch metalen ringen (diameter) × 12
12-inch acrylastaven × 10

Benodigde tools en machines

  • Solderbout (generiek)
  • Lijmpistool (generiek)
  • BlueTack lijmmassa
  • Klem-koelplaten (voor LED-bescherming)

Apps en online diensten

  • Arduino IDE

Over dit project

De inspiratie voor dit project komt van de talloze curves die ontstaan door de doorsnede van een cilinder en een vlak! Ik wilde een LED-lichtshow maken, maar had al verschillende LED-kubussen gebouwd. Ik wilde iets anders, zowel qua hardware als software. En ik dacht dat dit een leuke omgeving zou zijn om in te programmeren – met zoveel potentieel als een kubus, maar duidelijk anders!

Ik koos voor 8mm APA106 programmeerbare LEDs. Deze zijn duurder dan gewone RGB LEDs, maar veel makkelijker te verwerken hard- en softwarematig. Geen shift registers – alles wordt bestuurd door twee datalijnen. En geen ISR (interrupt service routine) en geen multiplexing tussen LED-lagen – deze LEDs branden constant.

Ik besloot de cilinder/toren te bouwen als een set van 12 ringen gestapeld op elkaar. De ringen zijn 8 inch (≈20,3 cm) in diameter en bevatten elk 24 LEDs met 1 inch (≈2,5 cm) afstand (eigenlijk π × 8 / 24, maar dichtbij een inch). De ringen zelf zijn 1 inch uit elkaar, dus LEDs zitten 1 inch uit elkaar in beide richtingen. Acryl staven verbinden de ringen tot de toren.

APA106 LEDs trekken maximaal 60 mA bij volle helderheid en wit, dus worst-case zou de toren 17 A kunnen trekken! Maar deze LEDs zijn zo helder dat ik de helderheid in software zelden boven 10% zet. En de hele toren wit aansturen gebeurt nergens. In de praktijk had ik nooit problemen met USB-voeding. Als je een aparte voeding wilt, werkt 2 A prima.

Constructie

Ik vond 8-inch metalen ringen op Amazon die een goede basis bleken. Het was een verrassing dat er gemakkelijk op gesoldeerd kon worden! "Gemakkelijk" is relatief – de ring is zwaar en vereist veel warmte. Mijn 40W solderbout stond vol open en moest 5-10 seconden liggen voordat het soldeer smolt. Ik tin de ring eerst voordat ik een LED eraan soldeer, en gebruik altijd klem-koelplaten op de LED-pootjes.

LED-toren kunst: Programmeerbare RGB cilindervormige ontwerp

Voordat je kunt solderen, moet je 24 LEDs per ring vormgeven volgens het diagram:

LED-toren kunst: Programmeerbare RGB cilindervormige ontwerp

Als onderdeel van de vormgeving zet ik een kleine buiging aan het einde van de ground-poot. Dit maakt identificatie en bevestiging aan de ring makkelijker.

Een andere voorbereiding: markeer 24 gelijke posities op de ring voor de LEDs. Ik moest de ring verticaal spannen tijdens het solderen. Ik bouwde deze hulpconstructie:

LED-toren kunst: Programmeerbare RGB cilindervormige ontwerp

Zodra een paar LEDs op de ring zitten, verbind je de data-in pooten met de data-out pooten zoals getoond. Klem-koelplaten blijven altijd op de LEDs zitten ter bescherming.

LED-toren kunst: Programmeerbare RGB cilindervormige ontwerp

Na alle LEDs op de ring heb je één data-in poot voor de hele ring, met de data-out poot er tegenover klaar voor de volgende ring. Nu verbind je alle +5V pooten met een gestreken stuk 22 gauge verzinkt koperdraad. Trek een 26-inch (≈66 cm) lang stuk draad recht door het één uiteinde in een schroefbank te spannen en het andere uiteinde hard te trekken met een tang. Bevestig vervolgens aan de LEDs:

LED-toren kunst: Programmeerbare RGB cilindervormige ontwerp

Test de voltooide ring met de bijgeleverde testsketch (data-in aan UNO pin 6). Testen is cruciaal – nu is een defecte LED of koude soldeerjoint nog makkelijk te repareren.

Nu maak je 11 extra ringen. Met oefening duurt één ring een paar uur.

Belangrijk: LEDs in elke ring moeten uitgelijnd zijn met hun tegenhangers op andere ringen. Als de spacing perfect is, geen probleem. Ik had kleine variaties, dus ik gebruikte één ring als sjabloon voor de anderen, met de vrije data-in poot steeds op dezelfde plek. (De eerste twee ringen van mijn toren liggen niet goed uitgelijnd, maar daarna werkte de sjabloonmethode veel beter.)

Zodra je minimaal 4 ringen hebt, begin je met de torenmontage. De initiële montage van de onderste 4 ringen is het meest kritisch – we willen geen scheve toren! Je hebt spacers van 22 mm hoog nodig voor de 1-inch afstand. Ik gebruikte 3D-geprint zwart plastic, maar 1/4-inch doppen werken ook. Houd spacers met BlueTack (tijdelijke lijm) op hun plaats.

LED-toren kunst: Programmeerbare RGB cilindervormige ontwerp

De ringen worden samengehouden door zes 12-inch acrylastaven. Zorg dat alles perfect zit voordat je lijmt – na hechten met lijmpistool is wijzigen bijna onmogelijk. Leg de toren op de zijkant en lijm de acrylastaven aan de ringen. De foto toont de eerste 4 ringen met de eerste 3 staven. Er kwamen 3 erbij, totaal 6. De staven zitten tussen de LEDs met 4 LEDs tussen elke staaf.

LED-toren kunst: Programmeerbare RGB cilindervormige ontwerp

Na alle staven zijn de spacers verwijderd en herbruikbaar voor de volgende ringen. Bij 12 ringen verbind je ground, +5V en datalijnen tussen ringen met 22 gauge verzinkt koperdraad. De voedingsrails lopen parallel over alle 12 ringen.

Er zijn twee datalijnen, elk met 144 LEDs: één voor de bovenste 6 ringen (naar UNO pin 6) en één voor de onderste 6 ringen (naar UNO pin 7). Elke datalinie start bij de laagste ring en loopt omhoog. Oorspronkelijk wilde ik één datalinie, maar vanaf ring 8 zag ik ongewilde lichtflitsen. Condensators over de voedingsrails hielpen niet, dus ik splootse de toren in twee datalijnen. Dat loste het op.

LED-toren kunst: Programmeerbare RGB cilindervormige ontwerp

Bovenstaand de voltooide toren. De Arduino UNO zit onderaan, opgehangen aan de 4 overgebleven acrylastaven met lijmpistool. Alternatief: toren op een foot monteren met UNO erin. Er zijn 4 verbindingen naar de UNO: Ground en +5V rails (naar alle 12 ringen) en twee datalijnen naar pins 6 en 7.

LED-toren kunst: Programmeerbare RGB cilindervormige ontwerp

Software

Programmeerbare LEDs als de APA106 zijn makkelijk dankzij bibliotheken die de timing van datapulsen regelen. Voor eerdere projecten gebruikte ik Adafruit's NeoPixel bibliotheek. Voor deze toren koos ik de FastLED bibliotheek. Deze heeft geweldige functies, snelle wiskundefuncties, en liet me mijn ruwe 43-stappen regenboogpalet vervangen door een 256-stappen palet. Het heeft honderden functies, voorgedefinieerde paletten, en ondersteunt fades eenvoudig.

Ik maak altijd een functie om eenvoudig een LED en kleur aan te geven: setColor(ring, positie, kleur), waarbij ring het rijnummer is en positie de plaats op die ring. Deze routine regelt alle omrekening naar welke datalin en positie in de keten.

Krachtig in FastLED is de objectklasse met alle web-kleurnamen: CRGB::HotPink. Maar klassemembers zijn lastig door te typen en door te geven als parameters. Ik gebruikte #define statements voor een kleine palet met naambare kleuren.

Ik heb een functie die een LED kleurt als regenboog-palet tint (0-255). Tussen deze twee functies kan ik 10 benoemde kleuren of een gladde regenboog specificeren voor elke LED.

Een basis functie is rotate(ring, richting), die de inhoud van een ring één stap roteert. Dit kan voor de hele toren of delen in tegenovergestelde richtingen – veel interessante effecten.

FastLED ondersteunt APA106 LEDs direct. Bij NeoPixel moest ik experimenteren met de setup; bij FastLED is het automatisch door APA106 op te geven.

Eén van de mooiste effecten is de doorsnede van een cilinder en een vlak. Ik dacht eerst aan realtime berekening, maar de UNO is niet snel genoeg. Tabellen waren makkelijker. De tabel verlicht de doorsnede van een vlak met de toren bij 18 hoeken, met variabele hoogte. Je ziet dit in meerdere effecten in de show.

Ik gebruikde dezelfde tabelbenadering voor doorsnedes van een cilinder met een bol. Het werkte, maar minder effectief. Er is één effect dat dit gebruikt. Beide tabellen staan in programma-geheugen (PROGMEM) om RAM te besparen.

Er zijn drie sketches voor de UNO in het softwarepakket:

  1. Snelle test voor een enkele ring.
  2. 45-seconde preview van de show.
  3. 8-minuten lange show met 16 verschillende effecten/animaties.

Alle drie zijn in video's te zien in deze write-up (de ringtest verschilt iets van de video).

Laatste software-opmerking: aan het einde van de main loop, waar de animaties worden aangeroepen, heb ik een software reset toegevoegd. Normaal niet nodig, maar er zit een bug ergens in mijn code. Zonder reset hangt het programma na vele doorlopen van alle animaties. Waarschijnlijk komt iets niet van de stack in RAM. Misschien een FastLED-issue. Ik vond het niet, en de software reset garandeert soepel werking, hoewel niet de meest elegante oplossing.

Code

  • Arduino Code voor LED Tower Art (één ZIP met 3 sketches: ringtest, 45s preview, 8-min show)
  • Software for Tower Art (deze zelfde ZIP)

Downloads zijn alleen beschikbaar als ZIP-bestand (geen preview).

Schema's

LED-toren kunst: Programmeerbare RGB cilindervormige ontwerp
Schakelschema van de LED Tower Art

Productieproces

  1. Windturbine technologie: geschiedenis, ontwerp en toekomstige impact
  2. Bouw Je Eigen LUMAZOID: Een DIY Arduino Muziek Visualizer
  3. Bouw je eigen UFO Attack Game met Arduino UNO & MAX7219 Display
  4. Bouw Je Eigen 37-LED Roulette-spel met Arduino Nano
  5. Arduino Coffin Dance Melodie Project – Bouw & Speel de Virale Tune
  6. 3D RGB Arduclock – Bluetooth LED Tijdstuk met Real-Time Clock
  7. Riviergezondheidsmonitor: Arduino-gebaseerd Waterkwaliteitssysteem
  8. Een Arduino Iron Man bouwen: onderdelen, sensoren en stapsgewijze handleiding
  9. Interactieve Joystick Game met Arduino en LED Feedback
  10. Analoge-stijl LED Persistence-of-Vision Klok – DIY Arduino Nano Project
  11. Find Me: Slimme Item Locator met Arduino en Bluetooth