Оглавление:

Финал Educaacion Proyecto - Video Y TV Interactiva: 6 шагов
Финал Educaacion Proyecto - Video Y TV Interactiva: 6 шагов

Видео: Финал Educaacion Proyecto - Video Y TV Interactiva: 6 шагов

Видео: Финал Educaacion Proyecto - Video Y TV Interactiva: 6 шагов
Видео: 17 миллионов зрителей смотрели как человек сходит с ума | Nasubi 2024, Ноябрь
Anonim
Финал Educaacion Proyecto - Video Y TV Interactiva
Финал Educaacion Proyecto - 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 manageulación, teniendo en cuenta que su propósito es enseñar a los estudiantes mediante las formje de aprendiza процесс захвата изображений, аудио и видео, подробные описания компонентов. El sistema estará basado en características de videos interactivos de category Learning, por lo tanto, contará con mecánicas que evalarán el aprendizaje que el usuario ha adquirido.

Materiales

- 1 датчик RFID RC522

- 1 Potenciómetro

- 1 Ардунио Мега

El lector RFID y el Potenciómetro son незаменимые в este modelo prototipo funcional, ya que será el controlador que enableirá al usuario interactuar con el sistema. El lector тендра 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.

Программное обеспечение

- Arduino IDE.

- Adobe Illustrator (опционально)

- Обработка

Шаг 1. Образовательное видео

Видео Educativo
Видео Educativo

Inicialmente se Identificaron los temas a tratar dentro del vídeo; en nuestro caso Captura (image, 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, yó que el esa información.

Después de tener Identificado Los temas a tratar y la información que se desplegará en el vídeo education Как получить конечный продукт и образовательное видео, которое выбрано из фильма «Бриндара», как обычно, момент взаимодействия с функциональным прототипом.

Это обучающее видео для начинающих с интерфейсом пользователя, ya que gracias a este vídeo el usuario тендра ла информационная информация, необходимая для ответа на вопросы и ответы; garantizando así el aprendizaje y evalación, концептуальный, методологический и концептуальный.

Шаг 2: Interfaz De Usuario

Интерфаз Де Усуарио
Интерфаз Де Усуарио
Интерфаз Де Усуарио
Интерфаз Де Усуарио
Интерфаз Де Усуарио
Интерфаз Де Усуарио
Интерфаз Де Усуарио
Интерфаз Де Усуарио

В средстве программного обеспечения векторных изображений, в открытом доступе Adobe Illustrator, вы можете найти все элементы, которые несут компоненты интерфейса пользователя.

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.

Шаг 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

Empezaremos, реализующий соединение с RFID-RC522, на местном уровне, если вы хотите использовать MOSI, MISO и SCK на Arduino Mega. Los pines SDA y RST pueden ir ubicados a cualquier pin digital, pero deben ser especificados en el código posteriormente.

Непрерывное выполнение большинства задач, связанных с реализацией RFID:

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

El siguiente components es el Potenciometro, para cual te dejamos un enlace que explica como se realiza la conexión de uno de forma detallada. Луис Лламас Потенсиометро

Шаг 4: Programación - Arduino

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

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

#включают

Информация о лекциях RFID и потенциале, которые конфигурируются с параметрами и используются в методе лекций RFID:

#define RST_PIN 8 // RST

#define SS_PIN 9 // SDA MFRC522 RFID (SS_PIN, RST_PIN); // Глобальные переменные String ID = ""; логическое условие = ложь; const int analogPin = A0; значение int; // переменная 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 (); } // Метод для сравнения тегов RFID

int CompararTags (String ID) {

int caso = 0; если (ID.equals ("43 27 97 10")) {caso = 1; } если (ID.equals ("124 192 204 194")) {caso = 2; } если (ID.equals ("30 44 244 229")) {caso = 3; } return caso;

}

byte ActualUID [4];

String leerRFID (MFRC522 rfid) {String ID0; Строка ID1; Строка ID2; Строка ID3; Идентификатор строки; // Enviamos serialemente su UID для (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; вернуть ID; }

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

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 enableirá separar los datos y utilizarlos según la удобство. Ademas debemos recibir un valor de Processing con la finalidad de reiniciar los valores que se envían.

void loop () {

значение = analogRead (analogPin); // реализуй аналогичную лекцию raw pos = map (value, 0, 1023, 0, 100); // подписаться на запись для enviar INTs //Serial.write(pos); // принять обработанные данные if (Serial.available ()) {// Если данные доступны для чтения, int val = Serial.read (); caso = val; } if (RFID. PICC_IsNewCardPresent ()) {// Выбор цели if (RFID. PICC_ReadCardSerial ()) {ID = leerRFID (RFID); //Serial.println(ID); caso = CompararTags (ID); // si el caso que se lee es igual al anterior que se leyo, no va a imprimir. если (! (casoviejo == caso)) {переключатель (caso) {case 1: //Serial.println(caso); casoviejo = caso; перерыв; case 2: //Serial.println(caso); casoviejo = caso; перерыв; case 3: //Serial.println(caso); casoviejo = caso; перерыв; }}}}

String Potenciometro = (String) pos;

Строка casoRFID = (Строка) caso; Строка todo = Potenciometro + "," + casoRFID + "," + "00"; Serial.println (задача); задержка (500); }

Шаг 5: Programación - Обработка

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

Primero se importan las librerías a usar:

import processing.serial. *;

импорт processing.video. *;

Después se deben Crear las imágenes y los vídeos, para que estos puedan ser visualizados.

Фильм myMovie ;

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

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 cual recibirá los datos Que envié el Arduino.

myMovie = новый фильм [2];

размер (640, 360); frameRate (60); f = createFont ("Arial", 18, истина); Строка portName = "COM4"; // измените 0 на 1 или 2 и т. д. в соответствии с вашим портом myPort = new Serial (this, portName, 9600); myMovie [0] = новый фильм (это, "video2.mp4"); fondo_IMAGEN = loadImage ("Interfaces_2_Fondo_Imagen.png"); concept1 = loadImage ("Интерфейсы_2_1 ° - B.png"); concept2 = loadImage ("Интерфейсы_2_1 ° - G.png"); concept3 = loadImage ("Интерфейсы_2_1 ° - R.png"); muestra = loadImage ("Интерфейсы_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 ();

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

Сначала получены данные о серийных данных и реализованы функции Split (), которые позволяют разделить данные, которые были получены.

если (myMovie [0].time () == myMovie [0].duration ()) {video = true;

} еще {видео = ложь; } пока (myPort.available ()> 0) {String val = myPort.readString (); Строка valor = val; // отдельные значения для восстановления серийного номера. int nums = int (split (доблесть, ',')); pote = nums [0]; caso = nums [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.

if (! video) {

изображение (myMovie [0], 0, 0, 640, 360); } else {фон (255); переключатель (cambioEscena) {case 0: break; случай 1: escena1 (); перерыв; случай 2: escena2 (); перерыв; случай 3: escena3 (); перерыв; }

Los cambios de escenas se realizan en función a cuando el mouse es presionado, por lo tanto se using 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.

void mousePressed () {

// размеры ботона siguente 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! если (параметрOpc1 == 1) {respuesta_1_3 = 1; } если (параметрOpc1 == 2) {respuesta_1_3 = 2; } если (параметрOpc2 == 1) {respuesta_2_3 = 1; } если (параметрOpc2 == 2) {respuesta_2_3 = 2; } если (параметрOpc3 == 1) {respuesta_3_3 = 1; } если (параметрOpc3 == 2) {respuesta_3_3 = 2; } myPort.write (0); println (respuesta_1_3 + "," + respuesta_2_3 + "," + respuesta_3_3); }

если (mouseX> xx && mouseX yy && mouseY finx && mouseX finy && mouseY <finy + Sh2) {guardarRespuestas (); выход(); }}}

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

void guardarRespuestas () {

String ResConceptual = "Неправильно"; String ResMetodlo = "Неправильно"; String ResFuncio = "Неправильно"; если (respuesta_1 == 2) {ResConceptual = "Correcto"; } 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; Строка list = split (Respuestas, ''); // Записывает строки в файл, каждая в отдельной строке saveStrings ("RESPUESTAS.txt", list); }

Шаг 6: Ejecución

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 потенциометры для различных las respuestas que se desean dar y los tags y el sensor RFID for seleccionar los pasos en la interfaz de la segunda y tercera pregunta.

Рекомендуемые: