DESCRIPCIÓN DE LA TARJETA ARDUINO                             (1) BÁSICO


La información referente a esta tarjeta se puede encontrar en este sitio:

http://www.arduino.cc




Localización en la tarjeta de los puertos de conexión:

- USB (para conectarse a la computadora)
- Alimentación de voltaje (X1), tierra, Vin, 5 y 3.3 voltios
- Analógicos (entradas, max. 5 Voltios)
- Digitales (in / out)


1.- LA CONEXIÓN DE LA TARJETA A LA COMPUTADORA.

- para alimentar la tarjeta con el programa
- suministro de corriente

El software Arduino.



Principales elementos del Software.
El lenguaje de programación.
Configuración inicial: Especificar tipo de tarjeta y conexión serial.

2.- SUBIENDO LA PROGRAMACIÓN AL PROCESADOR.  ENCENDIENDO UN LED.

Cargar en el procesador el ejercicio Básico "Blink".
Cambiar algunos parámetros (puerto - LED exterior) y delay.

Encendido del LED (exterior)
Observar la polaridad del LED
Códigos de color / valor de resistencia (link)
Uso del protoboard (tableta para prototipos) (link)




3.- COMPONENTES Y DIAGRAMAS ELECTRÓNICOS

El software que se puede utilizar para la creación de diagramas electrónicos es el Fritzing. Aquí se pueden representar los componentes y como se conectan entre si en un protoboard y con la tarjeta Arduino.

Lectura de sensores en la tarjeta Arduino.
Conexión de sensores en el puerto analógico A0


Diagrama conexión fotoresistencia (LDR).

Observar el cambio de lectura en el puerto serial, conforme pase luz o sombra sobre la fotorresistencia. Estos valores son los que nos permiten tomar decisiones sobre algún evento que ocurre en determinada condición. (IF)

Lectura de diferentes sensores:

botón (digital)



/*
  DigitalReadSerial
 Reads a digital input on pin 2, prints the result to the serial monitor
 
 This example code is in the public domain.
 */

// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2;

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  // make the pushbutton's pin an input:
  pinMode(pushButton, INPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input pin:
  int buttonState = digitalRead(pushButton);
  // print out the state of the button:
  Serial.println(buttonState);
  delay(1);        // delay in between reads for stability
}


sensor de distancia infrarrojo
sensor de distancia ultrasonido

(sensores)


4.- EJERCICIO : ENCENDIENDO UN LED (IF).

Combinando la lectura del LDR con el encendido del LED.
La función if (condición) para la toma de decisiones.

Fijamos un valor arbitrario (sensorValue < 240) para que se encienda el LED. Tomar en cuenta que en lugar de un LED el pulso puede utilizarse para cualquier tipo de actuadores, como motores, relevadores, etc.

------------------------------------
int led = 13;
// the setup routine runs once when you press reset:
void setup() {
    pinMode(led, OUTPUT);   
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  if (sensorValue < 240) {
    digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);              
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  //delay(1);             
  }
}

-----------------------------------






5.- EJERCICIO : MEDICIÓN DE UN SENSOR INFRARROJO.


Medición de la distancia a partir de un sensor infrarrojo Sharp.



Observar los cambios de lecturas en el sensor (cargando el programa analog read serial).


Conectar un potenciómetro de 10K y observar los cambios de lecturas. (Analog Read Serial)




La lectura de los valores ocasionados por la rotación del potenciómetro se leen a través del puerto analógico 0 (A0) y en el puerto serial.

EJERCICIO: programar la tarjeta Arduino para que un potenciómetro actúe sobre dos LED's como se ilustra a continuación





Bibliografía

Arduino Cookbook
Margolis Michael
O'Reilly Media

Beginning Arduino
McRoberts Michael
Apress

Getting Started with Arduino (Make: Projects)
Massimo Banzi
O'Reilly Media


En Internet:

http://www.arduino.cc

Learning Arduino (Adafruit)


Nov 23, 2007

PROGRAMACIÓN DE ARDUINO. ACTIVIDADES.



EN EL SALÓN DE CLASE  (1)   EN CASA y/o  EN EL BLOG (2), (3) y (4)

______________________________________________________________________________

  1. Descargar e instalar el software Arduino.
  2. Realización de los ejercicios propuestos.
  3. Revisión de autores de New Media
  4. Propuesta de un proyecto

______________________________________________________________________________


CREACIÓN DE PROGRAMAS PARA ARDUINO.           (2)



6.- UTILIZACIÓN DE UN LASER COMO SWITCH.




Combinación de un generador laser y LDR.

7.- LECTURA DE UN SENSOR PIR.


-------------------------------------------
ref.: http://bildr.org/2011/06/pir_arduino/
Lectura de mensaje en puerto serial (serial monitor)
Se le puede añadir encendido de LED (Ejercicio)
------------------------------------------
int pirPin = 2; //digital 2

void setup(){
 Serial.begin(9600);
 pinMode(pirPin, INPUT);
}

void loop(){
  int pirVal = digitalRead(pirPin);

  if(pirVal == LOW){ //was motion detected
    Serial.println("Motion Detected");
    delay(2000);
  }
}

-----------------------------------------

Otra opción: Mensaje de movimiento en serial   y  LED

-------------------------------------------

/*
 * PIR sensor tester
 */
 
int ledPin = 13;                // choose the pin for the LED
int inputPin = 2;               // choose the input pin (for PIR sensor)
int pirState = LOW;             // we start, assuming no motion detected
int val = 0;                    // variable for reading the pin status
 
void setup() {
  pinMode(ledPin, OUTPUT);      // declare LED as output
  pinMode(inputPin, INPUT);     // declare sensor as input
 
  Serial.begin(9600);
}
 
void loop(){
  val = digitalRead(inputPin);  // read input value
  if (val == HIGH) {            // check if the input is HIGH
    digitalWrite(ledPin, HIGH);  // turn LED ON
    if (pirState == LOW) {
      // we have just turned on
      Serial.println("Motion detected!");
      // We only want to print on the output change, not state
      pirState = HIGH;
    }
  } else {
    digitalWrite(ledPin, LOW); // turn LED OFF
    if (pirState == HIGH){
      // we have just turned of
      Serial.println("Motion ended!");
      // We only want to print on the output change, not state
      pirState = LOW;
    }
  }
}


8.- LECTURA DE UN SENSOR DE ULTRASONIDO.





PW (Pulso) - También puede usarse en análogo.

------------------------------------------------------------
//Feel free to use this code.
//Please be respectful by acknowledging the author in the code if you use or modify it.
//Author: Bruce Allen
//Date: 23/07/09

//Digital pin 7 for reading in the pulse width from the MaxSonar device.
//This variable is a constant because the pin will not change throughout execution of this code.
const int pwPin = 7;
//variables needed to store values
long pulse, inches, cm;

void setup() {

  //This opens up a serial connection to shoot the results back to the PC console
  Serial.begin(9600);
}

void loop() {

  pinMode(pwPin, INPUT);
    //Used to read in the pulse that is being sent by the MaxSonar device.
  //Pulse Width representation with a scale factor of 147 uS per Inch.

  pulse = pulseIn(pwPin, HIGH);
  //147uS per inch
  inches = pulse/147;
  //change inches to centimetres
  cm = inches * 2.54;
  Serial.print(inches);
  Serial.print("in, ");
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
  delay(500);
}

------------------------------------------------------

INTEGRACIÓN DE UN RELAY.

Del ejercicio anterior retomamos el programa de lectura e incorporamos las siguientes modificaciones:

- si la distancia medida es menor a 60 centímetros envía una señal (voltaje de 5 voltios) en este caso a un relay (relevador), conectado a través de la salida digital 9 de la Arduino.



Aunque la conexión directa del relevador a la salida digital puede funcionar, lo correcto es utilizar un transistor como switch, ejemplo: 2N2222 , para no cargar la salida digital del microprocesador. Notar el cambio de conexión.



El diagrama Final, incluye conexión del sensor de distancia, el relevador con el motor conectado.






-----------------------------------------------------
const int pwPin = 7;
long pulse, inches, cm;
void setup() {
  pinMode (9, OUTPUT);
}
void loop() {
  pinMode(pwPin, INPUT);
  //Used to read in the pulse that is being sent by the MaxSonar device.
  //Pulse Width representation with a scale factor of 147 uS per Inch.
  pulse = pulseIn(pwPin, HIGH);
  //147uS per inch
  inches = pulse/147;
  cm = inches * 2.54;
  if (cm < 60) {
    digitalWrite (9, HIGH);
  }
 else {
    digitalWrite (9, LOW);
  }  
}

-----------------------------------------------------

9.- SALIDA A UN MOTOR.



Mover un motor servo con un potenciómetro.




10.- FUNCIÓN DE MAPEO DE UN SENSOR A UN MOTOR.

Explicación de la función map.



---------------------------------------
 #include <Servo.h>
Servo myservo;  // create servo object to control a servo
int a;
int i;
int lectura;
int val;
void setup() {
    myservo.attach(3);
  Serial.begin(9600);
}

void loop() {
  a = 0;
  for (i=1; i<40; i++){
  int sensorValue = analogRead(A0);
  a = (a+sensorValue);
  }
  lectura = (a/39);
  Serial.println(lectura, DEC);
  val = lectura;            // reads the value (value between 0 and 1023)
  val = map(val, 60, 560, 0, 179);     // scale it to use it with the servo (value between 0 and 180)
  myservo.write(val);                  // sets the servo position according to the scaled value
  //delay                           // waits for the servo to get there
}

---------------------------------------

11.- OTROS  SENSORES 

ACELERÓMETRO




This example code is in the public domain.
Version modificada para que encienda el LED
Reads an Analog Devices ADXL3xx accelerometer and communicates the
acceleration to the computer.  The pins used are designed to be easily
compatible with the breakout boards from Sparkfun, available from:
http://www.sparkfun.com/commerce/categories.php?c=80
 
 http://www.arduino.cc/en/Tutorial/ADXL3xx
 
 The circuit:
 analog 0: accelerometer self test
 analog 1: z-axis
 analog 2: y-axis
 analog 3: x-axis
 analog 4: ground
 analog 5: vcc
 
 created 2 Jul 2008
 by David A. Mellis
 modified 4 Sep 2010
 by Tom Igoe
 

 */

// these constants describe the pins. They won't change:
const int groundpin = 18;             // analog input pin 4 -- ground
const int powerpin = 19;              // analog input pin 5 -- voltage
const int xpin = A3;                  // x-axis of the accelerometer
const int ypin = A2;                  // y-axis
//const int zpin = A1;                  // z-axis (only on 3-axis models)

void setup()
{
  // initialize the serial communications:
  Serial.begin(9600);

  // Provide ground and power by using the analog inputs as normal
  // digital pins.  This makes it possible to directly connect the
  // breakout board to the Arduino.  If you use the normal 5V and
  // GND pins on the Arduino, you can remove these lines.
  pinMode(groundpin, OUTPUT);
  pinMode(powerpin, OUTPUT);
  digitalWrite(groundpin, LOW);
  digitalWrite(powerpin, HIGH);
  pinMode(13, OUTPUT);    
}

void loop()
{
  // print the sensor values:
  Serial.print(analogRead(xpin));
  // print a tab between values:
  Serial.print("\t");
  Serial.print(analogRead(ypin));
  // print a tab between values:
  Serial.print("\t");
  // Serial.print(analogRead(zpin));
  Serial.println();
  // delay before next reading:
  if ((analogRead(ypin))>521){   // detecta movimiento en y
    digitalWrite(13, HIGH);   // set the LED on
    delay(1000);              // wait for a second
    digitalWrite(13, LOW);    // set the LED off
  }
  delay(1);
}




Detección de audio.





Control por medio de reloj. Cronodot.




Bibliografía

Arduino Cookbook
Margolis Michael
O'Reilly Media

Beginning Arduino
McRoberts Michael
Apress

Getting Started with Arduino (Make: Projects)
Massimo Banzi
O'Reilly Media


En Internet:

http://www.arduino.cc

Learning Arduino (Adafruit).


Nov 23, 2007

CÓMPUTO FÍSICO. ACTIVIDADES.



EN EL SALÓN DE CLASE (1) (2)  EN CASA  (3) y (4)

____________________________________________________________________________________

  1. Desarrollo de un proyecto final que preferentemente involucre la interacción del espectador. Se formarán equipos de trabajo para el desarrollo de los proyectos.
  2. Presentación en clase del proyecto, con referencias de autores.
  3. Exposición del trabajo final.

____________________________________________________________________________________


Última revisión 27 Abril 2015 x ADC

TIMER 555



TEMPORIZADOR

Este ejercicio permite construir un temporizador con el circuito 555. Al cerrar el circuito con el botón el LED queda encendido por un lapso de tiempo que va de 0 a 10 aprox. cuando se alimenta con 6 voltios.
Cambiando el condensador electrolítico por uno de 220 microfaradios, el tiempo va entre 0 y 23 segundos. Con un condensador de 1000 microfaradios a 25 voltios el tiempo va de 1 segundo y medio a 2minutos 15 segundos.




Componentes:

