Trituradora de Beverly: bit de trituración. 1-bit music de Arduino. (3 / 5 paso)

Paso 3: Hacer el Arduino comprender nuestra genialidad musical

Cómo almacenar los datos de ejemplo en el microcontrolador

Sin duda recordará usted del paso anterior que tomamos nuestra información disminuirá y había embalado en un paquete pequeño del tamaño de 1 byte u 8 bits.

Esto ahorra espacio en el microcontrolador como sabe usted, pero usted se estará preguntando cómo almacenarlo y acceder a esta información para su reproducción en el arduino.

Entrar en avr/pgmspace.h:

 #include <avr/pgmspace.h> 

Este archivo de encabezado nos permite programar nuestros datos de muestra directamente en la memoria flash en el Arduino, yay!

Es muy fácil de usar solo con un poquito de consideración sobre cómo leemos la información nuevamente.

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

Supongo que los 2 puntos claves para hacer sobre ese fragmento de código anterior que utilizar prog_uchar como el tipo de datos que estamos almacenando, esto es importante para nosotros para poder leer los datos de la memoria cuando jugamos la muestra. Lo notable es que utilizamos la palabra clave PROGMEM, esto se basa en el archivo de encabezado que mencioné avr/pgmspace.h y esto indica al compilador donde almacenar esta matriz de datos.

prog_uchar indica al compilador que estamos almacenando los datos del tipo unsigned char.

Un char es simplemente 1 byte, por lo que puede almacenar un valor de 0 a 255, 8 bits.

Que especificar unsigned porque estamos almacenando sólo números positivos desde 0 y arriba. Esto es fundamental porque nosotros no estamos realmente almacenar números como recordarán realmente estamos almacenando 8 muestras de sonido dentro de este valor, esto termina siendo convertido a un valor numérico y podemos moverlo como si es un numero pero la realidad es que no es bastante lo que parece pero el compilador no sabe ni se preocupan por esta configuración. Si estábamos usando un método de almacenamiento de información firmada estaríamos en un caos de derecha.

Si te apetece saber más sobre firmadas, sin firmar y dos entonces complementan este artículo de la wiki debe una interesante leer para usted. http://en.wikipedia.org/wiki/Two's_complement

Aritmética de puntero es wayyy más fácil de lo que suena

Para que la Arduino a leer nuevamente nuestra información en la sección PROGMEM de memoria nos se que necesitan utilizar la función pgm_read_byte_near(); Es muy fácil de usar y lo único que lo complica es que requiere utilizar aritmética de puntero para especificar qué byte de memoria... Como tal:

 pgm_read_byte_near(onebitraw + which_one); 

En el ejemplo se que extienda por encima ves 'onebitraw' que voy a usar para expresar el almacenamiento de nuestras muestras de audio. Ahora usted puede estar familiarizado con el uso de índices de array como variable [índice] y esto no es diferente salvo que sustituirla [índice] + índice en su lugar... ¿Tiene sentido? La razón es que almacenan nuestros datos de audio como un bloque de bytes, uno tras otro, así que sabemos que cada uno es simplemente uno más a lo largo de una anterior a ella.

¿Ver? ¡ Muy simple!

Artículos Relacionados

LittleBits 8 bits Jukebox

LittleBits 8 bits Jukebox

La Jukebox de 8 bits es una caja de música chiptune con nuevo módulo de Arduino de littleBits. El módulo está programado con 4 canciones diferentes que la reproducción con un sonido retro, con un estilo de juego de vídeo de 8 bits. Para seleccionar q
Cómo utilizar equipo registra - Lección 1 - Bit básico, Masking, operaciones de lógica

Cómo utilizar equipo registra - Lección 1 - Bit básico, Masking, operaciones de lógica

computadoras son difíciles de usar pero vale la pena aprender a usar. Parecen números, pero actúan como una serie de casillas de verificación. Cada bit puede tener una función diferente. Poniendo un 1 o un cheque se encienda algo. Cambiar el 1 a 0 a
CPU 8 BITS sobre ARDUINO (SDK-8 BITS/8085AH)

CPU 8 BITS sobre ARDUINO (SDK-8 BITS/8085AH)

