Computación Física:Introducción al Arduino   Programando Arduino /        Processing
Programación• Se programa en un dialecto de C• Se requiere (forzosamente) una función  setup y una función loop• Setup es ...
Referencia - Estructura•   Control Structures   •   Further Syntax•   if                   •   ; (semicolon)•   if...else ...
Referencia - Estructura• Arithmetic           • Comparison  Operators              Operators• plus (addition)      • == (e...
Referencia - Estructura•   Boolean Operators•   && (and)•   || (or)•   ! (not)•   Compound Operators•   ++ (increment)•   ...
Referencia - Variables• Constants                         • Data Types• Constants are particular values   • Variables can ...
Referencia - Funciones•   Digital I/O                 • Advanced I/O•   pinMode(pin, mode)          • shiftOut(dataPin,•  ...
Referencia - Funciones•   Math                    •   Serial Communication•   min(x, y)               •   Serial.begin(spe...
Librerías• ARDUINO                        • WIRING• SoftwareSerial - for serial    • Matrix - Basic LED Matrix  communicat...
Librerias no oficiales•   Simple Message System - send messages between Arduino and the    computer•   OneWire - control d...
Ejemplos que veremos•   Blink, hacer parpadear un LED•   Ejercicios con LEDs•   AnalogRead, leer una señal del ADC•   Anal...
Blink• Ya hay un LED SMD conectado al pin 13• También se puede conectar un LED y  observarlos simultáneamente
Blink - Códigoint ledPin = 13; // LED connected to digital pin 13void setup(){pinMode(ledPin, OUTPUT); // sets the digital...
Ejercicio• Hacerlo parpadear con un tiempo de  encendido de 500 ms y de apagado de  2000 ms
Ejercicio 2• Conectar 2 LEDs y hacer que parpadeen  simultáneamente• OJO: utilizando puertos diferentes• Con esos 2 LEDs h...
AnalogRead• Conectamos un potenciómetro como  divisor de voltaje• Leemos ese voltaje• Un LED parpadea proporcionalmente al...
AnalogRead - Códigoint potPin = 2; // select the input pin for the potentiometerInt ledPin = 13; // select the pin for the...
Ejercicios• Invertir el sentido del potenciómetro sin  cambiar las conexiones eléctricas• Con Processing graficar el valor...
Para graficar con Processing• http://www.arduino.cc/  en/Tutorial/Graph• Leeremos el puerto                           void...
Para graficar con Processing• Ahora cerrar la aplicación de Arduino y  abrir Processing• Volver a checar en Device Manager...
import processing.serial.*;Serial port; String buff = "";int NEWLINE = 10; // Store the last 64 values received so   we ca...
Debemos obtener esto:
Ejercicio• Lograr escribir en la misma ventana de la  gráfica el valor de la altura de la línea (el  rango es de 0 a 255)•...
El resultado debe ser así:
Trabajo Independiente• Investigar e implementar demostraciones  de las siguientes técnicas:• Switch debouncing• Habilitar ...
Ejercicios Sugeridos• Programar y mostrar un contador binario  de 4 bits• Programar secuencias de LED’s  (incrementos line...
Ejercicios Sugeridos• Cargar la librería LCD para enviar  mensajes a una pantalla de cristal líquido• Leer el valor de tem...
Ejercicios Sugeridos• Utilizando Processing lograr variar la  intensidad de un LED moviendo el mouse
Upcoming SlideShare
Loading in …5
×

Tutorial arduino 03 programación

5,982 views

Published on

Programación de Arduino

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,982
On SlideShare
0
From Embeds
0
Number of Embeds
119
Actions
Shares
0
Downloads
166
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Tutorial arduino 03 programación

  1. 1. Computación Física:Introducción al Arduino Programando Arduino / Processing
  2. 2. Programación• Se programa en un dialecto de C• Se requiere (forzosamente) una función setup y una función loop• Setup es la preparación• Loop es la ejecución
  3. 3. Referencia - Estructura• Control Structures • Further Syntax• if • ; (semicolon)• if...else • {} (curly braces)• for • // (single line comment)• switch case • /* */ (multi-line comment)• while• do... while• break• continue• return
  4. 4. Referencia - Estructura• Arithmetic • Comparison Operators Operators• plus (addition) • == (equal to)• - (subtraction) • != (not equal to)• * (multiplication) • < (less than)• / (division) • > (greater than)• % (modulo) • <= (less than or equal to) • >= (greater than or equal to)
  5. 5. Referencia - Estructura• Boolean Operators• && (and)• || (or)• ! (not)• Compound Operators• ++ (increment)• -- (decrement)• += (compound addition)• -= (compound subtraction)• *= (compound multiplication)• /= (compound division)
  6. 6. Referencia - Variables• Constants • Data Types• Constants are particular values • Variables can have various with specific meanings. types, which are described• HIGH | LOW below.• INPUT | OUTPUT • boolean• true | false • char• Integer Constants • byte • int • unsigned int • long • unsigned long • float • double • string • array
  7. 7. Referencia - Funciones• Digital I/O • Advanced I/O• pinMode(pin, mode) • shiftOut(dataPin,• digitalWrite(pin, value) clockPin, bitOrder, value)• int digitalRead(pin) • unsigned long• Analog I/O pulseIn(pin, value)• int analogRead(pin) • Time• analogWrite(pin, value) - • unsigned long millis() PWM • delay(ms) • delayMicroseconds(us)
  8. 8. Referencia - Funciones• Math • Serial Communication• min(x, y) • Serial.begin(speed)• max(x, y) • int Serial.available()• abs(x) • int Serial.read()• constrain(x, a, b) • Serial.flush()• Random Numbers • Serial.print(data)• randomSeed(seed) • Serial.println(data)• long random(max)• long random(min, max)
  9. 9. Librerías• ARDUINO • WIRING• SoftwareSerial - for serial • Matrix - Basic LED Matrix communication on any digital display manipulation library pins • Sprite - Basic image sprite• Stepper - for controlling manipulation library for use in stepper motors animations with an LED matrix• EEPROM - reading and writing • Wire - Two Wire Interface to "permanent" storage (TWI/I2C) for sending and receiving data over a net of devices or sensors. On the Arduino, SDA is on analog input pin 4, and SCL on analog input pin 5.
  10. 10. Librerias no oficiales• Simple Message System - send messages between Arduino and the computer• OneWire - control devices (from Dallas Semiconductor) that use the One Wire protocol.• LCD - control LCDs (using 8 data lines)• LCD 4 Bit - control LCDs (using 4 data lines)• LedControl - for controlling LED matrices or seven-segment displays with a MAX7221 or MAX7219.• TextString - handle strings• Metro - help you time actions at regular intervals• Servo - provides software support for Servo motors on any pins.• Servotimer1 - provides hardware support for Servo motors on pins 9 and 10• X10 - Sending X10 signals over AC power lines• LedControl - an alternative to the Matrix library for driving multiple LEDs with Maxim chips.
  11. 11. Ejemplos que veremos• Blink, hacer parpadear un LED• Ejercicios con LEDs• AnalogRead, leer una señal del ADC• AnalogWrite, escribir PWM• Ejercicios con Processing• Sonido piezoeléctrico• Display LCD• Motor CD
  12. 12. Blink• Ya hay un LED SMD conectado al pin 13• También se puede conectar un LED y observarlos simultáneamente
  13. 13. Blink - Códigoint ledPin = 13; // LED connected to digital pin 13void setup(){pinMode(ledPin, OUTPUT); // sets the digital pin as output}void loop(){digitalWrite(ledPin, HIGH); // sets the LED ondelay(1000); // waits for a seconddigitalWrite(ledPin, LOW); // sets the LED offdelay(1000); //waits for a second}
  14. 14. Ejercicio• Hacerlo parpadear con un tiempo de encendido de 500 ms y de apagado de 2000 ms
  15. 15. Ejercicio 2• Conectar 2 LEDs y hacer que parpadeen simultáneamente• OJO: utilizando puertos diferentes• Con esos 2 LEDs hacer que parpadeen alternadamente (ambos tiempos de 500 ms)• Hacer lo mismo con 3 LEDs (tiempo de ms)
  16. 16. AnalogRead• Conectamos un potenciómetro como divisor de voltaje• Leemos ese voltaje• Un LED parpadea proporcionalmente al voltaje leído
  17. 17. AnalogRead - Códigoint potPin = 2; // select the input pin for the potentiometerInt ledPin = 13; // select the pin for the LEDint val = 0; // variable to store the value coming from the sensorvoid setup(){pinMode(ledPin, OUTPUT); // declare the ledPin as an OUTPUT}void loop(){val = analogRead(potPin); // read the value from the sensordigitalWrite(ledPin, HIGH); // turn the ledPin ondelay(val); // stop the program for some timedigitalWrite(ledPin, LOW); // turn the ledPin offdelay(val); // stop the program for some time}
  18. 18. Ejercicios• Invertir el sentido del potenciómetro sin cambiar las conexiones eléctricas• Con Processing graficar el valor leído del potenciómetro
  19. 19. Para graficar con Processing• http://www.arduino.cc/ en/Tutorial/Graph• Leeremos el puerto void setup() análogo 0 { Serial.begin(9600);• Primero programar } Arduino con el void loop() { siguiente código (sí, Serial.println(analogRead(0)); es realmente delay(20); pequeño): }
  20. 20. Para graficar con Processing• Ahora cerrar la aplicación de Arduino y abrir Processing• Volver a checar en Device Manager qué puerto tenemos asignado al COM USB• Pegar el código de la página poniéndo atención en la sección que aparece en negrita en la siguiente diapositiva:
  21. 21. import processing.serial.*;Serial port; String buff = "";int NEWLINE = 10; // Store the last 64 values received so we can graph them.int[] values = new int[64];void setup() { size(512, 256);println("Available serial ports:");println(Serial.list());port = new Serial(this, Serial.list()[0], 9600);// If you know the name of the port used by the Arduino board, you// can specify it directly like this.//port = new Serial(this, "COM1", 9600); }void draw() { background(53); stroke(255);for (int i = 0; i < 63; i++)line(i * 8, 255 - values[i], (i + 1) * 8, 255 - values[i + 1]);
  22. 22. Debemos obtener esto:
  23. 23. Ejercicio• Lograr escribir en la misma ventana de la gráfica el valor de la altura de la línea (el rango es de 0 a 255)• Se sugiere promediar algunos valores para que el valor no oscile• Se sugiere leer y entender el ejemplo examples > basics > typography > words
  24. 24. El resultado debe ser así:
  25. 25. Trabajo Independiente• Investigar e implementar demostraciones de las siguientes técnicas:• Switch debouncing• Habilitar resistencia de Pull-Up para entradas digitales
  26. 26. Ejercicios Sugeridos• Programar y mostrar un contador binario de 4 bits• Programar secuencias de LED’s (incrementos lineales, El Auto Increíble, etc.)• Reducir y aumentar el brillo de un LED con PWM• Programar un vúmetro con una entrada análoga y 8 LED’s
  27. 27. Ejercicios Sugeridos• Cargar la librería LCD para enviar mensajes a una pantalla de cristal líquido• Leer el valor de temperatura de un sensor LM35• Escribir ese valor en el display LCD
  28. 28. Ejercicios Sugeridos• Utilizando Processing lograr variar la intensidad de un LED moviendo el mouse

×