{"id":6181,"date":"2022-12-21T23:39:25","date_gmt":"2022-12-21T22:39:25","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=6181"},"modified":"2023-05-09T08:57:08","modified_gmt":"2023-05-09T06:57:08","slug":"glados","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/","title":{"rendered":"GLaDOS"},"content":{"rendered":"\n<h1 class=\"wp-block-heading has-x-large-font-size\">Autores:<\/h1>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h2 class=\"wp-block-heading has-medium-font-size\"><strong><span>String nombre1 = <\/span>&#8216; &#8216; <em>Andr\u00e9s Gonzalez Antohi<\/em> &#8216; &#8216;;<\/strong><\/h2>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h2 class=\"wp-block-heading has-medium-font-size\"><strong><span>String nombre2 = <\/span>&#8216; &#8216; <em>Rodrigo Hervada Llahosa<\/em> &#8216; &#8216;;<\/strong><\/h2>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h2 class=\"wp-block-heading has-medium-font-size\"><strong><span>String nombre3 = <\/span>&#8216; &#8216; <em>Marco S\u00e1nchez Nishimura<\/em> &#8216; &#8216;;<\/strong><\/h2>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h2 class=\"wp-block-heading has-medium-font-size\"><strong>String nombre4 = &#8216; &#8216; <em>Enrique Tamaj\u00f3n Castilla<\/em> &#8216; &#8216;;<\/strong><\/h2>\n<\/blockquote>\n\n\n\n<h1 class=\"wp-block-heading\">1. Objetivo<\/h1>\n\n\n\n<p>El objeto de esta pr\u00e1ctica ha sido crear una GLaDOS con el funcionamiento de un reloj despertador y reproductor de m\u00fasica. Adem\u00e1s, debe ser capaz de realizar movimientos de brazo mec\u00e1nico, incluyendo un men\u00fa de opciones que permita desplazarse por las distintas funcionalidades a trav\u00e9s de una pantalla LCD y una aplicaci\u00f3n Bluetooth.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">2. Reparto de tareas y pasos realizados.<\/h1>\n\n\n\n<p>Al ser un proyecto de 4 personas, se decidi\u00f3 repartir las tareas de tal forma que permitiera especializarse en apartados concretos del mismo. Andr\u00e9s fue el encargado principal de realizar el brazo mec\u00e1nico, Enrique de realizar el c\u00f3digo, y, por \u00faltimo, Marco y Rodrigo se encargaron del funcionamiento Bluetooth y el reproductor de audio y sus interconexiones con el altavoz y la pantalla LCD.<\/p>\n\n\n\n<p>A pesar de esto, debido a que las sesiones de trabajo eran conjuntas, todos los integrantes participaron en los dinstintos apartados del proyecto, ayud\u00e1ndose unos a otros y realizando otro tipo de tareas de bricolaje.&nbsp;<\/p>\n\n\n\n<p>El orden de desarrollo fue:&nbsp;<\/p>\n\n\n\n<p>Primero, se trabaj\u00f3 por separado y en paralelo el brazo mec\u00e1nico por una parte, y el resto de funcionalidades por otra. Cuando se acabaron por separado, se unieron ambos proyectos en un solo Arduino.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Parte Bluetooth \/ Reproductor de audio \/ Pantalla LCD:<\/li>\n<\/ul>\n\n\n\n<p>Tras la documentaci\u00f3n necesaria, lo primero fue decidir qu\u00e9 componentes iban a ser necesarios y c\u00f3mo obtenerlos. Una vez en posesi\u00f3n de ellos, el siguiente paso fue conectarlos a Arduino y comprobar que se hab\u00eda realizado de manera correcta. A continuaci\u00f3n, se implement\u00f3 un peque\u00f1o c\u00f3digo de pruebas para entender el funcionamiento de los dispositivos.<\/p>\n\n\n\n<p>A continuaci\u00f3n, se desarroll\u00f3 un primer c\u00f3digo para el men\u00fa del sistema, al que se fueron a\u00f1adiendo las distintas funcionalidades. Tras comprobar el correcto funcionamiento de este sistema se concluy\u00f3 esta parte.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Parte brazo mec\u00e1nico:<\/li>\n<\/ul>\n\n\n\n<p>Para la realizaci\u00f3n del brazo mec\u00e1nico, en primer lugar se buscaron e imprimieron los modelos 3D correspondientes. Una vez impresas dichas piezas, se fueron probando individualmente con su servo correspondiente para comprobar sus l\u00edmites de movimiento y velocidad. Tras asegurarnos del correcto funcionamiento de todas las partes, procedimos a realizar una base capaz de soportar el peso de la estructura y de organizar los cables de los servomotores y el led para evitar cualquier problema por culpa de que estos se enredasen.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Uni\u00f3n de ambos sistemas:<\/li>\n<\/ul>\n\n\n\n<p>A la hora de unir ambos sistemas, se tuvo que enfrentar a varios problemas, como pod\u00eda ser una reorganizaci\u00f3n del circuito as\u00ed como problemas debido a conflictos de puertos. Tras resolver todo, ya se pudo realizar una prueba global de GLaDOS.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><\/h1>\n\n\n\n<h1 class=\"wp-block-heading\">3. Dise\u00f1o<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">3.1. Boceto de la idea.<\/h2>\n\n\n\n<p>El dise\u00f1o se centr\u00f3 en la necesidad de que GLaDOS colgara, por lo que se decidi\u00f3 aprovechar esto y colgarla de una tabla sujeta por patas, para que pudiera servir de mesilla con alarma incorporada.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/xt66dz2hcp23w46UAJIiTYkdiblrvvDsR-7FBnngTRfrX8y9ncYVvgXTSl9R5kvhuhnoIpQZGPkNt3iom-qgBqBZo114kqg6xN4lHJIadUNpkzh3IYEPUlDFpS1y1V5Nyo1mnQW_QwCybRG_3Obuo-USJ_GB2MutoUtf3NwBNBNUzhJrdccFjfqTGb4aV0fD\" alt=\"\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">3.2. Dise\u00f1o para impresi\u00f3n del brazo mec\u00e1nico.<\/h2>\n\n\n\n<p>Para el dise\u00f1o del brazo mec\u00e1nico, se buscaron modelos 3D del personaje GLaDOS. Tras encontrarlos, se pasar\u00f3n al programa Ultimaker Cura, donde se decidi\u00f3 optar por una baja calidad de impresi\u00f3n para, no solo agilizar el proceso, sino tambi\u00e9n reducir el peso de las piezas. Por diversos problemas, mencionados en su correspondiente apartado, no se pudo imprimir la totalidad de los modelos 3D que componen a GLaDOS, por esta raz\u00f3n se tuvo que improvisar utilizando dos escuadras e improvisando la base.<\/p>\n\n\n\n<p>Las impresiones finales tomaron un total de&nbsp; 24 horas 6 minutos y&nbsp; 261 gr de PLA.<\/p>\n\n\n\n<p>El brazo mec\u00e1nico cuenta con un total de 4 servomotores: uno para la cabeza (mu\u00f1eca), otro para el cuello (codo), uno para el movimiento vertical (hombro) y otro para el giro de la base. &nbsp; Adem\u00e1s, la cabeza tiene un led para simular al personaje del videojuego<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/l0HkzbQCQdHaC4taRmAsGPh-oz88OAVf-hoGQccYzZdKy0rtSKhBbse6saPTCYg0DhaPfaZbYBu4kpcYhCImvSQ5UJs6MmHCaLUTzZWtmL6h3j9vTjv-t0lcOqfCW01TO9sy6KipHjQruu1FUksRMS-_6HNjbV-QS-nmKxp-PzZCOwHV_wmTnhaC9pMMogzk\" alt=\"\" width=\"441\" height=\"307\"\/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/FjcDbcUPFxv6M3dTVlfs2_I9E31zXTcsr-AA2LsZUKFXeKIvNHQ-TCOFBVKmc7tEJx2NO_JpKPsrgJhQ7OGpPTKD5cw99wVDcQDe1gvO1O_RqLtTY9D6LPloTcsGOd6HOCfZc-hq5oToP5rdXbl99_QKmhOQ8ObgCyE16gYsIWBzV5U9w7HPmkpyNv7j6PCr\" alt=\"\"\/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/aulyz_r8lzRxYZ7Qo1q8RLpKN_0QgdWSkVVUSVnmS7buY9KFCFOQCECbReWkst0yMV2-3ruIto7411DUOVKi3higgOZXLvBQVLreyWwyQvHBBCGXGRmeIRM_h6A7rtLMndsIW7BTQ8ftp_SGukQ4dLgfYZIik2sZRx-9caYr_ukhzWu7T4JLzl_zDw1j4kDG\" alt=\"\"\/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/XH1rRmi7rnyR8pctM7rAP5X0128-lKoOIY5y4qEsDbX_WN-9Ft3yUUvhjh7amkJthbta6dZdhIvRinUV1xjd5R6kDhC43m4HNelLIkMNeldUuyK9JI79t9zXzTcCw6a0IB-2enMkpca4gxlhdvwHgGntsZVYajyuP5JoOXZR3rRyY8duLnH6WkocCWoCm1jA\" alt=\"\"\/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/oQ7CWh4690bQTqu2nxHuaxk8PZx_xDIg4N4QSluBdGJWNTtK54C3FfKJW8og8FOilALNyzNGIXVZKavCgdevpQ23Jy3cR9VQx_tUeKOdKC77KtE5FC0Wg3ty8QIcOK_7pUipQTI-MlwQc9B-vyTaotAcJCrRrpFBvba5U-GI-Q_egitcb7iiPiEyfcuLOnJd\" alt=\"\"\/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/ZOBx2RJmn9z8WKDoytCMNn35OBlPiuAWdaWe_wkUmbXCe5vIgFGKSZTRvA4568tnMCEkpOtSvVRxICkg0O43RCoSmjGWfGq4mh5sA2f6feRZRY7qQsExtF27ZvKjSKNNahM4yonU25anAdl61DJ0Ef2lJi_w1zG2Rq6HTJlJJwfUHSi4PjTv_6O-PTz7kCDn\" alt=\"\"\/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/Bmq06HZ1EZY6wi8mmtrzRmH3ScrEsJo-lIcL92K_A9TiFzQ1vQayIUsVMvn3eQdqmYXvLrwpMbOllFUrspTcMKFeoMWjlJGcJApDzYxgAR5yIuI07ljYDuGqYVdpR42N_d2Y381ObOG0_O169-ko-Hy3Z0gjFQgxpNLrEsTZhrHl0MAIr1DBT7FHT0A_O2Cc\" alt=\"\"\/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/ew0qE5uGyZecxIDoPAZTJoDstzkdYT2tRNkohcg-9ihhxHQeJFW7cfl61psQ92a8J8l8-3-trcV_gHub9xahwyZTZnQwcwrBheAyRS9NeuIYzaUlS3sJdygeaG394_NFXkSDTdQ0Wz67W-8uG8h4N28ZAK2SvdrODarxUl9c-Sk26CZCYPeyRIIzt6eEgsRc\" alt=\"\"\/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/egKsA_RzvPI-Du6kCvf2ZGpoM-5EaW0XjpQ2nVmX5z9FkCJMfpsY1IRMacKULyMyjB3-3VOR0jJeZ7HXE1bNOIgGT2Mh8ojli-okJfopWf0O5WAtsl8VchwekHkQtmgfl7dsrANZ1P0D2H960rcdZUSbnA7umXgXHzqXGukGMrrYR_qExetEHUaq2r1O6jz7\" alt=\"\"\/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">3.3. Dise\u00f1o del circuito en Tinkercad.<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/O_tzLtkeVkO631ktludfcWWDm9prwgsaCDKSnTF4Gz3TeqLZA1wB-HSGVwY-sVd3tHwR6wFKGuTWD8BjZCgQ-8deyUs9PtzysfOe5nEBX6h87pc6SetSCJvkbCp_xeIWZdLbB3OMve8KIvsRPL-hqxD9nf-2MMteciiimlIyIUOiy1017796Cu7YZvqQxVGW\" alt=\"\"\/><\/figure>\n<\/div>\n\n\n<p>1: Amplificador y altavoz 4: M\u00f3dulo Bluetooth<\/p>\n\n\n\n<p>2: Servos 5: Lector de tarjetas SD<\/p>\n\n\n\n<p>3: Pantalla LCD<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3.4. Dise\u00f1o real del circuito.<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/7WNMYU6Js1Yklvyt0VoyakiIx_fn7OqvkwpzjuxyaTcQgAyaD_KpoVsdKBpgXWTl6YyvY0B66GsBlSSKAk6eI0ZBIBFqW6ryMtDQRRJY96JwqQ79tojn9qXCBBQGO1DYE5YIDhFerP12Wctuhstk0Wg0tVwjfURb3K6oVuq1JjQCOumbMGBj0SnthbmrvKRx\" alt=\"\"\/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/syXnmer-BDhBEg5MPtuJpkKWOJy3-dv-re88urA1Biftb7Hbg965u2Rh6kdnnKq2_R9NW-ggNjmXTmivw3QL3msQJ0F1FhPLfAloiyrfnwZyFEmamlUVBSdeyFdKj8Af870ElR12-gKvc3d-qruWT0FfuRbDpjq4H0G15giQQYzdXaDLi8wHvGV8KUtp19NP\" alt=\"\"\/><\/figure>\n<\/div>\n\n\n<p>1: Amplificador y altavoz 4: M\u00f3dulo Bluetooth<\/p>\n\n\n\n<p>2: Servos 5: Lector de tarjetas SD<\/p>\n\n\n\n<p>3: Pantalla LCD<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3.5. Dise\u00f1o final de la estructura.<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/pjh8u93xTTGjqyDZa7gzi0aq320vNqW1Uylck-_rwTUaSDZg15ErkXBPiY0Z4fxxbLgj0dgBsqC-9D6lfPFHa_347K3Dx4bfEBcKvQprZBTajT4I-EQl-JwbUUcaEz4F4h7APXHLUA3rw2BxG4pxVhsp4Uv4o_Uc-C17TVjzoDVvTyFtZZTrHsTVxm-VRG4t\" alt=\"\"\/><\/figure>\n<\/div>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/5UQhXAg3zRfXxtDoG1F__1nLqjPX2kKp0-BvKrzqKK5R6oaZO59rbvWxkglOgSGiIr_j9-GRl3u1iBTL-Uqd0dcYptayDs9RfCFpVyR5uA9rCGTpYkDELuqnV0_LGqytI5G4bLnI9x6RSyL0ZxA8CvfuSj7SRYzXiq8EN7o9jqws9VQn6G_Acdhe6ro1KZxL\" alt=\"\"\/><\/figure>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/2gIs2m_G57FqFN2Ms57cAEVn7oQO8wD9gL188YHojpBt50TguYGOMN51BAQJv5wbUbJUCfsR68YljmBkfbJV-CohkXJ6bYKsTTZ_exMo2Btfiwt1whFl5n3PjO5CJdUshQzuH_sU725I9zdAmqqSjyox4faygbTGYH3bBmADOg8E3rFi9ps2q4tVg95_z4CJ\" alt=\"\"\/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/l0PlMNFFPRjhnhXU-RJgPj1zKIXQI9pDgS3HHpMmSaBk0Fat7YHMG_0VxDSFAXdECY5kj_3jCQlP7UAeQPmFP1NbMYyTs8sxGn_B89UWXySLFZMvFpxbLyCm0YLKLOLgGdVCmbYrlwEWJbvEOeL7vHFf8PY4zdikQC0SIeUhJSPauXNjMFP4VQXWar-kM4Be\" alt=\"\"\/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/9CNSve4xvo_eCsuFC-WtgDakWLWkXf9fvRuS6YQ6wLS_XjQbjoyAXeNXiIfj9USPl8tsVWOzYqaI5plyV5ZxypR29tyFaRupoheagYrcIKJnnqmcE9wd9cXw7NrMHQKjg8j80SQBLqheNzAEpd0wbL0ZJG80wvcuGVZhO09MW5x90UhObCxPEJNDrLy7PCZF\" alt=\"\"\/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/i1eMSZ_a61kRPLG8GJ7Avlvr94yscBwtmwJHdzSSj3tAbEwizwiQMi8yddHT6lKiUmbpZHQUUKIJ1xvIN2IPfgEwCDs2q9frCRWWpFynl2bjtws30CJ9W1yC4-OGimfhbkZgg62P0TLQ_SNr_sr0QB9f3BDPv4mbDQpK9Axb61P-SEEKlcjy0SXcIzc2B6ir\" alt=\"\"\/><\/figure>\n<\/div>\n\n\n<p>Para los retoques finales se empapel\u00f3 la caja contenedora del circuito con cartulinas blancas y cinta negra para continuar con la est\u00e9tica del videojuego \u2018Portal\u2019. Adem\u00e1s, a\u00f1adimos el logo de los creadores de GLaDOS y un \u2018easter egg\u2019 del propio videojuego.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><\/h1>\n\n\n\n<h1 class=\"wp-block-heading\">4. Materiales<\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Componentes para Arduino<\/td><\/tr><tr><td>Unidades<\/td><td>Componente<\/td><td>Precio total (\u20ac)<\/td><\/tr><tr><td>1<\/td><td>Tarjeta SD.<\/td><td>0<\/td><\/tr><tr><td>1<\/td><td>Lector tarjetas SD.<\/td><td>0<\/td><\/tr><tr><td>1<\/td><td>M\u00f3dulo Bluetooth.<\/td><td>6,17<\/td><\/tr><tr><td>1&nbsp;<\/td><td>Altavoz 29mm 8\u03a9.<\/td><td>0,82<\/td><\/tr><tr><td>1<\/td><td>Amplificador TDA2030A.<\/td><td>4,77<\/td><\/tr><tr><td>3&nbsp;<\/td><td>Cable trenzado (1 metro).<\/td><td>1,66<\/td><\/tr><tr><td>2<\/td><td>Servomotor SG90 9G.<\/td><td>0<\/td><\/tr><tr><td>2<\/td><td>Servomotor SG90 9G.<\/td><td>6,07<\/td><\/tr><tr><td>1<\/td><td>Altavoces 2.0.<\/td><td>0<\/td><\/tr><tr><td>1<\/td><td>Arduino UNO kit ELEGOO.&nbsp;<\/td><td>0<\/td><\/tr><tr><td>PRECIO FINAL:<\/td><td>19,49<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Materiales para la estructura<\/td><\/tr><tr><td>Unidades<\/td><td>Componente<\/td><td>Precio total (\u20ac)<\/td><\/tr><tr><td>1<\/td><td>Pack cartulinas blancas.<\/td><td>1,20<\/td><\/tr><tr><td>2<\/td><td>Cinta bricolaje (pack de 2).<\/td><td>2,40<\/td><\/tr><tr><td>1&nbsp;<\/td><td>Cajas de cart\u00f3n.<\/td><td>0<\/td><\/tr><tr><td>1<\/td><td>Tablero MDF (60cm x 30cm x 0,03cm).<\/td><td>2,40<\/td><\/tr><tr><td>1<\/td><td>Taburete.<\/td><td>0<\/td><\/tr><tr><td>2<\/td><td>Soporte escuadra.<\/td><td>0,88<\/td><\/tr><tr><td>1<\/td><td>Cintas (carrocero, americana, embalaje)<\/td><td>0<\/td><\/tr><tr><td>1<\/td><td>PLA (261 gramos)<\/td><td>0<\/td><\/tr><tr><td>1<\/td><td>Pistola de silicona + silicona<\/td><td>0<\/td><\/tr><tr><td>1<\/td><td>Soldador + esta\u00f1o<\/td><td>0<\/td><\/tr><tr><td>PRECIO FINAL:<\/td><td>6,88<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><\/h1>\n\n\n\n<h1 class=\"wp-block-heading\">5. Problemas y soluciones<\/h1>\n\n\n\n<p>Siguiendo el esquema de los pasos realizados para el desarrollo del proyecto se mencionan los problemas que surgieron en cada etapa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5.1. Brazo mec\u00e1nico<\/h2>\n\n\n\n<p>Dada la baja calidad de las piezas, los tornillos romp\u00edan las capas, haciendo que las piezas resultasen inutilizables pues generan demasiados grados de libertad, o, en los casos extremos, se romp\u00eda completamente la pieza. Adem\u00e1s, por causas desconocidas, la cama de la impresora 3D se desconfigur\u00f3 en medio de una impresi\u00f3n, perdiendo 13 horas 25 minutos y&nbsp; 152 gr de PLA.<\/p>\n\n\n\n<p>Como, a medida que se imprim\u00edan las piezas, se probaban para comprobar su correcto funcionamiento, se tuvo que reimprimir otra pieza, la cabeza, pues era muy pesada con la primera configuraci\u00f3n a causa de un error en los ajustes del relleno, haciendo que fuese una pieza demasiado maciza que generaba demasiado estr\u00e9s en el resto de la estructura, perdiendo 7 horas y 70 gr de material.&nbsp;<\/p>\n\n\n\n<p>Las piezas finales tuvieron que ser limadas cuidadosamente para evitar colisiones que bloqueaban el correcto movimiento del brazo.<\/p>\n\n\n\n<p>Puesto que se dispon\u00eda de material de impresi\u00f3n limitado, a causa de los fallos, no se pudieron imprimir todos los modelos 3D que completaban a GLaDOS, teniendo que simular el funcionamiento de la mitad superior y la base mediante dos escuadras y una placa de madera contrachapada.<\/p>\n\n\n\n<p>A la hora de mover los distintos servos del brazo, se tuvieron que probar uno a uno pues ten\u00edan l\u00edmites de movimiento distintos (a causa de la naturaleza de las piezas) y de velocidad, pues la uni\u00f3n de el cuello con el resto del brazo y de la base con este era \u00fanicamente el propio servo con su brazo(este \u00faltimo unido a la pieza con tornillos), lo que hac\u00eda en determinadas velocidades los servos se desprendiesen de sus brazos rompiendo la estructura del brazo mec\u00e1nico.<\/p>\n\n\n\n<p>Puesto que la base fue hecha mediante una placa de contrachapado, en la que se hizo un agujero por la que colgaba el brazo y que se utilizar\u00eda para hacer que este pudiera girar, uniendo el servo a un techo de cart\u00f3n. A causa del cart\u00f3n y el peso de GLaDOS, el techo ced\u00eda, hundi\u00e9ndose y provocando demasiado rozamiento para la fuerza limitada del servo de la base. Mediante el uso de cinta de carrocero y celo, se redujo el rozamiento entre la base de GLaDOS y la placa de contrachapado. No obstante, el techo segu\u00eda hundi\u00e9ndose, por lo que se tuvieron que poner 3 columnas de cart\u00f3n que solucionan este problema. Se sujet\u00f3 el servo superior con cinta americana y dos placas de madera para evitar que este rompiera el cart\u00f3n al girar.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/MGSu4ReSa3UqrbHwplNRzUrpRUT91B9HK6zX9vra9-YNIri0lNlv-d_CrNTP50_xf5KwAFTm0hXzN4qcuNKHdmfI8ZNTi6w7LHdroIOmcYNOjwh9EQtTtSZaDbxkeEOzNTTSRgOTtljqMAPpX9BQJWuXvILcTT-CuNl3YKI36go3EojwEIC3GQGITpTrpIZY\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/UL3ff4hUglYvG1DyZ0kUcI4G5ckrDaawYP0ykXgnj1crkxeG0iDNlpp-ERVUOUvBMhaXYlZchP7o4p_lgM82UHDKKg8tLO_FoJ0DYFK_BtoAMMTrWgPsQD4HzxEEGcaerl7WOwdOAdgOw_A54SdVPlVS5Vod78j4rsktH16ZFRipewkVsg75j1rarURrPeNN\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/Yq0XdJd6rN1KJWp6wGUg0VI5DB0disAafnzXtT3VWuy12WwUFjoS_O82hhjL3DGRJTwVQALLUOMmxFK2-UqhBBHThDDC26awcJ7tSEvbWqplf0eunS_GTrMdNFM3V67vGOvNmoVnUGg3uwxzo-0NclVj-XnxP24ukIrw-pBz0tbS3dJfbmzzNlgV5KWS4Rfa\" alt=\"\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">5.2. Funcionamiento inadecuado de algunos componentes.<\/h2>\n\n\n\n<p>Se comprob\u00f3 que, en ciertas pruebas, algunas veces ciertos componentes funcionaban de la manera esperada, y otras veces, esos mismos componentes, sin cambiar nada, dejaban de funcionar. Despu\u00e9s de medir con un pol\u00edmetro la corriente circulante dentro de un mismo cable, se lleg\u00f3 a la conclusi\u00f3n de que hab\u00eda alguno de ellos en los que la corriente no circulaba. Por ello, se opt\u00f3 por sustituir todos los cables por nuevo cable trenzado, ahorr\u00e1ndonos de esa forma posibles y futuros problemas. Sin embargo, este comportamiento err\u00e1tico prosigui\u00f3. Por lo tanto, se decidi\u00f3 sustituir tambi\u00e9n la placa base de conexiones. De esa forma, se arregl\u00f3 dicho problema.<\/p>\n\n\n\n<p>Por otro lado, a lo largo de la realizaci\u00f3n de las pautas finales del proyecto, la pantalla LCD comenz\u00f3 a sufrir continuos fallos, mostrando caracteres sin sentido alguno. Se piensa que ocurri\u00f3 debido a que la pantalla ten\u00eda bajadas de tensi\u00f3n, ocasionando ruido, por lo que mostraba caracteres de manera err\u00e1tica. Se soluciona cambiando de nuevo todos los cables, organizando, y agrup\u00e1ndolos adecuadamente, a la vez que se fij\u00f3 la pantalla para evitar que tuviese que moverse, posibilitando que alg\u00fan cable se soltase.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5.3. Fallos de componentes de \u00faltima hora.<\/h2>\n\n\n\n<p>Por otra parte, el d\u00eda antes de la presentaci\u00f3n, el m\u00f3dulo Bluetooth que se estaba utilizando dej\u00f3 de funcionar repentinamente, se desconoce la causa aunque podr\u00eda haber sido por un golpe. Por este motivo se tuvo que comprar otro m\u00f3dulo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5.4. Incompatibilidad de librer\u00edas \u201cservo.h\u201d y \u201cTMRpcm.h\u201d<\/h2>\n\n\n\n<p>Debido a un problema encontrado debido a la compatibilidad entre del audio y el uso de los servos. Por un lado, la librer\u00eda normal de los servos (\u201c<em>servo.h<\/em>\u201d), y la librer\u00eda de audio (\u201c<em>TMRpcm.h<\/em>\u201d), usaban ambos el mismo Timer. Por lo tanto, al intentar usar ambos, el c\u00f3digo colapsaba, y ninguno de los dos componentes llegaba a funcionar.&nbsp; Para solucionar este problema, se re-implementaron los servos usando la librer\u00eda \u201c<em>ServoTimer2.h<\/em>\u201d.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">6. Resultado final \/ casos de uso<\/h1>\n\n\n\n<p>Se ha logrado desarrollar de forma satisfactoria una \u2018GLaDOS\u2019 con las funciones deseadas. Estas funcionalidades son:<\/p>\n\n\n\n<figure class=\"wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/fgPSBlmPYZldd06SrUwElxh7WmN9sT4LYmLFVoDXUF-7Tw_cw_ZIAVopQUAEMX2i0QqSB0ME12XHRrplsRCUolrjNW5HqR0-YU7_-a1I1q24vfOrsldatIKy7iJU9c3uWui3d0hPBhjIhqgRbvEIcdPo4VQ6TOtJbZm4u9halB-c_TN4hGt3HTgGztfDmUMe\" alt=\"\"\/><\/figure>\n<\/div><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mostrar y configurar la hora.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/KIojVtJhLZyWwXFpZboE8V26kqSZfa1iB64gNpvGEPQrr4y9YckeV7pmr6hK8SSICRIkxw8AoPOBVwWTq0HxRs0xruhwc1RWvh_5HnRNolptMklxWO8I1ThRfGR7lhcqlfYxZMdGSSsITWJDGclbyIxy7vrFrYIXPbvhvZueuw1A4SjA4WD8L3eibLwBkolG\" alt=\"\"\/><\/figure>\n<\/figure>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/HP4YkZ7XZ8iT8-AhXOGUMrPC0wIx_l5HZBfAbrYIhgEvoyIGJbA8Cz28KbYB5uWAjEI16JqzBlU3tc6mzkIcAvQIoj4KYpiwFHxMgeVix_HOgFC7mPK99vpknAWtFxWwhLVlUwsKreHCf20CrBYag81IizUvgRDLSNJ6RhQaN_QZN3_QX08uE0vKkTYYzRRg\" alt=\"\"\/><\/figure>\n<\/figure>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Configurar una alarma.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/Ai1zw1m_RrvcovXYYqV1aETJl4VJxzV-5jfHIljlQ1-4_yktnq9cOHh5StOVH5rfkAty3ttQ5rGjoekIuCJKWCbys7GcDMTKv0iDZfg-r-a_tXtsnZmiXa0GN7ER_dJFhGVd1rwGn472PORf03iwlslFELxxb2VqSHu2Kdl4ZgXxl0gRHr-TQNXG5jhKbK9V\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/HP4YkZ7XZ8iT8-AhXOGUMrPC0wIx_l5HZBfAbrYIhgEvoyIGJbA8Cz28KbYB5uWAjEI16JqzBlU3tc6mzkIcAvQIoj4KYpiwFHxMgeVix_HOgFC7mPK99vpknAWtFxWwhLVlUwsKreHCf20CrBYag81IizUvgRDLSNJ6RhQaN_QZN3_QX08uE0vKkTYYzRRg\" alt=\"\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Reproducir audio y m\u00fasica.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/JA-xt_lf4nND6ex3vwOPm-d1sWoaJ_n6iY8kFm5jFdmTlYQHu9A1lRCFdU9q-FNVN13vkacMN7_8zeDb11oH3ulvNm1NmyF9NvtSCF8pK42KRg612hDXqOvO-4r6IgGI3E_s59NRlNtJXrmadiorWZmXzl927ILODjzUvOr_8khYid_KdIGAtJ7crXnaqAF4\" alt=\"\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Realizar movimientos de un brazo mec\u00e1nico con cuatro ejes.&nbsp;<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/QCB3LZj11Cv5VehnXF07abaQJzPDz8E0KVcB2i4PTQQoZifMmJouYiJYOxl80U3BRwUl0Yr8tcxVkpfltN0eZdkLe5_GbHwOuxbjQu1zfHAF6HYJaEZbKmxL0GYmRFNeI2hzmrNejlMQuJ7ALbdtVnbunOf3JCZ4BGSYlT7jOJaChtZ_PsQLjBwWy02SCGpw\" alt=\"\"\/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">7.C\u00f3digo<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;SoftwareSerial.h&gt;\n\n\/\/Pantalla lcd\n#include &lt;LiquidCrystal.h&gt;\nLiquidCrystal lcd(A5, A4, A3, A2, A1, A0);  \/\/Pines pantalla LCD\n\n\/\/SD y audio\n#include &lt;SD.h&gt;\n#include &lt;TMRpcm.h&gt;  \/\/Reproducir asincronamente .wav\n#include &lt;SPI.h&gt;     \/\/Librer\u00eda SPI\n#include \"ServoTimer2.h\"\n\n#define SD_ChipSelectPin 4  \/\/Pin SD\n\n\/\/Gestor del audio\nTMRpcm audio;\n\n\/\/Servos\nServoTimer2 myservo;\nServoTimer2 myservo2;\nServoTimer2 myservo3;\nServoTimer2 myservo4;\n\nint pos = 0;  \/\/Variables para control de servos\nint pos2 = 0;\nint pos3 = 0;  \nint pos4 = 0;\nconst int ledPIN = 9;\n\n\/\/Bluetooth\nSoftwareSerial BTSerial(2, 3);  \/\/Pines bluetooth\n\nbool mHour, mMusic, mGlados, mAlarm, mMenu; \/\/Modos\nint hour, minute, second; \/\/Contador de hora\nint aHour, aMinute; \/\/Contador alarma\nint newHour, newMinute; \/\/Variables auxiliares para actualizar las horas y los minutos\n\nbool settedAlarm, alarmIsOn; \/\/Banderas para controlar la alarma\nbool movementFinished; \/\/Bandera para asegurar el funcionamiento del modo de movimiento\nbool musicModed; \/\/Bandera para asegurar que no suene dos veces el audio de entrada a un modo\n\nint currentSong; \/\/Indice de can\n\nvoid setup() {\n  Serial.begin(9600);\n  BTSerial.begin(9600);\n\n  myservo.attach(5);\n  myservo2.attach(6);\n  myservo3.attach(7);  \n  myservo4.attach(8);\n  pinMode(ledPIN, OUTPUT);  \/\/definir pin como salida\n\n  lcd.begin(16, 2);\n  mHour = false;\n  mMusic = false;\n  mAlarm = false;\n  mGlados = false;\n  mMenu = true;\n\n  settedAlarm = false;\n  movementFinished = true;\n  musicModed = false;\n\n  newHour = 0;\n  hour = 0;\n  aHour = 0;\n  minute = 0;\n  aMinute = 0;\n  second = 0;\n\n  currentSong = 0;\n\n  \/\/Sd card\/audio player\n  audio.speakerPin = 10;\n  if (!SD.begin(SD_ChipSelectPin))  \/\/Returns 1 if the card is present\n  {\n    Serial.println(\"SD fail\");\n    return;\n  } else {\n    Serial.println(\"SD complete\");\n  }\n  Serial.println(\"Avances\");\n  audio.setVolume(5);\n\n  menu();\n  saludo();\n}\n\nvoid vertical() {\n  digitalWrite(ledPIN, LOW);\n  for (pos3 = 2250; pos3 &gt;= 1500; pos3 -= 8) {\n    myservo3.write(pos3);\n    delay(10);\n  }\n  for (pos3 = 1500; pos3 &lt;= 2250; pos3 += 8) {\n    \/\/ in steps of 1 degree\n    myservo3.write(pos3);\n    delay(10);\n  }\n}\nvoid bailar() {\n  for (pos4 = 1500; pos4 &lt;= 2083; pos4 += 8) {\n                                              \n    myservo4.write(pos4);                     \n    delay(10);                                \n  }\n\n  vertical();\n  for (pos2 = 917; pos2 &lt;= 1208; pos2 += 8) {\n    \/\/ in steps of 1 degree\n    myservo2.write(pos2);\n    delay(10);\n  }\n\n  for (pos = 2450; pos &gt;= 1666; pos -= 8) {\n    myservo.write(pos);\n    delay(14);\n  }\n\n  for (pos = 1666; pos &lt;= 2450; pos += 8) {\n    \/\/ in steps of 1 degree\n    myservo.write(pos);\n    delay(14);\n  }\n\n  for (pos4 = 2083; pos4 &gt;= 750; pos4 -= 8) { \n                                              \n    myservo4.write(pos4);                     \n    delay(10);                                \n  }\n  vertical();\n  digitalWrite(ledPIN, LOW);\n  for (pos2 = 1208; pos2 &gt;= 750; pos2 -= 8) {\n    myservo2.write(pos2);\n    delay(10);\n  }\n\n  for (pos4 = 750; pos4 &lt;= 1500; pos4 += 8) { \n                                              \n    myservo4.write(pos4);                     \n    delay(10);                                \n  }\n  digitalWrite(ledPIN, HIGH);\n  for (pos = 2450; pos &gt;= 1666; pos -= 8) {\n    myservo.write(pos);\n    delay(10);\n  }\n  for (pos = 1666; pos &lt;= 2450; pos += 8) {\n\n    myservo.write(pos);\n    delay(10);\n  }\n  digitalWrite(ledPIN, HIGH);\n}\nvoid triste() {\n  for (pos3 = 2250; pos3 &gt;= 1416; pos3 -= 8) {\n    myservo3.write(pos3);                     \n    delay(20);                                \n  }\n  for (pos = 2450; pos &gt;= 1666; pos -= 8) {  \n    myservo.write(pos);                      \n    delay(20);                               \n  }\n\n  delay(1000);\n\n  for (pos3 = 1416; pos3 &lt;= 2250; pos3 += 8) {\n                                              \n    myservo3.write(pos3);                     \n    delay(10);                                \n  }\n\n  for (pos = 1666; pos &lt;= 2450; pos += 8) {  \n                                             \n    myservo.write(pos);                      \n    delay(10);                               \n  }\n}\nvoid negar() {\n  for (pos = 2450; pos &gt;= 1916; pos -= 8) {  \n    myservo.write(pos);                      \n    delay(10);                               \n  }\n  for (pos2 = 917; pos2 &lt;= 1208; pos2 += 8) { \n                                              \n    myservo2.write(pos2);                     \n    delay(10);                                \n  }\n  for (pos2 = 1208; pos2 &gt;= 750; pos2 -= 8) { \n    myservo2.write(pos2);                     \n    delay(10);                                \n  }\n  for (pos2 = 750; pos2 &lt;= 917; pos2 += 8) {  \n                                              \n    myservo2.write(pos2);                     \n    delay(10);                                \n  }\n  delay(100);\n  for (pos = 1666; pos &lt;= 2450; pos += 8) {  \n                                             \n    myservo.write(pos);                      \n    delay(10);                               \n  }\n}\nvoid asentir() {\n  for (pos = 2450; pos &gt;= 1666; pos -= 8) {  \n    myservo.write(pos);                      \n    delay(10);                               \n  }\n  for (pos = 1666; pos &lt;= 2450; pos += 8) {  \n                                             \n    myservo.write(pos);                      \n    delay(10);                               \n  }\n}\nvoid saludo() {\n  audio.play(\"Saludo.wav\");\n\n\n  for (pos4 = 1500; pos4 &lt;= 2250; pos4 += 8) {\n                                              \n    myservo4.write(pos4);                     \n    delay(10);                                \n  }\n  for (pos4 = 2250; pos4 &gt;= 750; pos4 -= 8) { \n                                              \n    myservo4.write(pos4);                     \n    delay(10);                                \n  }\n  for (pos4 = 750; pos4 &lt;= 1500; pos4 += 8) { \n                                              \n    myservo4.write(pos4);                     \n    delay(10);                                \n  }\n\n  for (pos3 = 1500; pos3 &lt;= 2250; pos3 += 8) {\n                                              \n    myservo3.write(pos3);                     \n    delay(10);                                \n  }\n  for (pos2 = 750; pos2 &lt;= 1208; pos2 += 8) { \n                                              \n    myservo2.write(pos2);                     \n    delay(10);                                \n  }\n  for (pos2 = 1208; pos2 &gt;= 750; pos2 -= 8) { \n    myservo2.write(pos2);                     \n    delay(10);                                \n  }\n  for (pos2 = 750; pos2 &lt;= 917; pos2 += 8) {  \n                                              \n    myservo2.write(pos2);                     \n    delay(10);                                \n  }\n  delay(100);\n  digitalWrite(ledPIN, HIGH);                \n  for (pos = 1666; pos &lt;= 2450; pos += 8) {  \n                                             \n    myservo.write(pos);                      \n    delay(10);                               \n  }\n}\n\n\n\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/******MODOS DE GLADOS****\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\n\/\/------------------------------------------------------\n\/\/----------------MOVIMIENTOS DE GLADOS-----------------\n\/\/------------------------------------------------------\nvoid gladosMode() {\n  char leer = BTSerial.read();\n\n  lcd.clear();\n  lcd.setCursor(2, 0);\n  lcd.print(\"1.Yes 2.No\");\n  lcd.setCursor(1, 1);\n  lcd.print(\"3.Dance 4.Sad\");\n\n  switch (leer) {\n    case '1':\n      movementFinished = false;\n      audio.play(\"Yes.wav\");\n      asentir();\n      movementFinished = true;\n      break;\n\n    case '2':\n      movementFinished = false;\n      audio.play(\"No.wav\");\n      negar();\n      movementFinished = true;\n      break;\n\n    case '3':\n      movementFinished = false;\n      audio.play(\"Dance.wav\");\n      bailar();\n      movementFinished = true;\n      break;\n\n    case '4':\n      movementFinished = false;\n      audio.play(\"Sad.wav\");\n      triste();\n      movementFinished = true;\n      break;\n\n    case 'e':\n      if (movementFinished) {\n        mGlados = false;\n        mMenu = true;\n        musicModed = false;\n      }\n      break;\n  }\n}\n\n\/\/------------------------------------------------------\n\/\/--------------------MODO DE MUSICA--------------------\n\/\/------------------------------------------------------\nvoid musicMode() {\n  lcd.clear();\n  lcd.setCursor(1, 0);\n  lcd.print(\"1.Play 2.Stop\");\n  lcd.setCursor(1, 1);\n  lcd.print(\"3.Next 4.Prev\");\n\n  char leer = BTSerial.read();\n  switch (leer) {\n    case '1':\n      selectSong(currentSong);\n      break;\n\n    case '2':\n      audio.stopPlayback();\n      break;\n\n    case '3':\n      currentSong++;\n      if (currentSong &gt; 5) {\n        currentSong = 0;\n      }\n      selectSong(currentSong);\n      break;\n\n    case '4':\n      currentSong--;\n      if (currentSong &lt; 0) {\n        currentSong = 4;\n      }\n      selectSong(currentSong);\n      break;\n\n    case 'e':\n      mMusic = false;\n      mMenu = true;\n      musicModed = false;\n      break;\n  }\n}\n\n\/\/------------------------------------------------------\n\/\/-------------------MODO DE ALARMA---------------------\n\/\/------------------------------------------------------\nvoid alarmMode() {\n  char leer = BTSerial.read();\n\n  if (leer == 'h') {  \/\/+h\n    newHour++;\n    if (newHour &gt; 23) {\n      newHour = 0;\n    }\n  } else if (leer == 'g') {  \/\/-h\n    newHour--;\n    if (newHour &lt; 0) {\n      newHour = 23;\n    }\n  } else if (leer == 'm') {  \/\/+m\n    newMinute++;\n    if (newMinute &gt; 59) {\n      newMinute = 0;\n    }\n  } else if (leer == 'n') {  \/\/-m\n    newMinute--;\n    if (newMinute &lt; 0) {\n      newMinute = 59;\n    }\n  } else if (leer == 'e') {\n    aHour = newHour;\n    aMinute = newMinute;\n    newHour = 0;\n    newMinute = 0;\n    mAlarm = false;\n    settedAlarm = true;\n    mMenu = true;\n    musicModed = false;\n  }\n\n  lcd.clear();\n  lcd.setCursor(0, 0);\n  lcd.print(\"h\/g=+\/-hour-&gt;\");\n  lcd.setCursor(14, 0);\n  lcd.print(newHour);\n  lcd.setCursor(0, 1);\n  lcd.print(\"m\/n=+\/-min-&gt;\");\n  lcd.setCursor(13, 1);\n  lcd.print(newMinute);\n  Serial.println(newHour);\n}\n\n\/\/------------------------------------------------------\n\/\/--------------------MODO DE HORA----------------------\n\/\/------------------------------------------------------\nvoid hourMode() {\n  char leer = BTSerial.read();\n\n  if (leer == 'h') {  \/\/+h\n    newHour++;\n    if (newHour &gt; 23) {\n      newHour = 0;\n    }\n  } else if (leer == 'g') {  \/\/-h\n    newHour--;\n    if (newHour &lt; 0) {\n      newHour = 23;\n    }\n  } else if (leer == 'm') {  \/\/+m\n    newMinute++;\n    if (newMinute &gt; 59) {\n      newMinute = 0;\n    }\n  } else if (leer == 'n') {  \/\/-m\n    newMinute--;\n    if (newMinute &lt; 0) {\n      newMinute = 59;\n    }\n  } else if (leer == 'e') {\n    hour = newHour;\n    minute = newMinute;\n    newHour = 0;\n    newMinute = 0;\n    mHour = false;\n    mMenu = true;\n    musicModed = false;\n  }\n\n  lcd.clear();\n  lcd.setCursor(0, 0);\n  lcd.print(\"h\/g=+\/-hour-&gt;\");\n  lcd.setCursor(14, 0);\n  lcd.print(newHour);\n  lcd.setCursor(0, 1);\n  lcd.print(\"m\/n=+\/-min-&gt;\");\n  lcd.setCursor(13, 1);\n  lcd.print(newMinute);\n  Serial.println(newHour);\n}\n\n\n\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/******MOSTRAR MENU******\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\nvoid menu() {\n  lcd.setCursor(0, 0);          \n  lcd.print(\"1.Hour 2.Glados\"); \n  lcd.setCursor(0, 1);\n  lcd.print(\"3.Alarm 4.Music\");\n}\n\n\n\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/******ACTUALIZAR HORA*****\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\nvoid updateTime() {\n  if (second &gt;= 60) {\n    minute += 1;\n    second -= 60;\n  }\n  if (minute &gt;= 60) {\n    hour += 1;\n    minute -= 60;\n  }\n  if (hour &gt;= 24) {\n    hour -= 24;\n    minute = 0;\n    second = 0;\n  }\n}\n\n\n\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/******MOSTRAR HORA*****\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\nvoid showHour() {\n  updateTime();\n  lcd.setCursor(0, 0);\n  lcd.print(\"1. Menu:\");\n  lcd.setCursor(3, 1);\n\n  if (hour &lt;= 9) {\n    lcd.println(hour);\n    lcd.setCursor(4, 1);\n    lcd.println(\" \");\n  } else {\n    lcd.println(hour);\n  }\n\n  lcd.setCursor(5, 1);\n  lcd.print(\":\");\n  lcd.print(minute);\n  lcd.setCursor(8, 1);\n  lcd.print(\":\");\n  lcd.print(second);\n  second += 1;\n\n  delay(1000);\n  lcd.clear();\n}\n\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/\/\/\/\/\/\/\/\/\/\/\/\/******SELECCIONAR CANCION*****\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\nvoid selectSong(int thisSong) {\n  switch (thisSong) {\n    case 0:\n      audio.play(\"Portal.wav\");\n      break;\n    case 1:\n      audio.play(\"Rosas.wav\");\n      break;\n    case 2:\n      audio.play(\"Aurora.wav\");\n      break;\n    case 3:\n      audio.play(\"AllStars.wav\");\n      break;\n    case 4:\n      audio.play(\"IRWTSAYH.wav\");\n      break;\n  }\n}\n\n\nvoid loop() {\n  if (settedAlarm == true &amp;&amp; aHour == hour &amp;&amp; aMinute == minute) {\n    alarmIsOn = true;\n    audio.play(\"Alarm.wav\");\n  }\n\n  if (alarmIsOn == true) {\n    settedAlarm = false;\n    lcd.clear();\n    lcd.setCursor(0, 0);\n    lcd.print(\"ALARM! ALARM!\");\n    lcd.setCursor(0, 1);\n    lcd.print(\"Push E to stop.\");\n\n    char leer = BTSerial.read();\n    if (leer == 'e') {\n\n      alarmIsOn = false;\n      mMenu = true;\n      audio.stopPlayback();\n    }\n  }\n\n  if (mMenu == true &amp;&amp; alarmIsOn == false) {\n    showHour();\n    if (BTSerial.available()) {\n      char confirmMenu = BTSerial.read();\n      if (confirmMenu == '1') {\n        mMenu = false;\n        menu();\n        confirmMenu == '0';\n      }\n    }\n  } else {\n    if (BTSerial.available()) {\n      if (mHour == false &amp;&amp; mGlados == false &amp;&amp; mAlarm == false &amp;&amp; mMusic == false &amp;&amp; alarmIsOn == false) {  \/\/LEER DATO, CASO BASE\n\n        char Dato = BTSerial.read();\n\n        switch (Dato) {\n          case '1':\n            mHour = true;\n            break;\n\n          case '2':\n            mGlados = true;\n            break;\n\n          case '3':\n            mAlarm = true;\n            break;\n\n          case '4':\n            mMusic = true;\n            break;\n\n          case 'm':\n            audio.play(\"Mondongo.wav\");\n            break;\n        }\n      }\n\n\n      if (mHour == true) {\n        if (musicModed == false) {\n          musicModed = true;\n          audio.play(\"Hour.wav\");\n        }\n        \n        hourMode();\n      }\n\n      if (mAlarm == true) {\n        if (musicModed == false) {\n          musicModed = true;\n          audio.play(\"mAlarm.wav\");\n        }\n        \n        alarmMode();\n      }\n\n      if (mMusic == true) {\n        if (musicModed == false) {\n          musicModed = true;\n          audio.play(\"Music.wav\");\n        }\n        \n        musicMode();\n      }\n\n      if (mGlados == true) {\n        if (musicModed == false) {\n          musicModed = true;\n          audio.play(\"Glados.wav\");\n        }\n        \n        gladosMode();\n      }\n\n    }\n\n    if (Serial.available()) {\n      BTSerial.write(Serial.read());\n    }\n  }\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">8. V\u00eddeo<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video-container\"><iframe loading=\"lazy\" title=\"Video explicativo \u2010 GLaDOS - Grupo 10, DSE\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/KjPP28rQoHs?feature=oembed&#038;wmode=opaque\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Autores: String nombre1 = &#8216; &#8216; Andr\u00e9s Gonzalez Antohi &#8216; &#8216;; String nombre2 = &#8216; &#8216; Rodrigo Hervada Llahosa &#8216; &#8216;; String nombre3 = &#8216; &#8216; Marco S\u00e1nchez Nishimura &#8216; &#8216;; String nombre4 =&#46;&#46;&#46;<\/p>\n","protected":false},"author":62,"featured_media":7055,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[8,138],"class_list":["post-6181","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-proyectos","tag-arduino","tag-dse-gii-mostoles-2022-23"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>GLaDOS - Proyectos con Arduino.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GLaDOS - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"Autores: String nombre1 = &#8216; &#8216; Andr\u00e9s Gonzalez Antohi &#8216; &#8216;; String nombre2 = &#8216; &#8216; Rodrigo Hervada Llahosa &#8216; &#8216;; String nombre3 = &#8216; &#8216; Marco S\u00e1nchez Nishimura &#8216; &#8216;; String nombre4 =&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-21T22:39:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-09T06:57:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/GLADOS.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"1600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/glados\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/glados\\\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"GLaDOS\",\"datePublished\":\"2022-12-21T22:39:25+00:00\",\"dateModified\":\"2023-05-09T06:57:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/glados\\\/\"},\"wordCount\":1710,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/glados\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/12\\\/GLADOS.png\",\"keywords\":[\"Arduino\",\"DSE GII Mostoles 2022-23\"],\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/glados\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/glados\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/glados\\\/\",\"name\":\"GLaDOS - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/glados\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/glados\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/12\\\/GLADOS.png\",\"datePublished\":\"2022-12-21T22:39:25+00:00\",\"dateModified\":\"2023-05-09T06:57:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/glados\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/glados\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/glados\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/12\\\/GLADOS.png\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/12\\\/GLADOS.png\",\"width\":1200,\"height\":1600},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/glados\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GLaDOS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"name\":\"Proyectos con Arduino.\",\"description\":\"Blog de proyectos de Arduino de alumnos de la URJC\",\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\",\"name\":\"Universidad Rey Juan Carlos\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"width\":745,\"height\":288,\"caption\":\"Universidad Rey Juan Carlos\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"GLaDOS - Proyectos con Arduino.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/","og_locale":"es_ES","og_type":"article","og_title":"GLaDOS - Proyectos con Arduino.","og_description":"Autores: String nombre1 = &#8216; &#8216; Andr\u00e9s Gonzalez Antohi &#8216; &#8216;; String nombre2 = &#8216; &#8216; Rodrigo Hervada Llahosa &#8216; &#8216;; String nombre3 = &#8216; &#8216; Marco S\u00e1nchez Nishimura &#8216; &#8216;; String nombre4 =&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2022-12-21T22:39:25+00:00","article_modified_time":"2023-05-09T06:57:08+00:00","og_image":[{"width":1200,"height":1600,"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/GLADOS.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"","Tiempo de lectura":"15 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/"},"author":{"name":"","@id":""},"headline":"GLaDOS","datePublished":"2022-12-21T22:39:25+00:00","dateModified":"2023-05-09T06:57:08+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/"},"wordCount":1710,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/GLADOS.png","keywords":["Arduino","DSE GII Mostoles 2022-23"],"articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/","name":"GLaDOS - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/GLADOS.png","datePublished":"2022-12-21T22:39:25+00:00","dateModified":"2023-05-09T06:57:08+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/GLADOS.png","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/12\/GLADOS.png","width":1200,"height":1600},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/glados\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"GLaDOS"}]},{"@type":"WebSite","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","name":"Proyectos con Arduino.","description":"Blog de proyectos de Arduino de alumnos de la URJC","publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization","name":"Universidad Rey Juan Carlos","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","width":745,"height":288,"caption":"Universidad Rey Juan Carlos"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/6181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/users\/62"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=6181"}],"version-history":[{"count":23,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/6181\/revisions"}],"predecessor-version":[{"id":7057,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/6181\/revisions\/7057"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media\/7055"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=6181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=6181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=6181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}