Durante mi tiempo de dictar clases en la Universidad Central de Venezuela, siempre ocurría el problema de realizar el proyecto de microprocesadores. muchos materiales, el pecado poco CLO2, backelitas etc.. Me dispuse a realizar un microsistema bonita
Pedal de guitarra de Arduino lo-fi

Pedal de guitarra de Arduino lo-fi

poco de trituración, tasa de reducción, extraños ruidos: pedal de efectos, guitarra DIY 10-bit con un Arduino para DSP de lo-fi.¡ Mira el video de demo on Vimeo.Paso 1: materialesHerramientasArduino (Diecimila, o con auto-reset)Soldadura de hierroPis
ESP8266 ESP-12E NodeMCU v1.0 con Arduino IDE en registrador de temperatura inalámbrico de programación

ESP8266 ESP-12E NodeMCU v1.0 con Arduino IDE en registrador de temperatura inalámbrico de programación

A finales de 2014 y 2015 temprano, su vino realmente a través deeste ingenioso ESP8266 de Chip WiFi (ESP-01) y a la batalla entre la documentación inconsistente de diversas fuentes. Para el momento del estímulo, él documentó sus frustraciones (result
HackerBoxes 0007: Paisajes sonoros digitales

HackerBoxes 0007: Paisajes sonoros digitales

Sonoro! Este mes, HackerBox los Hackers explorando paisajes sonoros digitales. Música, pitidos, zumbidos, y señales de audio de todo tipo pueden generarse mediante una variedad de modernos dispositivos electrónicos. Echemos un vistazo a simple 8 bits
Otro más fácil invertido péndulo Robot

Otro más fácil invertido péndulo Robot

Se trata de una versión mejorada de mi anterior instructivo titulado "Un Simple y muy fácil invertido péndulo equilibrio Robot". Existen cuatro ventajas en esta versión.Más fácil conseguir un materialMenos materiales necesariosPrograma sencillo
Audífonos inteligentes

Audífonos inteligentes

en este instructable, vamos a construir un audífono inteligente. El objetivo es construir una energía baja, rentable audífono que tiene varias características claves, inteligentes. En primer lugar, cuenta con afinación de la funcionalidad que permite
ESP8266 Una firmado-J5 NodeBot

ESP8266 Una firmado-J5 NodeBot

El ESP8266 es un SoC habilitado para Wi-Fi disponible en muchas formas y formas.Generalmente viene con el firmware nodemcu que se ejecuta en el script lua. La mayoría de nosotros sólo flash utilizando el núcleo de arduino proporcionado por la comunid
Controlador multitouch música

Controlador multitouch música

Este proyecto es una pantalla táctil infrarroja Arduino powered / mesa de centro de interfaz que he estado usando para controlar diversas aplicaciones música y gráficos en mi ordenador. Este es un proyecto que recientemente he tenido tiempo para volv
Arduino + TFT = música Visual

Arduino + TFT = música Visual

Resumen:Audio: en este proyecto Arduino Lee una cadena de notas escritas en el formato de notación musical que hemos llamado lenguaje de música fácil. Selecciona cada nota musical (o descanso), determina su frecuencia y reproduce esa nota.Gráficos: e
Timbre de tubo de órgano sin hilos

Timbre de tubo de órgano sin hilos

este es un proyecto rápido basado en un viejo tubo de órgano tuvo la suerte de encontrar. Si no tienes uno, puedes construir una - búsqueda de instructables para fipple! Aquí está un breve vídeo.He probado usando un compresor de coche para soplar el
Efectos de la rueda de la bici WS2811 LED con Arduino

Efectos de la rueda de la bici WS2811 LED con Arduino

[TODO: insertar un video limpio o los cuadros de conducción real][Nota el sketch de Arduino funciona pero es trabajo en progreso, ver último paso enlace]Persistencia de los efectos de la visión (POV) le permite mostrar imágenes arbitrarias con pocos
Ambilight, 4 canales [Arduino Mega2560]

Ambilight, 4 canales [Arduino Mega2560]

Ambilight es una invención Primero hecha por philips, puede consultar este vídeo para obtener más informaciónCompruebe esta simulación en vivo si está interesadocon este instructivo usted podrá tener un casi el mismo para la pantalla del pc.muchos mé