Taula de continguts:

Educaacion Proyecto Final - Video Y TV Interactiva: 6 Steps
Educaacion Proyecto Final - Video Y TV Interactiva: 6 Steps

Vídeo: Educaacion Proyecto Final - Video Y TV Interactiva: 6 Steps

Vídeo: Educaacion Proyecto Final - Video Y TV Interactiva: 6 Steps
Vídeo: Cómo presentar tu proyecto final - Aprende Con Tabella 2024, Desembre
Anonim
Educaacion Proyecto Final - Video Y TV Interactiva
Educaacion Proyecto Final - Video Y TV Interactiva

El producte serà un sistema multimèdia interactiu, el qual sedesplegarà a través d’un mitjà audiovisual i contarà amb elements software i hardware per a la seva manipulació, tenint en compte que el seu propòsit és ensenyar als estudiants mitjançant les formes d’aprenentatge conceptual, metodològic i funcional, el procés de captura d’imatge, àudio i vídeo, explicant totes les seves components. El sistema estarà basat en característiques de vídeos interactius de categoria Learning, per tant, contarà amb mecàniques que avaluaran l’aprenentatge que l’usuari ha adquirit.

Materials

- 1 sensor RFID RC522

- 1 Potenciómetro

- 1 Ardunio Mega

El lector RFID i el potenciómetre són indispensables en aquest model de prototip funcional, ja que serà el controlador que permetrà a l’usuari interactuar amb el sistema. El lector tindrà com a funció llegir les etiquetes per seleccionar la resposta en cada pregunta i el potenciómetre serà l’encàrrec de navegar dins de les opcions.

Programari

- ID Arduino.

- Adobe Illustrator (Opcional)

- Tramitació

Pas 1: Video Educatiu

Vídeo Educatiu
Vídeo Educatiu

Inicialment s’identifiquen els temes a tractar dins del vídeo; en el nostre cas Captura (imatge, vídeo i so), extraient de diferents fonts confiables la informació més important sobre aquests temes, tenint en compte la part conceptual, metodològica i funcional de cada un, ja que aquesta informació serà el contingut dels vídeos.

Després de tenir identificats els temes a tractar i la informació que es desplegarà en el vídeo educatiu, es procedirà a realitzar les diferents composicions de vídeo, imatge, text i àudio, per mitjà d’un software editor de vídeo, en el nostre cas Adobe Premiere, per així obtenir un producte final el qual és el vídeo educatiu que es brindarà a l'usuari en el moment d'interactuar amb el model prototip funcional.

Aquest vídeo educatiu serà la primera interfície de l’usuari, ja que gràcies a aquest vídeo l’usuari tindrà la informació necessària per respondre a les diferents preguntes; garantint així l’aprenentatge i avaluació, conceptual, metodològica i conceptual.

Pas 2: Interfaz d'Usuari

Interfaz De Usuario
Interfaz De Usuario
Interfaz De Usuario
Interfaz De Usuario
Interfaz De Usuario
Interfaz De Usuario
Interfaz De Usuario
Interfaz De Usuario

Per mitjà d’un programari de vectors, en el nostre cas Adobe Illustrator, desenvoluparà tots els elements que componen la nostra interfície d’usuari.

Es realitzaran els fons per a cada interfície d'usuari del model de prototip funcional; a més es diagrama totes les opcions necessàries amb les quals va a interactuar amb l’usuari, principalment les opcions de resposta, les quals es van desenvolupar en un recuadro amb cada opció i un color diferenciador a les demes.

Pas 3: Connexió dels components

Connexió dels components
Connexió dels components
Connexió dels components
Connexió dels components

Empezarem realitzant la connexió del RFID-RC522, per al qual ha de tenir en compte la ubicació dels pins MOSI, MISO y SCK en el Arduino Mega. Els pins SDA i RST poden estar ubicats a qualsevol pin digital, però han de ser especificats en el codi posterior.

A continuació es mostren les connexions que es realitzen per al RFID:

  • SDA = D9
  • RST = D8
  • MOSI = D51
  • MISO = D50
  • SCK = D52

El següent component és el potenciometre, per a qualsevol cosa que deixem un enllaç que explica com es realitza la connexió d’un de forma detallada. Luis Llamas Potenciometro

Pas 4: Programació - Arduino

Ahora començarem amb la programació. El codi complet el pots descarregar quan quieres.

Inicialment debem afegir les biblioteques que vamos a usar:

#incloure

Ahora per a la lectura del RFID i del potenciomentro es configuren els paràmetres i utilitzen un mètode que facilita la lectura del RFID:

#define RST_PIN 8 // RST

#define SS_PIN 9 // SDA MFRC522 RFID (SS_PIN, RST_PIN); // Variables globales String ID = ""; condicion booleana = false; const int analogPin = A0; valor int; // variable que almacena la lectura analògica raw int pos;

int cont = 0;

int caso;

int casoviejo = 0; configuració nul·la () {Serial.begin (9600); SPI.begin (); RFID. PCD_Init (); } // Metodo para comparar las etiquetas de RFID

int CompararTags (identificador de cadena) {

int caso = 0; if (ID.equals ("43 27 97 10")) {caso = 1; } if (ID.equals ("124 192 204 194")) {caso = 2; } if (ID.equals ("30 44 244 229")) {caso = 3; } tornar cas;

}

byte ActualUID [4];

String leerRFID (MFRC522 rfid) {String ID0; Cadena ID1; Cadena ID2; Cadena ID3; ID de cadena; // Enviamos serialemente su UID for (byte i = 0; i <rfid.uid.size; i ++) {ActualUID = rfid.uid.uidByte ; if (i == 0) {ID0 = String (ActualUID ); } if (i == 1) {ID1 = Cadena (ActualUID ); } if (i == 2) {ID2 = Cadena (ActualUID ); } if (i == 3) {ID3 = String (ActualUID ); }} ID = ID0 + "" + ID1 + "" + ID2 + "" + ID3; retorn d'identitat; }

Com es desitja enviar un dato segons el TAG que passi pel sensor, es realitza un mètode que la comparació

Finalment, debem enviar les dades per la sèrie a Processing, per a qualsevol arma que tinguin tota la informació separada cada un per una ",", ja que en Processing realitzem un Split () que permetrà separar els dades i utilitzar-los segons la conveniencia. Ademas debemos recibir un valor de Procesamiento con la finalidad de reiniciar los valores que se envían.

bucle buit () {

valor = analogRead (analogPin); // realitzar la lectura analògica raw pos = map (value, 0, 1023, 0, 100); // se escribe write per enviar INTs //Serial.write(pos); // rep les dades de Processament si (Serial.available ()) {// Si hi ha dades disponibles per llegir, int val = Serial.read (); caso = val; } if (RFID. PICC_IsNewCardPresent ()) {// Seleccionamos una tarjeta if (RFID. PICC_ReadCardSerial ()) {ID = leerRFID (RFID); //Serial.println(ID); caso = CompararTags (ID); // si el cas que es llegeix és igual al anterior que es llegeix, no va a imprimir. if (! (casoviejo == caso)) {switch (caso) {case 1: //Serial.println(caso); casoviejo = cas; trencar; cas 2: //Serial.println(caso); casoviejo = cas; trencar; cas 3: //Serial.println(caso); casoviejo = cas; trencar; }}}}

String potenciometro = (String) pos;

Cadena casoRFID = (Cadena) caso; String todo = potenciometro + "," + casoRFID + "," + "00"; Serial.println (tot); retard (500); }

Pas 5: Programació - Processament

Debit a que el codi és extens, s’explicarà els punts més importants a tenir en compte en l’elaboració del sistema. Sin embargo podremos descargar el código completo cuando quieras.

Primer s’importen les biblioteques a utilitzar:

processament de la importació. sèrie. *;

processament d’importacions. vídeo. *;

Després s'han de crear les imatges i els vídeos, per a què es puguin visualitzar.

Pel·lícula myMovie ;

PImage fons_IMAGEN; PImage concept1, concept2, concept3, concept4, mostra; PImage opcion1, opcion2, opcion3; PImage opcmet1, opcmet2, opcmet3; PImatge opc1_1, opc1_2, opc2_1, opc2_2, opc3_1, opc3_2; PImage funcional1, funcional2, funcional3;

en el setup () debem especificar els noms dels arxius, els quals han d’estar dins d’una carpeta anomenada data ubicada en la mateixa carpeta del projecte. Ademes específicament el tipus de lletra a utilitzar i el port serial per el que rebrà els dades que envié el Arduino.

myMovie = nova pel·lícula [2];

mida (640, 360); frameRate (60); f = createFont ("Arial", 18, cert); String portName = "COM4"; // canvieu el 0 a 1 o 2, etc. perquè coincideixi amb el vostre port myPort = new Serial (this, portName, 9600); myMovie [0] = nova pel·lícula (això, "video2.mp4"); fondo_IMAGEN = loadImage ("Interfícies_2_Fondo_Imagen.png"); concepte1 = loadImage ("Interfícies_2_1 ° - B.png"); concepte2 = loadImage ("Interfícies_2_1 ° - G.png"); concepte3 = loadImage ("Interfícies_2_1 ° - R.png"); mostra = loadImage ("Interfícies_2_1 ° - RGB.png"); opcion1 = loadImage ("img_Imagen-Metodología-05.png"); opcion2 = loadImage ("img_Imagen-Metodología-06.png"); opcion3 = loadImage ("img_Imagen-Metodología-07.png"); opc1_1 = loadImage ("img_Imagen-Funcional-08.png"); opc1_2 = loadImage ("img_Imagen-Funcional-09.png"); opc2_1 = loadImage ("img_Imagen-Funcional-10.png"); opc2_2 = loadImage ("img_Imagen-Funcional-11.png"); opc3_1 = loadImage ("img_Imagen-Funcional-13.png"); opc3_2 = loadImage ("img_Imagen-Funcional-15.png"); funcional1 = loadImage ("funcional1.png"); funcional2 = loadImage ("funcional2.png"); funcional3 = loadImage ("funcional3.png"); myMovie [0].play ();

Les següents línies de codi estan dins del mètode Draw ().

Primer es va rebre els dades del serial i es va realitzar el Split () que permet separar cada un dels dades que es van rebre.

if (myMovie [0].time () == myMovie [0].duration ()) {video = true;

} else {video = false; } while (myPort.available ()> 0) {String val = myPort.readString (); String valor = val; // separa els valors que recullen el serial. int nums = int (split (valor, ',')); pote = nums [0]; caso = nums [1]; println (pote + "," + caso); }

Se tiene un switch case, para cada escena del sistema, per tant es reproduirà un mètode en el moment en el moment en què la variable "canviEscena" cambie.

si (! vídeo) {

imatge (myMovie [0], 0, 0, 640, 360); } else {background (255); switch (cambioEscena) {cas 0: break; cas 1: escena1 (); trencar; cas 2: escena2 (); trencar; cas 3: escena3 (); trencar; }

Els canvis d’escenes es realitzaran en funció quan el mouse està presionat, per tant es fa servir el mètode mousePressed () per realitzar aquest canvi. També s'utilitza aquest mètode per emmagatzemar les respostes que l'usuari fa al sistema i posteriorment verificar-les i guardar-les en un document Txt.

void mousePressed () {

// dimensions del botó siguent escena 1 if (cambioEscena == 1) {if (mouseX> Sx && mouseX Sy && mouseY Sx2 && mouseX Sy2 && mouseY xx && mouseX yy && mouseY 450 && mouseX 100 && mouseY <100 + 30) { // ALMACENA LA RESPUESTA DEL PARAMETRO! if (parametroOpc1 == 1) {resposta_1_3 = 1; } if (parametroOpc1 == 2) {resposta_1_3 = 2; } if (parametroOpc2 == 1) {resposta_2_3 = 1; } if (parametroOpc2 == 2) {resposta_2_3 = 2; } if (parametroOpc3 == 1) {resposta_3_3 = 1; } if (parametroOpc3 == 2) {resposta_3_3 = 2; } myPort.write (0); println (resposta_1_3 + "," + resposta_2_3 + "," + resposta_3_3); }

if (mouseX> xx && mouseX yy && mouseY finx && mouseX finy && mouseY <finy + Sh2) {guardarRespuestas (); sortir (); }}}

El mètode utilitzat per emmagatzemar respostes és el següent:

void guardarRespuestas () {

String ResConceptual = "Incorrecte"; String ResMetodlo = "Incorrecte"; String ResFuncio = "Incorrecte"; if (resposta_1 == 2) {ResConceptual = "Correcte"; } if (y == 210 && y2 == 140 && y3 == 70) {ResMetodlo = "Correcte"; } if (escena2y == 140 && escena2y2 == 210 && escena2y3 == 70 && respuesta_1_3 == 1 && respuesta_2_3 == 2 && respuesta_3_3 == 2) {ResFuncio = "Correcte"; } String Respuestas = "Respuesta conceptual:" + ResConceptual + "Respuesta metodologica:" + ResMetodlo + "Respuesta funcional:" + ResFuncio; String list = split (Respuestas, ''); // Escriu les cadenes en un fitxer, cadascuna en una línia separada saveStrings ("RESPUESTAS.txt", llista); }

Pas 6: Ejecución

Execució
Execució
Execució
Execució

Finalment quan s’executa el programa inicia amb un vídeo explicatiu. Després es fa servir el potencimetro per variar les respostes que es desaran i els tags i el sensor RFID per seleccionar els passos en la interfície de la segona i tercera pregunta.

Recomanat: