croma 2014 ses i on 3 practica

Upload: kabalks

Post on 13-Apr-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    1/26

    ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Sesin 3 (Prctica) Sensores

    Actuadores

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    2/26

    ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    ndice

    1. Sensoresa. Infrarrojosb. Ultrasonidos

    2. Actuadoresa. Servomotorb. Motores

    3. Comunicacin

    a. Infrarrojos (mando a distancia)a. Control de actuadores

    b. Bluetooth (AppInventor)a. Sensores adicionales

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    3/26

    ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Referencia

    Para dudas referentes a cmo usar unafuncin o a qu funciones hay disponibles http://arduino.cc/en/Reference/HomePage

    http://arduino.cc/en/Reference/HomePagehttp://arduino.cc/en/Reference/HomePagehttp://arduino.cc/en/Reference/HomePage
  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    4/26

    ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Sensores

    Infrarrojos Tres mdulos KY-033 Emisor-Receptor de infrarrojos Potencimetro para sensibilidad del sensor

    Resistencia variable de Puente de Wheatstone

    Pines Tierra (G) Alimentacin (V+) Seal (S)

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    5/26

    ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Sensores

    Infrarrojos (Instalacin y conexin) No hay hoja de caractersticas en internet Suelen ser sensores analgicos

    Conectamos los pines de seal del sensor a lospines A3, A4 y A5 de la Sensor Shield

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    6/26

    ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    InfrarrojosCdigo Lecturas Analgicas#include

    #define IR_LEFT 3

    #define IR_CENTER 4

    #define IR_RIGHT 5

    int L,C,R;

    void setup() {

    Serial.begin (57600);}

    void loop() {

    //read the input

    L = analogRead(IR_LEFT);

    C = analogRead(IR_CENTER);

    R = analogRead(IR_RIGHT);

    //print the values

    Serial.print (L);

    Serial.print(",");

    Serial.print (C);Serial.print(",");

    Serial.println (R);

    }

    Sensores

    Qu lecturas tenemos en el terminal Serie?

    Qu ocurre si ajustamos el potencimetro?

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    7/26 ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    InfrarrojosCdigo Lecturas Digitales (cambiar pines a D9, D10 y D11)#include

    #define IR_LEFT 11

    #define IR_CENTER 10

    #define IR_RIGHT 9

    int L,C,R;

    void setup() {

    Serial.begin (57600);pinMode (IR_LEFT,INPUT);

    pinMode (IR_CENTER,INPUT);

    pinMode (IR_RIGHT,INPUT);

    }

    void loop() {

    //read the input

    L = digitalRead(IR_LEFT);

    C = digitalRead(IR_CENTER);

    R = digitalRead(IR_RIGHT);

    //print the values

    Serial.print (L);

    Serial.print(",");

    Serial.print (C);Serial.print(",");

    Serial.println (R);

    }

    Sensores

    Qu tenemos que hacer para seguir una lnea?

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    8/26 ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Sensores

    Ultrasonidos Sensor HC-SR04 Cuatro pines

    Tierra (GND) Alimentacin (VCC) Disparador o trigger(Trig) Receptor (Echo)

    Especificaciones ngulo efectivo: 15 Rango distancia: 2-500 cm Resolucin: 1 cm Frecuencia del

    ultrasonido: 40 kHz

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    9/26 ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Sensores

    Ultrasonidos (Instalacin y conexin) ftp://imall.iteadstudio.com/Modules/IM120628012_

    HC_SR04/DS_IM120628012_HC_SR04.pdf

    Necesita dos pines digitales: triggerenva un

    pulso, mientras que echolo lee Conectamos el pin de trigger a D9 y el echo a D10

    ftp://imall.iteadstudio.com/Modules/IM120628012_HC_SR04/DS_IM120628012_HC_SR04.pdfftp://imall.iteadstudio.com/Modules/IM120628012_HC_SR04/DS_IM120628012_HC_SR04.pdfftp://imall.iteadstudio.com/Modules/IM120628012_HC_SR04/DS_IM120628012_HC_SR04.pdfftp://imall.iteadstudio.com/Modules/IM120628012_HC_SR04/DS_IM120628012_HC_SR04.pdfftp://imall.iteadstudio.com/Modules/IM120628012_HC_SR04/DS_IM120628012_HC_SR04.pdf
  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    10/26 ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Librera Ultrasonic

    Fichero de cabecera http://imall.iteadstudio.com/electronic-

    components/sensor/distance-sensors/im120628012.html/* Ultrasonic.h - Library for HR-SC04 Ultrasonic Ranging Module.

    Created by ITead studio. Alex, Apr 20, 2010.

    iteadstudio.com */

    #ifndef Ultrasonic_h

    #define Ultrasonic_h#define CM 1

    #define INC 0

    class Ultrasonic

    {

    public:

    Ultrasonic(int TP, int EP);

    long Timing();long Ranging(int sys);

    private:

    int Trig_pin;

    int Echo_pin;

    long duration,distance_cm,distance_inc;

    };

    #endif

    http://imall.iteadstudio.com/electronic-components/sensor/distance-sensors/im120628012.htmlhttp://imall.iteadstudio.com/electronic-components/sensor/distance-sensors/im120628012.htmlhttp://imall.iteadstudio.com/electronic-components/sensor/distance-sensors/im120628012.htmlhttp://imall.iteadstudio.com/electronic-components/sensor/distance-sensors/im120628012.htmlhttp://imall.iteadstudio.com/electronic-components/sensor/distance-sensors/im120628012.htmlhttp://imall.iteadstudio.com/electronic-components/sensor/distance-sensors/im120628012.htmlhttp://imall.iteadstudio.com/electronic-components/sensor/distance-sensors/im120628012.htmlhttp://imall.iteadstudio.com/electronic-components/sensor/distance-sensors/im120628012.html
  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    11/26 ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Ultrasonidos Cdigo comprobacin de funcionamiento

    #include

    #define US_TRIG 9

    #define US_ECHO 10

    Ultrasonic ultrasonic(US_TRIG, US_ECHO);void setup() {

    Serial.begin(57600);

    }

    void loop() {

    Serial.print(ultrasonic.Ranging(CM));

    Serial.println(" cm");delay(100);

    }

    Sensores

    Vale para algo el retardo del final? Qutalo a ver qu pasa

    Une este cdigo al de IR para mostrar ambas medidas

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    12/26 ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Sensores

    Por si se os queda corto http://dx.com/p/arduno-37-in-1-sensor-

    module-kit-black-142834(36,28)

    http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834
  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    13/26 ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Actuadores

    Servomotor Tower Pro SG90

    Peso: 9g Dimensiones: 23x12.2x29mm Torque: 1.8kg/cm(4.8V) Velocidad de operacin: 0.1sec/60degree(4.8v) Voltaje de funcionamiento: 4.8V Rango de temperaturas: 055

    Rango de giro: 180 Giro de barrido del sensor de ultrasonidos

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    14/26 ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Actuadores

    Servomotor Librera standard Servo.h. Atencin:

    The Servo library supports up to 12 motors on most Arduinoboards and 48 on the Arduino Mega. On boards other thanthe Mega, use of the library disables analogWrite() (PWM)functionality on pins 9 and 10, whether or not there is a Servoon those pins.

    Slo necesita una salida digital Conectar en pin D8 (naranja)

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    15/26 ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Control de posicinEjemplo knobmodificado para usar puerto serie

    #include #include #define SERVO_US 8

    Servo myservo; // servo objectint val; // value from serial

    void setup(){

    // Indica el pin del servo

    myservo.attach(SERVO_US);Serial.begin(57600);Serial.println("Ang(0-180)");

    }

    void loop(){if (Serial.available()){val = Serial.parseInt();Serial.print("Recibido: ");Serial.println(val, DEC);myservo.write(val);

    }}

    Actuadores

    Aade un retardo que tenga en cuenta cunto tiempo

    tardar el servo en llegar a la posicin indicada. Pista:

    debers hacer uso de la funcin myservo.read()

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    16/26 ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    BarridoEjemplo sweepmodificado para no bloquear tareas mientras barre

    #include #include #define SERVO_US 8 // Pin servo

    Servo myservo; // servo object

    int val = 0;int inc = 1;

    void setup()

    {myservo.attach(SERVO_US);}

    void loop(){myservo.write(val);delay(5);// Vemos si hay que cambiar

    la direccionif (val==180) {inc = -1;}if (val==0) {inc = 1;}// Actualizamos la posicion

    val += inc;}

    Actuadores

    Monitoriza la posicin del servo por puerto serie

    Aade el sensor de rango para encontrar el ngulo en que

    se encuentra el objeto ms cercano (Difcil)

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    17/26 ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Actuadores

    Motores DC Polaridad de los motores

    No provoca daos en el motor, pero cambia elsentido de giro

    Indicar movimiento continuo hacia delante Si alguno de los motores gira hacia atrs, tiene la

    polaridad al revs

    Sin colocar an las ruedas!!!

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    18/26 ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Motores (conexin)

    SensorShield

    MotorController

    D2 IN4D5 (PWM) ENB

    D4 IN3D3 IN2

    D6 (PWM) ENA

    D7 IN1

    Cuidado conlos colores:MarrnD5AmarilloD3

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    19/26 ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Comprobacin de polaridadMovimiento de los cuatro motores en el mismo sentido

    // Motor A#define DIR1MA 7#define DIR2MA 3#define ENABLEA 6// Motor B#define DIR1MB 4#define DIR2MB 2#define ENABLEB 5void setup (){

    pinMode (DIR1MA, OUTPUT);... // Todos en modo OUTPUTpinMode (ENABLEB, OUTPUT);

    }void loop (){

    avanza();

    }

    void avanza(){digitalWrite(DIR1MA,LOW);digitalWrite(DIR2MA,HIGH);digitalWrite(DIR1MB,LOW);digitalWrite(DIR2MB,HIGH);digitalWrite(ENABLEA,HIGH);digitalWrite(ENABLEB,HIGH);

    }void retrocede()

    { digitalWrite(DIR1MA,HIGH);digitalWrite(DIR2MA,LOW);digitalWrite(DIR1MB,HIGH);digitalWrite(DIR2MB,LOW);digitalWrite(ENABLEA,HIGH);digitalWrite(ENABLEB,HIGH);

    }

    Actuadores

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    20/26 ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Actuadores

    Motores DC Ejecuta el cdigo y comprueba la polaridad Coloca las ruedas y asegrate de que no rozan

    con la estructura Antes de poner el robot en el suelo (se

    estrellara), cambia el programa anterior para1. Mover el robot alternativamente hacia delante y

    hacia atrs cada segundo

    2. Mover el robot describiendo un cuadrado1. Aadir dos funciones para girar a izquierda y a

    derecha2. Calcular el tiempo que tarda en girar 90 en cada

    sentido

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    21/26 ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Actuadores

    Motores DC Control de velocidad mediante modulacin de

    ancho de pulso(PWM) Arduino no tiene salidas

    analgicas (caras) ENAcontrola la velocidad

    del motor A ENBcontrola la velocidad

    del motor B Duty Cycle (porcentaje de

    ciclo en nivel alto)

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    22/26 ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Motores DCEjemplo usando salidas PWM

    // Motor A#define DIR1MA 7#define DIR2MA 3#define ENABLEA 6

    // Motor B#define DIR1MB 4#define DIR2MB 2#define ENABLEB 5void setup (){pinMode (DIR1MA, OUTPUT);

    ... // Todos en modo OUTPUT}void loop (){

    avanza(180); delay(1000);retrocede(180); delay(1000);

    }

    void avanza(int speed){

    digitalWrite(DIR1MA,LOW);digitalWrite(DIR2MA,HIGH);

    digitalWrite(DIR1MB,LOW);digitalWrite(DIR2MB,HIGH);analogWrite(ENABLEA,speed);analogWrite(ENABLEB,speed);

    }void retrocede(int speed){

    digitalWrite(DIR1MA,HIGH);digitalWrite(DIR2MA,LOW);digitalWrite(DIR1MB,HIGH);digitalWrite(DIR2MB,LOW);analogWrite(ENABLEA,speed);analogWrite(ENABLEB,speed);

    }

    Actuadores

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    23/26 ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Motores DCEjemplo con velocidades variables: Qu hace el programa?

    // Motor A...unsigned long time;int speed;int dir;

    void setup (){pinMode (DIR1MA, OUTPUT);...time = millis ();speed = 0;dir = 1;

    }void loop (){analogWrite (ENABLEA, speed);analogWrite (ENABLEB, 255-speed);// set directionif (1 == dir) {

    digitalWrite (DIR1MA, LOW);

    digitalWrite (DIR2MA, HIGH);digitalWrite (DIR1MB, HIGH);digitalWrite (DIR2MB, LOW);

    }else {

    digitalWrite (DIR1MA, HIGH);digitalWrite (DIR2MA, LOW);digitalWrite (DIR1MB, LOW);digitalWrite (DIR2MB, HIGH);

    }if (millis () - time> 3000) {time = millis ();speed += 20;

    if (speed> 255){speed = 0;}

    if (1 == dir){dir = 0;}

    else{dir = 1;}

    }

    }

    Actuadores

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    24/26

    ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Infrarrojos (Mando a distancia): Control de movimiento// Librerias#include #include // Motor A#define DIR1MA 7#define DIR2MA 3#define ENABLEA 6// Motor B#define DIR1MB 4#define DIR2MB 2

    #define ENABLEB 5// Ultrasonidos#define US_SERVO 8// Infrarrojos (PINES ANALOGICOS)#define IR_L 3#define IR_C 4#define IR_R 5// Otros pines#define LED 13#define RECV_PIN 11

    // Variables IRIRrecv irrecv(RECV_PIN);decode_results results;long lectura=0;// Variables USServo myservo;void setup(){pinMode(LED, OUTPUT);... //Todos los pines digitales a OUTPUT

    myservo.attach(US_SERVO);

    Serial.begin(57600);Serial.println("Aceptamos barco:");irrecv.enableIRIn(); // Start receiver

    }void loop() {if (irrecv.decode(&results)) {

    Serial.println(results.value, HEX);if (results.value!=0xFFFFFFFF) {lectura = results.value;

    }

    switch(lectura) {case 0xFF6897:digitalWrite(LED, HIGH);

    break;case 0xFF9867:digitalWrite(LED, LOW);

    break;case 0xFF629D:avanza(200);delay(200);

    break;

    default:detente();diqueno(3);

    }irrecv.resume(); // Receive the next value

    }}void avanza(int vel) { ... }void detente() { ... }void diqueno(int veces) { ... }

    Comunicacin

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    25/26

    ETSIIUCLM Curso de Robtica Mvil con Arduino, 3 Edicin Febrero 2014

    Proyecto

    Navegacin autnoma El robot debe moverse hacia delante,

    buscando obstculos con el sensor deultrasonidos

    Si encuentra un obstculo, retrocedeligeramente y gira 90

    El robot sigue movindose hacia delante

  • 7/21/2019 Croma 2014 Ses i on 3 Practica

    26/26

    Fin de latercerasesin de

    prctica

    FIN