Arduino Punk Console. Idea

Documentos relacionados
LED INTERMITENTE CIRCUITO ELÉCTRICO MATERIALES PROGRAMA LED DOS CONECTORES CABLE USB ROBÓTICA. Puerto 8 ( salida al led rojo ) ARDUINO UNO 220 W GND

Clase 2: Programación

2. Programación en Arduino

Taller Introducción a la Ingeniería Eléctrica Microcontrolador Arduino y Comunicaciones

Introducción a Arduino

Introducción a Arduino

Tutorial: Uso de Driver L298N para motores DC con Arduino

ENTRADAS Y SALIDAS DIGITALES USO DE VARIABLES Y TEMPORIZADORES

Empieza con // y termina con la siguiente línea de código. Son ignorados por el programa y no ocupan espacio en memoria.

EL SENSOR DE SONIDO KY-038 (VERSION )

Taller de Introducción a la Ingeniería Eléctrica Instituto de Ingeniería Eléctrica - Facultad de Ingeniería Universidad de la Republica

PRESENTA INTRODUCCIÓN A ARDUINO

CONSTRUCCION DE TIMER PARA VUELO CIRCULAR CON MOTOR ELECTRICO

La plataforma Arduino

Control programado con ARDUINO TECNOLOGÍA

Control programado con ARDUINO TECNOLOGÍA IES BELLAVISTA

CYBERTECH 2018 TALLER 03: MOTORES Y POTENCIA

Clase 4: Motores. Conviértete en un Joven Inventor PENTA UC

Puente H: cambio de giro y velocidad de motores DC.

ARPA LÁSER. Isabel Rodriguez Irene Garnica Fernández Marta Gutiérrez de Agüera 4º ESO

Conceptos básicos de Arduino:

Entradas Analógicas.

Instalación y entorno de programación

USANDO PULSADORES CUADERNILLO RESUMEN. COMPONENTES ELECTRÓNICOS EN ARDUINO

ARPA LÁSER GRUPO 7 MIEMBROS: Paula Forero Pastor José Ignacio Pérez López

Sesión 12: Practica 3: Creación de prototipo básico de Arduino.

CURSO: ROBÓTICA. CONECTANDO CON EL MUNDO FÍSICO. ÍÑIGO MARTÍN MIMBELA.

MANUAL DE USUARIO Arduino Relay Shield MCI-MA-0064 REV. 1.0

Bach. Pablo Sanabria Campos. Programa de Tecnologías Educativas Avanzadas

Dpto. Tecnología Colegio Colón

CONTROL DE UN SERVOMOTOR

OBJETIVOS QUÉ VAMOS A REALIZAR? CONOCIMIENTOS PREVIOS

Introducción a Arduino

1. Conocimientos previos.

Actuadores eléctricos - Motores

Control programado con ARDUINO TECNOLOGÍA

4 Dispositivos de E/S

Práctica 3. Entradas/Salidas Digitales con Arduino

Programar posiciones en un Micro Servo Tower Pro SG90 9G

Dirección Académica MANUAL DE PRÁCTICAS PRÁCTICA NO 7. CONVERTIDORES A/D Y D/A.

4.2 Práctica 1: encendiendo y apagando varios leds

Programación de Arduino

CONCEPTOS BÁSICOS DE MICRO CONTROLADORES: CONOCIENDO A ARDUINO

El Microcontrolador Arduino

GUIA DE EJERCICIOS Nº 3 INSTRUMENTACIÓN AVANZADA

APRENDE ARDUINO FACILMENTE CON MIRPAS.COM.

La ventana de mblock se compone de 5 partes principalmente:

ARDUINO El proyecto Arduino: Recordando - Pines de entrada - Pines de salida - Microcontrolador - Conexión USB - IDE de arduino

PRACTICAS CON ARDUINO

Escuela Secundaria Técnica 47 Juan de Dios Bátiz

CÓDIGO FUENTE C_ARDUINO

DESCRIPCIÓN DEL LENGUAJE DE PROGRAMACIÓN P-0

Qué es y por qué usarlo

PROPUESTA ARDUINO por José Manuel Aranga Salazar

Práctica 4. Entradas/Salidas Analógicas con Arduino

2.- Cargar el código correspondiente a cada Arduino para su funcionamiento como Master o Esclavo.

Motor Paso a Paso Stepper Unipolar

Programación de dispositivos Arduino Asignatura Sistemas Digitales!

Lectura de pines analógicos

Programa del curso de Arduino

Clase 3: Sensores I. Conviértete en un Joven Inventor PENTA UC

Tutorial Arduino con Fotoresistencia LDR

Control de movimientos y rutinas para Mini Brazo Robótico por Bluetooth. (Compatible solo con dispositivos Android)

Motor Paso a Paso Stepper Unipolar

PROYECTO DE ELECTRÓNICA

CURSO: ROBÓTICA. CONECTANDO CON EL MUNDO FÍSICO

INTRODUCCIÓN A LA PROGRAMACIÓN ENGINEERING KICKSTART

Encender un LED utilizando un pulsador (Ref libro 1 pg 82 pero como y pg 132 como 1.2.3)

CURSO: ROBÓTICA. CONECTANDO CON EL MUNDO FÍSICO

Midi y Audio Digital. Qué es el MIDI?

Dynabot II es un kit diseñado para el aprendizaje de robótica móvil basado en arduino. Para qué sirve?

Taller de electrónica creativa. Cocinando con Arduino

CALENTADOR DE AGUA SOLAR

Ardunio. Test Placa. LunikSoft. Fco. Javier Andrade.

OBJETIVOS MATERIAL REQUERIDO.

Control de LCD y sensor de temperatura

OBJETIVOS QUÉ VAMOS A REALIZAR? CONOCIMIENTOS PREVIOS

Juguete para niños/bebés sordos.

Aprende a construir y programar un robot interactivo utilizando los componentes del Maker Control Kit y el Maker Kit 3.

Control de brazo robótico por Bluetooth (Compatible solo con dispositivos Android)

Comunicación Serial con Arduino (Por Antony García González - Enero 27, 2013 )

PRÁCTICA NÚMERO 6: COMUNICACIÓN ENTRE DOS ARDUINOS CON RF

PRÁCTICA NÚMERO 5: COMUNICACIÓN ENTRE DOS ARDUINOS CON RF

Programación con Arduino. Jornadas de Robótica 2016 Curso de Impresión 3D y Hardware libre

Tecnología robótica. Tema 7.- Tarjeta controladora Arduino

LABORATORIO DE ELECTRÓNICA DE POTENCIA PRÁCTICA N 3

TPR 3ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz TEMA 5: ROBÓTICA

Iniciación al IDE de Arduino y primer ejercicio

TPR 3ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz TEMA 6: ROBÓTICA

Crear una app con MIT inventor

DFRduino Romeo, todo en un controlador (RoMeo V1.0) Por favor, lea atentamente este manual antes de encender el dispositivo.

OKY2002: Arduino Uno Genérico

Detección de luz con sensor LDR

INTRODUCCIÓN DESCRIPCIÓN... 4 Características Hardware... 4

GUIA DE EJERCICIOS Nº 3 INSTRUMENTACIÓN AVANZADA

Transcripción:

Arduino Punk Console Idea Crear un secuenciador de 8 tiempos con un generador de tonos(atari Punk Console) y un arduino que se encarga de la lógica de modificar que tono suena en cada tiempo, la duración y el tempo. Que es un secuenciador? Un secuenciador es un dispositivo electrónico físico o una aplicación informática que permite programar y reproducir eventos musicales de forma secuencial mediante una interfaz de control físico o lógico conectado a uno o más instrumentos musicales electrónicos. La interfaz de control más extendido es el estándar MIDI. Qué es un Atari Punk Console? La Consola Punk Atari (en inglés Atari Punk Console) es un simple circuito productor de ruidos hazlo tú mismo (DIY) que es relativamente barato y fácil de fabricar. Tiene dos controles, uno para la frecuencia y otro para controlar la duración. Componentes 4 Potenciómetros lineales de 100k Mono 8 Pulsadores 1 Switch 1 Salida de audio (Mono o Estéreo, depende de la salida a la que se quiera conectar) 1 Placa perforada 9 Resistencias de 10k Todo empaquetado felizmente dentro de un tupper de cocina, para un acabado profesional Sobre los controles Hay cuatro potenciómetros: uno para la frecuencia, uno para la duración, uno para el tempo y otro para el volumen. Los primeros tres son potenciómetros lineales cableados como divisores de voltaje. El que controla el volumen simplemente maneja la intensidad del canal saliente. Los botones sirven para guardar la frecuencia que está marcada en el potenciómetro en el paso correspondiente del secuenciador, por ejemplo, si tenemos el potenciómetro al mínimo y presionamos el botón 2, en el segundo paso de la secuencia, sonará la nota equivalente al potenciómetro al mínimo. El potenciómetro de la duración determina cuánto tiempo suena cada nota de la secuencia y el del tempo determina el tiempo entre cada paso.

Después de cada secuencia de 8 tonos, el secuenciador vuelve a comenzar repitiéndose indefinidamente hasta que se cambie algún tono o se apague mediante el switch. Esquema de conexiones Código /*======================================================= Arduino Punk Console =======================================================*/ // Mapeo de los pins para INPUT y OUTPUT #define AnalogInTempo 0 #define AnalogInDuration 1 #define AnalogInFrequency 2

#define DigitalInSwitch0 2 #define DigitalInSwitch1 3 #define DigitalInSwitch2 4 #define DigitalInSwitch3 5 #define DigitalInSwitch4 6 #define DigitalInSwitch5 7 #define DigitalInSwitch6 8 #define DigitalInSwitch7 9 #define DigitalInStartStop 10 #define DigitalOutSignal 11 // Inicializacion del array de frecuencias int steps[] = {100,120,140,160,180,200,220,240; // Setup inicial int duration = 50; int pitchval = 1; int fplaymode = true; int lastpushedstep = -1; // Inicializacion del tempo int tempo = 900; void setup() { // Seteo de los pines pinmode (DigitalInSwitch0, INPUT); pinmode (DigitalInSwitch1, INPUT); pinmode (DigitalInSwitch2, INPUT); pinmode (DigitalInSwitch3, INPUT); pinmode (DigitalInSwitch4, INPUT); pinmode (DigitalInSwitch5, INPUT); pinmode (DigitalInSwitch6, INPUT); pinmode (DigitalInSwitch7, INPUT); pinmode (DigitalInStartStop, INPUT); pinmode (DigitalOutSignal, OUTPUT); Serial.begin(9600); void loop() { // Secuencia principal de loopeo for (int i=0; i<8; i++) { // booleano para la reproduccion del sonido fplaymode = digitalread (DigitalInStartStop);

// lectura de botones presionados readswitches(); // lectura de potenciometros (duracion y tempo) readpots(); // Si esta encedido if (fplaymode) { // freqout va a emitir la frecuencia de sonido almacenada en la posicion i freqout (steps[i], duration); // Pausa entre loops delay (tempo); // Lee los valores actuales de los potenciometros de Duracion y de Tempo void readpots () { tempo = (analogread (AnalogInTempo) * 1.9); duration = (analogread (AnalogInDuration)); // Lee el valor actual de los switches (HIGH o LOW). // Si alguno esta presionado, va a reemplazar en la posicion que le corresponde // por el valor que lee del potenciometro de frecuencia void readswitches() { if (digitalread (DigitalInSwitch0) == HIGH) { steps[0] = analogread(analoginfrequency); lastpushedstep = 1; else if (digitalread (DigitalInSwitch1) == HIGH) { steps[1] = analogread(analoginfrequency); lastpushedstep = 2; else if (digitalread (DigitalInSwitch2) == HIGH) { steps[2] = analogread(analoginfrequency); lastpushedstep = 3; else if (digitalread (DigitalInSwitch3) == HIGH) { steps[3] = analogread(analoginfrequency); lastpushedstep = 4; else if (digitalread (DigitalInSwitch4) == HIGH) { steps[4] = analogread(analoginfrequency); lastpushedstep = 5;

else if (digitalread (DigitalInSwitch5) == HIGH) { steps[5] = analogread(analoginfrequency); lastpushedstep = 6; else if (digitalread (DigitalInSwitch6) == HIGH) { steps[6] = analogread(analoginfrequency); lastpushedstep = 7; else if (digitalread (DigitalInSwitch7) == HIGH) { steps[7] = analogread(analoginfrequency); lastpushedstep = 8; void freqout(int freq, int t) { int hperiod; long cycles, i; hperiod = (500000 / ((freq - 7) * pitchval)); cycles = ((long)freq * (long)t) / 1000; / for (i=0; i<= cycles; i++) { digitalwrite(digitaloutsignal, HIGH); delaymicroseconds(hperiod); digitalwrite(digitaloutsignal, LOW); delaymicroseconds(hperiod - 1); Proyecto de referencia Este es el proyecto en el que nos basamos para construir la nuestra: http://www.beavisaudio.com/projects/digital/arduinopunkconsole/ Dificultades Coordinarnos tanto en tiempo como en espacio Discernir entre errores de código y errores de hardware, saber cuando está fallando cada cosa Controlar tensiones para evitar quemar componentes Nuestros pulsadores funcionaban a la inversa que los del ejemplo, tuvimos que hacer cambios en el código (Invertir booleanos) para que funcionaran con la misma lógica

Fotos Presentando los botones y los potenciómetros al tupper. Nunca más se iban a separar. Pero, esto lo probaron antes de soldar?. Gracias Jose Luis :)

Siempre tomar medidas de seguridad. Evite accidentes.

Y finalmente, el APC concebido....