555
botón
LED
Potenciómetro 100K
Resistencia 6.8 K
Resistencia 1 K
Resistencia 220 ohms
Condensador Electrolítico 100 microfaradios 16 voltios



OSCILADOR



Componentes:

555
transistor NPN 2222 o similar
bocina 0.5 W / 4 ohms
LDR
capacitor 104
Resistencia 1 K
Resistencia 2200 ohms

Resistencia de 10 ohms




Última revisión 28 Mayo 2021 x  ADC

Temas y Subtemas.


Descripción de los principales microprocesadores y su uso.

Descripción de la tarjeta Arduino. Conexión y software.

Encendido de un LED.

Elementos de electrónica. Resistencias. LED. Relevadores.  Principales componentes. Fritzing.

Utilización de una foto resistencia LDR. Lectura y programación con Arduino.

Los sensores.

Los actuadores.

Los relevadores.

Diversos tipos de motores y sus funciones.

Lectura de un sersor de ultrasonido (distancia).

Integración de un relay.

Mapeo de una lectura de proximidad a un servomotor.

Lectura de un Acelerómetro.

Compra de partes Electrónicas.

Temario del Curso de New Media.

Microprocesadores

Existen una serie de tarjetas que contienen microprocesadores de fácil programación que permiten "sensar" el mundo externo y actuar en consecuencia. La más empleada en el mundo del arte interactivo es la "Arduino", que cuenta con una gran comunidad que comparte diversos tipos de soluciones tanto de programación como de conexión de la tarjeta con sensores y actuadores. 

Entre otros microprocesadores capaces de manejar inclusive video de HD están la Rasperry-Pi y la BeagleBone.



Estas tarjetas son prácticamente computadoras que pueden configurarse para que respondan al mundo exterior mediante sensores.


La tarjeta BeagleBone es otra alternativa para programar en Linux. Aunque la versión actual no soporta video en full HD.

En el caso del "Cómputo de Vestir" la Lilypad usa un procesador de Arduino para que se pueda integrar a la ropa.

Existen las versiones Flora y Gemma de Adafruit que también son microprocesadores de vestir que cuentan con una gran cantidad de accesorios. (link)


Lilypad Site (link)

Software para la creación de diagramas

El software que se puede utilizar para la creación de diagramas electrónicos  es el Fritzing. Permite ilustrar en forma precisa como se está realizando una conexión de la tarjeta Arduino con otros dispositivos externos como sensores y actuadores.

En este diagrama vemos la conexión de una fotoresistencia LDR al puerto analógico A0 de Arduino. La lectura de los valores se hace a través del sketch Ejemplos - Básicos - Analog Read Serial.


Otra aplicación en línea es la de Autodesk 123D Circuits, que permite crear diagramas y simular el funcionamiento de la tarjeta Arduino. Además del módulo ELECTRONICS LAB, tiene módulos para la creación de circuitos impresos.

Sensores y Actuadores

En el diagrama se ilustran las entradas y salidas de la computadora así como las entradas y salidas de un microprocesador (sensores y actuadores).


SENSORES

movimiento
proximidad
distancia
acelerómetro
sonido
temperatura
luz
laser (línea)
fuerza (presión)
tilt (inclinación)
tiempo


Tipos de Motores

Los principales actuadores son los motores. Con la tarjeta Arduino se emplean:

- Motores a Pasos

- Servos (servomotores).

- Motores de CD.



Los Relevadores

Un actuador importante son los relevadores (relays). Es como un interruptor que nos permite conectar (y encender/apagar) una diversidad de dispositivos externos.

Las funciones de un relevador:
- normalmente abierto
- normalmente cerrado
- aplicaciones



COMPONENTES ELECTRÓNICOS



Resistencia

LED

Condensador

Condensador Electrolítico

Diodo

Transistor

Potenciómetro


EL MULTÍMETRO



Medición de Resistencia

Medición de Voltaje

Medición de Corriente


Spark Fun Tutorial Multímetro

EL TIMER 555


Información completa sobre características y proyectos (link)

Timer y Oscilador (diagramas y componentes)

PIEZOELÉCTRICOS



TARJETAS "SHIELD" PARA ARDUINO



TEMARIO


Arte Electrónico y arte Digital

Multimedia

Ciencia y Arte

Historia de la Tecnología

Historia de la Computadora

Tecnología y reconfiguración

La Red                                                           

Computadora y Periféricos                         

Programación HTML

Arduino / Cómputo Físico

RASPBERRY PI