Beverly-kross: lite krossning. 1 bit Arduino musik. (3 / 5 steg)

Steg 3: Att göra Arduino förstå vår musikaliska awesomeness



Hur jag förvara exempeldata på mikrokontroller

Som ni minns säkert från föregående steg att vi tog vår nedsamplas information och packat det in ett nätt litet paket av storleken på 1 byte eller 8 bitar.

Detta sparar utrymme på mikrokontroller som ni vet men du kanske undrar hur vi lagra det och få tillgång till denna information för uppspelning senare på arduino.

Ange avr/pgmspace.h:

#include < avr/pgmspace.h >

Denna header-fil tillåter oss att programmera våra exempeldata direkt i flashminnet på Arduino, yay!

Det är ganska lätt att använda bara med en liten bit av övervägande på hur vi läser uppgifter tillbaka.

prog_uchar onebitraw [PROGMEM] = {0XFF, 0XFF, 0XEF, 0XFF,...};

Jag antar att de 2 viktigaste punkterna att göra om denna bit av koden ovan är att vi använder prog_uchar som typ av data vi lagrar, detta är viktigt för oss att kunna läsa data tillbaka slut på minne när vi spelar provet. En annan märklig sak är att vi använder nyckelordet PROGMEM, detta bygger på sidhuvudfilen att jag nämnde avr/pgmspace.h och detta säger kompilatorn var att lagra denna samling av data.

prog_uchar berättar kompilatorn att vi lagrar data av typen unsigned char.

En röding är bara 1 byte, så den kan lagra ett värde mellan 0 och till 255, 8 bitar.

Vi anger osignerade eftersom vi lagrar endast positiva tal från 0 och uppåt. Detta är viktigt eftersom vi inte är riktigt lagra nummer som ni kanske minns vi faktiskt lagrar 8 ljudexempel i detta värde, detta slutar att omvandlas till ett numeriskt värde och vi kan flytta runt som om det är flera men verkligheten är inte riktigt vad det verkar men kompilatorn inte vet eller bryr sig om denna konfiguration. Om vi använder en signerad lagringsmetod skulle vi vara i rätt oreda.

Om du sugen på att veta mer om signerad, osignerade och två kompletterar sedan denna wiki artikel bör vara en intressant läsa för dig. http://en.wikipedia.org/wiki/Two's_complement

Pekare aritmetik är wayyy lättare än det låter

För Arduino att läsa tillbaka vår information från avsnittet PROGMEM minne kommer vi att behöva använda den funktion pgm_read_byte_near(); Det är mycket lätt att använda och det enda som försvårar det är att den kräver dig att använda pekare aritmetik som byte minne du vill ange... Som så:

pgm_read_byte_near (onebitraw + which_one);

I detta exempel jag lägga ut ovan ser du "onebitraw" som jag använder för att uttrycka lagring av våra ljud prover. Nu kan du vara förtrogen med använda array index som variabel [index] och detta är inte annorlunda förutom vi ersätta [index] med + index istället... Vettigt? Anledningen är att vi lagras våra ljuddata som ett byte, en efter en, så vi vet att var och en är helt enkelt en mer längs än den tidigare till den.

Se? Mycket enkel!

Se Steg
Relaterade Ämnen

Låt oss göra Arduino musik

HejSimpleCircuit här med ett enkelt musikaliska projekt. Detta Instructable är en förlängning av flera tidigare Instructables och tutorials, så ett tips på hatten till "Arduino-musik" och "Demotime – Arduino Music" av Misperry, "H...

Dragspel Master - en python/arduino musik synt

Detta projekt skapades av ett team av tre studenter från University of Pennsylvania på MHacks 2014 Detroit (en helg Hackathon). Målet med detta projekt är att skapa en musik-synt som genererar signaler baserat på användarens gester. Så om du någonsin...

Arduino musik starter

Arduino är en av de snyggaste microcontrollers. För nåt såenkelt, det kan göra en otrolig mängd projekt. Ett sådant projekt som intresserade mig var Digital melodi projektet. Om du har en den Arduinos där Atmel chip kan tas bort, kan du göra ditt ege...

Lite bättre Bit innehavaren

När du använder din borrmaskin som en skruvmejsel, behöver du ofta ändra bitar. Inte bara skruvarna finns i olika storlekar finns det även olika stilar, raka, torget, phillips, stjärna... Så du måste bitar handy, lätt att se, lätt att sortera och lät...

Arduino - musik

i den här videon kommer vi att titta på hur man får arduino att spela musik. Denna video kommer också att ett förspel till hur man gör samma sak med hjälp av en enkel pic mikrokontroller.Arduino exempelkod:http://Arduino.cc/en/tutorial/Tone...

System för anmälan av doft-imental

Jag måste börja med att berätta att detta är min första elektronik projekt. Jag fann det utmanande, men en riktigt rolig inlärning erfarenhet. Med hjälp av hur lätt littleBits är för nybörjare att använda och vissa fantastiska medarbetare, jag är sto...

Shapeoko 2, Arduino UNO R3, grbl 9g, 8 bit lasergravyr diod foto

Mig och min son utvecklat uppfann/ett nytt koncept "On-The flyga" 8-bitars laserdiod gravyr bilder över två år sedan. Med detta begrepp släcks Laser-diod aldrig genom hela bilden gravyr process. Det varierar bara kraften upp och ner för att prod...

Lo-fi Arduino gitarr Pedal

lite krossning, Betygsätt reducerande, konstiga ljud: DIY 10-bitars effekter/gitarr pedal med en Arduino för lo-fi DSP.Kolla in demovideo på Vimeo.Steg 1: materialVerktygArduino (Diecimila, eller med auto-reset)LödkolvLimpistolAvbitareDrill press ell...

Arduino bot Android fjärrkontroll

Hallå där,I detta instructable jag vill undersöka sambandet mellan Arduino och Android. Båda är öppna, lätt-till-program miljö (Ja, Android inte så lätt, men ganska), och samspelet mellan dem låter intressant mänskliga-till-anordning interaktion.Måle...

Arduino stridsvagn!

Låt oss göra en arduino stridsvagn som du kan spela med dina vänner och lära sig lite mer av programmering, arduino och elektronik på vägen.Hoppas att du gillar detta instructable!Steg 1: Saker du behöver!1) arduino uno (och en mega också, diskuteras...

Arduino-programmerbar LED Infinity Mirror

Är du trött på att titta på rummet element som förefaller ha ändliga djup?Kanske bör du överväga att bygga ditt eget Arduino-programmerbar LED Infinity spegel!Denna synvilla är ett blickfång och erbjuder massor av utrymme för anpassning och cool prog...

Musik rekord Mastering – den slutliga blandningen

Skapa en musik-inspelning för en CD, video, borde ladda ner eller radiosände lek alltid avsluta med en något gäckande steg kallas "Mastering". Här, jag ska förklara vad det egentligen innebär och ge ett praktiskt exempel på en mycket enkel maste...

Hacking en Keychain digitalkamera för Arduino kontroll

fotografering alternativ för Arduino är få och långt mellan. Webbkameror är praktiska för applikationer som kite fotografering eller offentliga fotografering, om du känner för att köpa en 200 fot USB-kabel. Och aktuella tekniker för fristående Arduin...

Arduino Simon Says

i detta Instructable jag ska visa dig hur man sätter ihop en mycket enkel Simon säger spelet med en Arduino mikro-Controller. Jag först startade detta projekt 2010 och har inte plockat upp igen sedan. Mycket har förändrats i världen av Arduino ända s...

Arduino vägg att undvika robot

Detta instructable förutsätter mycket lite med avseende på tidigare kunskap.Om det finns några områden som du känner skulle kunna förbättras eller förtydligas, gärna meddelande eller en kommentar och jag kommer att uppdatera.Här finns all information...

Binär metriska klocka; lätt Arduino projekt.

Detta är en mycket udda typ av klocka, som kan lätt göras med enkla leveranser.Till att börja förklaringen, vill jag säga att jag alltid har velat ha tid att vara metriska. klockan 5 skulle vara mitt på dagen, 7:5 skulle vara tre fjärdedelar (6:00 pm...

Arduino innehavaren

goda nyheter, alla!Jag har precis börjat med arduino och rätt från första början kände jag att jag behövde något slags bas till pålagt arduino. Jag läste en artikel från ladyada (http://www.ladyada.net/images/arduino/bumperplace.jpg) och hon var med...

Arduino IR RC bil

Hej. Trots många andra RC bil Instructables, jag ville lägga till mina egna eftersom jag anser att det är byggt på ett anständigt sätt och kan hjälpa andra i byggnaden sin egen. Så låt oss börja med de delar du behöver i min version.Steg 1: Steg 1: d...

Arduino Cap-känsla luften Piano

jag har nyligen fått min leverans av 10 buzzers beställde jag ungefär en månad sedan, så när jag fick dem jag var ivrig att göra något roligt med dem, så jag tittade runt lite och sökte efter vad man ska göra med dem, och genom att spendera lite tid...