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 Tower Art

Componenten en benodigdheden

APA 106 programmeerbare RGB LED, 8 mm
× 288
Arduino UNO
× 1
22 gauge vertind koperdraad
× 1
Metalen ringen met een diameter van 8 inch
× 12
12 inch acryl hengels
× 10

Benodigde gereedschappen en machines

Soldeerbout (algemeen)
Hot lijmpistool (algemeen)
BlueTack-lijm
Clip-on koellichamen

Apps en online services

Arduino IDE

Over dit project

De inspiratie voor dit project zijn de talrijke rondingen die ontstaan ​​door het snijpunt van een cilinder en een vlak! Ik wilde een LED-lichtshow maken, maar ik heb onlangs al verschillende LED-kubussen gebouwd. Ik wilde iets anders doen, zowel vanuit het oogpunt van hardware als software. En ik dacht dat dit een leuke omgeving zou zijn om in te programmeren -iets met zoveel potentieel als een kubus, maar dat duidelijk anders is!

Ik heb ervoor gekozen om 8 mm APA106 programmeerbare LED's te gebruiken voor deze toren. Ze zijn duurder dan gewone RGB-LED's, maar ze zijn zoveel gemakkelijker om mee te werken, zowel vanuit het oogpunt van hardware als software. Geen schuifregisters - alles wordt aangestuurd door twee datalijnen. En geen ISR (interrupt service routine) en geen multiplexing tussen lagen LED's - deze LED's zijn altijd aan.

Ik besloot mijn cilinder/toren te bouwen als een set van 12 op elkaar gestapelde ringen. De ringen hebben een diameter van 8" en elke ring bevat 24 LED's op een onderlinge afstand van 1" (eigenlijk π * 8/24 maar dicht bij een inch). De ringen zelf zijn gescheiden door 1 inch, dus LED's zijn in beide richtingen 2,5 cm uit elkaar. Een acrylstaaf wordt gebruikt om de ringen aan elkaar te bevestigen om de toren te vormen.

APA106 LED's kunnen 60 ma trekken bij maximale helderheid en wit, dus in het slechtste geval kan deze toren 17 ampère trekken! Maar deze LED's zijn zo fel dat ik de helderheid zelden softwarematig op meer dan 10% heb ingesteld. En de hele toren wit maken doe je ook nergens echt. Dus in de praktijk heb ik nooit problemen gehad met het gebruik van de USB-poort om hem van stroom te voorzien. En als je een aparte voeding wilt gebruiken, lijkt 2 ampère prima te werken.

Bouw

Ik vond een aantal metalen ringen met een diameter van 8 "op Amazon waarvan ik dacht dat ze een goede basis zouden zijn voor mijn LED-ring. Het was eigenlijk een aangename verrassing toen ik ontdekte dat ik er gemakkelijk aan kon solderen! De term "gemakkelijk" is relatief - de ring is zwaar en veel warmte is nodig om het warm genoeg te krijgen, dus mijn 40 watt soldeerbout stond helemaal omhoog, en het moest daar meestal 5-10 seconden zitten voordat het soldeer smolt. Ik bevochtig de ring eerst met soldeer alvorens te proberen er een LED aan te solderen, en gebruikte altijd clip heatsinks op de draden van de LED's.

Maar ik loop een beetje op de zaken vooruit. Voordat u LED's aan de ring kunt solderen, moet u 24 van hen loodvormig maken volgens het onderstaande diagram

Als onderdeel van de lead-form-operatie heb ik een kleine bocht aan het einde van de aardingsdraad gemaakt. Het maakt het zowel gemakkelijk te identificeren als het gemakkelijker te maken om het aan de ring te bevestigen.

Een andere voorbereidingsstap voor het solderen van LED's aan de ring is het markeren van 24 even ruimtes op de ring waar de LED's zullen worden geplaatst. Ik vond ook de noodzaak om de ring verticaal vast te klemmen tijdens het bevestigen van LED's. Ik heb uiteindelijk het onderstaande apparaat gebruikt om de ring op zijn plaats te houden,

Zodra een paar LED's op de ring zijn gesoldeerd, is het noodzakelijk om de data-in-kabels aan te sluiten op de data-out-kabels zoals hieronder weergegeven. Merk op dat clip-on koellichamen altijd worden gebruikt om de LED's te beschermen.

Nadat alle LED's op de ring zitten, zou u één data-in-kabel voor de ring als geheel moeten hebben, met de data-out-kabel er tegenover klaar om naar de volgende ring erboven te gaan. Op dit punt zijn we klaar om alle +5 volt-kabels aan te sluiten op een rechtgebogen stuk 22 gauge vertind koperdraad. Maak een 26" lang stuk draad recht door het ene uiteinde in een bankschroef te klemmen en het andere uiteinde hard te trekken met een tang. Bevestig het vervolgens aan de LED's zoals hieronder weergegeven.

Als je een afgewerkte ring hebt, kun je deze testen met behulp van de testschets die ik heb bijgevoegd. Testen is belangrijk - het is nu veel gemakkelijker om een ​​slechte LED of een koude soldeerverbinding te repareren dan wanneer deze zich in het midden van een voltooide toren bevindt! Het testen wordt bereikt door de open data-in-pin aan UNO pin6 te bevestigen. De meegeleverde testschets is iets anders dan die in deze video, maar zou je moeten laten zien of de ring goed werkt.

Nu moet je nog 11 ringen maken. Het is veel werk, maar met een beetje oefening kun je de taak krijgen om één belsignaal terug te brengen tot een paar uur.

Het is belangrijk dat de LED's in elke ring op één lijn liggen met hun tegenhangers op de andere ringen. Als de LED's perfect gespreid zijn, is dit geen probleem, maar ik had genoeg kleine variaties in de tussenruimte dat ik het nodig vond om één ring als sjabloon voor de andere te gebruiken, waarbij ik altijd de open data-in-kabel (de een die niet is aangesloten op een data-uitgangskabel) op dezelfde plaats. (Als je goed naar mijn toren kijkt, komen de eerste twee ringen niet goed overeen. Maar daarna heb ik deze sjabloonbenadering gebruikt met een veel verbeterd resultaat.)

Zodra je ten minste vier ringen hebt gebouwd, kun je beginnen met het monteren van de toren. De eerste montage van de onderste vier ringen is waarschijnlijk het meest kritische onderdeel van de constructie. We willen geen scheve toren van Pisa maken! Om ringen samen te stellen, heb je afstandhouders van 22 mm hoog nodig om de ruimte van 1 "tussen de ringen te creëren. Ik gebruikte 3D-geprint zwart plastic voor mijn afstandhouders, maar 1/4" deuvel zou net zo goed werken. Om de afstandhouders op hun plaats te houden, heb ik een beetje Blue Tack gebruikt, een tijdelijke lijm.

De ringen worden bij elkaar gehouden om de toren te vormen met behulp van zes 12 inch lange acrylstaven. Het is belangrijk om alles precies op zijn plaats te krijgen voordat u deze staven aanbrengt. Als de staven eenmaal warm op de ringen zijn gelijmd, is het bijna onmogelijk om wijzigingen aan te brengen, dus zorg dat u alles eerst krijgt waar u het wilt hebben. Als je alles op zijn plaats hebt, kun je de toren op zijn kant draaien en de acrylstaven aan de ringen warmlijmen. De onderstaande foto toont de eerste vier ringen met de eerste drie staven eraan bevestigd. Daarna werden er nog drie bijgevoegd voor een totaal van zes. De staven worden tussen de LED's geplaatst met 4 LED's tussen elke staaf.

Zodra alle staven aan de ringen zijn bevestigd, kunnen de afstandhouders worden verwijderd en vervolgens opnieuw worden gebruikt als er extra ringen worden toegevoegd. Wanneer alle 12 ringen op hun plaats zitten, zijn we klaar om de grond, +5v en datalijnen tussen ringen aan te sluiten. Dit wordt gedaan met behulp van 22 gauge vertind koperdraad. De stroomrails zijn met alle 12 ringen parallel geschakeld.

Er zijn twee datalijnen, elk met 144 LED's - één voor de bovenste 6 ringen (die uiteindelijk naar UNO-pin 6) gaan en één voor de onderste 6 ringen (die uiteindelijk naar UNO-pin 7 gaan). Elke datalijn begint met de laagste ring en werkt zich een weg naar de bovenste ring. Ik was oorspronkelijk van plan om maar één datalijn te hebben, maar bij ring 8 begon ik vreemde, ongewenste lichtflitsen te zien. Ik dacht eerst dat het misschien de stroomrails waren, maar het toevoegen van wat condensatoren over de rails hielp niet, dus nam ik mijn toevlucht tot het splitsen van de toren in twee datalijnen. Dat loste het probleem op.

Dus hierboven is een foto van de voltooide toren. De Arduino UNO is onderaan geïnstalleerd. Ik heb eigenlijk mijn 4 resterende acrylstaven gebruikt om de UNO op te hangen, met behulp van hete lijm om alles aan elkaar te bevestigen. Een alternatieve benadering zou kunnen zijn om de toren op een basis te monteren met de UNO erin. Er zijn 4 verbindingen naar de UNO-, Ground- en +5v-rails die aansluiten op alle 12 ringen, en de twee datalijnen op pin 6 en 7.

Software

Programmeerbare LED's zoals de APA106 zijn gemakkelijk te gebruiken omdat er verschillende bibliotheken beschikbaar zijn die de timing van datapulsen beheren die worden gebruikt om ze te besturen. Voor de eerdere projecten die ik heb gedaan met APA106 LED's (mijn 2e 5x5x5 RGB-kubus en het driehoekskunstproject), gebruikte ik de populaire NeoPixel-softwarebibliotheek van Adafruit. Maar voor deze toren koos ik echter voor de FastLED-bibliotheek. Het heeft veel geweldige functies plus een aantal snelle wiskundige functies waarvan ik dacht dat ze van pas zouden komen. Het stelde me ook in staat om mijn nogal ruwe regenboogpalet van 43 stappen gemakkelijk te vervangen door een palet van 256 stappen. Het heeft honderden functies, vooraf gedefinieerde paletten en andere dingen die ik niet voor dit project heb gebruikt, maar waardoor het een uitstekende keuze is voor zowel dit als toekomstige projecten. En nog een ander kenmerk van FastLED dat ik erg handig vond, is het vermogen om gemakkelijk fades te maken.

Ik heb altijd graag een functie waarmee ik gemakkelijk een LED en zijn kleur kan specificeren. Met deze toren moet deze de vorm hebben van setColor (rij, kolom, kleur), waarbij rij is op welke ring hij staat en kolom op welke positie op die ring. Deze ene routine behandelt alle conversies vanaf welke datalijn de LED staat en wat zijn positie is in de dataketen.

Een krachtig hulpmiddel in de FastLED-bibliotheek is de objectklasse van alle web-benoemde kleuren. Je specificeert gewoon de kleur als CRGB::HotPink, waarbij CRGB de klasse is en HotPink het lid van die klasse is. Maar klasleden zijn moeilijk om te blijven typen en vervelend om door te geven aan functies als parameters, dus ik gebruikte #define-instructies om een ​​klein palet van benoemde kleuren op te zetten die ik kan verwijzen door simpelweg hun naam zonder de CRGB::.

Ik heb nog een functie die de kleur van een bepaalde LED instelt als een regenboogpalettint van 0 tot 255. Tussen deze twee functies kan ik gemakkelijk 10 benoemde kleuren specificeren of een vloeiend regenboogpalet van tinten genereren voor elke LED in de toren.

