Stap 4: Programma Microcontroller
Ik mijn bord geprogrammeerd door simpelweg omwisselen van de atmega-chip in de contactdoos rechtstreeks vanuit mijn arduino. Hiervoor kunt u gemakkelijk het bouwen van een project als dit, of je kon gaan naar de extra enkele minuten van de inspanning toe te voegen een programmering kop pinnen en krijgen een goedkope FTDI programmeur. In de toekomst dat is hoe ik zou gaan over andere projecten, maar ik heb niet de FTDI interface beschikbaar en ik was te lui om het gebruik van een arduino voor het. U kunt meer over lezen op de koppelingen die ik aanwezig op de prototyping stap.
ARDUINO SKETCH DOWNLOADEN
Ik omvatte ook het schema (nota: het toont een RGB LED-matrix in plaats van een enkele kleur... dit negeren)
Deze sketch is soort van slordig en niet goed toegelicht (als iedereen wil het schoon te maken voel je vrij om mij een kopie van de updates). De dingen om op te merken zijn dat er verschillende voorbeelden uit de bibliotheek van de MAX72XX gerold in een schets, alsmede een aangepast 8 x 8 formaat van de animatie. U kunt dit heel gemakkelijk uitbreiden door nieuwe animaties maken, zoals hieronder uitgelegd. Hebt u problemen met deze sketch, alleen voel je vrij om te schieten mij een reactie en ik zal proberen te beantwoorden.
Vereisten:
MAX72XX deelvenster Bibliotheek
Adafruit GFX bibliotheek
Huidige lijst van opdrachten:
U kunt een heleboel verschillende animaties en pictogrammen activeren door een van de volgende opdrachten te sturen naar het apparaat via de seriële:
slang
spin
boom
gezicht
hart
muziek
rechts
links
Pacman
Pinky
glimlach
schedel
Ani
Als een van de hierboven vermelde items niet de schets wordt ervan uitgegaan dat u een Ticker Tape-bericht verzendt en zal het scrollen door het bericht verzonden. Een opdracht of boodschap herhaald totdat u een andere opdracht (met uitzondering van "boom");
"ani" is een lus van een aantal van de pictogrammen en kunt u de functie aan de onderkant van de schets om te zien de timing enz.
Het toevoegen van animaties:
U kunt personaliseren uw prikbord met aangepaste animaties. Ik bouwde in een gestandaardiseerde methode voor het schrijven van bitmaps die zijn opgeslagen als een matrix van 64-byte byte []. u kunt maximaal 8 frames van 8 x 8 animatie voor een enkele functie. De animaties worden gegenereerd door het schrijven van nieuwe bytewaarden in het geheugen en kunnen worden geschreven als binaire voorstellingen van de led op de matrix. Zo kunt u een 1 voor hoge (verlichte) of 0 voor lage (dim) om een foto te maken. Als u nieuwe gelieve afbeeldingen of animaties hen... ik zou graag zien wat andere mensen doen met dit aandeel.
in het volgende voorbeeld:
Als je scheel uw ogen op dit moet u zitten kundig voor zien van de 2 frames van de animatie van de geest:
ongeldig pinky() {}
memset(mBitmap,0,sizeof(mBitmap)); Duidelijk mBitmap ByteArray]
aniFrames = 2; De arduino vertellen hoeveel frames u bent animatie is
mBitmap [0] = B00111000;
mBitmap [1] = B01111100;
mBitmap [2] = B10010010;
mBitmap [3] = B11011010;
mBitmap [4] = B11111111;
mBitmap [5] = B11111111;
mBitmap [6] = B11111111;
mBitmap [7] = B10101010;
mBitmap [8] = B00111000;
mBitmap [9] = B01111100;
mBitmap [10] = B10010010;
mBitmap [11] = B10110110;
mBitmap [12] = B11111111;
mBitmap [13] = B11111111;
mBitmap [14] = B11111111;
mBitmap [15] = B01010101;
dBitmap(); uitvoeren van dBitmap om te tekenen van de bitmap-frames op de matrix
}
de dBitmap gewoon een lus elke byte in de array, functie en doet een bitsgewijze vergelijking om te zien of de corresponderende LED moet hoog of laag.
U zult moeten om te spelen rond met dit een beetje te krijgen om naar wens uitziet. U zult ook willen toevoegen van de opdracht in de lus, zodat wanneer een nieuwe seriële commando wordt verzonden naar de tape-variabele het leiden de functie tot kan. (u zult zien wat ik bedoel in de code... zoniet vragen en ik zal u helpen uit)