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

Dynamische driehoekskunst

Componenten en benodigdheden

APA-106 programmeerbare RGB-led
× 45
22 gauge vertind koperdraad
× 1
Arduino UNO
× 1
Plywood driehoek 12 inch aan een kant, 1/4 inch. dikte
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)
Hot lijmpistool (algemeen)
clips voor koellichaam
Gebruik deze om LED's te beschermen tegen soldeerwarmte

Over dit project

Inleiding

Dit project maakt gebruik van 45 APA-106 programmeerbare LED's die worden aangestuurd door een Arduino UNO. Deze LED's zijn vergelijkbaar met individueel programmeerbare LED-strips, dus we gebruiken Adafruit's Neo-pixelbibliotheek om ze aan te sturen. Een enkele pin op de UNO programmeert het hele display, aangezien een enkele datalijn naar alle LED's in een keten loopt.

De inspiratie voor dit ontwerp waren twee van mijn eerdere projecten. Mijn tweede 5x5x5 RGB-kubus (Nog een 5x5x5 RGB-kubus) gebruikte APA-106 programmeerbare LED's en ik bleef achter met ongeveer 75 extra's. Ik had er een 4x4x4 kubus van kunnen bouwen, maar ik heb de laatste tijd veel kubussen gebouwd - tijd voor iets anders. Mijn Servo Motor Art-project werd gebouwd als een driehoek en dat driehoeksontwerp zorgde voor veel interessante patronen. Dit project gebruikt dus 45 APA-106 LED's gerangschikt in een driehoekig patroon om driehoekskunst verder te verkennen.

Dit is een vrij eenvoudig project, zowel vanuit hardware- als softwareperspectief. Laten we eerst kijken naar de hardware en dan naar de software.

Hardware

Hardware bestaat alleen uit de UNO en 45 LED's. Deze LED's zijn waanzinnig helder op vol vermogen, dus ik heb de helderheid van het hele scherm ingesteld op 30 op een schaal van 0 tot 255. Op dat niveau kunnen de UNO en alle LED's rechtstreeks worden gevoed via de USB-ingang van de UNO, dus een voeding van 1 amp - 5 volt is optioneel.

De eerste stap in de constructie is het boren van gaten in een stuk multiplex van 1/4 inch. Het bord zelf is 12 inch aan elke rand. De LED's zijn 1 inch uit elkaar geplaatst in een zorgvuldig geconstrueerde gelijkzijdige driehoek. De LED's zijn 8 mm, dus ik heb gaten van 8 mm geboord waardoor de LED's goed vastzaten - ze bewogen helemaal niet toen ze erin waren gedrukt.

Linksboven bevindt zich de APA-106 LED. Het lange snoer is aarde. Data out is het snoer aan de rechterkant naast de platte rand van het pakket. De eerste lead aan de linkerkant is data in, en de volgende lead tussen data in en aarde is +5V. Deze 4 draden zijn gebogen zoals rechts getoond. De aarddraad heeft aan het einde een tweede bocht - het doel is alleen om de aarddraad te identificeren, omdat het moeilijk te zien is als ze allemaal gebogen zijn.

De afbeelding hierboven laat zien hoe het bord is bedraad. Merk eerst op dat de datalijn in blauw heen en weer beweegt als de LED's aan elkaar zijn geketend. Dit betekent dat in oneven rijen gegevens van links naar rechts stromen, terwijl in even rijen gegevens van rechts naar links stromen. Dit zorgt er ook voor dat de stroomrails verschillend zijn voor oneven rijen versus even rijen. Voor oneven rijen gaat de aardedraad omhoog en de +5v-draad naar beneden, en vervolgens het tegenovergestelde voor even rijen.

Op de foto hierboven is de bedrading te zien. Het is allemaal gedaan met 22 gauge blank vertind koperdraad. Ik verzamelde de grondrails aan de linkerkant en de +5V-rails aan de rechterkant. Je zou juist het tegenovergestelde moeten doen. Elke datalijnverbinding op mijn bord moest over een stroomrail gaan, maar als je aarde naar rechts en +5v naar links schakelt, hoeven de datalijnen niets te kruisen!

Hierboven ziet u een close-up van de bedrading. Merk op hoe de datalijn aan de rechterkant over de bovenkant van de 5 volt stroomrail kruist.

De foto hierboven toont het afgewerkte bord. Ik gebruikte wat kleine stukjes plastic als afstandhouders voor de UNO en monteerde de UNO op het bord met een beetje hete lijm.

De foto hierboven toont de driehoek in een koffer. Dit is een 3D-afdruk van het .stl-bestand dat hier is opgenomen. Je zou er ook gemakkelijk een kunnen bouwen van multiplex.

Software

Software is vrij eenvoudig dankzij de neo-pixelbibliotheek van Adafruit. Het geeft ons setPixelColor(# in de keten, kleur) om de kleur van een LED te definiëren en show() die het hele scherm bijwerkt met de laatste wijzigingen. De bibliotheek gebruikt een niet-ondertekend 32-bits nummer om de kleur van een LED weer te geven, waarbij elk 8 bits wordt opgeslagen voor de intensiteit van rood, groen en blauw. Ik gebruikte dit schema rechtstreeks voor het oplichten en dimmen van de primaire kleuren, maar voor al het andere gebruikte ik mijn eigen eenvoudige kleurbeheerschema, geleend van mijn LED-kubussen. Het is een eenvoudig schema waarbij de nummers 1 tot en met 42 een regenboogkleurenpalet vertegenwoordigen, waarbij 0 wordt toegevoegd voor zwart (alles uit) en 43 voor wit (alles aan).

Het is je misschien opgevallen in het bedradingsschema hierboven dat de LED's genummerd waren beginnend met 0 bovenaan en nummers die van links naar rechts gingen per rij. Dit is het nummeringssysteem dat ik heb gebruikt om LED's te identificeren. Het gaat niet heen en weer zoals de datalijn, dus heb ik mijn eigen versie van setPixelColor gemaakt die verwijst naar LED's door mijn nummertoewijzing en waarmee ik een kleur kan specificeren met behulp van mijn 0 tot 43 kleurenpalet.

Bijna alle animaties of effecten die je in de video ziet, zijn tafelgestuurd. Een tabel vertelt je hoe je moet vegen vanuit de bovenhoek. Twee andere tafels vertalen dat effect naar de andere twee hoeken. Een andere tabel vertelt u de LED's in de buitenste driehoek, dan de middelste en dan de binnenste driehoek. Al deze verschillende tabellen worden opgeslagen in het programmageheugen in plaats van in het RAM. Ik was aanvankelijk bang dat al deze tabellen te veel waardevolle programmaruimte in beslag zouden nemen. Maar het gebruik van deze tafelbenadering bleek zeer efficiënt en programmaruimte was nooit een probleem.

Het programma of de schets is verdeeld in vier bestanden of tabbladen in de Arduino IDE. De eerste is declaraties, tabellen en de setup-routine. De tweede is de hoofdlus die eenvoudig een lijst met de verschillende animaties oproept. De derde zijn de animaties zelf. De vierde is de algemene functies of subroutines die alle animaties ondersteunen.

In de video hierboven zie je de originele show met 15 animaties. Het duurt ongeveer 3 minuten voordat het wordt herhaald. Sindsdien heb ik de show echter uitgebreid met een aantal nieuwe animaties die je in de onderstaande video kunt zien.

Alle animaties in de video hierboven zijn allemaal gedaan met oproepen naar een enkele subroutine genaamd rotatie(). De driehoek bestaat uit een buitenste driehoek van 24 LED's en een middelste driehoek van 15 LED's en een binnendriehoek van 6 LED's. De gemene deler van deze drie getallen is 120. Dus in 120 stappen kunnen we de inhoud van de hele driehoek 360 graden draaien. Dat is wat de routine roteren() doet. Verander de startpatronen, verander de draairichting, verander de draaisnelheid en je krijgt alle effecten die je in de video hierboven ziet.

De show in de download bevat nu de originele show, evenals alle bovenstaande animaties, waardoor een show met 26 animaties ontstaat die 5 minuten duurt voordat ze worden herhaald.

Code

  • Arduino-code voor kunstdriehoek
Arduino-code voor kunstdriehoekArduino
Dit is een zipbestand met een testroutine, een show met 26 animaties en instructies voor het gebruik van de Neo-pixelbibliotheek
Geen voorbeeld (alleen downloaden).

Aangepaste onderdelen en behuizingen

Een .stl-bestand voor een bijlage

Schema's


Productieproces

  1. Rechter driehoek trigonometrie
  2. Niet-rechthoekige trigonometrie
  3. Programmable Logic Controllers (PLC)
  4. C Dynamische geheugentoewijzing
  5. Een inleiding tot FPGA's en programmeerbare logica
  6. Walabasquiat:een interactieve generatieve kunstinstallatie!
  7. C++ dynamisch geheugen
  8. G.AL® C330 Dynamic
  9. G.AL® C210 Dynamic
  10. Horizontaal frezen is de kunst van efficiënt produceren
  11. Verschil tussen dynamische en verdringerpomp