Fotografía y computo Físico
mayo 25, 2012
El maestro Andrea di Castro ha publicado sus apuntes para un curso de fotografía con nuevas posibilidades expresivas proporcionadas por computo físico con Arduino, muy recomendable!
http://www.andreadicastro.com/academia/electronica/ARDUINO2html/foto.html
Arduino Overdrive
mayo 25, 2012
Recien abrí un pedal boss turbo Overdrive, la idea es utilizar los potenciómetros para modificar video,,
los potenciómetros van conectados a un arduino que cabe perfecto en el pedal,
el turbo Overdrive tiene 2 potenciomentros lineales, uno algorítmico y un switch
doble por lo que usaremos 3 entradas análogas y dos digitales, los datos del arduino
se envian via SensorBox al patch de MAXMSP que controlará los parametros del video
con el arduino adentro, hay que conectar a tierra las entradas análogas
que no se usen en arduino para que no metan ruidos en el Sensor box,
pronto la imagen del arduino Overdrive terminado
La Selva 2008
mayo 6, 2012
Limpiando la compu encontré un disco de una instalación audiovisual
sonora que hicimos hace algunos años, participé con un circuito de tarjeta
de felicitación modificado conectado a un amplificador:
para escuchar el disco completo ir a:
Prototipos tarjeta musical con Pic10F202
abril 27, 2012
Así quedó un prototipo de la tarjeta musical con Pic10F202
el circuito impreso sirve como soporte para las pilas y es el interruptor del PIC,,
y este es un probador para diferentes melodias grabadas en diferentes PIC,
la base para el pic quedo en abajo del circuito impreso, para hecerlo más solido y pequeño
Picaxe
abril 23, 2012
LLegó el cable USB/picaxe! ahora haremos pruebas para cargar una melodía en los picaxe
a ver cual suena mejorr
se consigue aquí
Sensor IR
marzo 24, 2012
Estamos empezando una nueva investigación para controlar leds rgb y que cambie
el canal encendido de acuerdo a la distancia a la que se encuentra una persona,,
el registro de distancia se esta probando con un sensor Infrarrojo Sharp de corto alcance
(que por el momento no esta disponible en sparkfun pero este sí ) ,,esperamos usar
6 sensores para tener registros más amplios,,
por el momento el programa controla tres leds por medio de tres salidas digitales
y los enciende o apaga de acuerdo a estas distancias:
led 1: de 8 a 15 cm., led2: DE 16 a 30 cm y led3: de 30 a 80 cm,,
va el código para Arduino o Wiring:
/*Titulo: rangerRGB
descripcion: registra el ranger infrarrojo y en base a niveles
de distancia enciende led rgb en rojo, verde y azul
creado: 20 marzo 2012
por: Abel Arellano
*/
//declaracion
int sensorPin = 0; //analog inut pin
const int ledPin0 = 2;
const int ledPin1 = 3;
const int ledPin2 = 4;
int sensorValue = 0; //value read fron ranger
int sensorMin = 1023; // minimum sensor value
int sensorMax = 0;
void setup() {
pinMode(ledPin0, OUTPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
Serial.begin(9600);
//Calibracion
// turn on LED to signal the start of the calibration period:
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
// calibrate during the first five seconds
while (millis() < 5000) {
sensorValue = analogRead(sensorPin);
// record the maximum sensor value
if (sensorValue > sensorMax) {
sensorMax = sensorValue;
}
// record the minimum sensor value
if (sensorValue < sensorMin) {
sensorMin = sensorValue;
}
}
// signal the end of the calibration period
digitalWrite(13, LOW);
}
void loop() {
sensorValue = analogRead(sensorPin); //lee el valor del sensor y lo guarda
//en sensorValue
//esta formula convierte la lectura a terminos lineales
if (sensorValue > 3 ) {
int range = (6787 / (sensorValue – 3)) – 4;
//range = map(range, 6, 35, 0, 100);
//ENVIA LOS VALORES OBTENIDOS A SERIAL MONITOR
Serial.print(” sensor: “);
Serial.print(sensorValue, DEC);
Serial.print(“ valor lineal: “);
Serial.println(range, DEC); // escribe el valor nrecibido por el sensor
//INTERVALOS DE MEDICION
//Intervalo 1
if (15 >= range) {
digitalWrite (ledPin0 , HIGH);
}
else {
digitalWrite (ledPin0 , LOW);
}
//Intervalo 2
if ( range > 16 && range <= 30) {
// || (o), && (y), ! (not)
digitalWrite (ledPin1 , HIGH);
}
else {
digitalWrite (ledPin1 , LOW);
}
//Intervalo 3
if (range >= 31) {
digitalWrite (ledPin2 , HIGH);
}
else {
digitalWrite (ledPin2 , LOW);
}
delay(200); // espera 200 ms
}
}
Tarjeta musical con pic10F202
marzo 21, 2012
Una forma más barata para hacer una tarjeta musical es con un Pic10f202, en una página de Instructables.com viene muy bien explicado el proceso, aquí en d.f. no conseguí el pic 10F200 por lo que lo reemplaze con un 10F202, el cargador para pic se consigue más barato aquí, que en las tiendas de rep. del salvador,,
el pic se conecta al puerto ICSP del cargador con solo 5 pines,
el programa se puede descargar de la página de Instructables pero cuando lo descargué se bajó con extensión .tmp , le cambié la extensión a .asm , después lo compilé con MPLAB IDE y lo cargué con el software del MasterProg (ambos programas estan incluidos en un cd que viene con el cargador de PIC),,
en esta foto se ve el circuito que toca la melodía grabada en el pic; en el tutorial para el pic 10F200 dice que el piezo se conecta a los pines 3 y 8 , para el pic10F202 el pic debe ir conectado a los pines 3 y 5, aquí estoy tomando la alimentación 3.3v de un Arduino, falta conectarle el interruptor de la tarjeta y pilas,,
IR
febrero 22, 2012
Estamos trabajando en la decodificación de señales de controles remotos
para enviar señales con microcontroladores en la página de ladyada está la referencia para hecerlo con Arduino,
Picaxe tiene pines exclusivos para emitir o recibir señales infrarrojas,,
Tarjeta musical Arduino Mini
febrero 20, 2012
Tarjeta musical con Arduino
febrero 1, 2012
Una forma de modificar la melodía que viene en las tarjetas musicales (las que suenan al abrirlas) es por medio de un arduino mini pues tiene el tamaño perfecto para colocarse dentro de la tarjeta,, aún me falta investigar sobre una fuente de voltaje tan pequeña para colocar dentro sin que se note,,
esta forma de modificación de la melodía de la tarjeta tiene el incoveniente de que una arduino mini es cara en relación a lo que cuesta una tarjeta musical, pero como un prototipo funciona muy bien ademas de que se puede cambiar la melodía cuantas veces se necesite,,
En la foto se ve la arduino mini con un piezolectrico conectado que funciona como bocina, le cargué el programa con una arduino duemilanove sin el Atmega, según la guía de arduino mini
este es el programa para la tarjeta que toca “La cucaracha” cuando se abre:
/*
Titulo:Rola para tarjeta de felicitacion
descripcion: programa para emular tarjetas de
felicitacion, la rola se puede modificar, y se activa
por medio del interruptor de la tarjeta
creado: 30 ene 2012
por: Abel Arellano
modificado para version 2: 30 ene 2012
*/
const int inPin = 2; // pin that the sensor is attached to
#include “pitches.h”
void setup() {
// initialize pin as an INput:
pinMode(inPin, INPUT);
Serial.begin(9600);
}
void loop() {
if (digitalRead(inPin) == HIGH) {
tocaRola();
}
// en caso de que repita la rola espera 200 ms
delay(200);
}
// notas de la rola:
//es posible modificar la rola,, las notas estan en notacion inglesa
int melody[] = {
NOTE_D5, NOTE_D5, NOTE_D5, NOTE_G5, NOTE_B5, 0,
NOTE_D5, NOTE_D5, NOTE_D5, NOTE_G5, NOTE_B5, 0,
NOTE_G5, NOTE_G5, NOTE_FS4, NOTE_FS4, NOTE_E5, NOTE_E5, NOTE_D5, 0,
NOTE_D5, NOTE_D5, NOTE_D5, NOTE_FS4, NOTE_A5, 0,
NOTE_D5, NOTE_D5, NOTE_D5, NOTE_FS4, NOTE_A5, 0,
NOTE_D5, NOTE_E5, NOTE_D5, NOTE_CS5, NOTE_B5, NOTE_A5, NOTE_G5, 0
};
//la duracion de cada nota separada por una coma
// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
8, 8, 8, 8, 4, 4, 8 ,8 ,8 ,8, 4, 4, 8, 8, 8, 8, 8, 8, 8,4,
8,8,8,8,4,4, 8,8,8,8,4,4, 8,8,8,8,8,8,8};
void tocaRola() {
// iterate over the notes of the melody:
for (int thisNote = 0; thisNote < 40; thisNote++) {
// para alargar la melodia se cambia el condicional thisNote a un numero mayor.
// to calculate the note duration, take one second
// divided by the note type.
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 1000/noteDurations[thisNote];
tone(8, melody[thisNote],noteDuration);
// to distinguish the notes, set a minimum time between them.
// the note’s duration + 30% seems to work well:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// stop the tone playing:
noTone(8);
}
}
el programa está basado en el ejemplo File > Examples > 2.Digital > toneMelody
mas informacion en la página Arduino PlayMelody,, pronto la imagen de la arduino mini colocada en la tarjeta musical,,