Een andere basisfunctie die ik heb gemaakt, was roteren (ring, richting), waarmee de inhoud van elke ring rond die ring wordt gedraaid. Elke oproep is één stap, maar deze routine kan worden gebruikt om de inhoud van de hele toren te roteren, of delen van de toren in tegengestelde richtingen te draaien, enz., waardoor veel interessante effecten ontstaan.

Een ander ding dat ik zou kunnen noemen over de FastLED-bibliotheek, is dat deze rechtstreeks de APA106-LED's ondersteunt die ik gebruik. Hoewel de NeoPixel-bibliotheek van Adafruit ook met de APA106 werkte, moest ik experimenteren met de opstelling om het goed te krijgen. Met FastLED is de installatie automatisch door de APA106 te specificeren als de LED die u gebruikt.

Zoals ik in het begin al zei, is een van de interessantere effecten die je met deze toren kunt creëren de snijpunten tussen een cilinder en een vlak. In eerste instantie dacht ik erover om dit on-the-fly met wiskunde te bereiken. Maar er zijn problemen of de UNO snel genoeg is en het bleek vrij eenvoudig om het in tabellen te doen, dus koos ik voor de laatste benadering. In principe verlicht deze tafel het snijpunt van een vlak met de toren onder 18 verschillende hoeken, en de hoogte waarop het snijpunt plaatsvindt kan worden gevarieerd. Je zult de resultaten op verschillende plaatsen in de show zien.

Ik heb dezelfde tabelbenadering gebruikt om verschillende snijpunten van een cilinder met een bol te maken. Het werkte, hoewel lang niet zo effectief als de kruising met een vliegtuig. Er is één effect in de show dat het gebruikt. Beide tabellen worden opgeslagen in het programmageheugen om geen RAM te verbruiken.

Er zijn drie schetsen voor de UNO in het softwarepakket opgenomen:

1) een snelle test voor een enkele ring.

2) een voorvertoning van 45 seconden van de show

3) de 8 minuten durende show met 16 verschillende effecten of animaties

Alle drie worden hier getoond in video's in dit artikel (hoewel de ringtest enigszins anders is dan die in de video).

Een laatste ding over software. Aan het einde van de hoofdlus, waar de verschillende animaties worden genoemd, heb ik een softwarereset toegevoegd. Normaal zou dit niet nodig zijn, maar ik heb ergens een bug in mijn software. Zonder de reset, na het uitvoeren van talloze passages door alle animaties, loopt het programma vast. Waarschijnlijk heb ik iets dat niet van de stapel in RAM komt wanneer het zou moeten. Het kan zelfs een probleem zijn in de FastLED-bibliotheek. Maar ik heb het nooit gevonden, en de software-reset zorgt voor een soepele werking, hoewel niet de meest elegante oplossing.

Code

  • Arduino-code voor LED-torenkunst
  • Software voor torenkunst
Arduino-code voor LED-torenkunstArduino
Deze download is een enkel zip-bestand met 3 schetsen:
1) een ringtest om een ​​enkele ring vanaf pin 6 . te testen
2) snelle show - een voorbeeld van 45 seconden
3) de show die 8 minuten duurt voordat deze wordt herhaald
Geen voorbeeld (alleen downloaden).
Software voor TorenkunstArduino
Deze download is een enkel zip-bestand met 3 schetsen:
1) een ringtest om een ​​enkele ring vanaf pin 6 . te testen
2) snelle show - een voorbeeld van 45 seconden
3) de show die 8 minuten duurt voordat deze wordt herhaald
Geen voorbeeld (alleen downloaden).

Schema's


Productieproces

  1. Windturbine
  2. DIY LUMAZOID Arduino Music Visualiser
  3. UFO-aanval!
  4. DIY 37 LED Roulette Game
  5. Coffin Dance Melody
  6. 3D RGB Arduclock
  7. MyRiver
  8. Iron Man
  9. Joystick-spel
  10. Analoge stijl LED POV-klok
  11. Vind mij