Cov txheej txheem:
- Kauj Ruam 1: Video Educativo
- Kauj Ruam 2: Interfaz De Usuario
- Kauj Ruam 3: Conexión De Los Componentes
- Kauj Ruam 4: Programación - Arduino
- Kauj Ruam 5: Programación - Ua
- Kauj Ruam 6: Yooj Yim
Video: Educaacion Proyecto Kawg - Video Y TV Sib Tham: 6 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:30
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, yos hav zoov el proceso de captura de imagen, suab y yees duab, piav qhia kom todas sus tivthaiv. El sistema estará basado en características de videos interactivos de categoría Kawm, por lo tanto, contará con mecánicas que kev tshuaj ntsuam xyuas el aprendizaje que el usuario ha adquirido.
Cov ntaub ntawv
- 1 Sensor RFID RC522
- 1 Potenciómetro
- 1 Ardunio Mega
El lector RFID y el potenciómetro tus tub tsis tseem ceeb en este modelo prototipo funcional, ya que será el controlador que permitirá 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.
Software
- Arduino IDE.
- Adobe Illustrator (Xaiv tau)
- Ua
Kauj Ruam 1: Video Educativo
Inicialmente se identificaron los temas a tratar dentro del vídeo; 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 información dera de la.
Después de tener identificado los temas a tratar y la información que se desplegará en el vídeo educativo, txheej txheem txheej txheem realizar las diferentes composiciones de vídeo, imagen, texto y audio, por medio de un software editor de vídeo, en nuestro caso Adobe Premiere, para nu así obtener un producto zaum kawg el cual es el vídeo 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 ntsuam xyuas, lub tswv yim, metodológica thiab lub tswv yim.
Kauj Ruam 2: Interfaz De Usuario
Los ntawm ib lub 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 daim duab todas las opciones necesarias con las cuales va a interactuar el usuario, tus thawj tswj hwm las opciones de respuesta, las cuales se desarrolló un recuadro con cada opción y un colour diferenciador a las demás.
Kauj Ruam 3: Conexión De Los Componentes
Empezaremos realizando la conexión del RFID-RC522, para lo cual se debe tener en cuenta la ubicación de los pines MOSI, MISO y SCK en el Arduino Mega. Los pines SDA y RST pueden ir ubicados a cualquier pin digital, pero deben ser especificados en el código posteriormente.
Kev txuas mus txuas ntxiv txuas ntxiv ntau qhov kev sib koom ua ke que se realizaron para el RFID:
- SDA = D9
- RST = D8
- MOSI = D51
- MISO = D50
- SIB = 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
Kauj Ruam 4: Programación - Arduino
Ahora empezaremos con la programación. El código completo lo puedes download cuando quieras.
Inicialmente debemos añadir las librerías que vamos a usar:
#suav nrog
Ahora para la lectura del RFID y del potenciomentro se configuran los parámetros 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); // Variables globales Txoj hlua ID = ""; boolean condicion = tsis tseeb; const int analogPin = A0; tus nqi; // variable que almacena la lectura analógica nyoos int pos;
int cov = 0;
koj li cas;
int casoviejo = 0; teeb tsa tsis muaj dab tsi () {Serial.begin (9600); SPI.begin (); RFID. PCD_Init (); } // Metodo para comparar los cim npe ntawm RFID
int CompararTags (Txoj hlua ID) {
int caso = 0; if (ID.equals ("43 27 97 10")) {caso = 1; } yog (ID.equals ("124 192 204 194")) {caso = 2; } yog (ID.equals ("30 44 244 229")) {caso = 3; } rov caso;
}
byte ActualUID [4];
Txoj hlua leerRFID (MFRC522 rfid) {Txoj hlua ID0; Txoj hlua ID1; Txoj hlua ID2; Txoj hlua ID3; Txoj hlua ID; // Enviamos serialemente su UID rau (byte i = 0; i <rfid.uid.size; i ++) {ActualUID = rfid.uid.uidByte ; yog (i == 0) {ID0 = String (ActualUID ); } yog (i == 1) {ID1 = String (ActualUID )); } yog (kuv == 2) {ID2 = Txoj hlua (ActualUID )); } yog (i == 3) {ID3 = String (ActualUID )); }} ID = ID0 + "" + ID1 + "" + ID2 + "" + ID3; rov qab ID; }
Como se desea enviar un dato según el TAG que se pase por el sensor, se realiza un método que los sib piv
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 permitirá separar los datos y utilizarlos según la yooj yim. Ademas debemos recibir un valor de Processing con la finalidad de reiniciar los valores que se envían.
void voj () {
tus nqi = analogRead (analogPin); // realizar la lectura analógica raw pos = daim ntawv qhia (tus nqi, 0, 1023, 0, 100); // se escribe sau rau tus neeg nyiam INTs //Serial.write(pos); // recibe los datos de Ua yog (Serial.available ()) {// Yog tias cov ntaub ntawv muaj rau nyeem, int val = Serial.read (); cas = val; } yog (RFID. PICC_IsNewCardPresent ()) {// Seleccionamos una tarjeta yog (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, tsis muaj va a imprimir. yog (! (casoviejo == caso)) {hloov (caso) {rooj plaub 1: //Serial.println(caso); casoviejo = caso; tawg; rooj plaub 2: //Serial.println(caso); casoviejo = caso; tawg; rooj plaub 3: //Serial.println(caso); casoviejo = caso; tawg; }}}}
Txoj hlua potenciometro = (Txoj hlua) pos;
Txoj hlua casoRFID = (Txoj hlua) caso; Txoj hlua todo = potenciometro+","+casoRFID+","+"00"; Serial.println (todo); ncua (500); }
Kauj Ruam 5: Programación - Ua
Debido a que el código es extenso, se explicara los puntos mas importantes tener en cuenta en la elaboración del sistema. Sin embargo podrás download el código completo cuando quieras.
Primero se importan las librerías a usar:
ntshuam ua.serial.*;
ntshuam ua.video.*;
Después se deben crear las imágenes y los vídeos, para que estos puedan ser visualizados.
Movie 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 cov ntaub ntawv 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 = Movie tshiab [2];
loj (640, 360); frameRate (60); f = createFont ("Arial", 18, tseeb); Txoj hlua portName = "COM4"; // hloov 0 mus rau 1 lossis 2 thiab lwm yam kom phim koj qhov chaw nres nkoj myPort = Serial tshiab (qhov no, portName, 9600); myMovie [0] = Movie tshiab (qhov no, "video2.mp4"); fondo_IMAGEN = loadImage ("Interfaces_2_Fondo_Imagen.png"); concept1 = loadImage ("Interfaces_2_1 ° - B.png"); concept2 = loadImage ("Interfaces_2_1 ° - G.png"); concept3 = loadImage ("Interfaces_2_1 ° - R.png"); muestra = loadImage ("Interfaces_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 Kos ().
Primero se reciben los datos del serial y realizamos el Split () que permite separar cada uno de los datos que se reciben.
yog (myMovie [0].time () == myMovie [0].duration ()) {video = tseeb;
} lwm {video = cuav; } thaum (myPort.available ()> 0) {String val = myPort.readString (); String valor = nqi; // separa los valores que recoje el serial. int nums = int (cais (valor, ',')); pote = nums [0]; caso = nums [1]; println (pote+","+caso); }
Se tiene un hloov rooj plaub, 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.
yog (! video) {
duab (myMovie [0], 0, 0, 640, 360); } lwm {keeb kwm yav dhau (255); hloov (cambioEscena) {rooj plaub 0: so; rooj plaub 1: escena1 (); tawg; rooj plaub 2: escena2 (); tawg; rooj plaub 3: escena3 (); tawg; }
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 siv cov khoom lag luam zoo rau almacenar las respuestas que el usuario da al sistema y posteriormente verificarlas y guardarlas en un documento Txt.
void mousePressed () {
// dimenciones del boton 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! yog (parametroOpc1 == 1) {respuesta_1_3 = 1; } yog (parametroOpc1 == 2) {respuesta_1_3 = 2; } yog (parametroOpc2 == 1) {respuesta_2_3 = 1; } yog (parametroOpc2 == 2) {respuesta_2_3 = 2; } yog (parametroOpc3 == 1) {respuesta_3_3 = 1; } yog (parametroOpc3 == 2) {respuesta_3_3 = 2; } myPort.write (0); println (respuesta_1_3+","+respuesta_2_3+","+respuesta_3_3); }
yog (mouseX> xx && mouseX yy && mouseY finx && mouseX finy && mouseY <finy+Sh2) {guardarRespuestas (); tawm (); }}}
El método utilizado para almacenar respuestas es el siguiente:
tsis muaj dab tsi guardarRespuestas () {
Txoj hlua ResConceptual = "Tsis raug"; Txoj hlua ResMetodlo = "Tsis raug"; Txoj hlua ResFuncio = "Tsis raug"; yog (respuesta_1 == 2) {ResConceptual = "Correcto"; } yog (y == 210 && y2 == 140 && y3 == 70) {ResMetodlo = "Correcto"; } yog (escena2y == 140 && escena2y2 == 210 && escena2y3 == 70 && respuesta_1_3 == 1 && respuesta_2_3 == 2 && respuesta_3_3 == 2) {ResFuncio = "Correcto"; } String Respuestas = "Respuesta lub tswv yim:"+ResConceptual+"Respuesta metodologica:"+ResMetodlo+"Respuesta funcional:"+ResFuncio; Txoj hlua daim ntawv = cais (Respuestas, ''); // Sau cov hlua mus rau ib daim ntawv, txhua ntawm kab sib cais saveStrings ("RESPUESTAS.txt", npe); }
Kauj Ruam 6: Yooj Yim
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 tag y el sensor RFID rau seleccionar los pasos en la interfaz de la segunda y tercera pregunta.
Pom zoo:
Kev Sib Tham Sib Tham Punching Hnab: 3 Cov Kauj Ruam (nrog Duab)
Interactive Reflex Punching Bag: Cov lus qhia no yog rau txhua tus neeg uas xav txhim kho lawv cov kev txawj ntse thiab kev txawj ntaus nrig thaum tau txais kev paub ntau dua, siv Arduino, LED's thiab MK 2125 Accelerometer
SASSIE: Cov Txheej Txheem rau Kev Txaus Siab Tsis Txaus Siab thiab Kev Sib Tham Sib Tham: 5 Cov Kauj Ruam
SASSIE: Cov Txheej Txheem rau Kev Txom Nyem Tsis Txaus Siab thiab Kev Sib Tham Sib Tham: SASSIE yog lo lus teb rau lo lus nug peb txhua tus tau nug peb tus kheej thaum muaj kev ntsiag to txawv ntawm ib qho hauv peb lub neej, "Kuv puas yuav tham tom ntej?" Zoo tam sim no koj tsis tas yuav txhawj xeeb vim tias SASSIE tau tsim tshwj xeeb los lees paub qhov txawv txav uas ntsiag to
THIAB LUB NEEJ !! (Sib tham sib tham rooj sib tham): 4 Kauj Ruam
THIAB LUB NEEJ !! (sib tham sib tham txog Thruth Table): Nyob zoo cov phooj ywg, Kuv vam tias koj txhua tus nyob hauv koj lub tsev zoo thiab xav tsis thoob dab tsi ntawm cov ntaub ntawv uas muaj ?? Nkag siab cov rooj vag logic yog qhov tseem ceeb heev rau ob leeg
Kev Sib Tham Sib Tham: 8 Kauj Ruam
Cov Kev Sib Tham Sib Tham: Nov yog cov lus qhia ib qib zuj zus los teeb tsa suav nrog Cov Txheej Txheem Sib Tham Sib Tham. Nov yog qhov txheej txheem ua tau zoo uas tuaj yeem cuam tshuam rau lub sijhawm thiab qee qhov kev paub hauv coding, Max MSP, Arduino, thiab teeb tsa/pom kev pom zoo tau pom zoo
Qhov Sib Txawv Ntawm Lub Rooj Sib Tham Lub Rooj Sib Tham Lub Hwj Huam!: 6 Kauj Ruam (nrog Duab)
Qhov Sib Txawv Ntawm Lub Rooj Sib Tham Bench Power Supply!: Koj puas tau tsim koj qhov haujlwm tshiab thiab tuav rov qab los ntawm qhov koj tsis muaj kev tswj hwm koj li peev txheej? Zoo, qhov no yog qhov haujlwm rau koj! Hnub no kuv yuav qhia koj yuav ua li cas thiaj tsim tau lub rooj zaum hauv lub rooj zaum ua haujlwm tau zoo rau qhov pheej yig heev! Kuv tau ua qhov no tag nrho