Gör en Nike FuelBand! Typ av... (4 / 5 steg)
Steg 4: Ladda upp programvaran
Programmet har tre huvudfunktioner:A. närvarande användaren med en grundläggande UI att välja om du vill:
- Displayen på X, Y, Z avläsningar
- Posten X, Y, Z avläsningar
- Radera flash chip
- Visa hur många 256-byte sidor har skrivits till flash chip
B. läsa accelerometern så fort som möjligt
C. skriva data till Flash
Huvuddelen av koden är tillägnad UI. Det var en rolig process inlärningen hur till använda LCD biblioteket som kommer med den översta skölden. De sex knapparna på skölden skicka en analog spänning till den analoga 0 pin av Uno. Detta är en ganska smart alternativ till debouncing tryckknappar (om du inte vet varför det är utmanande, du kommer en dag!). Styrkoden är inte så svårt att få huvudet. Upp/ned cykel genom menyalternativen, rätt väljer och Återställ bara omstarter Arduino. Riktigt enkel.
Visningsläge
I visningsläget skickas en sträng till LCD med X, Y och Z avläsningarna i milli-gs. Funktionen Convert () skalar avläsningarna från 0-5V till gs. Eftersom 0g definieras som 1.65V av tillverkningen, och den totala Arduino analoga troheten från 0-5V mäts i 1024 steg, ekvationen är 5V/1024 * X - 1.65V = g.
Inspelningsläge
I inspelningsläge, är displayen inte uppdaterad. I stället skrivs analoga rådata till flash-minne med hjälp av en pagebuffer klass. Varje gång 256 byte skickas till klassen, det bränder av en sida skriva till flash-enheten och swappar i en ny buffert. Denna klass är en förbättring över min föregående kod i min vindmätaren instructable.
Sudda-läge
Radera läge raderar bara flash chip.
Visa sidor används läge
Sidor som används visar hur många sidor har fyllts i flash-enheten. Eftersom den första byten i varje sida är alltid inställd på 0, kan koden snabbspola till en ny fräsch sida efter återställning. Detta kan du vända enheten på och av och ändå fortsätta skriva där den slutade.
* Obs: förutom Arduino kärna bibliotek (för saker som SPI och digitalWrite()), du behöver LCD knappsatsen biblioteket. Den finns på DFRobot hemsida.
** Obs #2: Jag har inte förklarat hur man ladda ner data från flash chip. Som kommer i en annan instructable. Jag har en särskild styrelse med en USB-anslutning som läser data från denna marker. Någon dag ska jag flytta till SD-kort och göra mitt liv lättare.