Aprendizaje Basado en Proyectos vs Enseñanza Directa

Cuando hablamos de comparar el aprendizaje basado en proyectos vs enseñanza directa, pienso que estamos hablando de la eterna dicotomía entre la educación conductista y la educación constructivista,  a los que nos interesa y nos apasiona el tema de la educación hemos leído bastante teoría, que habla del pro y de los contras de ambos métodos, y podemos empezar hablando del estímulo respuesta de Paulov, hasta las teorías constructivistas del gran Ken Robinson, os animo a que busquéis en Youtube videos de este señor.

 

En definitiva os presento esta tabla a ver que pensáis de ella:

 

Enseñanza Directa Aprendizaje Basado en Proyectos
Profesorado experto Profesorado Mediador
Relación de asimilación Relación de dialógica
Conocimiento estático Conocimiento flexible, modificable
Conocimiento objetivo externo al sujeto Conocimiento subjetivo interno al sujeto
Alumno pasivo Alumno activo constructor de su aprendizaje
Interesa más el producto Interesa más el proceso
Currículo vertical Currículo horizontal
No se consideran los aprendizajes previos

Si se consideran los aprendizajes previos

 

¿Qué os parece? es ¿Enseñanza Directa o Enseñanza conductista?, y..

 

¿es ABP o Enseñanza constructivista?

 

Quizás….

¿El ABP es la concrección de la Enseñanza constructivista?

Parpadeo sin utilizar delay – Ejemplo con Arduino Nº 07

Para utilizar las funciones de tipo parpadeo sin utilizar delay, porque a veces necesitas hacer dos cosas a la vez con Arduino, por ejemplo, en el ejemplo del parpadeo, mientras utilizas la función delay(), el procesador está inactivo y no puede responder a los posibles cambios en las entradas, es decir, que si quiere hacer por ejemplo un semáforo interactivo, en el que exista un pulsador de peatones, es imposible hacerlo utilizando la función delay().

En el siguiente ejemplo te mostraré como hacer una secuencia de LEDs y además leer el valor de una entrada. Para ello utilizaremos una función propia del IDE de Arduino llamada millis(), que es una función propia del IDE que nos devuelve un valor que expresa el tiempo que ha pasado desde que se inició el programa, en milisegundos.

El concepto que existe detrás de este algoritmo es ir comprobando si el botón se ha pulsado continuamente, dentro de la función loop(), cada vez que apaguemos o encendamos el LED, anotaremos el momento en el que ha sucedido, y si el tiempo que ha pasado desde que se inició el programa menos el último cambio supera el valor del tiempo de cambio de estado, cambiaremos de nuevo el estado del LED.

En este programa te enseñaré como hacerlo.

CIRCUITO:

Para hacer este circuito utilizaremos cualquier montaje de un LED con una resistencia.

CÓDIGO:

const int Led = LED_BUILTIN;

int EstadoDelLed=LOW;

unsigned long TiempoUltimoCambio=0;

const long Intervalo = 1000;

void setup()

{

pinMode(Led, OUTPUT);

}

void loop()

{

unsigned long TiempoAhora = millis();

if (TiempoAhora – TiempoUltimoCambio >= Intervalo)

{

TiempoUltimoCambio = TiempoAhora;

If ( EstadoLed = LOW)

{

EstadoLed=HIGH;

}

Else

{

EstadoLed=LOW;

}

digitalWrite(Led, EstadoLed);

}

}

 

Voltímetro – Ejemplo con Arduino Nº 06

En este ejemplo te voy a enseñar como hacer un voltímetro con Arduino, leiendo el valor de un pin analógico y mostrar el valor de tensión correspondiente en el monitor serie, es decir vamos a construir un votímetro simple con Arduino.

Para ello conectaremos un potenciómetro con sus dos patillas de los extremos conectadas a GND y Vcc respectivamente y la patilla común del potenciómetro en la entrada A0, que es una entrada analógica de la placa de Arduino.

Si conectamos correctamente el potenciómetro, en uno de los extremos mostrará 5 voltios en la patilla A0 y en el otro extremo 0 Voltios pasando por todos los valores que nos proporciona el conversor analógico a digital es decir 5 Voltios/1023 valores. Así que para obtener el valor de tensión, multiplicarás el valor obtenido de dividir 5/1023 por el valor leído en la patilla A0 de la placa Arduino, mediante la función analogRead().

En este programa utilizaremos una variable de tipo float, que nos permitirá tener una medición más ajustada al valor real de la tensión.

CÓDIGO

void setup()

{

Serial.begin(9600);

}

void loop()

{

int ValorLeido=analogRead(A0);

float Voltaje = ValorLeido * (5.0 / 1023.0);

Serial.println (Voltaje);

}

analogRead() – Lectura de entradas analógicas – Ejemplo con Arduino Nº 05

En este ejemplo te enseñare como leer el valor presente en una entrada analógica, mediante la función analogRead(), usando un potenciómetro que simulará una señal proveniente de un sensor.

El potenciómetro es el mecanismo más simple para obtener una señal eléctrica variable. Conectando los dos extremos del potenciómetro a la tensión de alimentación y a masa respectivamente, dispondrás en la patilla común una señal eléctrica variable entre 0 voltios y Vic (Tensión de alimentación), podrás crear un divisor de tensión que simulará la señal eléctrica que te proporcionaría un sensor de cualquier magnitud física.

En este ejemplo, además veremos el valor que nos proporciona el conversor analógico integrado dentro de la placa arduino, a través del monitor del puerto serie.

CIRCUITO ELÉCTRICO

analogreadserial_bb
analogreadserial_bb

Para la realización de este circuito, conectaremos una de las patillas del extremo del potenciómetro a masa (GND) y el otro extremo a 5 voltios (Vcc), la patilla del centro del potenciómetro la conectaremos a la entrada analógica A2.

Cuando el potenciómetro se encuentra en uno de los extremos tendrás en la patilla del centro, O voltios y cuando este girado hasta el otro extremo tendrás 5 voltios en la patilla del medio del potenciómetro.

La placa de Arduino tiene un conversor de Analógico a Digital que te proporciona un valor de 0 cuando en la patilla tienes 0 Voltios y 1023 cuando la tensión en la patilla es de 5 voltios. El valor leído por el conversor analógico a digital (ADC) se lee mediante la función analogRead() que te devuelve un valor entre 0 y 1023, proporcionalmente a la tensión aplicada al pin de entrada analógica.

CÓDIGO

void setup()

{

Serial.begin(9600);

}

void loop()

{

int LecturaDelSensor= analogRead(A2);

Serial.println(LecturaDelSensor);

}

Recuerda abrir el monitor del Puerto serie que se encuentra en la esquina superior derecha del IDE de Arduino.

analogWrite() – Manejo de salidas analógicas – Ejemplo con Arduino Nº 04

En este ejemplo voy a tratar de explicarte cómo funciona la salida analógica de tu placa Arduino, para ello utilizaré la función analogWrite(), una salida con un “falso valor analógico” ya que utiliza una modulación por ancho de pulso para proporcionarnos un valor de tensión analógico (que puede variar entro dos valores sin perder su continuidad).

Así como la función analogRead() puede leer valores que van del 0 al 1023, con la función analogWrite() solamente podrás escribir valores de 0 a 255 en la salida analógica.

Las salidas analógicas son aquellas que tienen el símbolo de la corriente alterna ( ~ ) serigrafiado en su costado.

CIRCUITO:

Para realizar el circuito de este ejemplo conectarás el ánodo del diodo LED al pin de la salida digital 9, a través de una resistencia de 220 ohmios, y la otra patilla del LED, el cátodo la conectarás directamente a masa.

CÓDIGO:

Para comprobar el funcionamiento de esta función utilizaremos una variable Brillo que irá variando su valor de 0 a 255 y de 255 a 0 sucesivamente, con lo que conseguirás que el LED se valla encendiendo y apagando progresivamente, en lugar del ejemplo del parpadeo, en el que el LED se encendía y apagaba en un TODO / NADA, APAGADO / ENCENDIDO.

El programa definitivo quedará de la siguiente manera:

int LED=9;                                           // Asigno a la variable LED el valor 9

int Brillo = 0;                                      // Asigno a la variable Brillo el valor 0

int IncrementoBrillo = 5;               // Asigno a la variable IncrementoBrillo el valor 5

void setup()

{

pinMode( LED, OUTPUT);  // Establezco el pin 9 como salida

}

void loop()

{

analogWrite( LED, Brillo);                // Envío al pin 9 el valor de la variable Brillo

Brillo = Brillo + IncrementoBrilo   // Incremento el Brillo para la próxima iteración

If(Brillo <= 0 || Brillo >= 255)      // Si el brillo llega a su límite superior o inferior

{

IncrementoBrillo = -IncrementoBrillo     // Cambio de incremento a decremento según

}                                                                             // convenga

delay(30);            // Espero 30 milisegundos para poder observar el efecto

}

Con este simple programa podrás observar el efecto de la salida analógica, te invito a utilizar el monitor serie, y la función Serial.println() para poder observar cuantitativamente el valor que enviamos al LED y a hallar la correspondiente función de equivalencia en voltios de los valores de salida.

digitalRead() y Serial.begin() – Lectura de entradas digitales – Ejemplo con Arduino Nº 03

Para leer el valor de un detector, utilizarás la función digitalRead(), además en este ejemplo te voy a mostrar cómo ver en el monitor del puerto serie el valor leído en un pin configurado como entrada digital, a través del USB, para ello utilizarás la función Serial.begin().

CIRCUITO:

En este ejemplo utilizaremos una resistencia de 10K, uno de sus extremos lo conectarás directamente a masa, el otro extremo lo conectarás a un pulsador tal como se indica en el esquema eléctrico, el nodo donde se conectan el pulsador y la resistencia lo llevarás mediante un cable de conexión al pin 2, configurado como entrada, en este caso entrada digital.

Si todo funciona como debiera, cuando no acciones el pulsador en el pin digital número 2 tendrás 0 voltios, que la placa de Arduino interpretará como “cero” o “falso” y cuando el pulsador este activado tendrás en el citado pin 5 voltios que la placa de Arduino interpreta como “uno” o “cierto”

Si desconectas el pin de entrada del todo, el LED puede parpadear de forma errática. Esto se debe a que la entrada no está conectada ni a tierra ni a Vcc, es por ello que se necesita una resistencia pull-down en la circuitería que acompaña al pulsador.

CÓDIGO:

Para comenzar las comunicaciones entre la placa de Arduino y el PC deberás inicializar el puerto de comunicaciones serie a 9600 baudios (bits/segundo) mediante la función:

Serial.begin(9600).

A continuación, iniciarás el pin digital 2, como un pin de entrada mediante la función:

pinMode( 2 , INPUT );

Estas dos funciones, como ya habrás deducido, irán dentro de la función setup() y el programa en sí, estará en la función loop(), donde continuamente estaremos comprobando si el pulsador esta accionado o no, mediante la función:

digitalRead(2);

El valor leído por esta función lo debemos memorizar en una variable de tipo int, llamada por ejemplo, EstadoDelPulsador, donde memorizaremos si el pulsador ha sido activado o no, mediante esta sentencia:

EstadoDelPulsador = digitalRead(2);

Has de tener en cuenta, que mientras el pulsador no está activado, la patilla número dos está conectada a masa mediante la resistencia de 10K, pero cuando activas el pulsador estás conectando Vcc a masa mediante la citada resistencia.

Una vez que se ha leído el valor presente en el pin 2, y memorizado en la variable EstadoDelPulsador, la puedes mostrar en el monitor del puerto serie incluido en el IDE de Arduino, mediante la función:

Serial.println(EstadoDelPulsador);

Si todo ha ido correctamente en tu monitor del puerto serie verás un “0” cuando el pulsador no está accionado y un “1” cuando pulses el dispositivo.

El programa completo quedará así:

int pulsador=2;

void setup()

{

Serial.begin(9600);

pinMode( pulsador, INPUT);

}

void loop()

{

int EstadoDelBoton = digitalRead( pulsador );

Serial.println( EstadoDelBoton );

delay( 1 ) ;                  // Retraso para poder ver el valor en el monitor

}

Qué es el ABP y claves de un buen proyecto

Que es el ABP y claves de un buen proyecto

Enseñar es elegir, entre contenidos, materiales, agrupamientos, actividades, pero cuando entramos a clase todo sigue igual, seguimos con la presentación, practica y pruebas, es decir la metodología PPP, pero debemos elegir entre la enseñanza transmisora, que es memorizar y poco más o por la enseñanza activa, donde el alumnado además de memorizar, debe probar errar, ensayar, buscar, en definitiva, aprender.

La función principal del docente es crear un entorno de aprendizaje adecuado, por ello ABP intenta cambiar el paradigma de la educación, este paradigma es mucho más adecuado a la realidad tecnológica en la que nos encontramos, ya que se planteará un reto, pregunta o problema al alumnado y el primeramente deberá entender perfectamente cuál es el reto que se le plantea, buscará y procesará la información adecuadamente, hallará por deducción científica una solución al reto que cuando sea posible se concretará en la elaboración de un producto final, por penúltimo se pasará por el departamento de calidad, es decir por la evaluación, tanto del proceso que se ha llevado a cabo, como del producto final elaborado.

Si se cree conveniente se puede elaborar un plan de difusión para dar a conocer, las partes del proyecto a producto que creamos conveniente publicar y dar a conocer.

Qué proyectos son más interesantes para nuestro alumnado:

Si queremos que los estudiantes se impliquen cien por cien en la resolución del reto que se les plantea debemos buscar una pregunta o reto basada en los intereses que tengan los estudiantes, según la edad y el entorno en el que se encuentren, por supuesto, no nos debemos olvidar del currículo, ya que es el compendio de cultura que la sociedad ofrece a nuestros estudiantes.

Qué diseño elegimos:

Los dos diseños son el diseño iterativo, donde se propone un diseño cíclico de prototipos, sabiendo que el producto final es desconocido por el docente y tiene un evidente enfoque exploratorio, por el contrario, el diseño retrospectivo, los estudiantes siguen una secuencia predefinida y el docente sabe el producto, y sus características esenciales, que se obtendrá al final de la secuencia.

Cómo debe ser el producto final:

El producto final debe ser un buen producto, y para ello es indispensable hacer una buena planificación del proceso, ya que es la clave para el éxito, se debe planificar cuidadosamente; los participantes y documentos, las fases del trabajo, el tiempo que emplearemos, los recursos que utilizaremos además de tener un conocimiento previo de cómo se va a evaluar tanto el proceso como el producto obtenido al final del mismo.

Cómo es la evaluación:

La evaluación es un componente fundamental en el Aprendizaje Basado en Proyectos, sin evaluación no podemos saber si estamos realizando un buen proceso, ni por supuesto, si hemos conseguido un buen producto o no. Para una buena evaluación hemos de seguir las estrategias adecuadas para saber si se han aprendido o no los conceptos y conocimientos que queremos que el alumnado adquiera.

El punto de partida del proyecto estará basado en criterios y estándares de aprendizaje como fuente de inspiración para los proyectos dotándolo de criterios de evaluación para hacerlos operativos.

Además, la evaluación nos permite darle un valor añadido al proyecto ya que servirá para integrarlo en el currículo, y servirán como punto de encuentro de diferentes materias que normalmente están dispersas, así mismo los criterios de evaluación aportan las ideas claves sobre las cuales podemos diseñar nuestros proyectos.

El ABP puede ser una experiencia memorable para nuestro alumnado, al tiempo que sirve para desarrollar las competencias clave.

Tenemos que entender que hay otras maneras de aprender, donde sea una experiencia que todos y todas disfrutemos de la aventura del saber.

Porque la pregunta que debemos responder en nuestras clases es:

¿Cómo queremos que nos recuerden nuestros alumnos y alumnas cuando sean mayores?

Para saber más:

digitalWrite() – Manejo de salidas digitales – Ejemplo con Arduino Nº 02

En el ejemplo del parpadeo, o blink, utilizamos la función digitalWrite(), este es el ejemplo más sencillo que se puede hacer con Arduino, para conocer el comportamiento de una salida digital, a este pin configurado como salida, conectaremos un led y una resistencia de 220 ohms, conectados con la polaridad adecuada. Es decir, el cátodo a masa y el ánodo del led conectado a la parte más positiva del circuito.

De hecho, para este ejemplo, no es necesario conectar una resistencia y un led, ya que las placas de Arduino, tienen integrado un led conectado a una salida digital concreta. El IDE de Arduino tiene una constante definida como LED_BUILTIN, que es la que permite controlar el led incorporado a la placa.

Esta es la relación de pins con el led incorporado y las placas que lo utilizan:

D13:

  • 101
  • Vencimiento
  • Intel Edison
  • Intel Galileo Gen2
  • Leonardo y micro
  • LilyPad
  • LilyPad USB
  • MEGA2560
  • Mini
  • Nano
  • Pro
  • Pro Mini
  • UNO
  • Yún
  • Cero

D6

  • MKR1000

D1:

  • Genma

Pero si deseas encender un LED externo con este sketch, necesitas construir un circuito, donde se conecta en un extremo la resistencia al pin digital correspondiente a la constante LED_BUILTIN. Además de ello debes conectar la pata larga del LED (pin negativo, llamado cátodo) a la GND (masa del circuito)

El valor de resistencia adecuado es de 220 ohmios, pero también se encenderá con valores de hasta 1K, pero descenderá la luminosidad del LED.

CÓDIGO:

void setup()

{

pinMode(LED_BUILTIN, OUTPUT); // Inicializa el pin 13 como salida

}

void loop()

{

digitalWrite(LED_BUILTIN, HIGH);          // Enciende el led 13

delay(1000);                                                   // Espera un segundo

digitalWrite(LED_BUILTIN, LOW);           // Apaga el led 13

delay(1000);                                                   // Espera un segundo

}

Este ejemplo lo puedes utilizar también para comprobar rápidamente si la placa de Arduino funciona correctamente.

loop() y setup() – Ejemplo con Arduino Nº 01

En este ejemplo te muestro el código minimo necesario, que son las funciones loop() y setup(), para que un programa (Sketch) realizado con el IDE de Arduino se compile correctamente, sin dar errores.

Para ello será necesario incluir dos funciones.

La función setup()

La función setup() se inicia automaticamente cuando se inicia el programa, se usa para inicializar variables, modos de los pines (INPUT o OUTPUT), llamadas a librerias, etc. La función setup() se inicia UNA SOLA VEZ, cuando se enciende la placa por primera vez o se reinicia.

La función loop()

La función loop() como su nombre indica, es un lazo que se ejecuta INDEFINIDAMENTE, permitiendo realizar un proceso de multitud de iteraciones. El código dentro de la función loop() es el programa que efectivamente controla la placa de Arduino.

Para comprobar lo anterior únicamente necesitas la placa de Arduino conectada mediante el USB a tu ordenador y ejecutar el IDE de Arduino.

El código que vas a cargar y ejecutar en tu placa de Arduino, “no hace nada”, pero su estructura es útil para comenzar desde cero cualquier programa que quieras realizar. Si te fijas en este programa he añadido algún comentario, que no será leido por el compilador. Para ello utilizarás // dos barras, las que están encima del 7 en la mayoria de los teclados, si vas a hacer un comentario de una linea, y /* comentario de varias lineas */, asterisco y barra si vas a hacer un comentario que ocupe varias lineas.

El código mínimo para que el compilador no de errores es el siguiente:

void setup()

{

            // esta parte del código solamente se ejecutará una vez

}

void loop()

{

            /* Esta parte del código se

                        ejecutará en infinitas

                                    iteraciones */

}

Empezando con Arduino

Si estas empezando con Arduino, debes saber algunas cosas, antes de empezar a controlar el mundo que te rodea con Arduino, debes instalar el software para programar tu placa de Arduino.

El entorno de programación de Arduino (IDE) te permite escribir tus programas y cargarlos en tu placa micro-programable. En la página del software de Arduino encontrarás dos opciones:

  1. Si tienes una conexión de Internet fiable, debes utilizar el IDE en línea (Editor Web de Arduino) Este te permitirá guardar tus bocetos en la nube, tenerlos disponibles desde cualquier dispositivo y realizar copias de seguridad. Siempre tendrás la versión más actualizada del IDE sin necesidad de instalar actualizaciones o bibliotecas generadas por la comunidad.
  2. Si prefieres trabajar sin conexión, puedes utilizar la última versión del IDE de escritorio.

CÓDIGO ONLINE EN EL EDITOR WEB DE ARDUINO

Para usar el IDE online simplemente sigue las instrucciones que puedes encontrar en esta página, recuerda que si trabajas online, no necesitarás instalar nada en tu ordenador.

INSTALACIÓN DEL IDE DE ARDUINO DE ESCRITORIO

Para conocer como debes instalar la versión de escritorio del entorno de desarrollo de Arduino (IDE) debes seguir las instrucciones que figuran en los siguientes enlaces dependiendo del sistema operativo que tengas.

En la página principal de aprendizaje de Arduino, a la derecha tienes una relación de las diferentes placas de Arduino disponibles y es desde allí donde puedes encontrar alguna peculiaridad de alguna de ellas, pero si vas a empezar a trabajar con el Arduino UNO, el MEGA o alguno de los más habituales puedes empezar a trabajar sin problemas, únicamente teniendo en cuenta el puerto COM al que has conectado la placa, y al tipo de placa que es, que puedes encontrar en el menú de herramientas.

COMIENZA CON ARDUINO

Si estas empezando con Arduino es bueno que leas una introducción sobre lo que es Arduino y por qué te gustaría usarlo, después es interesante que sepas qué es el software de Arduino y ajustarlo al idioma en el que te desenvuelvas mejor, no te olvides que hay mucho trabajo ya hecho y que puedes utilizar las librerías o bibliotecas ya creadas y desarrolladas. Si te animas no puedes dejar de aprender qué son los núcleos y la necesidad o no de añadir o ampliar la placa de Arduino con la que estás trabajando, y si de verdad de verdad, quieres ser un verdadero maestro de Arduino, debes saber solucionar los problemas que se te planteen cuando no salgan bien las cosas a la primera.

Para obtener una visión completa de las Guías que tiene Arduino, es muy conveniente visitar la sección de fundaciones, donde puedes encontrar conocimientos a un nivel mucho más profundo sobre los principios y técnicas que hay detrás de la plataforma Arduino.

Puedes empezar a jugar con Arduino con los proyectos que se encuentran en el libro de proyectos “Arduino Starter Kit projects”, además la lectura del libro “Getting Started with Arduino”, sin duda te ayudará a comprender mejor los conceptos que hay detrás de esta interesante plataforma de aprendizaje y comenzarás a controlar el mundo que te rodea.

YA HE APRENDIDO, Y… ¿AHORA QUÉ?

Si ya has aprendido los primeros conceptos y nociones de Arduino, puedes seguir trabajando con el “Arduino and Genuino Starter Kit”, que te guiará en tus primeros pasos en el mundo de la electrónica y más concretamente en el mundo de los sensores y objetos interactivos.

Si estás buscando inspiración, puedes encontrar una gran cantidad de tutoriales en “Arduino Project Hub