lunes, 29 de mayo de 2017

lunes, 22 de mayo de 2017

7º día profundiza. Presentación videojuegos

Presentación en vídeo de los videojuegos realizados
en Profundiza San Isidoro 2017

VIDEOJUEGO I

video

VIDEOJUEGO II

video

VIDEOJUEGO III

video

lunes, 15 de mayo de 2017

6º día profundiza. Proyecto videojuego scratch y control motores con sensor distancia del coche

En este día se comenzó por la parte de Scratch, avanzando el proyecto de videojuego, explicando nuevas funciones conforme les hacía falta para avanzar en el juego, como mejorar el movimiento con saltos o poniendo gravedad a los personajes.

En la segunda parte, se programó ya el coche completo, haciendo uso del sensor para controlar los motores. En el video se ve la primera prueba.


video

lunes, 8 de mayo de 2017

5º día profundiza. Programación medida sensor y motores coche por separado

Se empezó con un programa ya realizado por LEANTEC para el control del sensor de ultrasonido, para ello es necesario incluir una librería que controla el sensor y un programa que ofrece las medidas a través del puerto serie de comunicación entre placa y ordenador.

Se pudo comprobar que el sensor funciona correctamente en distancias medias, de varios centímetros a 1 o 2 metros, pero con distancias mas extremas, mayor o menores, ofrece alguna medida errónea, es decir, si no hay obstáculos medianamente cerca, ofrece una lectura real y otra nula, lo que se tendrá en cuenta para el funcionamiento posterior del coche.

Programa de medida con el sensor de ultrasonido:

// incluimos la librerias:
#include <Ultrasonic.h>

Ultrasonic sensor(9,8,30000); // (Trig PIN,Echo PIN, microsegundos max "distancia máxima") 30000us = 5 metros

int distancia=0;//Declaramos la variable donde guardaremos la distancia


void setup() {

Serial.begin(9600);//Inicializamos el puerto serie  

}

void loop() {

  distancia=sensor.Ranging(CM);  // Medimos la distancia y la guardamos en la variable
  Serial.print("Distancia ");// Imprimimos la palabra distancia en el monitor serial
  Serial.print(distancia);// Imprimimos la variable distancia
  Serial.println(" cm");//Imprimimos las letras cm y saltamos de linea.
  delay (2000);//Esperamos 2 segundos para repetir el proceso.

    }


Por otro lado, se hizo lo mismo con los motores, se incluyó la librería del control de motores facilitada por LEANTEC y se probó el correcto funcionamiento de los motores, observando que algunos motores giraban en sentido contrario, lo que se debe a la conexión del cableado. Una vez solucionado este tema, se verificó que el coche podía avanzar, retroceder y girar a ambos lados, pero todo a velocidad constante, ya que no se programó el control de velocidad. Además, se observó que no avanzaban en línea recta, sino que se giraba hacia un lateral, lo que se tendrá que corregir para que funcione correctamente el vehículo autónomo.


lunes, 24 de abril de 2017

4º día profundiza. Inicio programación Arduino

En este día se inició la programación del vehículo autónomo con el IDE de Arduino, para ello se les explicó la interfaz del IDE, así como conceptos como elegir el tipo de placa controladora (Arduino UNO) y elegir el puerto USB adecuado para garantizar la correcta conexión de la placa al ordenador.

Se les introdujo en la estructura del programa que deben realizar, donde primero se declaran las variables, luego se pone el SETUP donde se inicializa todo el programa, y luego viene el LOOP donde se pone el programa que se va a ejecutar de forma repetida.

El mismo programa del semaforo se realizó con esta IDE y algunos alumnos incluyeron un zumbador y un pulsador que hacía que cambiara su funcionamiento durante un tiempo predefinido.

PROGRAMA SEMAFORO CON PULSADOR

int pulsador=7;
int r=4;
int n=3;
int v=2;
int value=0;

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(r, OUTPUT);
  pinMode(n, OUTPUT);
  pinMode(v, OUTPUT);
  pinMode(pulsador,INPUT);
  }

// the loop function runs over and over again forever
void loop() {
value=digitalRead(pulsador);

if (value== HIGH) {
  digitalWrite(r, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  delay(1000);                       // wait for a second
digitalWrite(n, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  delay(1000);                       // wait for a second
  digitalWrite(v, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(v, LOW);    // turn the LED off by making the voltage LOW
  digitalWrite(r, LOW);    // turn the LED off by making the voltage LOW
  digitalWrite(n, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
    }
    else {
      digitalWrite(v, LOW);    // turn the LED off by making the voltage LOW
  digitalWrite(r, LOW);    // turn the LED off by making the voltage LOW
  digitalWrite(n, LOW);    // turn the LED off by making the voltage LOW
 
    }
}


En la segunda parte empezaron a desarrollar como proyecto en parejas un videojuego con Scratch, con la idea de exponerlo al final.

lunes, 17 de abril de 2017

3er día profundiza. Introducción S4A y montaje chasis

En esta sesión se introdujo Scratch for Arduino (S4A), una software libre distribuido bajo una MIT licencia. Consiste en programar una placa controladora Arduino a través de un interface similar a Scratch, por lo que se pudo realizar en la misma sesión el montaje y programación de un semáforo. Previamente hay que preparar la placa Arduino cargando un programa de comunicación por el puerto serie, por lo que, también pudieron ver la IDE Arduino.

Durante la segunda parte se continuó montando la placa controladora Arduino y la controladora de motores CC sobre el chasis, así como conectar todos los elementos entre sí, incluido un portapilas en la parte inferior.









lunes, 20 de marzo de 2017

2do día profundiza. Introducción a scratch y montaje chasis coche

En este día se empezó a usar Scratch en la primera mitad de la sesión, explicando conceptos básicos como son los escenarios, los objetos, los disfraces, la organización de los bloques y el uso de algunos bloques de eventos, apariencia y movimiento.

En la segunda mitad se repartieron los kits de robótica formados por dos cajas, una de iniciación a Arduino y otra caja con el kit de coche autónomo con dos ruedas motrices. La tarea inicial fue identificar los componentes, buscar en Internet las instrucciones de montaje y empezar a montar sobre el chasis los motores y ruedas, así como soldar con estaño los cables a los conectores de los motores. 







lunes, 6 de marzo de 2017

1er día profundiza. Presentación e introducción

El primer día de profundiza suelo realizar una presentación individual, en la que cada alumno dice de que instituto viene, en que curso está y cuales son sus intereses, es decir, que conocimientos sobre programación y robotica tienen, y que espectativas tienen del profundiza 2017, ya que algunos vienen de otro centro y no tienen mucha información sobre el tema. 

Por otro lado, me presento yo como profesor del programa profundiza, contándoles mi experiencia en cursos anteriores como participante del programa profundiza y los objetivos que me planteo para el presente curso, los contenidos que vamos a trabajar y lo más interesante, el producto final que vamos a obtener una vez finalizado el curso.

En este curso me planteo dos productos finales, un juego realizado en Scratch y un vehículo autónomo  controlado con Arduino.

En la introducción al curso se le informa brevemente sobre contenidos teóricos sobre programación y robótica. El Scratch es una herramienta muy potente para introducir a los alumnos en la programación (Variables, bucles, condicionales, ...) y para desarrollar el pensamiento computacional, a su vez, Arduino permite asimilar conceptos básicos de robótica como son sensores (entradas), actuadores (salidas) y sistemas de control (Placa controladora), así como desarrollar una programación más avanzada con una IDE de programación escrita, en lugar de la programación con bloques de Scratch, usando como nexo de unión entre ambos sistemas S4A, que conecta ambos sistemas.