viernes, 31 de mayo de 2019

Resumen del año

Hola, a mi personalmente me ha gustado mucho esta tercera evaluación puesto que hemos realizado una cosa diferente llamada programación. Hemos estado trabajando con processing y arduino,  es lo que me ha gustado más porque ya tengo una pequeña base sobre la programación.

A continuación os dejo la definición de variable y tipos de variable:


  1. Variable: una variable es una forma de nombrar y almacenar un valor para su uso posterior por parte del programa, como los datos de un sensor o un valor intermedio utilizado en un cálculo.



  • char, se utilizan para almacenar caracteres, ocupan un byte.
  • byte, pueden almacenar un número entre 0 y 255.
  • int, ocupan 2 bytes (16 bits), y por lo tanto almacenan número entre 2-15 y 215-1, es decir, entre -32,768 y 32,767.
  • unsigned int, ocupa trambién 2 bytes, pero al no tener signo puede tomar valores entre 0 y 216-1, es decir entre 0 y 65,535.
  • long, ocupa 32 bits (4 bytes), desde -2,147,483,648 a 2,147,483,647.
  • unsigned long.
  • float, son números decimales que ocupan 32 bits (4 bytes). Pueden tomar valores entre -3.4028235E+38 y +3.4028235E+38.
  • double, también almacena números decimales, pero disponen de 8-bytes (64 bit).
  • boolean, una variable booleana que puede tener solamente dos valores: true (verdadero) o false
  • stres un tipo de datos que es usado para guardar cadenas de caracteres.  

  • Resultado de imagen de fin








    Casa domótica

    Resultado de imagen de logo arduino

    Mediante la plataforma TINKERCAD en la parte de CIRCUITS, debéis realizar un proyecto con arduino:
    El proyecto debe ser tal que:
    - En función del voltaje de entrada de un LDR (entrada voltaje ANALÓGICO de 0 a 1023) se ilumine un LED con intensidad variable, es decir utilizando una entrada digital PWM (salida ANALÓGICA de 0 a 255)
    - Utilizad las funciones analogWrite y map. Buscadlo si no sabéis cómo utilizarlo.
    - Antes de todo deberéis calibrar el LDR

    Esta es una imagen del esquema del proyecto:

    Aquí el código de la casa domótica.

    jueves, 30 de mayo de 2019

    Coche fantástico



    Resultado de imagen de arduino logo




    Mediante la plataforma TINKERCAD en la parte de CIRCUITS, debéis realizar un proyecto con arduino:
    El proyecto debe ser tal que:
    - Al apretar un botón, una serie de 5 LEDS deben encenderse y apagarse como hacía el coche fantástico (knight rider).
    Os pongo un ejemplo. 


    El esquema del coche fantástico está aquí.

    Resultado de imagen de arduino coche fantastico


    Podeis encontrar el código aquí.

    Semáforo



    Resultado de imagen de arduino logo





    Realizaremos un semáforo con unos Leds. Es ideal para iniciarnos en la programación y el montaje de circuitos porque, como veréis, es muy fácil.
    Empezaremos nuestro primer proyecto describiendo los elementos que vamos a necesitar:

    • 1 x Arduino UNO R3
    • 1 x Protoboard
    • 1 x Led rojo 3mm
    • 1 x Led amarillo 3mm
    • 1 x Led verde 3mm
    • 3 x resistencias de 220Ω. Cables para conectar todo.

    Os enseño el esquema del semáforo.




    Abriremos nuestro IDE Arduino y escribiremos el programa:




    Con la sentencia int estamos declarando una variable numérica entera, para poderla usar después en nuestro código.
    El comando delay hace que el programa pare un tiempo determinado. Éste lo definiremos, en milisegundos, dentro de los paréntesis.

    Las funciones pinMode y digitalWrite se explicarán en el siguiente post, salidas , con detalle.


    martes, 28 de mayo de 2019

    Pelota rebotadora



    Este es el proyecto de la pelota rebotadora:

    Debemos realizar un programa en processing que dibuje una bola que empiece cayendo desde arriba y al llegar abajo rebote para ir hacia arriba de nuevo. Además debéis dibujar una especie de canal sobre el que irá canalizada por medio de dos rectángulos coloreados de rojo y azul.

    - Tenéis que revisar la instrucción IF-ELSE

    - Otra pista es poner la coordenada Y en una variable que ira aumentando (o disminuyendo) en cada pasada del LOOP, hasta que sea la altura o el suelo de la pantalla.

    Aquí te puedes bajar el código que hicimos.


    Mostrando PROCESSINGBola cayendo.gif








    lunes, 27 de mayo de 2019

    Bloque 3. Arduino entradas analógicas.

    Resultado de imagen de arduino logo
    Estamos en el tercer bloque, llamado arduino entradas analógicas. El panel de control se pueden obtener valores analógicos de los pines analógicos. En la placa podemos encontrar un grupo de pines marcados como ANALOG IN (llamados de A0 a A5). Sin embargo, leyendo 0V o la tensión de alimentación, estos pines se pueden ver en valoren entre 0 y 1023. Si no hay voltaje en el pin, la lectura es 0. Si aplicamos la mitad de la tensión de alimentación, esta será de 512 y con un voltaje máximo de 1023. Con la función analogRead () , que sustituye la función digitalRead ().





    Las entradas analógicas se encuentran en la parte inferior y son enumeradas de A0 a A5. Podemos encontrar los sensores en forma de potenciómetros, inflarrojos, LDR...





    Para realizar un proyecto de arduino,  debemos dejar lista primero toda la parte electrónica, quiero decir, dejar bien conectados los sensores, actuadores, cables... Después es el momento de insertar el código de la placa.
    Se coge un cable USB y se conecta desde la placa al ordenador, después el puerto serie actúa e intercambia los datos con el ordenador. También con la comunicación en serie se puede ser utilizada para sofwares diferentes.

    En este bloque no hemos realizado ningún proyecto

    viernes, 24 de mayo de 2019

    Bloque 2. Arduino, entradas digitales


    Resultado de imagen de arduino logo


    En este bloque hablaremos sobre arduino. En este programa se utilizan unas series de tablas, pero nosotros usaremos la 101. Las 101 tablas son pequeñas computadoras con las que puede leer información de una variedad de sensores, así como también controlar luces, motores y otras cosas.



    El tablero tiene varios pines que están numerados y agrupados por funcionalidad. Hay un grupo de 14 pines (numerados de 0 a 13) que son los pines digitales y otro grupo de 6 pines (etiquetados de A0 a A5) que son los analógicos.
    Usamos el programa arduino, que es parecido a processing. Se llama IDE, en el escribimos los códigos, se cargan en el tablero de control y el programa será ejecutado en el tablero.





    Son los sensores y los actuadores. El panel de control leerá uno de dos estados, ALTO ('1') o BAJO ('0') dependiendo de si el botón se está presionando o no. Una salida digital significa que la placa está escribiendo datos digitales en un actuador, por ejemplo, un LED. Para encender un LED en el tablero de control, escriba ALTO , para apagarlo, el tablero de control escribe ALTO .














    Esto es un sistema binario, además, los sensores y los actuadores usan este sistema para realizar sus funciones.












    En este bloque hemos realizado el proyecto de Simón dice. Ahí os dejo un pequeño tutorial de como se hace el proyecto. Consiste en que cada led se encienda y después vas pasando por cada led y eliges el led correspondiente (el que se ha encendido anteriormente)

    MATERIALES





    • 1 x placa controladora
    • 1 x Shield Educativa
    • 1 x breadboard
    • 1 x módulo botón
    • 1 x potenciómetro
    • 1 x piezo
    • 5 x LED
    • 5 x resistencia 220 ohm
    • 1 x cable de módulo
    • 15 x cable de prototipado









    Aquí os dejo los códigos del proyecto:

    /*
    * SimonSays
    * 
    * Test your memory with this game!
    *
    * LEDs will blink in a pattern that you have to remember and repeat. 
    * If you get it right, the game gets more and more challenging. 
    *
    * (c) 2013-2016 Arduino LLC.
    */
    
     
    #include <EducationShield.h>
    
    /*
      An array of pin numbers to which LEDs are attached
      the defaults are 2 to 6 but you can choose any of the digital 
      pins. 
    */
    int ledPins[] = {2, 3, 4, 5, 6};
    int pinCount = 5;
    VUMeter vuMeter;
    
    Knob pot=Knob(A0);//a knob is connected to A0
    
    Button button = Button(9); //a button is connected to port D9
    
    Melody piezo=Melody(8);//a piezo is connected to digital pin 8
    
    //Set the game parameters
    int turns_begin=2;//a new game starts with 2 turns
    int turns_max=10;//the most difficult game has 10 turns
    
    int game[10];//array for storing the "simon says"
    int turns=2;//for storing the number of turns in current game
    int blinkTime=500;//how fast does "simon says" blink
    
    void setup(){
      //initialize the components
      vuMeter.config(pinCount, ledPins);
      vuMeter.begin();
      pot.setLevels(5);
      button.begin();
      
      //Create a random seed, so we can call random() later.
      randomSeed(analogRead(A5));
    }
    void loop(){
      newGame();
      simonSays();
      delay(1000);
      getInputs();
    }
    
    void newGame(){
      vuMeter.blinkAll(200, 3);
      vuMeter.clear();
      delay(500);
      //Generate simon says, it'll be stored in an array
      //So we can compare with player's input later
      for(int i=0;i<turns;i++){
        game[i]=random(pinCount);
      }
    }
    void simonSays(){
      //Display simon says to the player. 
      for(int i=0;i<turns;i++){
        vuMeter.on(game[i]);
        delay(blinkTime);
        vuMeter.off(game[i]);
        delay(blinkTime);
      }
    }
    void getInputs(){
      //Get "i" inputs where "i" matches the number of 
      //simon says in this round.
      for(int i=0;i<turns;i++){
        int input;
        //button.released() stops the program, so
        //let's do it in short pulses, in between 
        //we can change the vuMeter display.
        while(!button.released(10)){
         vuMeter.clear();
         vuMeter.on(pot.getLevel());
        }
        //When button is released, get the adjusted 
        //value from the knob
        input=pot.getLevel();
        if(input==game[i]){
          //if your input is right, play a score sound
          //and continue.
          piezo.effect_score();
        }else{
          //Otherwise, gameover. Stop the function from
          //continuing by an empty return.
          gameOver();
          return ;
        }
      }
      //When all the inputs matched simon says, you win
      //this round and level up.
      delay(500);
      levelUp();
    }
    void gameOver(){
      //When it's gameover, difficutly resets 
      turns=turns_begin;
      //And play the gameover sound
      piezo.effect_gameover();
    }
    void levelUp(){
      //When level up, adds more difficulty until it reaches maximum
      if(turns<turns_max){
        turns++;
      }
      //And play a wining sound
      piezo.effect_win();
    
    }
    


    Esta es una foto del proyecto final

    jueves, 23 de mayo de 2019

    Bloque 1. Processing


    Este es el primer tema de arduino, se llama processing. Processing es un software que utilizan los diseñadores y artistas para crear instalaciones y juegos para computadoras, teléfonos y sitios web.

    Programar una computadora es darle instrucciones. Usted expresa esas instrucciones con un código de programación que se compone de comandos legibles por humanos. Estos comandos se transforman en programas que las computadoras entienden. Una computadora realmente solo entiende los 0 y los 1. Por esta razón, la programación debe realizarse en un editor de texto con propiedades especiales. Este editor es un sistema de desarrollo de software denominado Entorno de desarrollo integrado (IDE) y puede traducir el código de programación al lenguaje de máquina. Traducir el código de esta manera se llama compilar.








































    Void setup: es para empezar el desarrollo del processing

    Void draw: es para poder dibujar.




    Esta es la calculadora de RGB, en la que podemos encontrar todos los códigos de colores. Muestra cómo el color de un píxel cambia de blanco a negro y cómo varían los valores RGB.

    background(255); significa el color del fondo (de pantalla) line(0, 0, 100, 100); significa las cordenadas para hacer la línea stroke(0, 0, 255); significa el grosor de la línea

    video curso online sobre processing


    SERPIENTE ROJA

    En este miniproyecto vas a aprender a programar un objeto que se mueve en la pantalla y va dejando rastro del movimiento del ratón. 

    void setup() { size(400, 400); } void draw() { noStroke(); // Draw borderless shapes fill(255, 0, 0); // Fill shapes with pure red color ellipse(100, 100, 30, 30); // Circle of 30 pixels diameter }



    CASA 



    jueves, 16 de mayo de 2019

    Hola Mundo!!!!!!!






    Este año, en el IES Nueve Valles, el curso 4º ESO, harehmos un curso sobre arduino. Podemos dividir el tema de arduino en 5 partes, en cada una de ellas realizaremos un proyecto para aprender ha hacerlo todo. Lo aprenderemos con la página ctc 101 y en ella podemos ver tutoriales sobre arduino. 
    Aqui os presento un enlace:



    También pongo un enlace del primer y segundo tema:
    https://create.arduino.cc/ctc/101/course/view.php?id=184