Stap 1: Ontwerpdoelen
Hier zijn enkele van de functies (in gesorteerde volgorde) ik met mijn LED Controller wilde:
1) elke LED-lamp moet zo goedkoop mogelijk zijn. Een reeks van 100 lampen kost een bos als elk licht veel kost. Kosten, is daarom een belangrijke factor.
2) elk licht zal hebben een kleine micro aan boord die zal rijden de LEDs. De kleine micro genereert PWM-signalen, zodat de LED's kunnen worden gedimd, of verschoten. LED's kunnen hard als gewoon ontstoken, en kijken. Met behulp van de PWM-signalen dat de LED's kunnen worden verschoten op en neer zonder de harde randen normale LED's.
3) om te houden bedrading eenvoudig elke lamp accepteert opdrachten met behulp van een twee-draads interface. Macht en communicatie zal dezelfde kabels als twee delen. De opdrachten voor de lampen zal vertellen het aan boord micro die van de LED's om te rijden met PWM.
4) moet kijken cool! Ik denk dat dit moet echt worden opnieuw genummerd zodat er nummer één.
Hier zijn enkele van de kleine doelen (willekeurige volgorde):
1) voor ontwikkeling, moeten gemakkelijk kunnen worden reflash / herprogrammeren in-circuit.
2) een PC moet zitten kundig voor genereren van de opdrachten voor de lampen. Dit maakt de ontwikkeling patronen veel gemakkelijker dan het gebruik van een andere ingesloten micro.
3) elk licht moet een uniek adres hebben. Elke LED, binnen een lamp, moet ook uniek adresseerbare.
4) de opdracht protocol moet ondersteuning voor veel lampen op een string van draden. Het huidige ontwerp ondersteunt 128 lampen op een string. Met 4 LED's per lamp die 512 LEDs op een string van twee draden werkt! Merk ook op, die 512 LEDs allemaal volledige PWM rijden.
5) het protocol moet een opdracht die zegt: "Start vervagen van de LED van dit niveau op dat niveau". Zodra het begint te vervagen, andere LEDs kunnen ook worden ingesteld en zet in de langzaam verdwijnende op de dezelfde lamp. Met andere woorden, het instellen van een LED in een patroon van fading en dan vergeet het wetende dat de LED van de opdracht uitvoeren zal. Dit impliceert multitasking software op de micro!
6) moet er globale opdrachten die tegelijk betrekking hebben op alle lampen. Daarom, alle LEDs kunnen worden geboden met één opdracht.
Hier zijn sommige echt kleine doelen (nogmaals, geen bepaalde volgorde):
1) moet een manier om een rapport van de lamp terug als een comm-fout optreedt. Hierdoor zouden de opdracht opnieuw te worden verzonden.
2) het instructieprotocol moet een manier om een fancy globale match patroon. Hierdoor zou elke x aantal lampen met een commando worden geselecteerd. Dit zou gemakkelijker te maken van de chase patronen met grote aantallen lampen. Als voorbeeld, zou hierdoor een opdracht worden verzonden naar elke derde lamp op een reeks van lampen. Vervolgens kan de volgende opdracht verzenden naar de volgende groep van drie.
3) een auto comm polariteit detecteren logic systeem zou ook geweldig zijn. Vervolgens wordt de polariteit van de twee feed draden aan op de LED-lampen onbelangrijk. Zie sectie van de hardware voor meer informatie over deze functie.