Beverly-Crusher: beetje pletten. 1-bit Arduino muziek. (3 / 5 stap)

Stap 3: Het maken van de Arduino begrijpen onze muzikale awesomeness


Hoe ik de voorbeeldgegevens opslaan op de microcontroller

Ongetwijfeld zult u herinneren uit de vorige stap dat we onze gedownsampled informatie namen en het in een nette klein pakket van de grootte van 1 byte of 8 bits verpakt.

Dit bespaart ruimte op de microcontroller, zoals u weet, maar je je afvragen kunt hoe we slaan en toegang tot deze informatie voor het afspelen later op de arduino.

Voer avr/pgmspace.h:

 #include <avr/pgmspace.h> 

Deze headerbestand laat ons toe om onze voorbeeldgegevens program rechtstreeks in het flash-geheugen op de Arduino, yay!

Het is vrij makkelijk te gebruiken alleen met een klein beetje overwegingen over hoe we de informatie terug te lezen.

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

Ik denk dat de 2 belangrijkste punten te maken over dat stuk van bovenstaande code dat we prog_uchar als het type gegevens die we opslaan, dit is belangrijk voor ons om de gegevens terug uit het geheugen te lezen wanneer we het monster spelen te kunnen gebruiken. De andere opmerkelijke ding is dat we gebruiken het sleutelwoord PROGMEM, dit is gebaseerd op het headerbestand dat ik genoemd avr/pgmspace.h en dit de compiler waar vertelt u deze array van gegevens wilt bewaren.

prog_uchar vertelt de compiler dat we zijn het opslaan van gegevens van het type unsigned char.

Een char is gewoon 1 byte, zodat het een waarde van 0 tot 255, 8 bits kan worden opgeslagen.

Wij geven niet ondertekend omdat we alleen positieve getallen tussen 0 en hoger opslaat. Dit is essentieel omdat we zijn niet echt opslag van getallen, zoals u zich herinnert wellicht, we zijn eigenlijk 8 geluidsvoorbeelden binnenkant van deze waarde op te slaan, dit eindigt wordt geconverteerd naar een numerieke waarde en hebben we het kunt bewegen alsof het is een getal, maar de realiteit is het niet helemaal wat het lijkt, maar de compiler niet weet of de zorg over deze configuratie. Als we een ondertekende opslagmethode gebruikten zouden we in een juiste puinhoop.

Als u behoefte heeft aan meer te weten over ondertekend, niet-ondertekende en two's dan dit wikiartikel aanvullen moet worden een interessante lezen voor u. http://en.wikipedia.org/wiki/Two's_complement

Aanwijzer rekenkundige is wayyy makkelijker dan het klinkt

Voor de Arduino terug onze om informatie te lezen in de sectie PROGMEM van het geheugen zullen we nodig gebruik van de functie-pgm_read_byte_near(); Het is zeer makkelijk te gebruiken en het enige dat het bemoeilijkt is dat het moet u gebruikmaken van de rekenkunde van de aanwijzer om aan te geven welke byte van geheugen... Als volgt:

 pgm_read_byte_near(onebitraw + which_one); 

In dit voorbeeld die ik lay-out van boven ziet u 'onebitraw', die ik benutten zal om de opslag van onze audio-samples express. Nu u wellicht bekend met het gebruik van de array indices zoals variabele [index] en dit is niet anders, behalve wij vervangen door de [index] + index in plaats daarvan... Zinvol? De reden is dat we onze audio gegevens opgeslagen als een blok van bytes, na elkaar, zodat we weten dat elk gewoon een meerdere langs de voorafgaand aan het.

Zie je wel? Heel eenvoudig!

Gerelateerde Artikelen

8-bit Arduino Valentijnsdag hart

8-bit Arduino Valentijnsdag hart

Toon uw 8-bits liefde deze Aftelkalender voor Valentijnsdag door afdrukken en bedrading van uw eigen "8-bit Heart".Ik pakte mijn weerstanden met behulp van deze weerstand calc:http://LED.linear1.org/LED.wizIk vervolgens het resultaat gedeeld doo
Arduino - muziek

Arduino - muziek

In deze video we zullen kijken hoe je de arduino om muziek te spelen.  Deze video zal ook een prelude in hoe maak je het zelfde ding met behulp van een eenvoudig pic-microcontroller.Arduino voorbeeld Code:http://Arduino.CC/en/tutorial/Tone
Accordeon Master - een python/arduino muziek synthesizer

Accordeon Master - een python/arduino muziek synthesizer

Dit project is gemaakt door een team van drie studenten van de Universiteit van Pennsylvania in MHacks 2014 Detroit (een weekend Hackathon). Het doel van dit project is het creëren van een muziek-synthesizer die tonen op basis van gebaren van de gebr
Arduino muziek starter

Arduino muziek starter

De Arduino is een van de handigste microcontrollers. Voor iets zosimpel, het kan doen een verbazingwekkende hoeveelheid projecten. Een dergelijk project dat me boeide was het digitale melodie project. Hebt u een de de Arduinos waar de Atmel chip kan
Arduino spelen (micro) muziek zonder schild

Arduino spelen (micro) muziek zonder schild

Micromusic, 8 bit muziek, arduino muziek!Stap 1: overVoor een project van een collectieve kunst maakte ik een muziek-spelen met Arduino. Muziek begint met ultrasone sensor.Stap 2: CodeDe code voor de muziek die u met de hand schrijven, spelen door oo
Arduino N beetje tegen

Arduino N beetje tegen

Hier is een n beetje teller-code voor arduino... Zijn heel makkelijk te gebruiken en u kunt aanpassen als u wilt maken van een alternatieve telling manier (graaf-up, count-down...). U kunt het aantal bits en het max aantal te tellen.Stap 1: Download
Afspelen van muziek met Arduino, de gemakkelijke manier

Afspelen van muziek met Arduino, de gemakkelijke manier

Er zijn al manieren om te verdienen een Arduino muziek afspelen met een zoemer, en ze werken prima. Echter u moet schrijven van elke song of geluidseffect in C en de fijnafstelling veel tijd kan duren.Dus als u veel muziek voor een project maken, zeg
Arduino Toon muziek

Arduino Toon muziek

Dit is een Arduino project dat de inheemse Toon het genereren van vermogen van de Arduino gebruikt om muziek te maken. U kunt de schets geboden om te beginnen met het componeren van je eigen! Het spelen van 'Happy Birthday' voor een vriend maken. U z
Tacuino: een goedkope, Modulair, Arduino-compatibele onderwijsplatform

Tacuino: een goedkope, Modulair, Arduino-compatibele onderwijsplatform

Voor mijn klassen van soft-circuit, hebben wij een voorgeprogrammeerde Attiny85 circuit () of de duurdere Arduino-compatibele Lilypad USBgebruikt. Ik wilde iets tussen die twee uitersten die zouden zijn:Gemakkelijk op te bouwen door beginnersLage kos
Lo-fi Arduino Guitar Pedal

Lo-fi Arduino Guitar Pedal

beetje pletten, stem op vermindering, rare geluiden: DIY 10-bits effecten/gitaar pedaal met een Arduino voor lo-fi DSP.Bekijk de demo video op Vimeo.Stap 1: materialenHulpmiddelenArduino (Diecimila, of met auto-reset)SoldeerboutHete lijmpistoolWire c
Arduino-aangedreven A-10 stok grip externe w/Emergency Party Button!

Arduino-aangedreven A-10 stok grip externe w/Emergency Party Button!

ik Plama2002 de "Emergency Party Button" bouwen een tijdje terug kwam en wilde iets gelijkaardig voor mijn bar. Ik had ook een oude USAF B-8 stok greep uit een A-10A die ik in mijn vorige leven opgepikt. Ik dacht dat in plaats van gewoon een ges
Arduino Simon Says

Arduino Simon Says

In dit Instructable ik zal je laten zien hoe samen te stellen een zeer eenvoudige Simon zegt spel met behulp van een Arduino Micro-Controller. Ik begon dit project terug in 2010 en nog niet keurbende op opwaarts weer sinds. Er is veel veranderd in de
Aangepaste melodieën spelen op Arduino

Aangepaste melodieën spelen op Arduino

Ik was knutselen met mijn Alarm Clock / Timer schild, en ik besloten om het maken van een aangepaste alarm melody voor het te spelen. Ik was in staat om het uitwerken van deze methode van het lezen van bladmuziek en maken van Arduino code en ik denk
Arduino programmeerbare constante huidige macht weerstand Dummy Load

Arduino programmeerbare constante huidige macht weerstand Dummy Load

Blij te zien dat u bent aangekomen op deze pagina om te leren hoe te bouwen van een programmeerbare constante gelijkstroom dummy load. Deze belasting kan je te trekken een huidige set uit elke bron. Deze belasting kan ook worden ingesteld op een cons