Taller 1

11
TALLERES DE ARDUINO CAS 1 TALLER DE ARDUINO #N1 ELEMENTOS Y FUNCIONES BÁSICAS

description

taller de arduino introduccion

Transcript of Taller 1

  • TALLERES DE ARDUINO CAS

    1

    TALLER DE ARDUINO #N 1 ELEMENTOS Y FUNCIONE S BSICAS

  • TALLERES DE ARDUINO CAS

    2

    NDICE DE CONTENIDOS

    introduccin ........................................................................................................................................... 3

    Descripcin ........................................................................................................................................ 3

    Objetivos ............................................................................................................................................. 3

    Metodologa ....................................................................................................................................... 3

    Algunas Reflexiones ............................................................................................................................ 4

    CAS ........................................................................................................................................................ 4

    Redec .................................................................................................................................................... 4

    Open source y colaboracin ........................................................................................................ 5

    Experiencias ........................................................................................................................................... 6

    Experiencia #1: Blink ..................................................................................................................... 6

    Experiencia #2: Botn ................................................................................................................... 7

    Experiencia #3: fade ....................................................................................................................... 9

    Anexos ....................................................................................................................................................10

    Anexos a: cdigos de experiencias ..........................................................................................10

  • TALLERES DE ARDUINO CAS

    3

    INTRODUCCIN

    DESCRIPCIN

    En este taller se aprender la estructura estndar de una funcin en el programa Arduino, adems de las funciones bsicas relacionadas a componentes digitales.

    OBJETIVOS

    - Aprender a crear una funcin en el comando Arduino - Aprender a usar protoboard y elementos electrnicos digitales bsicos. - Crear intuicin de cmo programar para lograr un objetivo determinado.

    METODOLOGA

    Cada experiencia cuenta con el marco terico necesario para realizar lo pedido. El expositor lo explicar una vez frente a todos, para que luego cada uno se la ingenie para lograr el objetivo.

  • TALLERES DE ARDUINO CAS

    4

    ALGUNAS REFLEXIONES

    CAS

    El grupo Ciencia Aplicada a la Sociedad o CAS es una comunidad que busca la auto transformacin y la obtencin de los conocimientos necesarios para que cada ser humano tenga la capacidad de existir en un mundo con acceso a los recursos necesarios para el buen vivir, de forma de que todas las necesidades bsicas de las personas se encuentren satisfechas en una relacin simbitica mutualista con el planeta tierra. De esta forma la sociedad se encontrar en un contexto propicio para un desarrollo personal de cada individuo y un desarrollo de la humanidad basado en la colaboracin y la creatividad, conceptos ligados profundamente al Open Source.

    Este objetivo se pretende lograr a travs de la materializacin de los conceptos e ideas, charlas, talleres, proyectos, empoderamiento cognitivo y tecnolgico e iniciativas que presenten un modelo colaborativo por sobre el actual modelo competitivo.

    Contctanos en:

    [email protected] www.facebook.com/cas.concienciasocial

    Tenemos un grupo interno de Facebook donde mantenemos una actividad permanente, si quieres unirte envanos un mensaje al Facebook anterior.

    REDEC

    La Red De Evolucin Colaborativa o RedEC es una red de organizaciones y personas que se mueven entorno al objetivo comn de llevar a la sociedad a un nuevo nivel en el que existan las condiciones necesarias para desarrollarse personal y colectivamente. Esto contempla un nuevo orden econmico, poltico y cultural.

    Por lo anterior, RedEC pretende impulsar el desarrollo de la humanidad hacia un estado en el que las necesidades de los individuos y grupos se encuentren satisfechas,

    entendiendo como necesidad todo lo que siendo satisfecho permite a un humano se libre y por libertad el que un individuo o grupo pueda hacer lo que su voluntad le dicte, sin ser sometido ni someter a nadie ms.

  • TALLERES DE ARDUINO CAS

    5

    OPEN SOURCE Y COLABORACIN

    El concepto de Open Source se asocia a la accin de compartir el detalle de diseo, fabricacin e implementacin de alguna creacin con la comunidad, ya sea software, hardware, arte, ideas o cualquier obra de creacin que se pueda compartir.

    De la utilizacin de esta idea han emergido crecientes fenmenos culturales de gran impacto en mbitos polticos, sociales, econmicos, cientficos etc.

    Probablemente uno de los fenmenos ms relevantes del Open Source, es su aspecto colaborativo. Cuando una persona comparte los derechos sobre los detalles de alguna creacin o idea, todas las personas tendrn la capacidad de observar esa creacin, estudiarla, replicarla y mejorarla, para compartir nuevamente este trabajo. De esta manera se genera un esquema de desarrollo en donde colectivamente se implementan mejoras sucesivas, entre personas que no necesariamente poseen una relacin fuera de la obra. Es importante notar que la mayor parte de esta forma de trabajo no proviene de un incentivo monetario, sino que por el inters puramente colaborativo, ya sea con el fin de contribuir a alguna causa, o simplemente por la satisfaccin obtenida de crear y compartir.

    El da de hoy vivimos en un modelo basado en la competencia que se expresa socio-econmicamente en el capitalismo, que ha desencadenado en notables injusticias y perjuicios a la sociedad y al planeta tierra, como la sobreexplotacin de los recursos naturales (limitados), una cultura basada en el consumismo y una produccin intencionalmente obsolescente, por decir algunos. Un esquema colaborativo presenta una alternativa en la que no existe la necesidad de ganar a otro, si no que se anan fuerzas en torno a un objetivo comn con el foco de la creacin de un objeto de alta calidad y eficiencia. Actualmente existe un distanciamiento entre el usuario y el producto del mercado, ya que se desconoce su funcionamiento, sus contenidos y sus procesos y suelen deteriorarse rpidamente. Curioso notar que uno de los ndices del sistema actual para medir el bienestar social se relacione con la cantidad de dinero que cada individuo posee, dejando de lado su desarrollo en trminos cualitativos o valricos, como por ejemplo de su creatividad. En la prctica esto sugiere que el mundo puede funcionar en base a otro tipo de motivaciones fuera de las lucrativas o competitivas que son perpetuadas por el sistema el da de hoy.

    Algunos links de iniciativas motivadas por estos principios:

    Arduino: www.arduino.cc Instructables: www.instructables.com Open source ecology: www.opensourceecology.org Open source hardware association: www.oshwa.org Raspberry Pi: www.raspberrypi.org

  • TALLERES DE ARDUINO CAS

    6

    EXPERIENCIAS

    EXPERIENCIA #1: BLINK

    INTRODUCCIN:

    En esta experiencia se prender y apagar un LED, con lo que se aprender a usar las funciones digitalWrite y pinMode y el pin digital como OUTPUT.

    PRCTICA

    Conecte un led a un pin digital del Arduino. El circuito equivalente es el siguiente:

    TEORA

    Electrnica:

    Conexin de LED: Dispone de dos patas de conexin, donde la ms larga es la positiva, por lo que debe ir al pin, y la ms corta es el negativo, por lo que debe conectarse a tierra.

    Resistencia: Es importante su conexin para disminuir la corriente que fluye por el led, evitando as que se queme.

    Conexin en protoboard: Los pines donde se conectan los cables en la protoboard estn conectados entre s de acuerdo a la siguiente imagen:

  • TALLERES DE ARDUINO CAS

    7

    Se usan colores para ilustrar que pines estn conectados entre s, adems se ilustra con una separacin (lnea negra) que la mitad de la protoboard esta desconectada de la otra mitad, por lo que si se desea definir como tierra, por ejemplo los pines negros y azules, se debe conectar ambos lados de la protoboard con un cable.

    Programacin:

    void setup() {} : Funcin en la que se inicializan los pines de entrada y salida, adems de las condiciones iniciales. Slo se ejecuta una vez.

    void loop() { } : Funcin que forma el cuerpo principal de tu programa, una vez que se finaliza se vuelve a ejecutar. pinMode(#Pin, X) : Indica que el pin nmero #Pin enva 5V (X=OUTPUT) o recibe hasta 5V(X=INPUT)

    digitalWrite(#Pin, X) : Indica que el pin nmero #Pin enva 5V (X=HIGH) o enva 0V (X=LOW). Slo es usable si el pin es de salida (OUTPUT) y digital.

    delay(#tiempo) : Indica que el programa esperar una cantidad #tiempo de milisegundos.

    CDIGO

    Con las funciones anteriores escriba un cdigo que haga que el led se apague y prenda con un segundo de diferencia.

    Cdigo en Anexos.

    EXPERIENCIA #2: BOTN

    INTRODUCCIN

    En esta experiencia se aprender a prender un led al apretar un botn. Las funciones aprendidas sern if y digitalRead.

    PRCTICA

    Al circuito anterior agregue un botn conectado por un lado a 5[V] y por el otro a un pin digital y a tierra, pasando por una resistencia.

    El circuito a realizar es el siguiente

  • TALLERES DE ARDUINO CAS

    8

    TEORA

    Electrnica

    Pulsador: Dispositivo que al ser presionado cortocircuitea dos de sus terminales (pares sealados en la figura a continuacin). En caso contrario se encuentra en circuito abierto (no fluye corriente por l).

    Programacin

    digitalRead(#Pin) : Devuelve HIGH si recibe 5[V] o LOW si recibe 0[V]. Slo es usable si el pin es de entrada (INPUT) y digital.

    if(){} : Si ocurre la instruccin dentro del parntesis, se ejecuta la accin entre llaves.

    CDIGO

    Escriba un cdigo que haga que al estar el botn en estado HIGH se ejecute la funcin creada en la Experiencia 1. De lo contrario, el led se encontrar apagado.

    Para ayuda ver Anexos.

  • TALLERES DE ARDUINO CAS

    9

    EXPERIENCIA #3: FADE

    INTRODUCCIN

    En esta experiencia se proceder igual que la Experiencia 1, pero cuando se presione el pulsador se controlar la luminosidad de un led a travs de un pin digital PWM.

    PRCTICA

    Se conecta un led de forma normal, pero el pin digital al que se conecte debe ser PWM (en arduino stos estn sealados con una colita de chancho al lado del nmero del pin). Adems, se conecta un pulsador de la forma explicada en la Experiencia 2.

    TEORA

    PWM: Modulacin por ancho de pulso. Es una onda digital cuadrada donde la frecuencia es constante, pero vara el tiempo durante el cual la seal est encendida.

    CDIGO

    Si el pulsador est en su estado natural el led actuar con un blink. Si se pulsa, el pin PWM regular la intensidad de luz de acuerdo al ancho de su pulso.

    Ayuda en Anexos.

  • TALLERES DE ARDUINO CAS

    10

    ANEXOS

    ANEXOS A: CDIGOS DE EXPERIENCIAS

    CDIGO EXPERIENCIA #1:

    /* Haremos que un Led parpadee

    Definiremos el nombre de nuestro led a prender

    y le asignaremos el pin al que esta conectado.*/

    int pinLed=8;

    // Ajustemos las entradas y salidas de voltaje.

    void setup(){

    pinMode(pinLed, OUTPUT);

    }

    // Colocamos lo que se repetir eternamente.

    void loop(){

    //Encendemos el led.

    digitalWrite(pinLed, HIGH);

    //Esperamos 1000ms (=1segundo).

    delay(1000);

    //Apagamos el Led.

    digitalWrite(pinLed, LOW);

    //Volvemos a esperar 1s.

    delay(1000);

    //Ahora el loop comienza nuevamente!

    }

    CDIGO EXPERIENCIA #2:

    int led=8;

    int boton=9;

    int estadoBoton;

    void setup(){

    //Se declara la salida.

    pinMode(led,OUTPUT);

    //Se define la entrada.

    pinMode(boton,INPUT);

    //Se da una condicin inicial.

    digitalWrite(led,LOW);

    }

    void loop(){

    //Se lee si el botn ha sido presionado.

    estadoBoton=digitalRead(boton);

    //Si fue presionado, dir HIGH.

    //En Arduino HIGH es igual a true, por lo que se puede usar

    //como condicin estadoBoton==HIGH, o simplemente estadoBoton.

  • TALLERES DE ARDUINO CAS

    11

    if(estadoBoton){

    digitalWrite(led,HIGH);

    delay(1000);

    digitalWrite(led,LOW);

    delay(1000);

    }

    }

    CDIGO EXPERIENCIA #3:

    int led=8;

    int boton=9;

    void setup(){

    //Se declara la salida.

    pinMode(led,OUTPUT);

    //Se define la entrada.

    pinMode(boton,INPUT);

    //Se da una condicin inicial.

    digitalWrite(led,LOW);

    }

    void loop(){

    if(digitalRead(boton)==0){

    //Blink.

    digitalWrite(led,HIGH);

    delay(500);

    digitalWrite(led,LOW);

    delay(500);

    }

    else{

    //Fade.

    for(int i=0;i