Esta semana es "La Semana europea de la programación" Se trata de una iniciativa promovida por la Comisión Europea que pretende acercar la programación informática de un modo atractivo y divertido a toda la población europea, pero con un especial foco en la infancia, para mostrar su potencial. Para ello, durante unos días se organizan por todo el continente miles de encuentros que se celebran en bibliotecas, casas de la cultura, empresas o, por supuesto, centros educativos. Nuestras actividades durante esta semana se orientarán a la programación con Scratch. Podéis ver la tarea a realizar en la página WEB sobre la hora del código de nuestro instituto. Scratch es un programa de software libre del Grupo Lifelong Kindergarten del MIT Media Lab, que permite programar tus propias historias interactivas, juegos y animaciones — y compartir tus creaciones con otros en la comunidad online.
Scratch ayuda a aprender a pensar de forma creativa, a razonar sistemáticamente, y a trabajar de forma colaborativa.
Para empezar podéis descargaros la aplicación o trabajar on line, ambas cosas desde el enlace https://scratch.mit.edu/. Para comenzar debéis haceros una cuenta y loguearos en la app.
Empezaremos siguiendo las 12 tarjetas para aprender a usar los bloques de programación a las que accederemos desde: tarjetas scratch. Subiréis al blog los trabajos que vayáis realizando de cada tarjeta. Lo podéis hacer con un pantallazo de cada trabajo terminado. ¡¡¡ANIMO!!!
Es un entorno de desarrollo de software para la elaboración de aplicaciones destinadas al sistema operativo Android. El usuario puede, de forma visual y a partir de un conjunto de herramientas básicas, ir enlazando una serie de bloques para crear la aplicación. El sistema es gratuito y se puede descargar fácilmente de la web.
Para realizar el curso nos apoyaremos en los video tutoriales y enlaces de las entradas de nuestro compañero Álvaro Martín:
Consistirá en la creación de una App, podrá ser un juego o una app guía, con información sobre el centro para facilitar la integración e informar a aquellos alumnos que lleguen nuevos al centro.
Deberá crearse desde cero con las siguientes características:
Tener una pantalla de inicio con una imagen y un texto. Para pasar a la siguiente pantalla se puede usar el reloj o un botón.
La pantalla principal será:
- O bien un menú con varias opciones
- O bien un canvas con sprites animados que permitan realizar algún tipo de juego.
En cualquier caso, debe de tener como mínimo:
Una imagen
Un botón
Una etiqueta
Un elemento de la paleta de medios
Un elemento de la paleta de Sensores, de la paleta Conectividad o de la paleta Social.
Hoy vamos a dedicar el tiempo a realizar un test final para ver qué hemos aprendido a lo largo de este curso de programación. El test es individual. Pero como no hay ordenadores para todos, podéis utilizar los móviles.
Para entrar pulsa este enlace
Casi todos los programas de CAD nos permiten dibujar en dos y en tres dimensiones, aunque habitualmente crear los modelos 3D suele ser difícil o laborioso.
Para modelar, ver o editar en 3D de forma sencilla, contamos con el Sketch Up, creado inicialmente como herramienta de Google.
Existe una versión SketchUp Make, totalmente gratuita que podéis descargaros de la página oficial previo registro.
Nuestro objetivo es aprender a modelar cualquier objeto en el espacio, con las dimensiones, formas, materiales, texturas y colores que elijamos. Os dejo aquí un manual sencillo.
La práctica final será modelar en 3D vuestro dormitorio (o el dormitorio que os gustaría tener), con sus paredes, puertas, ventanas, suelos, muebles, equipos, lámparas, etc...
Empezaremos conociendo el entorno y las herramientas y a continuación con unas prácticas guiadas iremos diseñando algunos muebles que os serán de utilidad para la práctica final y os permitirán dominar las herramientas.
INTRODUCCIÓN.
Los diseños de Sketchup se generan usando líneas. Las caras se crean automáticamente cuando tres o más líneas están en un mismo plano y formando un recinto cerrado.
Para crear una imagen 3D, se dibuja hacia arriba o hacia abajo siguiendo la dirección del eje Z (azul). A medida que se vayan dibujando líneas y caras, se puede a tener una figura tridimensional.
Sketchup emplea un sistema de coordenadas 3D. Cada punto tiene unas coordenadas diferentes en función de su posición respecto de los tres ejes: el eje X (de color verde), ele eje Y (de color rojo) y el eje Z (de color azul). Los valores positivos se representan mediante líneas continuas, y los negativos, con líneas discontinuas.
La INTERFAZ.
La interfaz de Sketchup está formada por la barra de menús, la barra de título, el área de trabajo, el cuadro de control de valores (CCV) y la barra de estado.
Los menús están situados debajo de la barra de título e incluyen la mayoría de las herramientas, comandos y ajustes.
La barra de títulos lleva el nombre del archivo abierto y, además, incorpora los controles de cerrar, minimizar y maximizar.
El área de dibujo es la zona donde se crea el diseño. El espacio 3D se identifica por los ejes de dibujo.
El cuadro de control de valores (CCV) proporciona la información de las dimensiones durante el proceso del dibujo. En el CCV también se pueden introducir los valores de las dimensiones que se quiere que tengan los elementos que se van a dibujar.
La barra de estado está situada en la parte inferior del área de dibujo. En su zona izquierda aparecen indicaciones sobre las herramientas de trabajo que se están utilizando, mientras que en la derecha está el cuadro de control de valores (CCV).
Las BARRAS DE HERRAMIENTAS más importantes.
NOTA: Debajo de cada imagen aparece el nombre de cada botón, de izquierda a derecha.
La barra de herramientas contiene una serie de opciones de menú que sirven para gestionar los archivos y los dibujos.
La barra de herramientas de sombras se emplea para controlar las sombras de las figuras.
Meses - Hora
La barra de herramientas Secciones permite realizar con facilidad operaciones de sección habituales.
Antes de la práctica final realizad estos ejercicios. Realizad TODOS los ejercicios hasta el 14, pero sólo debéis colgar en vuestro blog los ejercicios 9, 10, 11, 12, 13 y 14.
Casi todos los programas de CAD nos permiten dibujar en dos y en tres dimensiones, aunque habitualmente crear los modelos 3D suele ser difícil o laborioso.
Para modelar, ver o editar en 3D de forma sencilla, contamos con el Sketch Up, creado inicialmente como herramienta de Google.
Existe una versión SketchUp Make, totalmente gratuita que podéis descargaros de la página oficial previo registro.
Nuestro objetivo es aprender a modelar cualquier objeto en el espacio, con las dimensiones, formas, materiales, texturas y colores que elijamos. Os dejo aquí un manual sencillo.
La práctica final será modelar en 3D vuestro dormitorio (o el dormitorio que os gustaría tener), con sus paredes, puertas, ventanas, suelos, muebles, equipos, lámparas, etc...
Empezaremos conociendo el entorno y las herramientas y a continuación con unas prácticas guiadas iremos diseñando algunos muebles que os serán de utilidad para la práctica final y os permitirán dominar las herramientas.
La INTRODUCCIÓN.
Los diseños de Sketchup se generan usando líneas.
Las caras se crean automáticamente cuando tres o más líneas
están en un mismo plano y formando un recinto cerrado.
Para crear una imagen 3D, se dibuja hacia
arriba o hacia abajo siguiendo la dirección del eje Z (azul). A medida
que se vayan dibujando líneas y caras, se puede a tener una figura
tridimensional.
Sketchup emplea un sistema de coordenadas 3D.
Cada punto tiene unas coordenadas diferentes en función de su posición respecto
de los tres ejes: el eje X (de color verde), ele eje Y (de color rojo)
y el eje Z (de color azul).
Los valores positivos se representan mediante líneas continuas, y los
negativos, con líneas discontinuas.
La INTERFAZ.
La interfaz de Sketchup está formada
por la barra de menús, la barra de título, el área de trabajo, el cuadro de
control de valores (CCV) y la barra de estado.
Los menús están
situados debajo de la barra de título e incluyen la mayoría de las
herramientas, comandos y ajustes.
La barra
de títulos lleva el nombre del archivo abierto y, además,
incorpora los controles de cerrar, minimizar y maximizar.
El área
de dibujo es la zona donde se crea el diseño. El espacio 3D se
identifica por los ejes de dibujo.
El cuadro
de control de valores (CCV) proporciona la información de las
dimensiones durante el proceso del dibujo. En el CCV también se pueden
introducir los valores de las dimensiones que se quiere que tengan los
elementos que se van a dibujar.
La barra
de estado está situada en la parte inferior del área de dibujo.
En su zona izquierda aparecen indicaciones sobre las herramientas de trabajo
que se están utilizando, mientras que en la derecha está el cuadro de
control de valores (CCV).
Las BARRAS DE HERRAMIENTAS más importantes.
NOTA: Debajo de cada imagen aparece el nombre de cada
botón, de izquierda a derecha.
La barra de herramientas contiene una
serie de opciones de menú que sirven para gestionar los archivos y los
dibujos.
Historia sin imágenes Os dejo la parte de manual de Audacity donde habla de diferentes HERRAMIENTAS. Además dejo también unos vídeotutoriales muy útiles: EDICIÓN DE SONIDOS BÁSICA EFECTOS Despues de esto , realizad las tres prácticas que os pongo abajo y subidlas vuestro blog de manera que se puedan escuchar directamente.
Cuenta una historia sólo con sonidos de un minuto de duración. Puedes tomar los sonidos del banco de sonidos del MEC o cualquier otro
Crear un politono para el móvil y que nos lo podamos descargar.
Realiza un anuncio de radio de no mas de 15 segundos. Una cuña publicitaria para la radio, sobre lo que os interese añadiendo efectos y una melodía de fondo.
NOTA IMPORTANTE: Para subirlo a vuestro blog os dejo un vídeo en el que nos explican cómo hacerlo con la herramienta ivoox. Debéis registraros. Lo podéis hacer utilizando vuestra cuenta gmail.
Descargar un archivo (canción) desde Internet. Podéis utilizar la página que conozcáis. También podéis subir a vuestro drive alguna canción desde el móvil y utilizarla.
Importar el audio anterior a Audacity.
Haced modificaciones para probar las posivbilidades de Audacity
Guardarlo con todos los datos como PROYECTO y guardarlo también en formato compatible para poderlo escuchar en cualquier equipo, por ejemplo MP3. Es posible que este paso debáis hacerlo en casa por lo comentado anteriormente.
Para ello, realizaréis un pantallazo de la carpeta donde se ubican los archivos generados. Debéis incluir en dicha carpeta también el mp3 modificado.
Nota importante: Como los ordenadores del aula están "congelados", no debéis instalar ningún programa, por lo que si no os deja exportar el archivo modificado a mp3, deberéis hacerlo en casa
En este proyecto programaremos un simple juego de frontón con arduino-processing y un joystick conectado a arduino.
El programa en Processing es:
import processing.serial.*; //importamos la libreria para trabajar con el puerto serie
Serial mipuerto; //Nombre del puerto serie
float pos_pelotaX=50;
float pos_pelotaY=300;
float incrementoX=5;//incremento de la bola en X
float incrementoY=3;//incremento de la bola en Y
int pos_raqueta=250;
int incrementoR=10;
int valor_serie=0; //En esta vble almacenaremos el valor de la información transmitida por el puerto por parte de Arduino
int puntos=0;
int fallos=0;
boolean derecha=true; //será verdadero si la pelota viene desde la derecha y falso si viene rebotada desde la izquierda
void setup() {
size(600, 600);
mipuerto = new Serial(this, "COM11", 9600); //inicializamos el puerto
}
void draw() {
if (mipuerto.available() > 0) { //si hay algo que leer...
valor_serie = mipuerto.read(); //lo almacena en la variable valor_serie
}
if (pos_pelotaX<25) { //Cuando choque con la pared izda, cambia de dirección en X
incrementoX=-incrementoX;
derecha=true; //la pelota ira hacia la derecha
}
if (pos_pelotaX>575) {//Cuando choque con la pared derecha, cambia de dirección en X
incrementoX=-incrementoX;
derecha=false; //la pelota ira hacia la izquierda
}
if ((pos_pelotaY<25)||(pos_pelotaY>575)) { //Cuando choque cambia de dirección en Y
incrementoY=-incrementoY;
}
background(255, 255, 0);
control();
pelota(pos_pelotaX, pos_pelotaY);
raqueta(pos_raqueta);
if (choque() && derecha) {
puntos=puntos+1; //Si chocan raqueta y bola sumamos un punto
incrementoX=-incrementoX;
}
if (pos_pelotaX==550) {
fallos=fallos+1;
}
textSize(32);
fill(0);
text ("puntos: ", 10, 30);
text ("fallos: ", 10, 70);
text (puntos, 150, 30);
text (fallos/2, 150, 70);
//Procedimiento que dibuja la raqueta
void raqueta (int posR) {
fill(0, 0, 255);
noStroke();
rect(550, posR, 10, 100);
}
//Procedimieinto que dibuja la pelota
void pelota (float posX, float posY) {
fill(255, 0, 0);
ellipse(posX, posY, 50, 50);
}
//procedimiento que comprueba si han chocado
boolean choque() {
if (pos_pelotaY<pos_raqueta) {
if ((pos_pelotaX==525) && ((pos_raqueta-pos_pelotaY)<5)) {
return true;
}
}
if (pos_pelotaY>pos_raqueta) {
if ((pos_pelotaX==525) && ((pos_pelotaY-pos_raqueta)<95)) {
return true;
}
}
return false;
}
//control de la raqueta con el joystick que envia información a través del puerto serie desde arduino
void control() {
if (pos_raqueta>500) { //Si se sale de los límites no seguimos sumando nada a la posición
pos_raqueta = 500;
}
if (pos_raqueta<0) { //Si se sale de los límites no seguimos restando nada a la posición
pos_raqueta = 0;
}
if (valor_serie==2) { //Joystick hacia abajo
pos_raqueta = pos_raqueta + incrementoR;
}
if (valor_serie==1) { //Joystick hacia arriba
pos_raqueta = pos_raqueta - incrementoR;
}
}
El programa de Arduino es:
void setup() {
Serial.begin(9600);
}
void loop() {
//Dependiendo de la posición del joystick
//información al puerto para que la lea processing
delay(100);
if (analogRead(A0) > 520) {
Serial.write(1);
delay(30); //para no saturar el puerto
} else if (analogRead(A0) < 490) {
Serial.write(2);
delay(30);
}else Serial.write(0);
}
En este ejemplo la puerta comienza cerrándose esté donde esté de su recorrido. Cuando esta cerrada se pone a la espera de pulsar el botón de inicio. Una vez pulsado comienza a abrirse. Cuando llega al final del recorrido se para durante 5 segundos y se comienza a cerrar. Cuando llega al final se para hasta que se vuelva a pulsar el botón. Se han añadido LEDs que indican cada movimiento que realiza:
LEDrojo: cerrada
LED verde: abierta
LED ambar con flecha izquierda: cerrando
LED ambar con flecha derecha: abriendo
Hemos utilizado Arduino NANO y puente H de motores L298N
Conexiones
Código Arduino
//conexiones de los LEDs:
int rojo = 7;
int LEDabriendo = 10;
int LEDcerrando = 6;
int verde = 12;
//conexiones motor: a los pines 2 y 3
//pulsador inicio al pin 5
int inicio = 5;
//finales de carrera
int FCcerrado = 9;
int FCabierto = 8;
//
bool activo = 0;
void setup()
{
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(rojo, OUTPUT);
pinMode(LEDabriendo, OUTPUT);
pinMode(LEDcerrando, OUTPUT);
pinMode(verde, OUTPUT);
pinMode(inicio, INPUT);
pinMode(FCcerrado, INPUT);
pinMode(FCabierto, INPUT);
//Llevamos la puerta a cerrar para iniciar con la puerta cerrada
cerrando();
}
void loop()
{
//cuando pulsamos el botón de inicio se abre la puerta
//hasta que se pulsa el final de carrera de abierto
//espara 5 segundos y se cierra
if (digitalRead(inicio)) {
Serial.println("inicio pulsado");
abriendo();
delay(5000);
cerrando();
}
}
Basada en este vídeo del El Hormiguero" de Antena 3, realizamos un programa que captura una secuencia de golpes que programemos y la utiliza para abrir una puerta
Conexiones
programa para arduino
Dada la complejidad del programa se realizará en Arduinoblocks
Iniciamos creando una matriz patron donde almacenaremos la secuencia para abrir la puerta y otra golpes donde se irán almacenando la secuencia que se realice cuando se quiera abrir la puerta. Se compararán las dos matrices y si coinciden la puerta se abrirá.
La función grabar secuencia va almacenando la secuencia que queremos que sea nuestro patrón. Previamente borramos con clear patron el anterior e iniciamos la grabación con inicio patron. El patrón es una secuencia de 10 "golpes/no golpes" distanciados 200 ms cada uno. Una vez que se comienza a golpear cada 200 ms se carga un golpe o un silencio.
Las funciones inicio e inicio patron nos sirven para que el programa espere a que comencemos la secuencia de golpeo, que siempre debe iniciarse con el primer golpe.
La función loop (bucle) comienza una vez que hemos iniciado la secuencia de golpes para abrir la puerta. Cuando se ha completado la secuencia de 10 golpes/silencios cada 200 ms, La compara con el patrón. Si es correcta hacemos sonar un zumbador, abrimos una puerta, ... Si no es correcta no hace nada y vuelve a esperar otra secuencia de golpes.
Y borramos la matriz de golpes para que se vuelva a comenzar.
Las siguientes funciones sirven para borrar la matriz golpes (clear golpes) y la matriz patron (clear patron)
Para que podamos visualizar el patrón y tener un mayor control hemos creado la función imprimir, que imprime la secuencia de golpes que estamos haciendo y la función imprimir secuencia que imprime el patrón que hemos creado.
Por último la función comparar compara las dos matrices y si son iguales nos devuelve la variable abrir, que será 0 si no son iguales y 1 si son iguales.