İçindekiler:

Educaacion Proyecto Final - Video Y TV Interactiva: 6 Adım
Educaacion Proyecto Final - Video Y TV Interactiva: 6 Adım

Video: Educaacion Proyecto Final - Video Y TV Interactiva: 6 Adım

Video: Educaacion Proyecto Final - Video Y TV Interactiva: 6 Adım
Video: Senior Programmers vs Junior Developers #shorts 2024, Kasım
Anonim
Educaacion Proyecto Final - Video Y TV Interactiva
Educaacion Proyecto Final - Video Y TV Interactiva

Multimedya etkileşimli sistem ve sistem dışı tüm iletişim, medya ve görsel-işitsel yazılım ve donanımla ilgili tüm yazılım ve donanım öğelerini içerir. Görüntülerin işlenmesi, ses ve video, bileşenlerin açıklanması. Videoların temel özellikleriyle ilgili video etkileşimli kategorilerdeki etkileşimler Öğrenme, por lo tanto, contra mecánicas que değerlendirme que el apredizaje que el usuario ha adquirido.

Malzemeler

- 1 Sensör RFID RC522

- 1 Potenciómetro

- 1 Ardunio Mega

Seçenek RFID ve potansiyel bir prototipin vazgeçilmezleri en este modelo prototipo işlevi, izin verilen her şeyi kontrol etmek için kullanılır. Tüm bu işlerin başında gelir.

Yazılım

-Arduino IDE'si.

- Adobe Illustrator (Opsiyonel)

- İşleme

Adım 1: Video Eğitimi

Video Eğitimi
Video Eğitimi

Inicialmente se identificaron los temas bir tratar dentro del video; en nuestro caso Captura (görüntü, video y sonido), ekstradando de diferentes fuentes confiables la enformasyon en önemli temas, teniendo en cuenta la parte kavramsal, metodológica y fonksiyonel de cada uno, ya ilaidocion d e e e n e l e n e n e e n e n e l e e i l e i l e m e d e i l e d e d e d e l e d e i l e m e l e d e e d e d e d e l e y.

Video, görüntü, metin, ses, görüntü, metin, ses, video düzenleme, video düzenleme, video düzenleme, düzenleme ve düzenleme programları, así obtener un prodüksiyon nihai el kurallı es el vídeo eğitsel que se le brindara al usuario al momento de interactuar con el modelo işlevsel prototip.

Este vídeo educativo sera la primer interfaz del usuario, ya que gracias a este vídeo el usuario, la la enformasyon necesaria para yanıtlayıcı bir las diferentes preguntas; garantizando así el apredizaje ve değerlendirme, kavramsal, metodolojik ve kavramsal.

2. Adım: 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

Vektörel olmayan yazılımlar için, en nuestro caso Adobe Illustrator, en yeni arayüzler için en iyi özelliklerden birini seçin.

Gerçekleştiren los fondos para cada interfaz de usuario del modelo funcional prototipi; En son gereksinimler için gerekli şemalar, en sık kullanılanlarla etkileşim içindedir.

Adım 3: Conexión De Los Bileşenleri

Conexion De Los Bileşenleri
Conexion De Los Bileşenleri
Conexion De Los Bileşenleri
Conexion De Los Bileşenleri

RFID-RC522'yi, Arduino Mega'yı, MOSI, MISO y SCK ve Arduino Mega'da en iyi şekilde gerçekleştirin. Los pines SDA y RST, daha iyi bir pin için dijital, pero deben ser especialados en el código posteriormente.

RFID ile ilgili bir süreklilik:

  • SDA = D9
  • RST = D8
  • MOSI = D51
  • MİSO = D50
  • SCK = D52

Elle siguente componente es el potenciometro, para cual te dejamos un enlace que explica como se, uno de forma detallada'nın gerçeklenmesi. Luis Llamas Potenciometro

Adım 4: Programlama - Arduino

Ahora empezaremos con la programación. El código, tam olarak şu anda ücretsiz indir.

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

#Dahil etmek

Ahora para la lectura del RFID ve potenciomentro se yapılandırmak için Los parametros y se kullanımı bir yöntem que facilita la lectura del RFID:

#define RST_PIN 8 // RST

#define SS_PIN 9 // SDA MFRC522 RFID(SS_PIN, RST_PIN); //Değişkenler globaller String ID = ""; boole koşulu = yanlış; const int analogPin = A0; int değeri; //değişken que almacena la lectura analógica ham int konum;

int devam = 0;

int kasa;

int kasoviejo = 0; geçersiz kurulum() { Serial.begin(9600); SPI.begin(); RFID. PCD_Init(); } // RFID için los etiketleri karşılaştırma yöntemi

int CompararTags(Dize Kimliği) {

int kasa = 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; } kasayı iade et;

}

bayt ActualUID[4];

Dize leerRFID(MFRC522 rfid) { Dize ID0; dize ID1; dize ID2; dize ID3; dize kimliği; // 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; dönüş kimliği; }

Como se desea enviar un dato según el TAG que se pase por el sensörü, se realiza un método que los karşılaştırma

Finalmente, debemos enviar los datos por el serial a İşleme, para l kolaylık. Ademas debemos recibir un valor de Processing con la finalidad de reiniciar los valores que se envían.

boşluk döngüsü () {

değer = analogRead(analogPin); // realizar la lectura analógica ham konum = harita(değer, 0, 1023, 0, 100); // enviar enviar yazmasını yaz //Serial.write(poz); //işlemenin veri kaydı if (Serial.available()) { // Okunacak veri varsa, int val = Serial.read(); kasa = val; } if (RFID. PICC_IsNewCardPresent()) { //Seleccionamos un tarjeta 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, yok va a imprimir. if (!(casoviejo == caso)) { geçiş (caso) { durum 1: //Serial.println(caso); casoviejo = caso; kırmak; durum 2: //Serial.println(caso); casoviejo = caso; kırmak; durum 3: //Serial.println(caso); casoviejo = caso; kırmak; } } } }

String potenciometro = (String)pos;

Dize casoRFID = (Dize)caso; Dize todo = potenciometro+", "+casoRFID+", "+"00"; Seri.println(yapılacak); gecikme(500); }

Adım 5: Programlama - İşleme

Debido bir Que el código es extenso, se explicara los puntos mas önemli olan bir tener en cuenta en la elaboración del sistema. Günah ambargosu indiriliyor.

Bir usar için önemli olan:

işleme.serisini içe aktar.*;

işleme.videoyu içe aktar.*;

Después se deben crear las ımágenes ve los vídeos, para que estos puedan ser visualizados.

Film myMovie;

PImage fondo_IMAGEN; PImage konsept1, konsept2, konsept3, konsept4, müestra; 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 esspecar los nomres de los archivos, los cuales deben estar dentro de una halıa llamada veri ubicada en la misma halıa del proyecto. Ademas especialamos el tipo de letra a usar y el p erto seri reciporo s culos que envié el Arduino.

myMovie = yeni Film[2];

boyut(640, 360); çerçeveHızı(60); f = createFont("Arial", 18, doğru); String portName = "COM4"; //portunuzu eşleştirmek için 0'ı 1 veya 2 vb. olarak değiştirin myPort = new Serial(this, portName, 9600); myMovie[0] = yeni Film(bu, "video2.mp4"); fondo_IMAGEN = loadImage("Interfaces_2_Fondo_Imagen.png"); konsept1 = loadImage("Interfaces_2_1° - B.png"); konsept2 = 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();

En basit tanımıyla Draw().

Primero se reciben los datas del seri ve realizamos el Split() que izin ayrı cada uno de los datos que se reciben.

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

}else{ video = yanlış; } while (myPort.available() > 0) { String val = myPort.readString(); Dizi değeri = değer; // diziyi ayır. int sayılar = int(split(değer, ', ')); pote = sayılar[0]; kasa = sayılar[1]; println(pote+", "+caso); }

Değiştirme durumu, para cada escena del systema, por lo tanto s reproducirá un método en el anto en el anmo en que la değişken "cambioEscena" cambie.

if(!video){

image(myMovie[0], 0, 0, 640, 360); } başka{ arka plan(255); switch (cambioEscena) { case 0: break; durum 1: escena1(); kırmak; durum 2: escena2(); kırmak; durum 3: escena3(); kırmak; }

MousePressed()'in gerçek hayattaki en önemli özelliklerinden biri. También se utiliza este método para almacenar las respuestas que el usuario da al sistema y posteriormente doğrulanma ve korumalar en un Documento Txt.

geçersiz 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 ! 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; } bağlantı noktam.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(); çıkış(); } } }

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

void guardarRespuestas(){

String ResConceptual= "Yanlış"; String ResMetodlo= "Yanlış"; String ResFuncio = "Yanlış"; if(respuesta_1 == 2){ ResConceptual = "Doğru"; } if(y==210 && y2==140 && y3==70){ ResMetodlo= "Doğru"; } if(escena2y == 140 && escena2y2 == 210 && escena2y3 ==70 && respuesta_1_3==1 && respuesta_2_3==2&& respuesta_3_3 == 2){ ResFuncio= "Doğru"; } String Respuestas = "Respuesta kavramsal:"+ ResConceptual+"Respuesta metodolojik: "+ResMetodlo+"Respuesta funcional: "+ResFuncio; String liste = split(Respuestas, ' '); // Dizeleri her biri ayrı bir satırda bir dosyaya yazar saveStrings("RESPUESTAS.txt", list); }

Adım 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 potencimetro para variar las respuestas que se desean dar y los etiketleri y l sensör RFID para seçici los pasos en la interfaz de la segunda y tercera pregunta.

Önerilen: