Inhoudsopgave:

LED audiovisuele weergave - Ajarnpa
LED audiovisuele weergave - Ajarnpa

Video: LED audiovisuele weergave - Ajarnpa

Video: LED audiovisuele weergave - Ajarnpa
Video: AKIYO Projector 07 - Wifi Led Projector 1080P - Akiyo Tech - Распаковка 2024, November
Anonim
Image
Image
LED audiovisuele weergave
LED audiovisuele weergave
LED audiovisuele weergave
LED audiovisuele weergave

Door beckslelandsimpsonVolg meer door de auteur:

Begin een tuin vanaf nul vanaf restjes
Begin een tuin vanaf nul vanaf restjes
Begin een tuin vanaf nul vanaf restjes
Begin een tuin vanaf nul vanaf restjes

[WAARSCHUWING: KNIPPERENDE LICHTEN IN VIDEO]

RGB LED-matrices zijn een veelvoorkomend project voor hobbyisten die willen experimenteren met lichtschermen, maar zijn vaak ofwel duur, ofwel beperkend in hun grootte en configuratie. Het doel van dit project was om een herconfigureerbaar display te creëren dat zou kunnen werken als een op zichzelf staand stuk of als een interactief display bestuurd door een console met behulp van een assortiment joysticks en knoppen. Het display kan in verschillende lay-outs worden gerangschikt, van een matrixformatie tot een meer statische decoratieve lineaire strip.

Door een assortiment audiosensoren, knoppen en joysticks aan te sluiten, kon het display worden geschakeld tussen interactieve en automatische modi, met configureerbare kleuren, effecten, modi, snelheden, helderheid en patronen.

Gebruikers kunnen schakelen tussen modi en configuraties met behulp van de MODE- en CONFIG-knoppen, met behulp van de Joystick en SELECT-knop om hun keuzes te maken. De huidige keuze van de gebruiker wordt weergegeven op het 16x2 LCD-scherm in het midden van de console.

Dit project omvatte een LED-strip bestaande uit 250 LED's, maar de code kan eenvoudig worden gewijzigd om een strip van elke grootte mogelijk te maken.

Modi

  • Games: Games kunnen worden gespeeld met behulp van de led-matrix als een scherm
  • Ruis: LED's lichten op volgens het volume en de frequentie van het omgevingsgeluid.
  • Kleur: LED's die als licht worden gebruikt en een vooraf gedefinieerd kleurenpalet weergeven.
  • Regen: vallende regen lichteffecten

Modusconfiguraties

  • Kleur - Stelt het kleurenpalet van de strip in

    • Trots Vlag - Regenboog
    • Trans Vlag - Blauw, Roze, Wit
    • Vuur - Rood, Oranje, Geel
    • Licht - Wit
  • Stijl - Stelt het stripweergave-effect in

    • Blokkeren - Als in moduskleur de kleuren van de LED's constant blijven, in modusruis, worden alle LED's ingesteld op de meest recente ruiskleurwaarde, waardoor een knipperend effect ontstaat.
    • Shimmer - Alternatieve LED's oscilleren, vervagen tussen aan en uit.
    • Track - Indien in mode colour, beweegt het kleurenschema voor de LED's over de strip. In de modus ruis zorgt het ervoor dat de ruiskleuren als een bewegende golf over de strip gaan.
  • Regeneffect - Hoe de regenpatronen worden gegenereerd

    • Willekeurig - Nieuwe regenstrepen worden willekeurig geplaatst en het patroon varieert.
    • Constant - Het regenpatroon herhaalt zich.
  • Spel - Welk spel kun je spelen op de matrix

    Snake - Viva la Nokia, alleen speelbaar als de strip in matrixconfiguratie staat

  • Effectkleur - Welke kleurbron gebruiken de effecten?

    • Color Set - Effecten (bijvoorbeeld regen) nemen een willekeurige kleur uit het ingestelde kleurenpalet.
    • Ruisfreq - effecten wanneer ze worden gegenereerd, nemen de kleur aan die overeenkomt met de huidige ruisfreq.
    • Ruisvol - Effecten wanneer ze worden gegenereerd, nemen de kleur aan die overeenkomt met het huidige ruisvolume.
  • Grootte - Hoe is het display gerangschikt?

    • 250x1 Strook
    • 50x5-matrix
    • 25x10 matrix

Snelheid en helderheid

Gecontroleerd via draaibare analoge potentiometers, om de helderheid van de LED's te wijzigen en de snelheid waarmee het display wordt bijgewerkt. Dit heeft grote invloed op de intensiteit van de lichteffecten en de moeilijkheidsgraad van de games.

Stroboscoop & LED-status

Met de schakelaar linksboven in de console kunnen de LED's worden uitgeschakeld, als een optie voor wanneer het display wordt geconfigureerd. De schakelaar linksonder schakelt het stroboscoopeffect in, waarbij het display met de ingestelde snelheid knippert.

Stap 1: Vereisten

componenten:

  • Broodplank ~ £ 5
  • StripBoard ~ £ 10 voor set 5"
  • Arduino Mega (elke kloon is voldoende) ~ £ 20
  • 2x 1M potentiometerweerstanden
  • 300 RGB individueel adresseerbare strip ~ £ 30
  • Pin-headers ~ £ 5
  • 10x 10K, 1x 300 Weerstanden
  • I2C LCD-module ~ £ 5
  • Joystick met 4 schakelaars ~ £ 10
  • Audiosensor ~ £ 5
  • 1x 1μF, 1x 10μF, 1x 100nF condensatoren
  • 3x (kortstondige) knoppen. Aanbevelingen: Arcade, Mini ~ £ 3
  • 2x schakelaars. Aanbevelingen: Toggle ~ £ 5
  • Stroomaansluiting
  • Doos ~ 20x20x15cm - Karton is het makkelijkst, maar als je de beschikking hebt over een lasersnijder, dan heb je dat ook.

Mijn Joystick/Button-aanbevelingen waren puur stilistische keuzes, na een arcade-thema; kortstondige schakelaars van welke aard dan ook zullen volstaan. Er zijn goedkopere joysticks verkrijgbaar die hun positie doorgeven via analoge signalen die worden geproduceerd met behulp van 2 potentiometers (één voor elke as). Als u bereid bent de code te wijzigen, kunt u dergelijke thumb-joysticks gebruiken.

Hoewel ik een minimaal percentage van de Arduino Megas I/O-pinnen gebruikte, werd het geselecteerd vanwege de grotere dynamische en programmageheugengrootte, waarvoor de Arduino Uno onvoldoende bleek.

LEDStrip Keuze

De LEDstrip die ik gebruikte was een 300 RGB individueel adresseerbare WS2813 LED flexibele strip. een verbeterde versie van WS2812. Dit formaat, hoewel iets duurder, is een verbetering van de WS2812 met dubbele signaaloverdracht, wat betekent dat als een LED stopt met werken, de rest van de strip erna nog steeds functioneert. Als zodanig heeft het 4 pinnen: 5V, GND, DI (gegevensinvoer) en BI (back-upinvoer).

Totale kosten: ~ £ 100

Apparatuur:

  • Soldeerbout + Soldeer
  • Multimeter (optioneel, maar aanbevolen)
  • Draadknippers en strippers
  • Draad: bij voorkeur eenaderig, flexibel (LOTS)
  • Scalpel
  • Liniaal/potloden
  • 1x 5V-voeding
  • Handmatige schroevendraaiers
  • Printer A naar B USB-kabel

Software:

Arduino IDE

Vaardigheden:

  • Solderen
  • Enige Arduino-ervaring alles behalve absoluut noodzakelijk

Stap 2: Schema & Code

Schema & Code
Schema & Code
Schema & Code
Schema & Code
Schema & Code
Schema & Code

Dit project bestond uit 2 Potentiometers, 1 Audio Sensor, 1 LED Strip, 3 Momentary Buttons, 1 Joystick (4 Momentary Buttons), 1 LCD Module en 2 Switches.

Ik raad aan om ervoor te zorgen dat je de bedrading begrijpt en het basiscircuit op een breadboard instelt, voordat je de elektronica in de volgende stap op het stripboard soldeert voor duurzaamheid op lange termijn. Je zou op zijn minst in staat moeten zijn om de verschillende Arduino-pinnen aan te sluiten op de standaard HIGH (5V) / LOW (GND) -waarden en te experimenteren met het afwijken van de originele instellingen van de LEDStrip in de code (dit is gemarkeerd - zie codestap) om te zien enkele van de voorlopige lichteffecten.

Audiocircuit

Het audiocircuit wordt in de volgende stap besproken en is alleen nodig als u audio-effecten wenst, anders kunt u eenvoudig de AUDIO analoge ingangspinnen A0, A1 op GND aansluiten via een pull-down weerstand (~300 Ohm). Deze schakeling probeert de frequentie en het volume van het gemeten geluid te extraheren, waardoor twee verschillende invoerwaarden worden verkregen om de audiovisualisaties te regelen, b.v. hoogte (vol-amplitude) en kleur (frequentie).

Loden strip

Ik heb de datasheet voor de WS2813 strip bijgevoegd, deze is voorzien van de ideale bedrading. De BI-pin kan via een weerstand naar de grond worden getrokken en een condensator moet worden aangesloten tussen de GND en +5V en dicht bij de strip worden geplaatst. Dit verzacht plotselinge veranderingen in de huidige vraag van de strip, bijvoorbeeld als er een plotselinge grote toename is wanneer alle LED's worden ingeschakeld, kan de condensator die zijn opgeslagen lading gebruikt dit sneller leveren dan de Arduino, waardoor de druk op de kaartcomponenten wordt verminderd.

De strip wordt bestuurd met behulp van de FASTLED-bibliotheek (zie codestap voor meer details) en aangesloten op pin 5.

LCD-module

De LCD-module die ik heb aanbevolen, gebruikt een intern circuit, zodat er slechts 2 ingangspinnen nodig zijn, dit vermindert de complexiteit van het in het circuit solderen aanzienlijk. Het is verbonden met de SCL-, SDA-pinnen.

Potentiometers

Potentiometers zijn variabele weerstanden, waarmee je de gemeten spanning op de interne pin kunt regelen, de Arduino kan dit als een analoge waarde lezen. Ik heb deze gebruikt als een interactieve manier om de snelheid en helderheid van het scherm handmatig te regelen en ze zijn verbonden met analoge ingangspinnen: A3, A2.

Externe voeding

Voor kleinere projecten (< 20 LED's) kan de Arduino alleen via USB worden gevoed, maar voor dit grotere gebruik (250 LED's) is vanwege de grote stroombehoefte een externe +5V-voedingsbron vereist. Ik heb de Arduino van stroom voorzien via een externe aansluiting die is aangesloten op de GND en VIN van de Arduino. Wanneer alleen gevoed via USB, zullen de kleuren van de LED's vervormd zijn en zal het LCD-scherm niet volledig oplichten.

Knoppen/Schakelaars/Joystick

In neutrale positie worden de INPUT-pinnen van de knoppen naar beneden getrokken naar GND en de Arduino leest digitaal LAAG, maar wanneer ingedrukt, zijn de pinnen verbonden met +5V en leest digitaal HOOG. Zie hier voor een typisch voorbeeld van een Arduino-knop. Deze leeswaarden kunnen worden gebruikt als voorwaardelijke booleaanse waarden voor het programma, waardoor verschillende codesegmenten worden uitgevoerd. De knoppen/schakelaars zijn aangesloten op de volgende digitale ingangspinnen: Mode/Config: 3/2. Joystick L/R/U/D: 10/11/13/12. Selecteer: 9.

