MAM2019: Aplicaciones tecnológicas I

Objetivos de la clase:
El curso está organizado para nivelar a los alumnos con los conceptos y destrezas básicas para la inclusión de recursos electrónicos y digitales (microcontrolador) en proyectos creativos; específicamente de concepción artística y principalmente orientados a la sonoridad.

Metodología:
Las sesiones son mayormente de carácter práctico a partir de la exploración, a través de ejercicios guiados, de herramientas y componentes electrónicos, así como también del uso de microcontroladores compatibles con Arduino.
Al finalizar el curso, cada alumno deberá haber propuesto un proyecto realizado a partir de los conocimientos adquiridos durante las clases. Este proyecto dará lugar a una evaluación coeficiente uno.

Planificación:
Cronograma, evaluaciones y asistencia
(cada uno en una pestaña diferente).

Bitácora
Cada alumno deberá llevar una bitácora en donde anotará de forma sostenida los procesos que emerjan a partir de los contenidos del curso.
Se sugiere usar Evernote.

Materiales:
Cada alumno deberá contar con un set de materiales que deberá ser llevado a cada clase. La lista de componentes será informada oportunamente antes de cada sesión.

https://docs.google.com/spreadsheets/d/1yXjgOUAUCtcADU0gyt9BwXa3m2hB4CrxhLVPEEQIQU0/edit#gid=0

Dónde comprar los componentes y herramientas
http://www.victronics.cl/
http://www.olimex.cl/
http://www.casaroyal.cl/
— Digitel Electrónica: San Antonio 32 (subterráneo), Stgo. Centro. F: 226324511
– Barrio San Diego:
– Ibarra: Calle San Diego 928 Santiago – Santiago, Chile, F: 2 672 39 63 / 2 672 94 05
– Electrónica Orfali: San Diego 955, Santiago, F: 2 698 83 76
– AFEL: https://afel.cl

Bibliografía
Handmade Electronic Music – Nicolas Collins
Getting started in Electronics

Sitio web proyectos personales
www.etab.cl

——

C1

Tristan Perich
1bit Music: 1 bit Music
1bit Symphony: http://www.1bitsymphony.com/
Breathing Potraits: https://vimeo.com/15259734
Microtonal Wall: http://tristanperich.com/#Artwork/Microtonal_Wall
Microtonal Wall: https://vimeo.com/45225412
Interval Studies: https://vimeo.com/9218458

Peter Vogel
The Sound of Shadows website: http://vogelexhibition.weebly.com/
The Sound of Shadows video: https://vimeo.com/59829961
Página personal: http://www.petervogel-objekte.de

Christina Kubisch
https://vimeo.com/54846163

Zimoun
http://www.zimoun.net/2013-329.html
http://www.zimoun.net/2014-20.html
http://www.zimoun.net/2009-25.html

C2

Electricidad
*Leer hasta página 21 del libro Getting started in Electronics.
Electricidad Intro: Pdf
Joseph Beuys: Capri Battery
Walter de Maria: Lightning Field
Herramientas, componentes y simbología

Circuitos
primeros-circuitos-A

primeros-circuitos-Bb

Carga-y-descarga-de-un-condensador
https://www.youtube.com/watch?v=QBHfYtvcGmU&list=PLefIU1gavt25SMAUzmfX-SzsfYIxUF4OV&index=4

C3

VUMETRO
Parlante y transducción: https://animagraffs.com/loudspeaker/

diagrama circuito vumetro

http://itp.nyu.edu/~mbv227/?p=1943

Micrófono electret
La sensación de sonido es creada por ondas de presión de aire que inciden sobre el tímpano. Un micrófono puede convertir estas ondas de presión en una señal eléctrica alterna que puede ser amplificada, grabada, emitida, transmitida a través de cables, y reproducida como sonido por un auricular o altavoz.

https://www.youtube.com/watch?v=PeTriGTENoc

Este tipo de micrófono funciona en el mismo principio que uno de condensador, en donde hay dos delgados discos o placas que forman un condensador. (En los primeros días de la electricidad, un capacitor solía ser conocido como un condensador, esta terminología persistió en los micrófonos.) Una carga igual y opuesta es aplicada a las placas. Una placa es flexible, y como responde a las ondas de presión, la capacitancia entre ella y la otra, la placa rígida fluctúa. Si la carga en las placas se mantiene aproximadamente constante, mientras que la capacitancia fluctúa, la tensión a través del capacitor también fluctúa. Estas fluctuaciones pueden amplificarse.

El micrófono electret funciona de la misma manera que uno de condensador, salvo que sus placas son hechas de un material ferroeléctrico que retiene una carga eléctrica, así como el hierro retendrá una polarización magnética. El nombre del micrófono
se deriva de “electrostática” e “imán”.
Mientras que los primeros micrófonos electret eran de mala calidad, han evolucionado para rivalizar con el condensador siendo extremadamente asequibles.
Debido a que el electretet crea corrientes muy pequeñas suele incluir un transistor u OpAmp (amplificador operacional) en su estructura para aumentar la señal, y tiene una salida de colector abierto.

Led y tensión: https://es.quora.com/C%C3%B3mo-afecta-la-tensi%C3%B3n-a-la-corriente-en-los-LED-de-colores
_________________

Amplificadores Operacionales
OpAmp-01
Los amplificadores operacionales (op amps) son muy útiles porque pueden ser utilizados en un sinnúmero de aplicaciones. Un OpAmp típico es un circuito integrado con un input inversor, un input no-inversor, dos pines para ser energizados por corrientes contínua (DC: positivo y negativo), un terminal de salida (output), y otros pines especializados para ‘ajustes finos’.
Los pines de suministro energético positivo y negativo, así como también los de ajuste-fino, a veces son obviados de los diagramas / esquemáticos. Si en el circuito no se ven pines de suministro, habrá que asumir que se está usando estos pines de suministro dual mencionados anteriormente.

Ref: http://www.sentex.ca/~mec1995/gadgets/741/741.html

LM386
LM386
Hoja de referencia del LM386

El LM386 es un amplificador operacional diseñado específicamente para operar de mejor manera dentro del rango de frecuencias audibles (20 a 20000Hz). Este dispositivo es generalmente usado en pre-amplificadores, sistemas de audio, receptores de radio AM-FM, amplificadores, intercomunicadores, etc. Este popular amplificador de bajos voltajes, tiene una ganancia que está fijada internamente en un valor de 20 veces, pero que puede ser incrementado hasta a 200 veces con un condensador externo y una resistencia ubicada entre los pines 1 y 8. El LM386 puede funcionar con voltajes entre 4 y 12 Volts, un rango ideal para aplicaciones que funcionan con baterías.

LM386-ganancia20

LM386-ganancia200

LM358
Diagrama de circuito de preamplificador para micrófono.
Captura de pantalla 2015-07-05 a la(s) 3.47.23 PM
Ref: https://courses.cit.cornell.edu/ee476/FinalProjects/s2007/jsc59_ecl37/jsc59_ecl37/report2.html

Ref: http://johnhenryshammer.com/TEChREF/opAmps/opamps.html

Referencias arte y microfonía:
Paul Kos
Zimoun
Jie Qi
John Cage
Christian Oyarzún
http://mintakaconciencia.net/squares/parabolic-mic/

Construcción de micrófonos electret y contacto (piezo):

Electret
conexion mic electret

Piezo
conexion mic contacto piezo

Electret stereo

C4

PDF Timer555 – 1
PDF Timer 555 – 2
Timer 555: construcción de un oscilador

circuito-555-astable
Instrucciones  para la  construcción del circuito astable  y posteriores modificaciones:
1) Armar el circuito inicialmente con uno de los leds, luego agregar el siguiente. Nótese que uno de los leds va hacia negativo y otro hacia positivo. El primero que usen, puede ir a cualquiera de los dos polos.

2) Una vez que esté todo funcionando O.K., reemplacen R3 y R4 por otras resistencias que no sean de muy bajo valor. ojalá mayores a 10K.

3) Reemplacen R3 por un potenciómetro (de 10K o 100K). Observen lo que pasa con el pulso al girar el eje o perilla de este.

4) Hagan la misma operación con R4.

5) Reemplacen C1 por un capacitor de menor valor: el capacitor 103 o el 104 (no polarizados). Observen cómo se comporta el brillo del led.

6) Reemplacen los leds y sus resistencias por un parlante de máximo 1W / 8ohms. Este debe ir con su lado positivo al pin 3 del 555 y con su lado negativo a la tierra/negativo general del circuito. Escuchen lo que pasa al mover los ejes/perillas de los potenciómetros. Si el sonido es muy fuerte, pueden incluir una resistencia variable o fija de entre 220 y 10k entre el parlante y el pin 3 del timer 555.

——

Funcionamiento de un Timer 555 en modo astable:
El 555 toma su nombre de las 3 resistencias de 5k que se muestran en el diagrama (más abajo). Estas resistencias actúan como un divisor de voltaje de 3-pasos entre Vcc y tierra. La parte superior de la resistencia de 5k de más abajo (+ input to comparator 2) está configurada a 1/3 de Vcc, mientras que la parte superior de la resistencia de 5k (- input to comparator 2) está configurada a 2/3 de Vcc.
Las dos comparadores emiten ya sea una alta o baja tensión (voltaje / diferencia de potencial) basada en los voltajes analógicos que están siendo comparados en sus entradas (inputs).
Si una de las entradas positivas de los comparadores es mayor que su entrada negativa, su nivel de salida lógica se vuelve ‘1’ (high); si el voltaje de la entrada positiva es menor que el voltaje de la entrada negativa, el nivel de la salida lógica se vuelve ‘0’ (low).
Las salidas de los comparadores son enviados a los inputs de un biestable RS (Flip-flop SR). El biestable revisa las entradas R y S; y produce un 0 (low) o un 1 (high) basado en el estado del voltaje en las entradas.


*imagen de http://www.unitechelectronics.com/NE-555.htm

Pin 1: (ground / tierra) Tierra del circuito integrado.
Pin 2: (trigger / disparo) Entrada al comparador 2, que es usado para configurar el biestable (flip-flop). Cuando el voltaje en el pin 2 va de más a menos de 1/3 Vcc, el comparador cambia a ‘1’ (high), configurando el biestable (flip-flop).
Pin 3: (output / salida) La salida del 555 es manejada por un buffer inversor capaz de hacer sourcing o sinking al rededor de 200mA. El voltaje de salida depende de la corriente de salida, pero son aproximadamente Vout (high) = Vcc – 1.5 V and Vout (low) = 0.1V.
Pin 4: (reset / reinicio) Reinicio activo a nivel bajo (low / 0), que fuerza el estado de -Q- a ‘alto’ (high / 1) y al pin 3 (output / salida)
a bajo (low / 0).
Pin 5: (control) Usado para anular el nivel de 2/3Vcc, si fuera necesario, pero normalmente va a tierra a través de un condensador de bypass (capacitor) de 0.01uF (este condensador ayuda a eliminar el ruido de Vcc). Si se aplica aquí un voltaje externo, configurará entonces un nuevo nivel de voltaje de disparo (trigger).
Pin 6: (threshold / umbral) Entrada al comparador superior, cuya función es reiniciar (resetear) el biestable (flip-flop). Cuando el voltaje en el pin 6 va de menos de- a más de 2/3Vcc, el comparador cambia a estado ‘alto’ (1 / high), reiniciando (reseteando) el biestable (flip-flop).
Pin 7: (discharge / descarga) Conectado al colector abiertode transistor NPN. Su función es conectar el pin 7 a tierra cuando -Q- está en ‘alto (high / 1) y pin 3 en bajo (0 / low). Esto provoca que se descargue el condensador.
Pin 8: (suministro de voltaje / Vcc) Normalmente entre 4.5 y 16 Volts para los timer 555 tipo TTL de uso general. (Para las versiones CMOS, el suministro de voltaje puede ser desde 1V).

Calculadora de ciclos – circuito astable :
http://gzalo.com/555/

Alternativa:
http://www.ohmslawcalculator.com/555-astable-calculator

Otro circuito relacionado:
Atari Punk Console (timer 556)
https://www.youtube.com/watch?v=Oi3dmSMpjsU
Dos referencias de sonido en síntesis:
Sintetizador victoriano (por Nicolas Collins):
https://www.youtube.com/watch?v=6ZxxuDNQuMQ

Circuitos Timer 555 FM

Captura de pantalla 2018-09-08 a la(s) 20.57.58

https://www.youtube.com/watch?v=SlTrmYWhvRk
https://www.youtube.com/watch?v=sJ9EZWBZee8

Otros referentes
Colectivo los electros: www.loselectros.com/info/


Para la próxima semana:

**Leer páginas 24 a 46 del libro Getting started in Electronics

++ Realizar un ejercicio de aplicación creativa, poética o práctica a partir de las tecnologías que hemos revisado hasta ahora, según lo que comenté al final de la clase de ayer. Suban sus procesos de construcción y referentes (si los hay) a la bitácora.


C5

Physical Computing y microcontroladores

Esta es la imagen que inicia el primer libro dedicado a la computación física o Physical Computing. Su primera edición fue publicada en 2004 y fue una respuesta a la inquietud de profesores y estudiantes de distintas áreas interesados en el trabajo creativo que implicaba una respuesta física ante rutinas digitales o vice/versa.
PhCompDiagram

En el libro se hace referencia a esta imagen para explicar el cómo nos relacionamos con los computadores, específicamente en cómo somos percibidos por estos. Hasta ese entonces la forma casi única para una persona  de comunicarse con un computador era a partir del mouse y el teclado y por otro lado a través de la vista y los oídos.

Se comenzó a usar microcontroladores de fácil programación para expandir las posibles formas de interacción con la máquina: Basic Stamp, Pic y otros, eran los microcontroladores más utilizados, sin embargo en 2003 en el instituto Ivrea en Italia quisieron hacer aún más fácil el uso de estos dispositivos, así como también más económicos para los estudiantes.

Fue así entonces como comenzó a desarrollarse la placa Arduino y su software en el contexto de una tesis de Magister en el mismo instituto Ivrea por el colombiano Hernando Barragán, quien en ese momento inició su proyecto Wiring en el que luego se basó el proyecto Arduino conducido por un grupo constituido por  Massimo BanziDavid CuartiellesTom IgoeGianluca Martino, and David Mellis. También hubo directa influencia del proyecto Processing iniciado por Casey Reas y Ben Fry

Luego de Arduino (que es un proyecto Open Source) comenzaron a aparecer distintas placas basadas en ella como RBBB o Makey Makey entre otras.

Otra característica que vale la pena mencionar es que gracias a las características de Arduino, es bastante fácil aumentar sus capacidades de fábrica gracias a los shields que son placas adosables a Arduino para por ejemplo, usar de manera más fácil motores, aplicaciones con sonido, acceder a internet, etc.

También cabe mencionar que hace algunos años se han desarrollado otras placas como Raspberry Pi,  Beagle Bone y más recientemente  Arduino Galileo (entre otras) que entran dentro de la categoría de pequeños computadores por lo que tienen más capacidad de procesamiento de datos, se les puede instalar un sistema operativo, programas y aceptan periféricos como monitor, teclado, mouse, etc, así como también conexión a Internet sin necesidad de enchufarlos a un shield.

Esta reseña es para contextualizar brevemente en qué situación se generan las herramientas que presentaré las próximas clases. Lo que da para pensar es el rol de estas en las posibilidades de uno generar herramientas propias, que pueden ser personalizadas según las propias necesidades y concepto de un proyecto. Al igual que aprender programación, se generan libertades que no se dan al ocupar máquinas y softwares que no pueden ser modificados.

Sitio oficial Arduino: http://arduino.cc
IDE Arduino online: https://create.arduino.cc/editor
Fritzing: http://fritzing.org/learning/


OUTPUT
1) File –> Examples –> Basics —> Blink
2) Output con motor DC con código Blink y/o Fading
Información diodos zener: https://www.diodes.com/assets/Datasheets/ds28002.pdf
3) File –> Examples –> Basics —> Fading  (Ciclo for)
4) File –> Examples –> Digital —> Tone Melody
5) File–> Examples–>Tone Pitch follower
5) File –> Ejemplos –> Servo –> Sweep (circuito: https://www.arduino.cc/en/Tutorial/Sweep)
6) El auto fantástico

Ciclo For
Modulación por ancho de pulsos – Pulse Width Modulation
Actuadores
Visualizar los valores de entrada y/o salida en el monitor serial (Serial.println)

Links a referentes proyectos, artistas:
Golan Levin
Daniel Rozin
Lev Manovich
Manovich Lev, El lenguaje de los nuevos medios de comunicación (The Language of New Media)
Real Snail Mail Project
Jie Qi
Bare Conductive
Makey Makey
High-Low Tech Lab
Botanicalls
Bitforms Gallery
Yuri Suzuki
Exposición Talk to Me – MOMA

Ciclo for

Pulse Width Modulation1
Pulse Width Modulation 2

Ejercicio Fading
Captura de pantalla 2019-05-07 a la(s) 23.18.24

Para la próxima clase: desarrollar el código, de manera que el led se encienda en fade out, y luego se apague en fade out.

C6

Sensores
De la Rae:
Sensor:
1. m. Dispositivo que detecta una determinada acción externa, temperatura, presión, etc., y la transmite adecuadamente.

Del libro Sensor Technology Handbook,editor John S. Wilson:
‘A sensor is a device that converts a physical phenomenon into an electrical signal. As
such, sensors represent part of the interface between the physical world and the world
of electrical devices, such as computers. The other part of this interface is represented
by actuators, which convert electrical signals into physical phenomena’.

Los sensores son dispositivos que convierten distintos tipos de energía física, permitiendo al microcontrolador leer o percibir cambios en el mundo físico (temperatura, ubicación, inclinación, etc.)

Los sensores más sencillos leen cambios en la energía mecánica, usualmente a través de mover contactos eléctricos. Por ejemplo, el botón o tact switch convierte energía mecánica en energía eléctrica a través de cerrar el contacto entre dos contactos de metal. El potenciómetro es otro sensor que lee cambios de energía mecánica: un contacto metálico llamado “wiper” o “puntero” se arrastra a lo largo de una resistencia, provocando una especie de corto-circuito efectivo en la resistencia. Esto es, creando un circuito divisor de voltaje.

Tipos de sensores:
– resistivos
– ópticos
– de rango (ranging sensos)
– Mems (micro electromechanical system)
… entre otros.

Hoja de datos / datasheet:
Nunca olvidar la HOJA DE DATOS de los sensores. Estas ayudan a comprender el sensor (o cualquier componente electrónico) a través de descripciones, gráficos de respuesta, funcionalidad, diagramas, datos de voltaje, etc.
Ejemplo de hoja de datos: http://pdf1.alldatasheet.com/datasheet-pdf/view/174761/ATMEL/ATTINY85.html
Sparkfun

Resistencias pull-up y pull down

Conexión de sensores digitales: resistencia pull-up y pull-down
https://www.youtube.com/watch?v=bKv0nj4gkFk (español)
https://www.youtube.com/watch?v=wxjerCHCEMg (inglés, más completo)
https://www.youtube.com/watch?v=BxA7qwmY9mg (inglés completo ++)

2.1.1) Pull-up:
Ejercicio:
https://www.arduino.cc/en/Tutorial/InputPullupSerial
– uso de INPUT_PULLUP

void setup() {
//start serial connection
Serial.begin(9600);
//configure pin2 as an input and enable the internal pull-up resistor
pinMode(2, INPUT_PULLUP);
pinMode(13, OUTPUT);

}

void loop() {
//read the pushbutton value into a variable
int sensorVal = digitalRead(2);
//print out the value of the pushbutton
Serial.println(sensorVal);

// Keep in mind the pullup means the pushbutton’s
// logic is inverted. It goes HIGH when it’s open,
// and LOW when it’s pressed. Turn on pin 13 when the
// button’s pressed, and off when it’s not:
if (sensorVal == HIGH) {
digitalWrite(13, LOW);
} else {
digitalWrite(13, HIGH);
}
}

3) Conexión de sensores analógicos: divisor de corriente
https://learn.sparkfun.com/tutorials/voltage-dividers

4) Calibración automática
/*
Calibration

Demonstrates one technique for calibrating sensor input. The
sensor readings during the first five seconds of the sketch
execution define the minimum and maximum of expected values
attached to the sensor pin.

The sensor minimum and maximum initial values may seem backwards.
Initially, you set the minimum high and listen for anything
lower, saving it as the new minimum. Likewise, you set the
maximum low and listen for anything higher as the new maximum.

The circuit:
* Analog sensor (potentiometer will do) attached to analog input 0
* LED attached from digital pin 9 to ground

created 29 Oct 2008
By David A Mellis
modified 30 Aug 2011
By Tom Igoe

http://arduino.cc/en/Tutorial/Calibration

This example code is in the public domain.

*/

// These constants won’t change:
const int sensorPin = A0; // pin that the sensor is attached to
const int ledPin = 9; // pin that the LED is attached to

// variables:
int sensorValue = 0; // the sensor value
int sensorMin = 1023; // minimum sensor value
int sensorMax = 0; // maximum sensor value

void setup() {
// 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() {
// read the sensor:
sensorValue = analogRead(sensorPin);

// apply the calibration to the sensor reading
sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255);

// in case the sensor value is outside the range seen during calibration
sensorValue = constrain(sensorValue, 0, 255);

// fade the LED using the calibrated value:
analogWrite(ledPin, sensorValue);
}

Función Map
Referencia: https://www.arduino.cc/en/Reference/Map

/* Map an analog value to 8 bits (0 to 255) */void setup() {}void loop(){ int val = analogRead(0); val = map(val, 0, 1023, 0, 255); //revisar en serial print el valor mayor y menor analogWrite(9, val);Serial.println(val);
}

 Función Constrain
https://www.arduino.cc/en/Reference/Constrain

/* Map an analog value to 8 bits (0 to 255) */void setup() {}void loop(){ int val = analogRead(0); mappedVal = map(val, 0, 1023, 0, 255); //revisar en serial print el valor mayor y menorconsVal = constrain(mappedVal, 30, 400); //revisar en serial print los valores analogWrite(9, val);Serial.println(val);
}

—————————

Otros ejemplos sensores:
Debounce: https://www.arduino.cc/en/Tutorial/Debounce

Edge detection para push button: https://www.arduino.cc/en/Tutorial/StateChangeDetection?from=Tutorial.ButtonStateChange (Ejemplo: cambiar el color de un led rgb aleatoriamente cada vez que se aprieta el botón)
min: https://www.arduino.cc/en/Reference/Min
max: https://www.arduino.cc/en/Reference/Max

Extra – salida:
https://www.arduino.cc/en/Tutorial/ToneMultiple?from=Tutorial.Tone4

Digital pins: https://www.arduino.cc/en/Tutorial/DigitalPins
Analog pins: https://www.arduino.cc/en/Tutorial/AnalogInputPins
Sparkfun cálculo pullup: https://learn.sparkfun.com/tutorials/pull-up-resistors?_ga=1.25821428.858725962.1459691202

Operadores
https://www.tutorialspoint.com/arduino/arduino_operators.htm

C7

Pure Data extended (Pduino) + Arduino (Serial y Firmata)
https://puredata.info/downloads/pduino

Sensores por entradas analógicas (continuación)
AnalogInOutSerial
https://www.arduino.cc/en/Tutorial/AnalogInOutSerial
Arduino IDE: Archivo –> Ejemplos –>Analog –> AnalogInOutSerial
— Función map
— Función constrain

Smoothing
https://www.arduino.cc/en/Tutorial/Smoothing
Arduino IDE: Archivo –> Ejemplos –>Analog –> Smoothing

Condicional: If statement
https://www.arduino.cc/en/Tutorial/IfStatementConditional?from=Tutorial.
En Arduino IDE: Archivo –> Ejemplos –> Control –> IfStatementConditionals

Switch Case
https://www.arduino.cc/en/Tutorial/SwitchCase
En Arduino IDE: Archivo –> Ejemplos –> Control –> switchCase

Códigos de la clase de recuperación – 25 de Mayo y 14 de Mayo
http://etab.cl/clases/codes/Arduino_y_PD_analogIn-mtof-osc.zip
http://etab.cl/clases/codes/Arduino-Serial-if-switchCase-tone.zip

Uso de motores y Arduino
https://itp.nyu.edu/~mbv227/?p=1997