Spisu treści:

Educaacion Proyecto Final – Video Y TV Interactiva: 6 kroków
Educaacion Proyecto Final – Video Y TV Interactiva: 6 kroków

Wideo: Educaacion Proyecto Final – Video Y TV Interactiva: 6 kroków

Wideo: Educaacion Proyecto Final – Video Y TV Interactiva: 6 kroków
Wideo: La milagrosa actuación de los pasajeros en una estación de tren en Buenos Aires 2024, Lipiec
Anonim
Educaacion Proyecto Final – Video Y TV Interactiva
Educaacion Proyecto Final – Video Y TV Interactiva

Produkt jest serem systemu multimedialnego, który jest interaktywny, nie wymaga korzystania z mediów audiowizualnych i zawiera informacje o oprogramowaniu i sprzęcie do manipulacji, teniendo i narzędzia, które dotyczą projektu i zbadania medialnych form planowania, metod koncepcyjnych i koncepcyjnych el proceso de captura de imagen, audio y video, explicando todas sus componentes. El sistema estará basado en características de video interactivos de categoría Learning, por lo tanto, contará con mecánicas que evaluarán el aprendizaje que el usuario ha adquirido.

Materiały

- 1 czujnik RFID RC522

- 1 potencjometr

- 1 Ardunio Mega

El lektor RFID y el potenciómetro son niezbędne en este modelo prototipo funcional, ya que será el controlador que allowirá al usuario interactuar con el sistema. El lector tendrá como función leer las etiquetas para seleccionar la respuesta en cada pregunta y el potenciómetro será el encargado de navegar dentro las opciones.

Oprogramowanie

- Środowisko Arduino.

-Adobe Illustrator (opcjonalnie)

-Przetwarzanie

Krok 1: Wychowanie wideo

Edukacyjne wideo
Edukacyjne wideo

Inicialmente se identificaron los temas a tratar dentro del wideo; en nuestro caso Captura (imagen, vídeo y sonido), extrayendo de diferentes fuentes confiables la información más Importante acerca de estos temas, teniendo en cuenta la parte conceptual, metodológica y funcional de cada uno, ya que esta esta informaciten ser.

Después de tener identificado los temas a tratar y la información que se desplegará en el video educativo, procedimos a realizar las diferentes composiciones de video, imagen, texto y audio, por medio de un software editor de video, en nuestro cas así obtener un producto final el cual es el video educativo que se le brindara al usuario al momento de interactuar con el modelo prototipo funcional.

Este vídeo educativo sera la primer interfaz del usuario, ya que gracias a este vídeo el usuario tendrá la información necesaria para responder a las diferentes preguntas; garantizando así el aprendizaje y evaluación, conceptual, metodológica y conceptual.

Krok 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

Por medio de un software de vectores, en nuestro caso Adobe Illustrator, se desarrolló todos los elementos que componían nuestra interfaz de usuario.

Se realizaron los fondos para cada interfaz de usuario del modelo prototipo funcional; además se diagramo todas las opciones necesarias con las cuales va a interactuar el usuario, principalmente las opciones de respuesta, las cuales se desarrolló un recuadro con cada opción y un color diferenciador a las demás.

Krok 3: Conexión De Los Componentes

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

Realizujemy połączenie RFID-RC522, które odbywa się lokalnie w sieciach pines MOSI, MISO i SCK oraz Arduino Mega. Los pines SDA y RST pueden ir ubicados a cualquier pin digital, pero deben ser especificados en el código posteriormente.

A continuación se mostrara las conexiones que se realizaron para el RFID:

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

El siguiente componente es el potenciometro, para cual te dejamos un enlace que explica como se realiza la conexión de uno de forma detallada. Luis Llamas Potenciometro

Krok 4: Programacja - Arduino

Ahora empezaremos con la programación. El código completo lo puedes descargar cuando quieras.

Inicialmente debemos añadir las librerías que vamos a usar:

#włączać

Ahora para la lectura del RFID y del potenciomentro se configuran los parametros y se utiliza un método que facilita la lectura del RFID:

#define RST_PIN 8 // RST

#define SS_PIN 9 // SDA MFRC522 RFID(SS_PIN, RST_PIN); //Zmienne globalne String ID = ""; warunek logiczny = fałsz; const int analogPin = A0; int wartość; //zmienna que almacena la lectura analógica raw int pos;

int kont. = 0;

int caso;

int casoviejo = 0; void setup() { Serial.begin(9600); SPI.początek(); RFID. PCD_Init(); } //Metodo para comparar los tags del RFID

int CompararTags (identyfikator ciągu) {

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; } powrót caso;

}

bajt RzeczywistyUID[4];

Ciąg leerRFID(MFRC522 rfid) { Ciąg ID0; Ciąg ID1; Ciąg ID2; Ciąg ID3; Identyfikator ciągu; // Enviamos serialemente su UID for (byte i = 0; i < rfid.uid.size; i++) { RzeczywistyUID = rfid.uid.uidByte; if (i == 0) { ID0 = String(RzeczywistyUID); } if (i == 1) { ID1 = String(RzeczywistyUID); } if (i == 2) { ID2 = String(RzeczywistyUID); } if (i == 3) { ID3 = String(RzeczywistyUID); } } ID = ID0 + " " + ID1 + " " + ID2 + " " + ID3; identyfikator zwrotu; }

Como se desa enviar un dato según el TAG que se pase por el sensor, se realiza un método que los compara

Finalmente, debemos enviar los datos por el serial a Processing, para lo cual armamos un String que tienen toda la información separado cada uno por una ", ", ya que en Processing realizaremos un Split() que allowirá separar los datos y utilizarlos según la wygoda. Ademas debemos recibir un valor de Processing con la finalidad de reiniciar los valores que se envían.

pusta pętla () {

wartość = analogRead(analogPin); // realizar la lectura analógica raw pos = map(value, 0, 1023, 0, 100); //sescribe write para enviar INTs //Serial.write(pos); //recibe los datos de Przetwarzanie if (Serial.available()) { // Jeśli dane są dostępne do odczytu, int val = Serial.read(); caso = val; } if (RFID. PICC_IsNewCardPresent()) { //Wybierz tarjeta if (RFID. PICC_ReadCardSerial()) { ID = leerRFID(RFID); //Serial.println(ID); caso = tagi porównawcze (identyfikator); // si el caso que se lee es igual al anterior que se leyo, no va a imprimir. if (!(casoviejo == caso)) { switch (caso) { case 1: //Serial.println(caso); casoviejo = caso; przerwa; przypadek 2: //Serial.println(caso); casoviejo = caso; przerwa; przypadek 3: //Serial.println(caso); casoviejo = caso; przerwa; } } } }

Potenciometro ciągu = (Ciąg) poz;

Ciąg casoRFID = (ciąg)caso; Ciąg do zrobienia = potenciometro+", "+casoRFID+", "+"00"; Serial.println(do zrobienia); opóźnienie (500); }

Krok 5: Programación – Przetwarzanie

Debido a que el código es extenso, se explicara los puntos mas Importantes a tener en cuenta en la elaboración del sistema. Sin embargo podrás descargar el código completo cuando quieras.

Primero se importan las librerías a usar:

importowanie przetwarzania.serial.*;

importowanie przetwarzania.wideo.*;

Después se deben crear las obrazy y los wideo, para que estos puedan ser visualizados.

Film mójFilm;

PImage fondo_IMAGEN; PKoncepcja obrazu1, koncepcja2, koncepcja3, koncepcja4, muestra; PObraz opcja1, opcja2, opcja3; PObraz opcmet1, opcmet2, opcmet3; PObraz opc1_1, opc1_2, opc2_1, opc2_2, opc3_1, opc3_2; PObraz funkcjonalny1, funkcjonalny2, funkcjonalny3;

en el setup() debemos especificar los nombres de los archivos, los cuales deben estar dentro de una carpeta llamada data ubicada en la misma carpeta del proyecto. Ademas especificamos el tipo de letra a usar y el puerto serial por el los cuals recibirá que envié el Arduino.

mójMovie = nowy film[2];

rozmiar (640, 360); liczba klatek na sekundę(60); f = createFont("Arial", 18, prawda); Ciąg nazwa_portu = "COM4"; //zmień 0 na 1 lub 2 itd., aby dopasować swój port myPort = new Serial(this, portName, 9600); mójMovie[0] = nowy Film(this, "video2.mp4"); fondo_IMAGEN = loadImage("Interfejsy_2_Fondo_Imagen.png"); concept1 = loadImage("Interfejsy_2_1° - B.png"); concept2 = loadImage("Interfejsy_2_1° - G.png"); concept3 = loadImage("Interfejsy_2_1° - R.png"); muestra = loadImage("Interfejsy_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("funkcjonalny1.png"); funcional2 = loadImage("funcional2.png"); funcional3 = loadImage("funcional3.png"); mójFilm[0].play();

Las siguientes lineas de código están dentro del método Draw().

Primero se reciben los datos del serial y realizamos el Split() que allowe separar cada uno de los datas que se reciben.

if(mójFilm[0].time()==mójFilm[0].duration()){ wideo = prawda;

}else{ wideo = fałsz; } while (mójPort.dostępny() > 0) { Wartość ciągu = mójPort.odczytString(); Wartość ciągu = wartość; //separa los valores que recoje el serial. int nums = int(split(valor, ', ')); pot = liczba[0]; caso = liczba[1]; println(pote+", "+caso); }

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

jeśli(!wideo){

image(mójFilm[0], 0, 0, 640, 360); } inny{ tło(255); przełącznik (cambioEscena) { przypadek 0: przerwa; przypadek 1: escena1(); przerwa; przypadek 2: escena2(); przerwa; przypadek 3: escena3(); przerwa; }

Los cambios de escenas se realizan en función a cuando el mouse es presionado, por lo tanto se utiliza el método mousePressed() para realizar este cambio. También se utiliza este método para almacenar las respuestas que el usuario da al sistema y posteriormente verificarlas y guardarlas en un documento Txt.

nieważna myszNaciśnięta() {

//dimenciones del boton siguente escena 1 if (cambioEscena == 1) { if (mouseX > Sx && myszX Sy && myszY Sx2 && myszX Sy2 && myszY xx && myszX yy && myszY 450 && myszX 100 && myszY < 100+30) { //ALMACENA LA RESPUESTA DEL PARAMETRO ! jeśli (parametrOpc1==1) { respuesta_1_3 = 1; } if (parametroOpc1==2) { respuesta_1_3 = 2; } jeśli (parametrOpc2==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; } mójPort.write(0); println(respuesta_1_3+", "+respuesta_2_3+", "+respuesta_3_3); }

if (myszX > xx && myszX yy && myszY finx && myszX skończony&& myszY < skończony+Sh2) { guardarRespuestas(); Wyjście(); } } }

El método utilizado para almacenar respuestas es el siguiente:

void guardarRespuestas(){

String ResConceptual= "Niepoprawnie"; String ResMetodlo= "Niepoprawnie"; String ResFuncio = "Niepoprawnie"; if(respuesta_1 == 2){ ResConceptual = "Popraw"; } if(y==210 && y2==140 && y3==70){ ResMetodlo= "Popraw"; } if(escena2y == 140 && escena2y2 == 210 && escena2y3 ==70 && respuesta_1_3==1 && respuesta_2_3==2&& respuesta_3_3 == 2){ ResFuncio= "Popraw"; } String Respuestas = "Respuesta conceptual:"+ ResConceptual+"Respuesta metodologica: "+ResMetodlo+"Respuesta funcional: "+ResFuncio; String list = split(Respuestas, ' '); // Zapisuje łańcuchy do pliku, każdy w osobnej linii saveStrings("RESPUESTAS.txt", lista); }

Krok 6: Wyrzuć

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

Finalmente cuando se ejecuta el programa iniciara con un vídeo explicativo. Después se utilizara el potencimetro para variar las respuestas que se desean dar y los tags y el sensor RFID para seleccionar los pasos en la interfaz de la segunda y tercera pregunta.

Zalecana: