Cuprins:

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

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

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

El producto será un sistema multimedia interactivo, el cual sedesplegará a través de un medio audiovisual y contará con elementos software y hardware para su manipulación, teniendo en cuenta que su propósito es enseñar a los estudiantes mediante las formas de aprendizaje conceptual, metodológico y funcional, procesul de captură de imagine, audio și video, explicând toate componentele. Sistemul va fi bazat pe caracteristici de videoclipuri interactive de categorie Învățare, pentru atât, va avea mecanici care evaluează învățarea pe care utilizatorul a dobândit-o.

Materiale

- 1 senzor RFID RC522

- 1 Potenciómetro

- 1 Ardunio Mega

El lector RFID și potențiometrul sunt indispensabile în acest model prototip funcțional, care va fi controlorul care va permite utilizatorului să interacționeze cu sistemul. El lector tinde ca funcție leer etichetele pentru a selecta răspunsul în fiecare întrebare și potențiometrul va fi încarcat de navă în interiorul opțiunilor.

Software

- ID Arduino.

- Adobe Illustrator (Opțional)

- Prelucrare

Pasul 1: Video Educativo

Video Educativo
Video Educativo

Inițial se identifică temele a trata în interiorul videoclipului; în nuestro caso Captura (imagen, video y sonido), extrayendo de diferentes fuentes confiables la information more important about of these themes, teniendo in account the part conceptual, metodologic and functional de each one, ya that this information sera the content of the videos.

După ce ați identificat temele pentru a trata și informațiile pe care le va despărți în video educativ, proceduri pentru a realiza diferitele compoziții de video, imagine, text și audio, prin mediu de un software editor de video, în cazul nostru Adobe Premiere, pentru astfel obține un produs final el cual este el video educativ care se le brindara la utilizator în momentul de interacțiune cu modelul prototip funcțional.

Acest videoclip educativ va fi primul interfaz al utilizatorului, deja care vă mulțumesc pentru acest videoclip, utilizatorul va avea nevoie de informații necesare pentru a răspunde la diferite întrebări; garantând astfel învățarea și evaluarea, conceptuală, metodologică și conceptuală.

Pasul 2: Interfaz De Usuario

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

Prin mediu de un software de vectori, în cazul nostru Adobe Illustrator, se vor dezvolta toate elementele pe care le-au compus interfața noastră de utilizator.

Se realizează fondurile pentru fiecare interfaz de utilizator al modelului prototip funcțional; în plus se diagramă toate opțiunile necesare cu care va interacționa cu utilizatorul, în principal cu opțiunile de răspuns, cu care se dezvoltă un recuadro cu fiecare opțiune și un color diferențiat la demas.

Pasul 3: Conexiune de la Componente

Conexión De Los Componentes
Conexión De Los Componentes
Conexión De Los Componentes
Conexión De Los Componentes

Empezaremos realizând conexiunea RFID-RC522, pentru ceea ce trebuie să aveți în contul locației pinilor MOSI, MISO și SCK în Arduino Mega. Los pines SDA și RST pot fi amplasate la orice pin digital, dar trebuie să fie specificate în codul posterior.

A continuarea se afișează conexiunile care se realizează pentru RFID:

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

El siguiente component es el potenciometro, para cual te dejamos un enlace que explica como se realizează conexiunea unuia de forma detaliată. Luis Llamas Potenciometro

Pasul 4: Programare - Arduino

Ahora începem cu programarea. El código completo lo puedes descargar cuando quieras.

În mod oficial, vom adăuga bibliotecile pe care le vom folosi:

#include

Ahora pentru citirea RFID și a potențialului se configurează parametrii și utilizează un metodă care facilitează citirea RFID:

#define RST_PIN 8 // RST

#define SS_PIN 9 // SDA MFRC522 RFID (SS_PIN, RST_PIN); // Variabile globale String ID = ""; boolean condition = false; const int analogPin = A0; valoarea int; // variable que almacena la lectura analógica raw int pos;

int cont = 0;

int caso;

int casoviejo = 0; void setup () {Serial.begin (9600); SPI.begin (); RFID. PCD_Init (); } // Metodă pentru compararea etichetelor RFID

int CompararTags (ID șir) {

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; } returnează caz;

}

octet ActualUID [4];

String leerRFID (MFRC522 rfid) {String ID0; Șir ID1; Șir ID2; String ID3; ID șir; // 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 = String (ActualUID ); } if (i == 2) {ID2 = String (ActualUID ); } if (i == 3) {ID3 = String (ActualUID ); }} ID = ID0 + "" + ID1 + "" + ID2 + "" + ID3; returnează ID; }

Cum se desea trimite un dat după TAG că se trece prin senzor, se realizează un metodă care compară

În cele din urmă, vom trimite datele pentru serialul Processing, pentru ceea ce armăm într-un șir care au toată informația separată fiecare pentru una, conveniencia. Ademas debemos recibir un valor de Processing cu finalitatea de reiniciar a valorilor pe care le-au inviat.

bucla nulă () {

valoare = analogRead (analogPin); // realiza la lectura analógica raw pos = map (value, 0, 1023, 0, 100); // se escribe write pentru enviar INTs //Serial.write(pos); // primește datele de procesare if (Serial.available ()) {// Dacă datele sunt disponibile pentru citire, int val = Serial.read (); caso = val; } if (RFID. PICC_IsNewCardPresent ()) {// Selectați o carte if (RFID. PICC_ReadCardSerial ()) {ID = leerRFID (RFID); //Serial.println(ID); caso = CompararTags (ID); // si el caso que se lee es igual al anterior care se leyo, no va a imprimir. if (! (casoviejo == caso)) {switch (caso) {case 1: //Serial.println(caso); casoviejo = caso; pauză; cazul 2: //Serial.println(caso); casoviejo = caso; pauză; cazul 3: //Serial.println(caso); casoviejo = caso; pauză; }}}}

String potenciometro = (String) pos;

String casoRFID = (String) caso; String todo = potenciometro + "," + casoRFID + "," + "00"; Serial.println (todo); întârziere (500); }

Pasul 5: Programare - Procesare

Debitat a cărui cod este extensiv, se explică punctele masive importante a avea în cont în elaborarea sistemului. Fără embargo putem descărca codul complet atunci când niște.

Primerul se importă la bibliotecile folosite:

procesare import.serial. *;

procesare import.video. *;

După ce trebuie să creezi imaginile și videoclipurile, pentru că acestea vor fi vizualizate.

Film myMovie ;

PImage fondo_IMAGEN; PImage concept1, concept2, concept3, concept4, mostra; PImage opcion1, opcion2, opcion3; PImage opcmet1, opcmet2, opcmet3; PImage opc1_1, opc1_2, opc2_1, opc2_2, opc3_1, opc3_2; PImage funcțional1, funcțional2, funcțional3;

în el setup () debem specificați numele bărbaților, care trebuie să fie în interiorul unei carpete llamada data amplasată în aceeași carpeta a proiectului. Ademă specificăm tipul de literă a folosi și portul serial pentru cel care va primi datele que envié el Arduino.

myMovie = film nou [2];

dimensiune (640, 360); frameRate (60); f = createFont ("Arial", 18, adevărat); String portName = "COM4"; // schimbați 0 la 1 sau 2 etc. pentru a se potrivi portului dvs. myPort = new Serial (this, portName, 9600); myMovie [0] = film nou (acesta, „video2.mp4”); fondo_IMAGEN = loadImage ("Interfețe_2_Fondo_Imagen.png"); concept1 = loadImage ("Interfețe_2_1 ° - B.png"); concept2 = loadImage ("Interfețe_2_1 ° - G.png"); concept3 = loadImage ("Interfețe_2_1 ° - R.png"); sample = loadImage ("Interfețe_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"); funcțional1 = loadImage ("funcțional1.png"); funcțional2 = loadImage ("funcțional2.png"); funcional3 = loadImage ("funcional3.png"); myMovie [0].play ();

Următoarele linii de cod sunt în cadrul metodei Draw ().

Primero se primesc datele din serial și realizăm el Split () care permite separarea fiecăruia dintre datele care se primesc.

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

} else {video = false; } while (myPort.available ()> 0) {String val = myPort.readString (); String valor = val; // separa valorile care primesc serialul. int nums = int (split (valor, ',')); pote = nums [0]; caso = nums [1]; println (pote + "," + caso); }

Se tiene un switch case, para cada escena del sistema, por lo tanto se reproduce un método en el momento en el momento en que la variable "cambioEscena" cambie.

if (! video) {

imagine (myMovie [0], 0, 0, 640, 360); } else {background (255); switch (cambioEscena) {caz 0: pauză; cazul 1: escena1 (); pauză; cazul 2: escena2 (); pauză; caz 3: escena3 (); pauză; }

Los changes de escenas se realizează în funcție când mouse-ul este presionat, pentru atât atât se folosește metoda mousePressed () pentru realizarea acestui schimb. De asemenea, se folosește acest metodă pentru a stoca răspunsurile pe care utilizatorul le-a făcut sistemului și ulterior verificați-le și păstrați-le într-un document Txt.

void mousePressed () {

// dimensiuni ale botonului urmează 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) {respuesta_1_3 = 1; } if (parametroOpc1 == 2) {respuesta_1_3 = 2; } if (parametroOpc2 == 1) {respuesta_2_3 = 1; } if (parametroOpc2 == 2) {respuesta_2_3 = 2; } if (parametroOpc3 == 1) {respuesta_3_3 = 1; } if (parametroOpc3 == 2) {respuesta_3_3 = 2; } myPort.write (0); println (respuesta_1_3 + "," + respuesta_2_3 + "," + respuesta_3_3); }

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

Metoda utilizată pentru stocarea răspunsurilor este următoarea:

void guardarRespuestas () {

String ResConceptual = "Incorrecto"; String ResMetodlo = "Incorrecto"; String ResFuncio = "Incorrecto"; if (respuesta_1 == 2) {ResConceptual = "Corect"; } if (y == 210 && y2 == 140 && y3 == 70) {ResMetodlo = "Correcto"; } if (escena2y == 140 && escena2y2 == 210 && escena2y3 == 70 && respuesta_1_3 == 1 && respuesta_2_3 == 2 && respuesta_3_3 == 2) {ResFuncio = "Correcto"; } String Respuestas = "Respuesta conceptual:" + ResConceptual + "Respuesta metodologica:" + ResMetodlo + "Respuesta funcional:" + ResFuncio; String list = split (Respuestas, ''); // Scrie șirurile într-un fișier, fiecare pe o linie separată saveStrings ("RESPUESTAS.txt", listă); }

Pasul 6: Ejecución

Ejecución
Ejecución
Ejecución
Ejecución

Finalmente când se execută programul inițiativ cu un videoclip explicativ. După ce se utilizează potențialul pentru variatul răspunsurilor pe care le-am dat și tag-urile și senzorul RFID pentru selectarea pașilor în interfața celei de-a doua și a treia întrebare.

Recomandat: