Stap 4: Software
Keuzes...
Als het gaat om software hebt u meerdere opties, kunt u ofwel:
- uitvoeren van de matrix als een standalone apparaat
- uw computer gebruikt om afbeeldingen/animaties duwen om de matrix
- of kom met uw eigen idee (bijvoorbeeld aansluiten op een esp8266 om weer te geven van de inhoud van het internet
I. Standalone
gewoon spelen rond met de FastLED bibliotheek voor de Arduino-platform. Er zijn vele goede voorbeelden online, die u kunt vinden hier in de map examples. U moet wellicht een paar regels in de schetsen, zoals wijzigen:
- het type LED die u gebruikt (verander enkel het "WS2812").
- de hoeveelheid LED's uw matrix bestaat uit.
II. de controle van de matrix via PC
Dit is de manier die ik geef de voorkeur om het te doen. GreatScott deed onlangs een grote tutorial over het gebruik van de software van de glediator. Hij kwam ook met een schets (een Arduino-programma), dat prima voor mij werkte.
Maar ik wilde mijn eigen code schrijven en kwam met dit python-script. Gewoon ervoor zorgen dat u de juiste com-poort in de regel 95 gekozen en deze op uw computer met uw matrix verbonden met het uitvoeren. Het (het script) werkt ook prima met GreatScott van glediator de schets, zodat u niet hoeft te reprogramm je Arduino. Let op, dat ik alleen ze getest met Debian Linux, maar het moet niet te ingewikkeld zijn om hen te werken onder Windows of OSX. Voel je vrij om te kopiëren en wijzigen van de code aan uw behoeften. Als u vragen over de code, die een beetje cryptisch hebt is, voel je vrij om te vragen in de commentaren hieronder. Ook zorg ervoor om te controleren op de volgende pagina, waar ik Conway's Game of Life op de matrix uitvoeren.
Maar hoe precies is alles wat van deze werken?
De LEDs gebruikt in dit project bevatten shift-registers, die in principe kleine schakelingen die een kleine hoeveelheid gegevens (in de vorm van enen en nullen zijn) kunnen bevatten. In deze toepassing de gegevens die zijn opgeslagen in elke overheveling LEDs register vertegenwoordigt van de kleur en bestaat uit 24 bits (8 bits per kleur). De firmware draait op de Arduino ontvangt gegevens via seriële communicatie en verschuift het vervolgens via de daisy chain van shift registers/LEDs. De Arduino zelf behandelt de matrix, alsof het een normale LED stripe (1 dimensionale). Mijn onderstaande script berekent elke pixels kleuren (RGB) en slaat deze op in een 2-dimensionale array, die in feite de matrix zelf vertegenwoordigt. Na de berekening van elke pixels RGB-waarden (elk vertegenwoordigd door een waarde tussen 0 en 255 [2⁸]) gaat het vervolgens door het indrukken van deze waarden aan de Arduino via een seriële poort op uw computer. Dit gebeurt op een bepaalde volgorde, omdat de Arduino adres de LEDs in een Cartesiaans soort manier (x, y cant). De gegevens wordt in een bepaald tempo van beelden per seconde, wat tot de illusie van een beweging/vervagen-patroon op de matrix leidt geduwd.