Stap 3: Audio-effecten

Audio-effecten
Audio-effecten
Audio-effecten
Audio-effecten
Audio-effecten
Audio-effecten

Het meest gecompliceerde onderdeel van de schakeling was de Audio Voltage - Frequency Converter. Ik volgde het bovenstaande schema (zie hier voor meer info). Enige wijziging van de condensator, weerstandswaarden kunnen nodig zijn, afhankelijk van de sterkte van uw audiosignaal. Het gegeven voorbeeld gebruikte een alternerend 12V-signaal, ik vond goede resultaten door 3,3V als voedingsspanning te gebruiken en 5V in de audiosensor te voeren.

De twee signalen die ik uit dit circuit haalde, waren de frequentie (VOUT) en het volume (V2 +).

Nuttige opmerkingen

Grotere condensatoren (drempel ongeveer boven 1 µF, niet-keramisch) zijn gepolariseerd, waaronder elektrolytische condensatoren, de stroom vloeit daarin van + naar - kant. Op het diagram heb ik de richting waarin ze moeten worden gerangschikt genoteerd.

De transistor die in dit circuit wordt gebruikt, is PNP, deze transistors laten stroom van de emitter naar de collector vloeien wanneer een negatieve polariteit wordt toegepast op hun basis ten opzichte van de emitter.

Verdriet #1

Oorspronkelijk probeerde ik de audio in het circuit te voeren met behulp van een audio-aansluiting, de droom was om de audio rechtstreeks vanaf mijn telefoon aan te sluiten. Helaas leek het signaal dat dit produceerde te zwak en na een week worstelen om het werkend te krijgen, nam ik mijn toevlucht tot het gebruik van een geluidssensormodule. Ik weet zeker dat er versterkingstechnieken zijn die ik had kunnen gebruiken, en dit is absoluut het belangrijkste probleem met mijn project dat ik in de toekomst zou willen corrigeren.

Stap 4: Console-ontwerp en -creatie

Console-ontwerp en -creatie
Console-ontwerp en -creatie
Console-ontwerp en -creatie
Console-ontwerp en -creatie
Console-ontwerp en -creatie
Console-ontwerp en -creatie
Console-ontwerp en -creatie
Console-ontwerp en -creatie

Mijn console-ontwerp is geïnspireerd op ouderwetse arcades, met retro joystick, knoppen en tuimelschakelaars. Ik heb het gemaakt met behulp van een oude kartonnen koptelefoondoos (hamsteren heeft zijn nut); dit was zeer effectief omdat de doos een binnenvoering van schuim had, dus eenmaal binnenstebuiten gekeerd gaf het een mooi gepolijst effect.

  1. Schets de algemene lay-out van de gewenste console.
  2. Meet en markeer de posities van de verschillende componenten bovenop de doos. Zorg ervoor dat u de binnenafmetingen van de knoppen/schakelaars/joysticks neemt, aangezien u wilt dat de openingen net groot genoeg zijn om de componenten door te drukken, maar dat de buitenranden nog steeds op het karton blijven haken. Ik raad aan om een scalpel te gebruiken om deze gaten te snijden, maar een scherpe schaar in combinatie met schroevendraaiers voor ronde gaten zou de slag moeten slaan. Snijd langzaam, probeer het onderdeel er doorheen te passen en laat de ruimen geleidelijk groter worden, doe één onderdeel tegelijk.
  3. Voor de grotere componenten, zoals de joystick en het LCD-scherm, raad ik aan enkele moeren/bouten door de bovenkant van de console te schroeven om ze stevig op hun plaats te houden.
  4. Snijd drie gaten in de onderkant van de achterkant van de console, deze zijn voor de stroomingang, USB-ingang om optioneel de Arduino en LEDStrip-uitgangsconnector te programmeren.

Beste adviezen

Ik raad aan om elk van de metalen connectoren van de componenten vooraf te solderen voordat ze in de console worden geplaatst, voor gemakkelijke toegang en om het risico op verbranding van het karton te verminderen.

Stap 5: Soldeerschema

Soldeerschema
Soldeerschema
Soldeerschema
Soldeerschema
Soldeerschema
Soldeerschema
Soldeerschema
Soldeerschema

Je hebt een stuk stripboard nodig van minimaal 25 rijen bij 20 cols. Door er echter een te kiezen die groter is, kunt u uw Micro-Controller blauw op het Stripboard naast de draden plakken, dit betekent dat de enige niet-stabiele verbindingen die zijn tussen het Stripboard en de componenten die aan het oppervlak van de console zijn bevestigd. Wat essentieel is bij elke stap van dit proces, is waar mogelijk de belasting van de bedrading te verminderen om een duurzaam eindproduct te garanderen.

Ik heb pin-headers gebruikt om de draden netjes in groepen te organiseren en ze op de Arduino aan te sluiten op een manier die gemakkelijk kan worden losgemaakt voor foutopsporing.

Ik ondersteunde het Stripboard gedeeltelijk met de zwaarste schakelingen door een touwtje / draad te gebruiken om het aan te sluiten op de binnenmuur van de kartonnen doos.

De hoofdstroom- en LEDStrip-draden die de console verlieten, hadden midwire-connectoren die konden worden losgemaakt, dit betekende dat de draden door gaten aan de onderkant van de console konden worden geregen en de doos nog steeds kon worden geopend.

Soldeertips

Een klem om de draden/stripboards vast te houden tijdens het solderen zal het proces veel gemakkelijker maken. Soldeer altijd elke draad voor voordat u ze probeert aan te sluiten.

Lay-outtips

Alle outwires (naar de Arduinos-pinnen) bevinden zich aan de rand van het bord.

Indien mogelijk, helpt het gebruik van draad met een andere kleur in rijen in de buurt om verwarring met de bedrading te voorkomen.

GND, +3.3V, +5.5V moeten altijd aan de randrijen worden geplaatst, voor gemakkelijke identificatie, het plaatsen van GND en +3.3/5V aan tegenovergestelde randen helpt mogelijke kortsluiting te voorkomen, maar persoonlijk stoorde ik me niet en plaatste ze in de top 3 rijen. De lay-out van de console kan deels de volgorde van de draadrijen bepalen, nabijgelegen componenten worden toegewezen aan nabijgelegen rijen, de pincodes in de Arduino IDE kunnen altijd worden herschreven.

Door alle +5V-pinnen van de knoppen/weerstanden aan de achterkant van de console aan elkaar te solderen in een serieschakeling, is er slechts één +5V-draad nodig tussen het Stripboard en de bovenkant van de console, waardoor het aantal kwetsbare verbindingsdraden enorm wordt verminderd. Voor de 4 schakelaars van de joystick heb ik bijvoorbeeld al hun 5V-terminals met elkaar verbonden.

Wees royaal met de lengte van de draden die zich uitstrekken tussen het Stripboard en de console, het is veel gemakkelijker om later te verminderen dan om te proberen te vergroten.

Gebruik indien mogelijk flexibele draad tussen het Stripboard en de consolecomponenten, dit maakt het later gemakkelijker om de console te openen en te debuggen.

Stap 6: Uitbreiding 1: LED-matrix

Uitbreiding 1: LED-matrix
Uitbreiding 1: LED-matrix
Uitbreiding 1: LED-matrix
Uitbreiding 1: LED-matrix
Uitbreiding 1: LED-matrix
Uitbreiding 1: LED-matrix

Door de LED Strip als zodanig op de console aan te sluiten, kunnen de meeste regen-, kleur-, stroboscoop- en ruiseffecten worden weergegeven, maar de visualisatievorm is beperkt. Met de code kan het display verder worden geconfigureerd in 250x1, 50x5 en 25x10 arrangementen, dit maakt matrixvisualisaties mogelijk. Ruis kan worden weergegeven als bewegende golven, games kunnen op de matrix worden gespeeld als een scherm met een lage resolutie. De keuze voor een individuele striplengte van 25 pixel was een persoonlijke keuze, deze kun je zelf kiezen en in de code instellen. Wat ik vooral wilde, was flexibiliteit, zodat ik, welk grafisch effect ik ook besloot later te coderen, de HW in de gewenste opstelling kon samenstellen.

Verdriet #2

Ik had een droom, en het was om met geleidende inkt circuitverbindingen op karton te schilderen, die tegen de aangrenzende uiteinden van de LED-strips konden worden gedrukt.

Voordelen:

  1. Ziet er super cool uit, en ik zou best verschillende kleuren karton kunnen gebruiken
  2. Ik mag circuits tekenen
  3. Ultiem maatwerk, bedenk een nieuw arrangement, teken het gewoon.

nadelen:

  1. Het werkte niet.
  2. Niet eens een klein beetje.
  3. Waarom zou u met de hand een bedrading kunnen tekenen die nauwkeurig genoeg is en vervolgens een nauwkeurige en consistent genoeg druk uitoefenen op een samendrukbaar materiaal zoals karton?

Ik blijf erbij dat als het had gewerkt, het echt gaaf zou zijn geweest en ik heb slechts gedeeltelijk spijt van de 2 uur die aan deze onderneming zijn besteed.

Werkelijke oplossing

Ik besloot om een systeem van insteekbare mannelijke/vrouwelijke headers te gebruiken, vergelijkbaar met die gebruikt worden om de Stripboard-draden aan te sluiten op de Arduino. Door afwisselend M/F aan elk uiteinde te plaatsen, kunnen de afzonderlijke strips optioneel in elkaar worden gestoken om de originele ongesneden strip opnieuw te creëren. Of er kunnen tussenliggende flexibele draadconnectoren worden gebruikt, zodat strips op zichzelf kunnen worden teruggevouwen om een matrix te vormen, of een andere ruimtelijke configuratie.

  1. Snijd de Led Strip in segmenten, ik koos 10 strips met een lengte van 25, waardoor er 50 LED's overblijven voor een ander project
  2. Soldeer elk van de koperen verbindingen aan elk uiteinde van de strip. Pas op dat u het plastic niet smelt, als u er een met waterdichte bekleding hebt gekocht, moet u aan elk uiteinde een klein bovenste gedeelte wegsnijden.
  3. Mijn LEDStrip had 4 connectoren aan elk uiteinde en 10 strips, dus ik sneed 10 mannelijke, 10 vrouwelijke headersegmenten van elk lengte 4. Voor elke strip soldeerde ik mannelijk aan het ene uiteinde en vrouwelijk aan het andere. Zorg ervoor dat dezelfde uiteinden mannelijk/vrouwelijk zijn voor elke strip, hierdoor kunt u ze in een daisy chain-achtige manier verbinden.
  4. Test de verbindingen door de 10 strips in elkaar te steken, corrigeer indien nodig met meer solderen.
  5. We hebben nu de draadconnectoren nodig, deze zullen worden gebruikt om de afzonderlijke strips met elkaar te verbinden tot flexibele opstellingen, of het nu gaat om het bereiken van afstand van elkaar of het samenstellen van een matrix. Hun lengte bepaalt hoe ver u elk doorlopend gedeelte van LEDStrip uit elkaar kunt plaatsen; knip de draad iets langer af dan u wilt, omdat er wat lengte verloren gaat bij het aansluiten van de draden. Knip nog 10 mannelijke, 10 vrouwelijke kopsegmenten van lengte 4 af. Knip 40 stukken draad (idealiter veelkleurig, flexibel), strip elk uiteinde en soldeer voor.
  6. Om een bedrade verbinding tot stand te brengen, neemt u eerst 4 draden (idealiter verschillende kleuren om te kunnen identificeren welke draad op welke pin is aangesloten) en soldeert u deze aan een mannelijke header. Deze 4 draden wil je dan omvlechten, zo blijft de bedrading netjes. Eenmaal gevlochten (voldoende is de kwaliteit die we hier zoeken), soldeer je de andere uiteinden aan de vrouwelijke connector. Zorg ervoor dat dezelfde draden op dezelfde pinnen worden gesoldeerd. Als al je draad dezelfde kleur heeft, maak dan markeringen of gebruik een multimeter om te bepalen welke draad dat is, want na het vlechten is het niet duidelijk. Herhaal dit proces voor elke bekabelde verbinding die u nodig hebt.
  7. Test de verbindingen opnieuw, door alle strips met de bedrade verbindingen te verbinden, speel met de instelling van de consolegrootte en rangschik de LEDStrips in verschillende matrixformaties. Het is beter om zwakke verbindingen eerder dan later te verbreken en te identificeren.

Je hebt nu 10 afzonderlijke strips, die direct op elkaar kunnen worden aangesloten om een lange enkele strip te maken, of die je kunt herschikken in matrixformaties.

Stap 7: Configuratie en instellingen

Configuratie en instellingen
Configuratie en instellingen
Configuratie en instellingen
Configuratie en instellingen

De nieuwste versie is altijd te vinden op mijn github: rs6713/leddisplay/, voel je vrij om het op te splitsen/downloaden en te spelen.

Arduino IDE installeren

In het wonderbaarlijke geval dat je deze tutorial op de een of andere manier hebt voltooid zonder eerdere Arduino-ervaring, kan de Arduino IDE hier worden gedownload. Installeer en open de code eenvoudig in de IDE, steek het bord via de printerkabel in de computer. (Mogelijk moet u een stuurprogramma voor de computer installeren om het Arduino-bord te herkennen, maar dit zou automatisch moeten gebeuren de eerste keer dat u een Arduino op uw computer aansluit). Selecteer het bordtype en selecteer de actieve COMM-poort waarop de Arduino is aangesloten.

Configuratie

Voor het wijzigen van de verschillende instellingen van het display is geen geavanceerde programmeerkennis vereist.

Gebieden in het programma die vatbaar zijn voor configuratie zijn gemarkeerd met /*** CONFIGURE ME ***/

U kunt de volgende onderdelen van het programma eenvoudig wijzigen/configureren:

  • De pinnen waarop de componenten zijn aangesloten
  • De grootte van de individuele LEDStrips
  • Totaal aantal LED's in de strips in totaal
  • De modi die u voor het programma wilt toestaan
  • De lengte van de regendruppels voor het regeneffect.

De pinnen en het totale aantal LED's zijn essentieel om de code goed te laten werken met uw versie van het elektronische circuit dat in de vorige stappen is besproken. Het is ook handig, zodat u verschillende weergavemodi kunt testen door ze tijdens de code-initialisatie in te stellen, in plaats van dat u alle joystick-, modus- en configuratieknoppen hoeft te bouwen en aan te sluiten.

Uploaden

Nadat u de juiste pincodes voor de componenten, stripgrootte en aantal LED's hebt ingesteld, kunt u het programma uploaden naar de Arduino door op uploaden te drukken. Hopelijk heb je dit op dit punt al vanzelfsprekend gedaan tijdens het testen. Sluit de externe 5V-voeding aan en je zou goed moeten zijn om te gaan.

Debuggen

Als de LEDStrip/Console niet naar verwachting functioneert, zijn er een aantal mogelijke oorzaken.

De LEDStrip is geheel/gedeeltelijk uit:

  • Controleer of de LEDStrip-schakelaar is ingeschakeld,
  • Als u de strip hebt verlengd en de laatste paar eindsegmenten van de LEDStrip niet branden, is dit waarschijnlijk te wijten aan een defecte verbinding. Controleer uw verbindingen op droge verbindingen en soldeer opnieuw, probeer de volgorde van de strips te veranderen, en als het een bekabelde verbinding is, probeer dan de ene bekabelde verbinding voor een andere te verwisselen.

De helderheid van het LCD-scherm is laag/LEDStrip-kleuren zijn verkeerd:

  • Controleer of de externe voedingsaansluiting is ingeschakeld/goed is aangesloten. Als het vermogen laag is, lichten niet alle kleuren van de RGB-LED's constant op en heeft het LCD-scherm moeite om zichzelf te verlichten.
  • De kleuren kunnen ook verkeerd zijn als de maatconfiguratie b.v. 250x1 van het programma geeft niet de echte LED-opstelling weer.
  • In het slechtste geval kunt u het programma wijzigen om het aantal verlichte strips te verminderen.

Willekeurige verschrikking

Als laatste redmiddel zijn de opmerkingen over Serial.prints in de hele code gelaten, en als je ze niet meer becommentarieert, krijg je feedback over verschillende component- en innerlijke programmastatussen.

Een waarschijnlijke situatie is dat een ingang die moet worden geaard, is losgekoppeld en blijft zweven, dit zal leiden tot triggers voor valse gebeurtenissen (willekeurig oscillerende pin-uitlezing tussen ONWAAR en WAAR) en onvoorspelbaar programmagedrag.

Programmawijzigingen

Verdere gebieden met mogelijke wijzigingen zijn gemarkeerd met /** CHANGE ME **/

Deze gebieden zijn uitstekende voorbeelden waar u uw eigen aanpassingen kunt toevoegen:

  • Nieuwe kleurenpaletopties toevoegen
  • Voeg nieuwe effecten toe, b.v. flikkering
  • Nieuwe spellen toevoegen

Dit zijn slechts suggesties, voel je vrij om de code naar wens te wijzigen.

Stap 8: Extensie 2: OpenProcessing

Extensie 2: OpenProcessing
Extensie 2: OpenProcessing

** Op het moment van schrijven is deze functie nog niet geïmplementeerd, dus deze stap is bedoeld om toekomstige plannen/manifestaties van dit project te benadrukken en om het belang te benadrukken van het uitbreiden van de LEDStrip om matrixweergaven mogelijk te maken. **

Een van de redenen waarom ik zo enthousiast was dat het uitbreiden van de LEDStrip het mogelijk maakte om het als een matrix te rangschikken, was dat het hebben van een scherm veel mogelijkheden biedt om 2D-visualisaties van andere software toe te wijzen aan de Arduino HW.

OpenProcessing is een gemeenschap van interactieve 2D-graphics op basis van de Processing-taal. Door een eenvoudige Serial Print-functie te gebruiken, kan het uiterlijk van elk frame pixel voor pixel naar de Arduino worden verzonden. Daarom kan er een toekomstige modus voor de console zijn, waarbij de Arduino alleen naar de seriële verbinding luistert en de LED-matrix frame voor frame bijwerkt volgens de animatie die is gespecificeerd door het Processing-programma. Dit heeft veel voordelen omdat Processing een taal is die gespecialiseerd is in de beeldende kunst en gemakkelijk te leren is, waardoor het zeer snel gaat om complexe kunstvisualisaties te maken. Het verplaatst ook de geheugen- en verwerkingscomplexiteit naar uw computer, waarbij de relatief geheugen/verwerkingskracht beperkte Arduino alleen de informatie hoeft te verwerken die via de seriële wordt doorgegeven.

Door uw LED Display-visualisaties uit te besteden aan een reeds bestaande bibliotheek van 2D grafische effecten, zijn de mogelijkheden eindeloos. Bekijk de openprocessing.org-catalogus voor inspiratie.

Aanbevolen: