K.K. Bossa sång och Animation på en Arduino (5 / 5 steg)

Steg 5: Hur det fungerar

PROGMEM

Först, jag tror jag behöver ta itu med vad PROGMEM är för nybörjare. PROGMEM är sättet att lagra variabler i programminnet i motsats till den dynamiska minne eller SRAM. Om en skiss har alltför många globala variabler, kan en överträffa mängden SRAM. När det händer, skissen fungerar inte och kommer att krascha. Så man kan flytta alla variabler till programminnet att frigöra utrymme inom SRAM. Dock behöver speciella funktioner anropas för att hämta variablerna från programmet minnesutrymme. Det är jobbig fråga och kan vara mycket frustrerande ibland, men det är det bästa man kan göra när du arbetar med mycket lång matriser för att spara (SRAM) utrymme. Se här för mer information och exempel.

Hur fungerar låten:

För att spela flera toner, dela jag varje taktslag i fyra mindre beats - som jag kallade mini beats. Så är varje mini beat likvärdig med en 16 Observera. Dessa mini beats fungera som räknaren för när en ton ska spelas och när det ska sluta - enkelt. I verkligheten behöver mini beat bara vara den minsta Obs inom hela. Jag valde en 16 notera eftersom mycket få bitar har 32: a anteckningar. Ja, några orkester bitar har 32: a anteckningar, men vill du verkligen spela som på en arduino? I alla fall, vore det mycket lätt att ändra det till 32: a Obs mini slår om så önskas.

Hur fungerar animeringen:

Istället för att skriva alla mina anpassade char matriser i binära, oktala eller hex, allt är skrivet i decimal. I själva verket kan du skapa anpassade röding med decimala värden mellan 0-31.

Nu ser datorn fortfarande heltalet som binära värdet i bakändan, så med hjälp av lite verksamhet kan du skifta det värdet att bara ta en längd fem delsträng från det att använda för att skapa anpassade char. (Obs: varje fönster på 16 x 2 LCD är fem pixlar bred).

Till exempel: titta på min excel-ark, säger att jag vill ha den första fem pixlar på kk reglaget på raden 0 från kolumner 12-8. Decimalvärdet för hela raden är 896 - som är 0001110000000 i binär. Så om jag skifta 896 åtta gånger till vänster, kommer jag få 3 - vilket är 00011 i binär.

Göra ovanstående på åtta summarader att få tillräckligt med data för att skapa en anpassad char. Det är kontentan av det.

Så varför använda decimalvärden? Du behöver faktiskt inte, det är enbart för estetik. Att skriva en massa 0's och 1 kunde köra du sinnessjuk och det finns mycket mer utrymme för misstag. Dessutom gillar jag inte att ha en anpassad char ta upp så många rader, så det är därför jag bara klämma in en bild i en enda rad. Om du använder binära värden skulle varje rad vara super lång tid att bläddra igenom. Så är det vad du föredrar. Till min förvåning fungerar min skiss faktiskt Hursomhelst (jag testade det).

Se Steg
Relaterade Ämnen

PacMan och anpassade tecken på Arduino med en 16 x 2 LCD I2C YwRobot LCM1602 IIC V1

Hej alla, detta är min första instructables!Jag gjorde denna guide eftersom jag hade en massa problem att köra YwRobot LCD-I2C med Arduino på grund av problem i samband med programvara bibliotek.Efter mycket forskning och provning, i slutet, jag hitt...

Hur gränssnittet fukt och temperaturgivare (DHT11) till Arduino och inklusive DHT11 bibliotek.

DTH11 omfattar både fukt och temperatur sensor.Maskinvarukomponenter krävs:-1) DTH11 Fukt och temperaturgivare2) Arduino UNO3) anslutande trådar4) DTH bibliotekDu kan få sensorn DTH11 datablad från den länken nedanhttp://www.micro4you.com/files/senso...

Ansiktsigenkänning och spårning med Arduino och OpenCV

uppdateringar20 feb 2013: Som svar på en fråga från student Hala Abuhasna om du vill använda klassen .NET seriell, använda namnkonventionen "\\\.\\COMn" och ersätt n med en nummer > 9 definiera com-porten för COM-portar över 9 som COM10, COM1...

Styra din Tv, Dvd och ljud system med Arduino och Android

Hej alla, detta är min andra instructable och min första på engelska, så, ledsen för misstag.Jag vill dela detta projekt det handlar om hur du kan styra din Tv, DVD och ljudanläggningen med Arduino och en app för Android med app inventor.Om du gillar...

3D skriva ut och animera själv

Detta instructable syftar till att visa dig den steg för steg-process för takin en full body scan och manipulera till någon annan plats för en 3D utskrift. Jag gjorde steg så kort som möjligt, så någon skulle kunna göra sina egna 3D scan enkelt.Jag t...

Rigg och animera en stel kropp varelse

Detta instructable steg genom den grundläggande installationen av ett tecken eller en varelse gjord av solid stela kroppar bifogas en skelettstruktur som ska användas i animation.I detta fall arbetar jag med Tinkerplay, som har många snapin tillsamma...

Skapa en 3d-modell av en hjärtat formade spinning topp och animera detta för alla hjärtans dag.

Animering: http://www.youtube.com/watch?v=4JV0YEIpZXA eller http://www.youtube.com/watch?v=kSFpewNu6sASteg 1: Skapa en ny del och skissa en stort hjärta form.Steg 2: Solid extrudering och placera i en församlingSteg 3: Skapa en ny del och skissa ett...

Hur man drar en Cat Eye (manga och anime)

Hej alla! Som ni vet alla, har jag några manga katt tutorials redan, men jag tänkte det var på tiden att jag gjorde en specifik för ögat, som är särskilt knepigt. Så, utan någon ytterligare adjö, låt oss få till det!Steg 1: Några saker du behöverAtt...

Hur man bygger en 8 x 8 x 8 LED cube och styra med en Arduino

det finns en hel del LED kuber på Instructables, så varför göra en annan? De flesta är för små kuber som består av 27 eller 64 lysdioder, sällan större eftersom de är begränsade till antalet utgångar på mikrokontroller. Denna kub blir 512 lysdioder,...

Skapa egna membran matris knappsatsen (och ansluter den till Arduino)

så du vill skapa din egen membran knappsatsen? Varför? bra att göra din egen knappsats kan vara bra av många skäl. Det är billigt och lätt att göra, den kan placeras i situationer där det kan vara vandaliserade eller stulen utan mycket frustration, h...

Högt och Awesome ljudeffekter på Arduino

Detta är en enkel 3 komponent enhet som förstärker ljudet Arduino kan producera ungefär med en faktor på 10!I princip är så det fungerar följande:En PIN-kod på Arduino oscillerande (slå på och av) vilket skapar ett ljud med en viss frekvens. Signalen...

Kontrollera allt och spara energi med Arduino

Jag använde detta för min egen mycket specifikt problem men det skulle kunna användas för någonting egentligen.Problemet:De flesta högtalare är inte smart, och så du måste stänga dem off manuellt, särskilt studio typ monitorhögtalare. På grund av det...

Tjurar och kor spel med arduino

Även känd som kor och tjurar eller svin och tjurar eller tjurar och Cleots) är en gammal kod tillkommen sinne eller papper och penna spel för flera spelare, föregick den liknande kommersiellt saluförda brädspel Mastermind.Det är ett spel med siffror...

Enkel ljusstyrka indikator och alert med LDR, Arduino, Python.

Används LDR (Light beroende motstånd) för att ändra motståndet i kretsen som kan användas för att styra beteendet hos olika komponenter.I detta projekt använder jag LED och högtalare som utdata komponenterna som upptäcker ljusstyrkan i rummet och var...

Kodgenerator för anpassade Android/Arduino menyer att slå Arduino utgångar på och av. Android/Arduino för nybörjare. Absolut ingen programmering krävs

Uppdatering: användare frågade för undermeny support. pfodApp alltid stött sub-menyerna men jag har lagt undermenyer till pfodDesigner. Den instructable Design A Custom menysystemet visar hur du använder pfodDesigner för att bygga en meny med underme...

Weed trimmer motor ersättas med borstlösa RC lastbil motor och använder en Arduino kontroll ombord

I år har jag använt min trimmer med uppgraderade LiPo batterier, ungefär som de som används i en RC-bil. LiPo batterier har fungerat bra och som mycket mer trimmern Använd tid på ganska lite mindre vikt. Problemet var motorn slutligen gav ut häromdag...

Vakta hunden och Mailman Scenario med Arduino

Syftet med detta projekt är att programmera två robotar att samverka framgångsrikt med varandra, agerar ut en vakt hund-mailman scenario. Scenariot är att vakthund roboten skyddar dess hus (aka ljuskälla) från allt som kommer inom dess räckvidd. Om d...

DIY världen klocka och väder bot (Arduino + ESP8266)

Heji denna instuctable kommer du lära dig hur man gör världen klocka väder bot använda Arduino Mega och ESP8266 (på-läge).Funktioner:• personlig bot med LCD-skärm som mun, potentiometer som näsa och gröna lysdioderna som ögon• att välja ville stad/la...

Bil till Arduino meddelande: CAN-Bus sniffning och sänder med Arduino

Från Wikipedia är Controller Area Network (CAN) bussen en "fordonet buss standard syftar till att mikrokontroller och enheter att kommunicera med varandra inom ett fordon utan värddator." Dessa enheter kan också betecknas som elektroniska styren...