{"id":20136,"date":"2024-02-07T12:32:49","date_gmt":"2024-02-07T11:32:49","guid":{"rendered":"https:\/\/complex-systems-ai.com\/?page_id=20136"},"modified":"2024-02-11T13:52:42","modified_gmt":"2024-02-11T12:52:42","slug":"exercices-lego-mindstorms","status":"publish","type":"page","link":"https:\/\/complex-systems-ai.com\/es\/algoritmico\/ejercicios-de-lego-mindstorms\/","title":{"rendered":"9 ejercicios corregidos de Lego Mindstorms"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"20136\" class=\"elementor elementor-20136\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b6ee20d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b6ee20d\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-b661b77\" data-id=\"b661b77\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c365847 elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"c365847\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Algor\u00edtmico<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-dfab6f8\" data-id=\"dfab6f8\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0d3ce4d elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"0d3ce4d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/complex-systems-ai.com\/es\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Pagina de inicio<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-6eccacd\" data-id=\"6eccacd\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4b4821a elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"4b4821a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Algorithme\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Wiki<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ca4cfe9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ca4cfe9\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a581bd4\" data-id=\"a581bd4\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-657a521 elementor-widget elementor-widget-heading\" data-id=\"657a521\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenido<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Tabla de contenido alternativo\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Palanca<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/ejercicios-de-lego-mindstorms\/#Exercices-corriges-sur-le-logiciel-de-robotique-Lego-Mindstorms\" >Ejercicios corregidos sobre el software de rob\u00f3tica Lego Mindstorms.<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/ejercicios-de-lego-mindstorms\/#Exercice-1\" >Ejercicio 1<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/ejercicios-de-lego-mindstorms\/#Exercice-2\" >Ejercicio 2<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/ejercicios-de-lego-mindstorms\/#Exercice-3\" >Ejercicio 3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/ejercicios-de-lego-mindstorms\/#Exercice-4\" >Ejercicio 4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/ejercicios-de-lego-mindstorms\/#Exercice-5\" >Ejercicio 5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/ejercicios-de-lego-mindstorms\/#Exercice-6\" >Ejercicio 6<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/ejercicios-de-lego-mindstorms\/#Exercice-7\" >Ejercicio 7<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/ejercicios-de-lego-mindstorms\/#Exercice-8\" >Ejercicio 8<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/ejercicios-de-lego-mindstorms\/#Exercice-9\" >Ejercicio 9<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Exercices-corriges-sur-le-logiciel-de-robotique-Lego-Mindstorms\"><\/span>Ejercicios corregidos sobre el software de rob\u00f3tica Lego Mindstorms.<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9777eb1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9777eb1\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d7df3a7\" data-id=\"d7df3a7\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-311e916 elementor-widget elementor-widget-text-editor\" data-id=\"311e916\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Esta serie de ejercicios corregidos sobre Lego Mindstorms te permite familiarizarte con el software de programaci\u00f3n y rob\u00f3tica.<\/p><p><img decoding=\"async\" class=\"aligncenter wp-image-11096 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2020\/09\/cropped-Capture.png\" alt=\"Tormentas mentales de Lego\" width=\"97\" height=\"97\" title=\"\"><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-cf3db34 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"cf3db34\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0afd2bf\" data-id=\"0afd2bf\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4cd2bc0 elementor-widget elementor-widget-heading\" data-id=\"4cd2bc0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Exercice-1\"><\/span>Ejercicio 1<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2e20959 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2e20959\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a89e8c8\" data-id=\"a89e8c8\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0a3877b elementor-widget elementor-widget-text-editor\" data-id=\"0a3877b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>En este ejercicio, aprender\u00e1 a programar el robot para que realice movimientos sencillos. Entender c\u00f3mo hacer que tu robot realice sus movimientos es fundamental porque necesitar\u00e1 realizarlos constantemente en los siguientes ejercicios.<\/p><p>Utilizando la gu\u00eda de programaci\u00f3n que se le proporcion\u00f3, programe su robot<br \/>para que realice las siguientes acciones:<\/p><p>avanzar durante un per\u00edodo de 3 segundos,<\/p><p>retroceder por un per\u00edodo de 3 segundos,<\/p><p>girar a la izquierda y luego a la derecha.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-03baab2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"03baab2\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d66a6f8\" data-id=\"d66a6f8\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a18bd2d elementor-widget elementor-widget-toggle\" data-id=\"a18bd2d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1691\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-1691\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Soluci\u00f3n<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1691\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-1691\"><p>Este ejercicio pretende explicar de forma sencilla c\u00f3mo programar el robot utilizando el software LEGO. Hay dos formas de abordar estos problemas:<\/p><p>ya sea usando el bloque Move (que le permite controlar ambos motores a la vez), o usando dos bloques Motor (uno para cada motor, que le permite controlar cada motor de forma independiente).<\/p><p>La segunda forma utiliza bucles, por lo que es mejor abordarla si los estudiantes se sienten c\u00f3modos con esta noci\u00f3n (lo cual se ver\u00e1 en el segundo ejercicio).<\/p><p>\u2013 avance durante 3 segundos, coloque un bloque de movimiento, verifique los motores B y C e ingrese 3 segundos como duraci\u00f3n.<\/p><p>\u2013 retroceder durante 3 segundos, igual que para el ejercicio anterior excepto que debes seleccionar la direcci\u00f3n \u201cHacia atr\u00e1s\u201d.<\/p><p>\u2013 activar los \u00e1ngulos hacia la izquierda y luego hacia la derecha. Coloque el cursor &quot;Directo&quot; completamente hacia la derecha o completamente hacia la izquierda.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-047e0a9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"047e0a9\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8296e4e\" data-id=\"8296e4e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5227d33 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"5227d33\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-eea5d57 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"eea5d57\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-494c274\" data-id=\"494c274\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4bf71a6 elementor-widget elementor-widget-heading\" data-id=\"4bf71a6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Exercice-2\"><\/span>Ejercicio 2<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-54ad29f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"54ad29f\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b60d157\" data-id=\"b60d157\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-bf24b5d elementor-widget elementor-widget-text-editor\" data-id=\"bf24b5d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>En algoritmos y programaci\u00f3n, un bucle es una estructura de control que permite repetir una serie de instrucciones siempre que una condici\u00f3n sea verdadera o no se respete (seg\u00fan el tipo de bucle utilizado). Hay varios tipos como por ejemplo While (condici\u00f3n) do. Un bucle tambi\u00e9n puede ser infinito, es decir que su bloque de instrucciones se repetir\u00e1 indefinidamente (m\u00e1s concretamente: hasta que se detenga). <em>manual \u00a0<\/em>del programa).<\/p><p>El robot est\u00e1 equipado con varios sensores (en la gu\u00eda proporcionada se proporciona una descripci\u00f3n m\u00e1s precisa de cada uno). Estos sensores permiten medir diferentes par\u00e1metros del entorno en el que opera el robot. Es posible utilizar estas medidas como condici\u00f3n para detener los bucles y esto es lo que nos interesar\u00e1 m\u00e1s adelante.<\/p><p><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-size: 1.125rem; font-weight: var( --e-global-typography-text-font-weight );\">Por lo tanto, un bucle infinito nos permite hacer que el robot realice una acci\u00f3n (o una secuencia de acciones) sin ninguna condici\u00f3n de parada particular.<\/span><\/p><ol><li>Haz que tu robot realice una trayectoria ilimitada en forma de c\u00edrculo<\/li><li>Avanza y retrocede (solo una distancia corta) ilimitadamente<\/li><li>Bucle con condici\u00f3n de parada<\/li><\/ol><p>Un bucle se usa generalmente con una condici\u00f3n de detenci\u00f3n, es decir, todas las instrucciones en el cuerpo del bucle solo se ejecutar\u00e1n mientras la condici\u00f3n especificada sea verdadera (desde un punto de vista l\u00f3gico). En pseudoc\u00f3digo, un bucle se escribe de la siguiente manera:<\/p><p>Tanto que (<em>condici\u00f3n<\/em>) hacer<\/p><p><em>\u00a0 \u00a0 \u00a0instrucciones<\/em><\/p><p>terminar mientras<\/p><p>Luego se le pedir\u00e1 que piense en los algoritmos de sus programas y los escriba en forma de pseudoc\u00f3digo. El pseudoc\u00f3digo es un <em>idioma \u00a0<\/em>casi natural, es decir, al escribir el algoritmo no es necesario pensar en la implementaci\u00f3n (c\u00f3mo traducirlo al lenguaje de programaci\u00f3n).<\/p><p>En el caso de nuestro robot podemos poner como condiciones operaciones l\u00f3gicas, un contador o sensores y esto es lo que veremos aqu\u00ed. Por ejemplo, digamos que nuestro robot tiene un sensor de detecci\u00f3n de ruido (en la realidad no es as\u00ed) y queremos que avance hasta que detecte un ruido, un <a href=\"https:\/\/complex-systems-ai.com\/es\/algoritmico\/\">algoritmo<\/a> en pseudoc\u00f3digo ser\u00eda:<\/p><p>Mientras (ruido no detectado)<\/p><p>\u00a0 \u00a0 \u00a0 Avanzar()<\/p><p>terminar mientras<\/p><p>Cuando detecte el ruido dejar\u00e1 de repetir su bloque de instrucciones.<\/p><p>Para cada una de las siguientes acciones y utilizando un sensor independiente, escriba un peque\u00f1o algoritmo en pseudoc\u00f3digo y luego progr\u00e1melo:<\/p><ol><li>Mueva el robot hacia adelante y luego det\u00e9ngase a 20 cm de un obst\u00e1culo.<\/li><li>Haga que el robot avance y luego se detenga cuando entre en contacto con un obst\u00e1culo,<\/li><li>Haz que el robot avance y luego se detenga cuando vea un color en el suelo.<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-71a4082 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"71a4082\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-513187f\" data-id=\"513187f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fd8f9f8 elementor-widget elementor-widget-toggle\" data-id=\"fd8f9f8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-2651\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-2651\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Soluci\u00f3n<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-2651\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-2651\"><p>Bucle infinito<\/p><ol><li>Haz que tu robot realice una trayectoria ilimitada en forma de c\u00edrculo\u00a0<\/li><\/ol><p>Para hacer esto, debes usar dos bloques. <em>motores \u00a0<\/em>y col\u00f3quelos en un bucle \u201cilimitado\u201d. Para realizar la trayectoria en c\u00edrculo, un motor debe girar m\u00e1s r\u00e1pido que el otro (juegue con el par\u00e1metro &quot;Potencia&quot;), como B a 75 y C a 40.<\/p><ol start=\"2\"><li>Avanza y retrocede (solo una distancia corta) ilimitadamente<\/li><\/ol><p>Se deben poner dos unidades motoras para avanzar (misma potencia, misma direcci\u00f3n, misma duraci\u00f3n) en un bucle infinito, luego poner dos unidades motoras atr\u00e1s para avanzar hacia atr\u00e1s (se debe invertir el sentido con relaci\u00f3n a la acci\u00f3n de avanzar).<\/p><p>Tenga en cuenta que para que los dos motores est\u00e9n activos en paralelo, la duraci\u00f3n debe ser en grados (por ejemplo, 500) o rotaciones y el primero de los dos bloques de motores (para cada acci\u00f3n) debe tener la opci\u00f3n &quot;Esperar al final&quot; desmarcada. .<\/p><p><img decoding=\"async\" class=\"alignnone wp-image-20142 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego1.png\" alt=\"tormentas mentales lego\" width=\"375\" height=\"95\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego1.png 375w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego1-300x76.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego1-18x5.png 18w\" sizes=\"(max-width: 375px) 100vw, 375px\" \/><\/p><p>Bucles con condiciones de parada.<\/p><ol><li>Mueva el robot hacia adelante y luego det\u00e9ngase a 5 cm de un obst\u00e1culo,<\/li><\/ol><p>Mientras (distancia() <em>\u2265 <\/em>5)<\/p><p>\u00a0 \u00a0 \u00a0hacer avanzar()<\/p><p>terminar mientras<\/p><p>Los bucles utilizados por el software de programaci\u00f3n LEGO no son Mientras, es decir, la condici\u00f3n del bucle es la condici\u00f3n de <u>salida<\/u> bucle y no la condici\u00f3n de validez.<\/p><p>Por lo tanto, aqu\u00ed el bucle debe tener el sensor ultras\u00f3nico como par\u00e1metro de \u201cControl\u201d y como condici\u00f3n \u201cHasta\u201d. <em>&lt; <\/em>5 cent\u00edmetros\u201d. Este bucle debe contener dos bloques. <em>motores <\/em>para motores B y C de la misma potencia y el mismo sentido y cuya duraci\u00f3n es \u201cilimitada\u201d.<\/p><p><img decoding=\"async\" class=\"alignnone wp-image-20143 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego2.jpg\" alt=\"tormentas mentales lego\" width=\"228\" height=\"74\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego2.jpg 228w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego2-18x6.jpg 18w\" sizes=\"(max-width: 228px) 100vw, 228px\" \/><\/p><ol start=\"2\"><li>Haga que el robot avance y luego se detenga cuando entre en contacto con un obst\u00e1culo,<\/li><\/ol><p>Mientras (TouchSensor no presionado) haga<\/p><p>\u00a0 \u00a0 \u00a0Avanzar()<\/p><p>terminar mientras<\/p><p>El bucle debe contener dos bloques. <em>motores \u00a0<\/em>para motores B y C (misma potencia, mismo sentido, duraci\u00f3n ilimitada) y tener como control uno de los sensores t\u00e1ctiles con la condici\u00f3n \u201cAcci\u00f3n: presionado\u201d.<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20144 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego3.jpg\" alt=\"tormentas mentales lego\" width=\"227\" height=\"76\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego3.jpg 227w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego3-18x6.jpg 18w\" sizes=\"(max-width: 227px) 100vw, 227px\" \/><\/p><p>Atenci\u00f3n: esta versi\u00f3n es sencilla pero el robot s\u00f3lo se detiene cuando entra en contacto con un \u00fanico sensor. Sin embargo, es posible utilizar una ecuaci\u00f3n l\u00f3gica para poner en juego los dos sensores (el robot se detiene al contacto de uno de los dos sensores). Para hacer esto, debe usar dos bloques de \u201cSensor t\u00e1ctil\u201d y construir la siguiente ecuaci\u00f3n l\u00f3gica (que ingresa como una condici\u00f3n en un bucle con \u201cL\u00f3gica\u201d como control):<\/p><p><em>mi <\/em>= 1 + 2<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20145 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego4.jpg\" alt=\"tormentas mentales lego\" width=\"299\" height=\"99\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego4.jpg 299w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego4-18x6.jpg 18w\" sizes=\"(max-width: 299px) 100vw, 299px\" \/><\/p><ol start=\"3\"><li>Haz que el robot avance y luego se detenga cuando vea un color en el suelo.<\/li><\/ol><p>El color elegido realmente no importa, pero el negro es una opci\u00f3n pr\u00e1ctica porque se puede medir con el sensor de color o brillo.<\/p><p>Mientras (color() <em>\/<\/em>= negro) hacer<\/p><p>\u00a0 \u00a0 \u00a0Avanzar()<\/p><p>terminar mientras<\/p><p>El bucle debe contener dos bloques. <em>motores \u00a0<\/em>para motores B y C (misma potencia, misma direcci\u00f3n, duraci\u00f3n ilimitada) y tienen como control el sensor de color en modo \u201cColor\u201d con la condici\u00f3n \u201cHasta el rango\u201d y los cursores enmarcando en negro.<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20146 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego5.jpg\" alt=\"tormentas mentales lego\" width=\"229\" height=\"75\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego5.jpg 229w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego5-18x6.jpg 18w\" sizes=\"(max-width: 229px) 100vw, 229px\" \/><\/p><p>El sensor de color se puede utilizar en modo \u201cFotosensible\u201d para este ejercicio si el color de parada es negro. Para hacer esto, en el modo &quot;Fotosensible&quot; establezca la condici\u00f3n &quot;Hasta que <em>&lt;<\/em> <em>X<\/em>&quot; O \u00a0<em>X<\/em> es un l\u00edmite superior de negro que se determinar\u00e1 mediante medici\u00f3n en el soporte utilizado como pista de prueba.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7b66add elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7b66add\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3d3746f\" data-id=\"3d3746f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1d67134 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"1d67134\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-962ebcc elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"962ebcc\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-840901f\" data-id=\"840901f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-19c8502 elementor-widget elementor-widget-heading\" data-id=\"19c8502\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Exercice-3\"><\/span>Ejercicio 3<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3aac12e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3aac12e\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b96da5a\" data-id=\"b96da5a\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0a311d8 elementor-widget elementor-widget-text-editor\" data-id=\"0a311d8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Tendr\u00e1s que programar tu robot para que cuente los colores. Debe poder avanzar a lo largo de un \u00e1rea compuesta por una sucesi\u00f3n de \u00e1reas coloreadas, aunque el final de esta \u00e1rea est\u00e9 marcado por una banda negra. Por lo tanto, debe contar el n\u00famero de veces que aparece una franja de color mientras avanza la pantalla. Al finalizar el curso, mostrar\u00e1 el n\u00famero de zonas de color en la pantalla.<\/p><ol><li>Escriba un algoritmo correspondiente a este problema en pseudoc\u00f3digo<\/li><li>Implementa tu algoritmo en tu robot<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3105b33 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3105b33\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f940d8d\" data-id=\"f940d8d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1d548ed elementor-widget elementor-widget-toggle\" data-id=\"1d548ed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-3071\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-3071\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Soluci\u00f3n<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-3071\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-3071\"><p>El objetivo de este ejercicio es reutilizar lo visto hasta ahora (bucles, sensor) introduciendo al mismo tiempo la noci\u00f3n de variable (desde un punto de vista algor\u00edtmico y a nivel del software de programaci\u00f3n del robot).<\/p><ol><li>Escriba un algoritmo correspondiente a este problema en pseudoc\u00f3digo<\/li><\/ol><p>ColorAnterior <em>\u2190 <\/em>color() NbRojo <em>\u2190 <\/em>0<\/p><p>NbAmarillo <em>\u2190 <\/em>0<\/p><p>NbAzul <em>\u2190 <\/em>0<\/p><p>Mientras (ReadColor() =<em>\/<\/em><em>\u00a0\u00a0\u00a0 <\/em>NEGRO) hacer<\/p><p>\u00a0 \u00a0 \u00a0Mientras (color() = ColorAnterior)<\/p><p>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Avanzar()<\/p><p>\u00a0 \u00a0 \u00a0terminar mientras<\/p><p>\u00a0 \u00a0 \u00a0Si (color() = ROJO) entonces NbRed = NbRed + 1<\/p><p>\u00a0 \u00a0 \u00a0Si (color() = AMARILLO) entonces NbAmarillo = NbAmarillo + 1<\/p><p>\u00a0 \u00a0 \u00a0Si (color() = AZUL) entonces NbBlue = NbBlue + 1<\/p><p>\u00a0 \u00a0 \u00a0Terminara si<\/p><p>\u00a0 \u00a0 \u00a0ColorAnterior <em>\u2190 <\/em>color()<\/p><p>terminar mientras<\/p><p>color() es una funci\u00f3n que devuelve el valor num\u00e9rico del color le\u00eddo por el sensor de color.<\/p><p>Este algoritmo funciona de la siguiente manera: el robot avanza mientras est\u00e9 todav\u00eda en la misma zona de color y, en cuanto cambia de zona, incrementa la variable asociada a este color. Termina actualizando la variable PreviousColor para detectar el cambio de zona en el siguiente bucle. Todo est\u00e1 en un bucle de detecci\u00f3n de negro que detendr\u00e1 el robot tan pronto como lea negro.<\/p><ol start=\"2\"><li>Implementa tu algoritmo en tu robot<\/li><\/ol><p>Para programarlo primero debemos crear las variables que se utilizar\u00e1n posteriormente (Color Anterior, Rojo, Azul, Amarillo); son de tipo digital y se inicializan desde el inicio del programa.<\/p><p>Luego colocamos un bucle principal con el control \u201cSensor de color\u201d y la acci\u00f3n \u201cHasta el rango de negros\u201d. Dentro de este bucle volvemos a colocar un bucle que contiene dos bloques motores para mover el robot hacia adelante (duraci\u00f3n establecida en &quot;Ilimitada&quot;). El control de este bucle debe colocarse en \u201cL\u00f3gica\u201d con como entrada una operaci\u00f3n de comparaci\u00f3n entre la variable \u201cColor Anterior\u201d y el sensor de color:<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20147 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robor7.png\" alt=\"tormenta mental lego\" width=\"546\" height=\"276\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robor7.png 546w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robor7-300x152.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robor7-18x9.png 18w\" sizes=\"(max-width: 546px) 100vw, 546px\" \/><\/p><p>Luego de este bucle, colocamos tres bloques de interruptores (uno para cada color) en los que ejecutamos la operaci\u00f3n de incrementar la variable de color asociada. Aqu\u00ed por ejemplo est\u00e1 el rojo:<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20148 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robot8.png\" alt=\"tormentas mentales lego\" width=\"456\" height=\"320\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robot8.png 456w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robot8-300x211.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robot8-18x12.png 18w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robot8-120x85.png 120w\" sizes=\"(max-width: 456px) 100vw, 456px\" \/><\/p><p>Luego, despu\u00e9s de estos tres cambios, no nos olvidamos de actualizar la variable \u201cColor anterior\u201d con el sensor de color (como durante la inicializaci\u00f3n).<\/p><p>Despu\u00e9s del bucle \u00a0<em>principal<\/em>, mostramos el contenido de las variables de color en pantalla o con sonidos.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-56b8ce7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"56b8ce7\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8b00675\" data-id=\"8b00675\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8b73a07 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"8b73a07\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-324f960 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"324f960\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0fd5190\" data-id=\"0fd5190\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f6c8135 elementor-widget elementor-widget-heading\" data-id=\"f6c8135\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Exercice-4\"><\/span>Ejercicio 4<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7e8a01c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7e8a01c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b266374\" data-id=\"b266374\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0f6fd41 elementor-widget elementor-widget-text-editor\" data-id=\"0f6fd41\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>El robot debe seguir un camino negro en el suelo, siendo el suelo blanco.<\/p><ol><li>Escriba un algoritmo correspondiente a este problema en pseudoc\u00f3digo<\/li><li>Implementa tu algoritmo en tu robot.<\/li><\/ol><p>Pregunta adicional: \u00bfpuede su programa seguir todo tipo de rutas?<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a408719 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"a408719\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-02ac338\" data-id=\"02ac338\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-cdfba9b elementor-widget elementor-widget-toggle\" data-id=\"cdfba9b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-2151\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-2151\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Soluci\u00f3n<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-2151\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-2151\"><ol><li>Escribe en pseudoc\u00f3digo un algoritmo correspondiente a este problema.<\/li><\/ol><p>Mientras (verdadero) lo hagas<\/p><p>\u00a0 \u00a0 \u00a0Mientras que (color() = NEGRO) hacer<\/p><p>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 May\u00fasIzquierda()<\/p><p>\u00a0 \u00a0 \u00a0terminar mientras<\/p><p>\u00a0 \u00a0 \u00a0Mientras que (color() = BLANCO) hacer<\/p><p>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Desviarse a la derecha()<\/p><p>\u00a0 \u00a0 \u00a0terminar mientras<\/p><p>terminar mientras\u00a0\u00a0 \u00a0<\/p><p>color() es una funci\u00f3n que devuelve el valor num\u00e9rico del color le\u00eddo por el sensor de color.<\/p><p>DeviateLeft() y DeviateRight() son funciones que mueven el robot hacia adelante desvi\u00e1ndose hacia la izquierda o hacia la derecha.<\/p><p>Un seguidor de l\u00ednea en realidad no sigue la l\u00ednea sino el borde de la l\u00ednea (el l\u00edmite entre el blanco y el negro). El algoritmo presentado aqu\u00ed es muy simple. Dentro de un bucle infinito, colocamos dos bucles: uno para el negro y otro para el blanco. El bucle negro desv\u00eda al robot hacia la izquierda siempre que indique negro, y el bucle blanco desv\u00eda al robot hacia la derecha siempre que indique blanco. As\u00ed, el robot alterna movimientos hacia la izquierda y hacia la derecha.<\/p><p>Nota: este algoritmo corresponde a un \u201cseguidor izquierdo\u201d, es decir en el caso en que el blanco est\u00e1 a la izquierda del negro. Podemos crear un \u201cseguidor correcto\u201d invirtiendo la direcci\u00f3n de la desviaci\u00f3n.<\/p><ol start=\"2\"><li>Implementa tu algoritmo en tu robot<\/li><\/ol><p>Para implementarlo en el robot, primero colocamos un bloque \u201cloop\u201d con \u201cForever\u201d como control.<\/p><p>En este bloque colocamos luego otro bucle pero esta vez con el control \u201cSensor de color\u201d en modo \u201cFotosensible\u201d y con la acci\u00f3n \u201cHasta <em>&lt;<\/em> 35\u201d (35 es un valor del l\u00edmite superior de brillo negro, este valor debe determinarse midiendo durante la sesi\u00f3n porque puede variar seg\u00fan la iluminaci\u00f3n o la pista de prueba utilizada).<\/p><p>Dentro de este bucle, coloque dos bloques de \u201cMotor\u201d para cada uno de los dos motores, uno de los cuales tiene menor potencia que el otro (para desviarse hacia la izquierda, el motor C debe ir m\u00e1s lento que el B). Haga un bucle similar para el blanco con esta acci\u00f3n de tiempo colocada en &quot;Hasta \u00a0<em>&gt;<\/em> 35\u201d y las potencias del motor invertidas.<\/p><p>La diferencia entre las respectivas potencias de los motores afectar\u00e1 tanto a la velocidad general del robot (el tiempo que tardar\u00e1 en dar un giro completo) como a su capacidad para seguir un camino m\u00e1s o menos <em>retorcido<\/em>. Para ello, no dudes en hacer varias pruebas con diferentes valores para encontrar un buen compromiso (los valores correctos son, por ejemplo, 75 y 10).<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20149 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robot9.png\" alt=\"tormentas mentales lego\" width=\"636\" height=\"136\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robot9.png 636w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robot9-300x64.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robot9-18x4.png 18w\" sizes=\"(max-width: 636px) 100vw, 636px\" \/><\/p><p>Pregunta adicional: \u00bfpuede su programa seguir todo tipo de rutas?<\/p><p>Normalmente este programa no te permite seguir todo tipo de pistas. De hecho, tan pronto como la ruta se vuelve demasiado compleja, el robot ya no deber\u00eda poder seguirla (a menos que uno de los dos motores est\u00e9 casi parado, lo que la har\u00e1 muy lenta). No puede seguir un giro interior o demasiado cerrado, ni un giro en \u00e1ngulo recto. Para convencerse, no dude en realizarlo en los circuitos de bonificaci\u00f3n.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5fbc3e9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5fbc3e9\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-92f5fbf\" data-id=\"92f5fbf\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b52aef7 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"b52aef7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6f553ae elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6f553ae\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-307669e\" data-id=\"307669e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9f82f41 elementor-widget elementor-widget-heading\" data-id=\"9f82f41\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Exercice-5\"><\/span>Ejercicio 5<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9d3e13a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9d3e13a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fe22616\" data-id=\"fe22616\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-aafff9b elementor-widget elementor-widget-text-editor\" data-id=\"aafff9b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Al realizar determinadas tareas, su robot a menudo tiene que repetir varias veces acciones est\u00e1ndar, como girar 90\u00b0 hacia la derecha o avanzar 10 cm. Para&#039;<em>aliviar \u00a0<\/em>En tu programa es posible crear bloques personalizados que posteriormente se utilizan como los bloques predeterminados (de esta manera, en lugar de tener varios bloques que gestionan los c\u00e1lculos de \u00e1ngulos y la activaci\u00f3n de los motores, solo usamos uno varias veces) . Este principio es similar a las funciones (o procedimientos) en algor\u00edtmica.<\/p><p>Recordemos que en algor\u00edtmica una funci\u00f3n es una secuencia de instrucciones relativamente independiente del programa principal y que se repite varias veces. Esta secuencia de instrucciones luego se agrupa en un solo bloque de instrucciones que es la funci\u00f3n.<\/p><p>Utilizando la gu\u00eda de programaci\u00f3n (y m\u00e1s concretamente la secci\u00f3n de creaci\u00f3n de bloques), as\u00ed como el ap\u00e9ndice sobre c\u00e1lculos de distancia y rotaci\u00f3n, cree los siguientes bloques personalizados:<\/p><ul><li>Avanzar: mueve el robot hacia adelante seg\u00fan la distancia dada como entrada (esta distancia estar\u00e1 en cent\u00edmetros),<\/li><li>Retroceder: mueve el robot hacia atr\u00e1s seg\u00fan la distancia indicada en la entrada (esta distancia estar\u00e1 en cent\u00edmetros),<\/li><li>TurnRight: gira el robot en un \u00e1ngulo de entrada determinado hacia la derecha,<\/li><li>TurnLeft: gira el robot en un \u00e1ngulo de entrada determinado hacia la izquierda,<\/li><li>RotateRight: gira el robot en un \u00e1ngulo de entrada determinado hacia la derecha,<\/li><li>RotateLeft: gira el robot en un \u00e1ngulo de entrada determinado hacia la izquierda<\/li><\/ul><p>Ahora, usando los bloques que acaba de crear, cree un programa que permita a su robot realizar esta trayectoria:<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20153 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robot10.png\" alt=\"tormentas mentales lego\" width=\"388\" height=\"277\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robot10.png 388w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robot10-300x214.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robot10-18x12.png 18w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/robot10-120x85.png 120w\" sizes=\"(max-width: 388px) 100vw, 388px\" \/><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-889c982 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"889c982\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-23bf2dd\" data-id=\"23bf2dd\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7732127 elementor-widget elementor-widget-toggle\" data-id=\"7732127\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1241\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-1241\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Soluci\u00f3n<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1241\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-1241\"><p>Por lo tanto, debes utilizar la gu\u00eda de programaci\u00f3n as\u00ed como el ap\u00e9ndice sobre distancias y rotaciones para crear los bloques e implementar las f\u00f3rmulas utilizando los bloques de operaciones matem\u00e1ticas.<\/p><p>\u2013 Avanzar: mueve el robot hacia adelante seg\u00fan la distancia dada como entrada (esta distancia estar\u00e1 en cent\u00edmetros),<\/p><p>Por tanto, es necesario codificar la f\u00f3rmula distancia*360\/13,5 utilizando constantes para 360 y 13,5 y una variable en modo lectura para la distancia; luego proporcione el resultado como el valor de entrada de un bloque <em>Mover <\/em>establezca una duraci\u00f3n en \u201cGrados\u201d. Para crear el bloque, simplemente seleccione todos estos bloques excepto el bloque variable para la distancia, luego vaya a <em>Editar <\/em><em>\u2192 Crear nuevo bloque Mi bloque <\/em>:<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20154 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego6.jpg\" alt=\"tormentas mentales lego\" width=\"431\" height=\"237\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego6.jpg 431w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego6-300x165.jpg 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego6-18x10.jpg 18w\" sizes=\"(max-width: 431px) 100vw, 431px\" \/><\/p><ul><li>Retroceder: mueve el robot hacia atr\u00e1s seg\u00fan la distancia indicada en la entrada (esta distancia estar\u00e1 en cent\u00edmetros),<\/li><\/ul><p>Debes codificar la misma f\u00f3rmula que para el bloque. <em>Avanzar <\/em>pero esta vez el bloque <em>Mover <\/em>debe configurarse para girar los motores en la otra direcci\u00f3n.<\/p><ul><li>TurnRight: gira el robot en un \u00e1ngulo de entrada determinado hacia la derecha,<\/li><\/ul><p>Esta vez, es la f\u00f3rmula \u00e1ngulo*2pi*15.5\/13.5 y ponemos el resultado en la entrada del motor C (el motor B debe estar desactivado).<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20155 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego7.png\" alt=\"tormentas mentales lego\" width=\"673\" height=\"279\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego7.png 673w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego7-300x124.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego7-18x7.png 18w\" sizes=\"(max-width: 673px) 100vw, 673px\" \/><\/p><ul><li>TurnLeft: gira el robot en un \u00e1ngulo de entrada determinado hacia la izquierda,<\/li><\/ul><p>La f\u00f3rmula sigue siendo la misma que antes, pero esta vez es el motor B el que se activa y el motor C el que se desactiva.<\/p><ul><li>RotateRight: gira el robot en un \u00e1ngulo de entrada determinado hacia la derecha,<\/li><\/ul><p>La f\u00f3rmula es casi la misma que antes excepto que eliminamos el coeficiente 2 (el c\u00edrculo descrito es la mitad de grande). Adem\u00e1s, esta vez el resultado del c\u00e1lculo se proporciona como entrada a los motores B y C; el motor C avanza y el motor B retrocede.<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20157 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego8.png\" alt=\"tormentas mentales lego\" width=\"626\" height=\"302\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego8.png 626w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego8-300x145.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego8-18x9.png 18w\" sizes=\"(max-width: 626px) 100vw, 626px\" \/><\/p><ul><li>RotateLeft: gira el robot en un \u00e1ngulo de entrada determinado hacia la izquierda. Misma f\u00f3rmula que para el bloque anterior excepto que se invierten las direcciones de los motores.<\/li><\/ul><p>Los archivos deben colocarse en la carpeta Bloques\/Mis bloques de la carpeta del perfil: Forward.rbt, Backward.rbt, RotateLeft.rbt, RotateRight.rbt, PivoterLeft.rbt, PivoterDroite.rbt<\/p><p>La trayectoria que luego realizar\u00e1 el robot es bastante sencilla con los bloques. Por tanto, es necesario colocar los bloques sucesivamente. <em>Avanzar<\/em>, <em>Gira a la derecha<\/em>, <em>Avanzar<\/em>, <em>Girar a la izquierda<\/em>, <em>Avanzar<\/em>, <em>Gira a la derecha<\/em>, <em>Avanzar<\/em>, <em>Balancearse<\/em><em>Derecha<\/em>, <em>Avanzar<\/em>, <em>Gira a la derecha <\/em>con distancias y \u00e1ngulos asociados. Sin embargo, tenga cuidado de tomar el valor del \u00e1ngulo correcto para los pivotes (debe tomar el valor del \u00e1ngulo adicional).<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20158 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego9.png\" alt=\"tormentas mentales lego\" width=\"713\" height=\"137\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego9.png 713w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego9-300x58.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego9-18x3.png 18w\" sizes=\"(max-width: 713px) 100vw, 713px\" \/><\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8052361 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"8052361\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b270f24\" data-id=\"b270f24\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3b78f57 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"3b78f57\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c4406a9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c4406a9\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-db427b5\" data-id=\"db427b5\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4c1f364 elementor-widget elementor-widget-heading\" data-id=\"4c1f364\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Exercice-6\"><\/span>Ejercicio 6<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-13b1fbb elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"13b1fbb\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-77af73c\" data-id=\"77af73c\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-770393d elementor-widget elementor-widget-text-editor\" data-id=\"770393d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Usando un gr\u00e1fico de estado (aut\u00f3mata de estados finitos), proporcione al programa las siguientes acciones.<\/p><ol><li>Det\u00e9ngase en el lugar correcto<\/li><\/ol><p>El estado inicial considera el robot en blanco, esto le permite iniciar el robot desde cualquier lugar (es decir, blanco o negro). Cada vez que cambie de color (blanco o negro), pasar\u00e1 al siguiente estado. Cada estado tiene la acci\u00f3n asociada de avanzar excepto el estado que sigue a la tercera transici\u00f3n. <em>negro <\/em>(que corresponde por tanto a la tercera vez que el robot encuentra una zona negra) donde el robot se detiene.<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20159 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego10.png\" alt=\"tormentas mentales lego\" width=\"648\" height=\"139\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego10.png 648w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego10-300x64.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego10-18x4.png 18w\" sizes=\"(max-width: 648px) 100vw, 648px\" \/><\/p><p>\u00a02. Detecci\u00f3n de obst\u00e1culos, el robot se mueve hacia adelante y luego retrocede si choca contra un obst\u00e1culo.<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20161 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego12.png\" alt=\"tormentas mentales lego\" width=\"373\" height=\"125\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego12.png 373w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego12-300x101.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego12-18x6.png 18w\" sizes=\"(max-width: 373px) 100vw, 373px\" \/><\/p><p>3. El robot avanza recto y luego gira a la derecha (o a la izquierda) si encuentra un obst\u00e1culo a la izquierda (o a la derecha) o gira si el obst\u00e1culo est\u00e1 delante.<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20166 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego14.jpg\" alt=\"tormentas mentales lego\" width=\"367\" height=\"332\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego14.jpg 367w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego14-300x271.jpg 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego14-13x12.jpg 13w\" sizes=\"(max-width: 367px) 100vw, 367px\" \/><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-09ca9ac elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"09ca9ac\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d7e9a96\" data-id=\"d7e9a96\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-20a006b elementor-widget elementor-widget-toggle\" data-id=\"20a006b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-3421\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-3421\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Soluci\u00f3n<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-3421\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-3421\"><p>1.<\/p><p>Para programar este gr\u00e1fico de estado, primero debes crear una variable de tipo num\u00e9rico <em>estado <\/em>que contendr\u00e1 el estado actual. Se inicializar\u00e1 a 0 al inicio del programa. Agregamos dentro de un bucle para que la condici\u00f3n sea <em>hasta estado = 5<\/em>, un primer cambio en el valor de la variable <em>estado <\/em>lo que permitir\u00e1 cambiar el valor del estado actual seg\u00fan las acciones detectadas (lectura blanca o negra) seguido de un segundo cambio tambi\u00e9n sobre el valor de la variable <em>estado <\/em>las cuales determinar\u00e1n las acciones a realizar en cada estado:<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20160 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego11.png\" alt=\"tormentas mentales lego\" width=\"741\" height=\"263\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego11.png 741w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego11-300x106.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego11-18x6.png 18w\" sizes=\"(max-width: 741px) 100vw, 741px\" \/><\/p><p>2.<\/p><p>Debes proceder de la misma forma que para el programa anterior: dos interruptores; uno para transiciones y otro para acciones. Sin embargo, en el archivo proporcionado como correcci\u00f3n agrupamos estos dos interruptores en uno para mostrar que esto tambi\u00e9n era posible. Cambiando la variable <em>estado <\/em>por lo tanto, se realiza al final del ciclo de acci\u00f3n. De esta manera es m\u00e1s compacto pero un poco menos claro y organizado pero sigue siendo posible y funcional.<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20165 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego13.png\" alt=\"tormentas mentales lego\" width=\"619\" height=\"271\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego13.png 619w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego13-300x131.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego13-18x8.png 18w\" sizes=\"(max-width: 619px) 100vw, 619px\" \/><\/p><p>3.<\/p><p>Por tanto utilizamos la misma estructura de programa que antes pero esta vez diferenciando claramente el contacto de la izquierda o de la derecha.<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20167 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego15.png\" alt=\"tormentas mentales lego\" width=\"784\" height=\"322\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego15.png 784w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego15-300x123.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego15-768x315.png 768w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego15-18x7.png 18w\" sizes=\"(max-width: 784px) 100vw, 784px\" \/><\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-98f030c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"98f030c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f67542f\" data-id=\"f67542f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-28ec7c6 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"28ec7c6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5ac6a89 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5ac6a89\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ddeaad7\" data-id=\"ddeaad7\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6bab334 elementor-widget elementor-widget-heading\" data-id=\"6bab334\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Exercice-7\"><\/span>Ejercicio 7<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3b9b74e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3b9b74e\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-502cb49\" data-id=\"502cb49\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1053fa8 elementor-widget elementor-widget-text-editor\" data-id=\"1053fa8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Intentaremos programar el robot para que busque un objeto en un espacio delimitado por una l\u00ednea negra y lo saque de este espacio. Por lo tanto, su programa debe incluir dos fases distintas: una primera de b\u00fasqueda del objeto y una segunda de eliminaci\u00f3n del objeto de este espacio (eliminar\u00e1 el objeto empuj\u00e1ndolo hacia afuera).<\/p><p>\u00a0Su programa debe ser \u00a0<em>inteligente \u00a0<\/em>: no es necesario programar el robot para que vaya directamente al objeto (este \u00faltimo puede estar ubicado en cualquier lugar del espacio). Adem\u00e1s, el robot tendr\u00e1 que empezar en una posici\u00f3n muy distinta. A continuaci\u00f3n se muestra un ejemplo de colocaci\u00f3n de objetos:<\/p><ol><li>Describe un algoritmo simple para realizar esta tarea.<\/li><li>Cree un programa que realice estas acciones bas\u00e1ndose en el algoritmo.<\/li><\/ol><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-20168\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego16.jpg\" alt=\"tormentas mentales lego\" width=\"193\" height=\"152\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego16.jpg 193w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego16-15x12.jpg 15w\" sizes=\"(max-width: 193px) 100vw, 193px\" \/><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d541ad5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d541ad5\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b1643e1\" data-id=\"b1643e1\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0d9e7dc elementor-widget elementor-widget-toggle\" data-id=\"0d9e7dc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1421\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-1421\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Soluci\u00f3n<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1421\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-1421\"><p>1.<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20169 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego16.png\" alt=\"tormentas mentales lego\" width=\"351\" height=\"270\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego16.png 351w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego16-300x231.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego16-16x12.png 16w\" sizes=\"(max-width: 351px) 100vw, 351px\" \/><\/p><p>Primero, el robot avanza hasta que encuentra oscuridad o toca un objeto. Si encuentra negro, retrocede y luego gira en un \u00e1ngulo aleatorio (entre 0 y 180 grados) y luego vuelve a salir. Si entra en contacto con un objeto, contin\u00faa avanzando hasta encontrar el negro; entonces habr\u00e1 sacado el objeto del marco.<\/p><p>2.<\/p><p>Para programar esto, comenzamos colocando un bucle con la condici\u00f3n l\u00f3gica de que uno de los sensores t\u00e1ctiles est\u00e9 presionado (as\u00ed que use los bloques para estos sensores con un bloque l\u00f3gico <em>O <\/em>). Luego colocamos dentro de este bucle un bucle con la condici\u00f3n l\u00f3gica <em>Negro O (Touch1 O Touch2)<\/em>, paramos los motores a la salida de este bucle para que el robot no se salga del cuadro si el bucle se detuvo porque vio negro:<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20170 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego17.png\" alt=\"tormentas mentales lego\" width=\"660\" height=\"279\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego17.png 660w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego17-300x127.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego17-18x8.png 18w\" sizes=\"(max-width: 660px) 100vw, 660px\" \/><\/p><p>Luego colocamos un interruptor para ver si el bucle se interrumpi\u00f3 porque el robot vio negro. En este caso colocamos un bloque. <em>para retroceder <\/em>\u2013 creado en el ejercicio anterior \u2013 seguido de un bloque <em>Aleatorio <\/em>que toma un n\u00famero entre 0 y 180 y lo da como entrada a un bloque <em>Girar a la izquierda<\/em>.<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20171 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego18.jpg\" alt=\"tormentas mentales lego\" width=\"675\" height=\"309\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego18.jpg 675w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego18-300x137.jpg 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego18-18x8.jpg 18w\" sizes=\"(max-width: 675px) 100vw, 675px\" \/><\/p><p>Despu\u00e9s del bucle principal, colocamos un bucle haciendo que el robot avance hasta ver negro.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f23f2fb elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f23f2fb\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-57bf4de\" data-id=\"57bf4de\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-cf2e73a elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"cf2e73a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4641015 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4641015\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6ae3228\" data-id=\"6ae3228\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9f506c8 elementor-widget elementor-widget-heading\" data-id=\"9f506c8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Exercice-8\"><\/span>Ejercicio 8<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-719b97e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"719b97e\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-210b029\" data-id=\"210b029\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9064b0e elementor-widget elementor-widget-text-editor\" data-id=\"9064b0e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Como en el ejercicio anterior programaremos nuestro robot para que busque un objeto en un espacio. Excepto que en esta versi\u00f3n usaremos el sensor ultras\u00f3nico. Se trata por tanto de programar el robot para que primero busque en qu\u00e9 direcci\u00f3n se encuentra el objeto, luego se acerque a \u00e9l y se detenga a 5 cm de distancia.<\/p><ol><li>Escriba un algoritmo correspondiente a este problema en pseudoc\u00f3digo<\/li><li>Implementa tu algoritmo en tu robot<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-69adfae elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"69adfae\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d169496\" data-id=\"d169496\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e7875da elementor-widget elementor-widget-toggle\" data-id=\"e7875da\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-2421\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-2421\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Soluci\u00f3n<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-2421\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-2421\"><p>1.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20173 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego19.png\" alt=\"tormentas mentales lego\" width=\"599\" height=\"380\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego19.png 599w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego19-300x190.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego19-18x12.png 18w\" sizes=\"(max-width: 599px) 100vw, 599px\" \/><\/p>\n<p>Aqu\u00ed, en lugar de buscar el objeto a ciegas, el robot buscar\u00e1 en qu\u00e9 direcci\u00f3n se encuentra. Pour cela, le capteur va balayer tout l&#039;espace face au robot (le capteur fera une rotation sur un angle de 180\u02da) et chercher la plus courte distance \u00e0 un obstacle (sur le m\u00eame principe qu&#039;un algorithme de recherche de minimum dans un tablero) ; Memorizar\u00e1 el \u00e1ngulo para deducir la direcci\u00f3n en la que ir\u00e1 el robot.<\/p>\n<p>2.<\/p>\n<p>Primero giramos el motor A 90\u02da hacia la izquierda para orientar el sensor ultras\u00f3nico, luego colocamos un bloque de sensor justo despu\u00e9s <em>Rotaci\u00f3n <\/em>para restablecer el valor devuelto por este \u00faltimo. Luego almacenamos en una variable. <em>distanciaMin <\/em>el valor que devuelve el sensor de ultrasonido e inicializamos otra variable <em>esquina<\/em> a 0. Y finalmente, iniciamos una rotaci\u00f3n lenta de A hacia la derecha:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20174 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego20.jpg\" alt=\"tormentas mentales lego\" width=\"529\" height=\"262\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego20.jpg 529w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego20-300x149.jpg 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego20-18x9.jpg 18w\" sizes=\"(max-width: 529px) 100vw, 529px\" \/><\/p>\n<p>Colocamos ahora un bucle en el que realizaremos las comparaciones para encontrar el \u00e1ngulo de la distancia m\u00ednima. Este bucle controla el sensor de rotaci\u00f3n del motor A y como condici\u00f3n <em>hasta <\/em><em>&gt;<\/em><em> 180\u02da<\/em>. Al comienzo del ciclo, almacenamos en <em>Numero 1 <\/em>la distancia medida por el sensor ultras\u00f3nico y en <em>esquina <\/em>el valor devuelto por el sensor de rotaci\u00f3n de A. Luego se realizan comparaciones y posibles asignaciones con estas variables.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20175 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego21.png\" alt=\"tormentas mentales lego\" width=\"776\" height=\"283\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego21.png 776w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego21-300x109.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego21-768x280.png 768w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego21-18x7.png 18w\" sizes=\"(max-width: 776px) 100vw, 776px\" \/><\/p>\n<p>Finalmente, despu\u00e9s del bucle, el motor A se detiene y luego se gira 90\u02da hacia la izquierda para reenfocar el sensor ultras\u00f3nico. Luego rotamos el robot seg\u00fan el valor de <em>esquina <\/em>luego lo avanzamos hasta 5 cm del objeto:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20176 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego22.jpg\" alt=\"tormentas mentales lego\" width=\"760\" height=\"277\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego22.jpg 760w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego22-300x109.jpg 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego22-18x7.jpg 18w\" sizes=\"(max-width: 760px) 100vw, 760px\" \/><\/p>\n<p>OTRO ENFOQUE:<\/p>\n<p>Giramos lentamente el sensor ultras\u00f3nico hasta que hay un obst\u00e1culo y en ese momento hacemos que el robot se mueva hacia \u00e9l. Por lo tanto, este enfoque supone que el espacio delante del robot (por lo tanto, en una distancia determinada, por ejemplo 40 cm) solo contiene el objeto deseado, por lo que sigue siendo menos bueno que el anterior pero m\u00e1s sencillo de entender, por lo que se presenta aqu\u00ed:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20177 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego23.png\" alt=\"tormentas mentales lego\" width=\"407\" height=\"274\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego23.png 407w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego23-300x202.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego23-18x12.png 18w\" sizes=\"(max-width: 407px) 100vw, 407px\" \/><\/p>\n<p>Por tanto, el programa se parece mucho a la versi\u00f3n inicial, excepto que la rotaci\u00f3n del motor A se detiene en cuanto detecta un objeto.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20178 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego24.jpg\" alt=\"tormentas mentales lego\" width=\"780\" height=\"347\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego24.jpg 780w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego24-300x133.jpg 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego24-768x342.jpg 768w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego24-18x8.jpg 18w\" sizes=\"(max-width: 780px) 100vw, 780px\" \/><\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-bd5b316 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"bd5b316\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-17fc14e\" data-id=\"17fc14e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5ed97cb elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"5ed97cb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2eb3f88 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2eb3f88\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e178ca2\" data-id=\"e178ca2\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fc52c4f elementor-widget elementor-widget-heading\" data-id=\"fc52c4f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"Exercice-9\"><\/span>Ejercicio 9<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9209b97 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9209b97\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b2d7c5e\" data-id=\"b2d7c5e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-55afb86 elementor-widget elementor-widget-text-editor\" data-id=\"55afb86\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Ahora programaremos el robot para que sea capaz de escapar de un laberinto. <em>sencillo<\/em>. Ojo, encontrar un camino para cruzar un laberinto es un problema dif\u00edcil desde el punto de vista inform\u00e1tico (hablamos de un problema <em>NP-completo <\/em>), es por esto que todos los laberintos propuestos son simples porque no se pide un algoritmo eficiente para todos los laberintos.<\/p><p>A- Laberinto b\u00e1sico<\/p><p>El primer tipo de laberinto se compone \u00fanicamente de paredes altas (25 cm). Aqu\u00ed est\u00e1 su plan:<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-20183\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego25.jpg\" alt=\"tormentas mentales lego\" width=\"136\" height=\"134\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego25.jpg 136w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego25-12x12.jpg 12w\" sizes=\"(max-width: 136px) 100vw, 136px\" \/><\/p><p>Por tanto, tendr\u00e1s que programar tu robot para que lo atraviese. Para hacer esto, necesitar\u00e1 usar el sensor ultras\u00f3nico para determinar qu\u00e9 camino tomar en cada intersecci\u00f3n.<\/p><ol><li>Escriba en pseudoc\u00f3digo un algoritmo ingenuo que permita al robot atravesar dicho laberinto<\/li><li>Implementa tu algoritmo en tu robot<\/li><\/ol><p>B- Laberinto avanzado<\/p><p>Ahora modificamos el laberinto reemplazando una pared alta por un obst\u00e1culo bajo (10 cm).<\/p><p>\u00bfC\u00f3mo puedo hacer que el robot pase siempre por el laberinto?<\/p><ol><li>Modifique el algoritmo anterior para tener en cuenta este cambio.<\/li><li>Implemente su algoritmo modificado en su robot<\/li><\/ol><p>C- Estancamiento<\/p><p>Ahora tomaremos este dise\u00f1o de laberinto:<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-20184\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego26.jpg\" alt=\"tormentas mentales lego\" width=\"101\" height=\"137\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego26.jpg 101w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego26-9x12.jpg 9w\" sizes=\"(max-width: 101px) 100vw, 101px\" \/><\/p><p>Como puedes ver, este laberinto tiene un callej\u00f3n sin salida. \u00bfQu\u00e9 hacer si tu robot acaba en \u00e9l?<\/p><ol><li>Modifique el algoritmo anterior para tener en cuenta los puntos muertos<\/li><li>Implemente su algoritmo modificado en su robot<\/li><li>Pregunta adicional: \u00bfpodr\u00e1 atravesar todos los laberintos?<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dcc711b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"dcc711b\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-057373d\" data-id=\"057373d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e5ee6b2 elementor-widget elementor-widget-toggle\" data-id=\"e5ee6b2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-2411\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-2411\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Soluci\u00f3n<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-2411\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-2411\"><p>TIENE-<\/p><p>Este primer tipo de laberinto s\u00f3lo tiene un camino que conduce directamente a la salida. El objetivo es comprender el comportamiento del robot dentro de este laberinto; es decir avanzar hasta una pared y luego buscar hacia d\u00f3nde girar.\u00a0<\/p><p>Para saber en qu\u00e9 direcci\u00f3n girar, puedes tener varias aproximaciones, como mirar arbitrariamente hacia la izquierda para ver si hay alg\u00fan obst\u00e1culo y, si es necesario, girar a la izquierda si no a la derecha. En el siguiente algoritmo (y por tanto el programa propuesto), en cada intersecci\u00f3n el robot gira hacia el lado donde el obst\u00e1culo est\u00e1 m\u00e1s alejado. Aqu\u00ed est\u00e1 el algoritmo:<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20185 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego27.png\" alt=\"tormentas mentales lego\" width=\"379\" height=\"320\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego27.png 379w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego27-300x253.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego27-14x12.png 14w\" sizes=\"(max-width: 379px) 100vw, 379px\" \/><\/p><p>El robot avanza hasta 15 cm desde la pared y luego se detiene. Luego mide la distancia que lo separa de la pared de la izquierda y luego de la pared de la derecha. luego gira hacia el lado donde esta distancia es mayor y luego comienza a avanzar nuevamente. Se detiene tan pronto como ve rojo.<\/p><p>Empezamos colocando bloques. <em>Variable <\/em>en la moda <em>Escribir <\/em>para inicializar variables <em>distanciaIzquierda <\/em>y <em>distanciaDerecha <\/em>a 0. Luego, colocamos un bucle con el sensor de color como control y la condici\u00f3n de parada <em>Todo el camino a la playa roja <\/em>(Este bucle finalizar\u00e1 el programa cuando el robot est\u00e9 al final del laberinto).<\/p><p>Luego colocamos un bucle para mover el robot hacia un obst\u00e1culo. Por lo tanto, debe contener dos bloques. <em>Motor <\/em>para B y C con una duraci\u00f3n as <em>Ilimitado<\/em>.\u00a0<\/p><p>Atenci\u00f3n, el robot debe detenerse (y por tanto salir de este bucle) a 15 cm de un obst\u00e1culo o cuando vea rojo; Por lo tanto, el control no debe ser el sensor ultras\u00f3nico sino una ecuaci\u00f3n l\u00f3gica construida con dos bloques de sensores (sensor ultras\u00f3nico configurado en <em>distancia <\/em><em>menos de 15 cm <\/em>y sensor de color configurado en <em>en la playa roja<\/em>) :<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20186 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego28.jpg\" alt=\"tormentas mentales lego\" width=\"651\" height=\"378\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego28.jpg 651w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego28-300x174.jpg 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego28-18x10.jpg 18w\" sizes=\"(max-width: 651px) 100vw, 651px\" \/><\/p><p>El resto del programa es el conjunto de instrucciones correspondientes a elegir en qu\u00e9 direcci\u00f3n girar\u00e1 el robot. Esta parte se lleva a cabo dentro de un interruptor con el sensor de color como control y configurado en <em>Fuera de la playa roja <\/em>; de hecho, esto permite no buscar obst\u00e1culos si el robot se ha detenido.\u00a0<\/p><p>Por lo tanto, el primer paso consiste en girar el motor A hacia la izquierda y luego registrar el valor devuelto por el sensor ultras\u00f3nico en <em>distanciaIzquierda<\/em>, luego gire el motor A hacia la derecha y registre el valor devuelto por el sensor ultras\u00f3nico en <em>distanciaDerecha<\/em>. Luego comparamos las dos variables y en un cambio <em>l\u00f3gica <\/em>que toma como entrada el resultado de la comparaci\u00f3n, utilizamos los bloques <em>Gira a la derecha <\/em>D\u00f3nde <em>Girar a la izquierda <\/em>creado en un ejercicio anterior (con 90 como valor de \u00e1ngulo de entrada) para girar hacia el lado correcto:<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20187 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego29.png\" alt=\"tormentas mentales lego\" width=\"782\" height=\"309\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego29.png 782w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego29-300x119.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego29-768x303.png 768w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego29-18x7.png 18w\" sizes=\"(max-width: 782px) 100vw, 782px\" \/><\/p><p>B-<\/p><p>Ahora modificamos el laberinto reemplazando una pared alta por un obst\u00e1culo bajo (10 cm).<\/p><p>Para tener en cuenta este cambio hay que a\u00f1adir el uso del sensor t\u00e1ctil. Por tanto haremos que el robot se detenga si choca con un obst\u00e1culo que no podr\u00eda haber visto con el sensor ultras\u00f3nico.<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20188 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego30.png\" alt=\"tormentas mentales lego\" width=\"537\" height=\"370\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego30.png 537w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego30-300x207.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego30-18x12.png 18w\" sizes=\"(max-width: 537px) 100vw, 537px\" \/><\/p><p>El algoritmo es casi el mismo que el de la pregunta anterior. Solo ha cambiado la condici\u00f3n del bucle para mover el robot hacia adelante: el robot deja de avanzar si est\u00e1 a 15 cm de un obst\u00e1culo O si toca un obst\u00e1culo. Despu\u00e9s de este bucle, a\u00f1adimos una condici\u00f3n para comprobar si es el segundo caso (sensores t\u00e1ctiles) el que hizo que el robot se detuviera, y si es as\u00ed, lo hacemos retroceder 15 cm. El resto del algoritmo no cambia.<\/p><p>Entonces todo lo que tienes que hacer es tomar el programa anterior y hacer algunas modificaciones y adiciones. Es necesario modificar el<em>ecuaci\u00f3n l\u00f3gica <\/em>Control de bucle que mueve el robot hacia un obst\u00e1culo. El robot ahora debe detenerse si est\u00e1 a 15 cm de un obst\u00e1culo o si ve rojo o si entra en contacto con un obst\u00e1culo. Por tanto debemos sumar los bloques correspondientes a los sensores t\u00e1ctiles 1 y 2 con un bloque l\u00f3gico (tipo <em>O <\/em>) :<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20189 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego31.png\" alt=\"tormentas mentales lego\" width=\"716\" height=\"330\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego31.png 716w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego31-300x138.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego31-18x8.png 18w\" sizes=\"(max-width: 716px) 100vw, 716px\" \/><\/p><p>Tras este bucle, colocamos un interruptor para comprobar si nos hemos salido del bucle gracias a los sensores t\u00e1ctiles y retrocedemos el robot 15 cm si es necesario (para ello podemos utilizar el bloque creado para retroceder):<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20190 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego32.jpg\" alt=\"tormentas mentales lego\" width=\"395\" height=\"224\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego32.jpg 395w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego32-300x170.jpg 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego32-18x10.jpg 18w\" sizes=\"(max-width: 395px) 100vw, 395px\" \/><\/p><p>VS-<\/p><p>El robot se encuentra en un callej\u00f3n sin salida si, cuando est\u00e1 parado (por lo tanto bloqueado por una pared frente a \u00e9l), las paredes de la izquierda y de la derecha est\u00e1n demasiado cerca de \u00e9l (la distancia medida a la izquierda es menor que una cierta distancia; aqu\u00ed eligi\u00f3 20 cm \u2013, lo mismo para la distancia medida a la derecha). Por tanto, debemos modificar la condici\u00f3n para decidir de qu\u00e9 lado girar:<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20191 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego33.png\" alt=\"tormentas mentales lego\" width=\"541\" height=\"446\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego33.png 541w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego33-300x247.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego33-15x12.png 15w\" sizes=\"(max-width: 541px) 100vw, 541px\" \/><\/p><p>Por tanto, el algoritmo es muy similar al anterior. Agregamos la condici\u00f3n <em>Si (distanciaIzquierda <\/em><em>&lt; 20 Y distanciaDerecha <\/em><em>&lt;<\/em><em> 20) <\/em>lo que permite detectar un callej\u00f3n sin salida y por tanto hace que el robot gire si es as\u00ed. De lo contrario, la decisi\u00f3n sobre qu\u00e9 lado girar sigue siendo la misma.<\/p><p>Para detectar callejones sin salida, tomamos el programa de laberinto avanzado y colocamos los bloques utilizados para determinar en qu\u00e9 direcci\u00f3n girar\u00e1 el robot en un interruptor que tiene un valor l\u00f3gico como control: el valor ser\u00e1 el resultado de la ecuaci\u00f3n <em>distanciaIzquierda <\/em><em>&lt;<\/em> 20 <em>Y distanciaDerecha<\/em> <em>&lt;<\/em>20 :<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-20192 size-full\" src=\"http:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego34.png\" alt=\"tormentas mentales lego\" width=\"767\" height=\"301\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego34.png 767w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego34-300x118.png 300w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2024\/02\/lego34-18x7.png 18w\" sizes=\"(max-width: 767px) 100vw, 767px\" \/><\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Algor\u00edtmico P\u00e1gina de inicio Wiki Ejercicios corregidos en el software de rob\u00f3tica Lego Mindstorms Esta serie de ejercicios corregidos en Lego Mindstorms le permite familiarizarse con\u2026 <\/p>","protected":false},"author":1,"featured_media":0,"parent":1062,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-20136","page","type-page","status-publish","hentry"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/pages\/20136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/comments?post=20136"}],"version-history":[{"count":19,"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/pages\/20136\/revisions"}],"predecessor-version":[{"id":20219,"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/pages\/20136\/revisions\/20219"}],"up":[{"embeddable":true,"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/pages\/1062"}],"wp:attachment":[{"href":"https:\/\/complex-systems-ai.com\/es\/wp-json\/wp\/v2\/media?parent=20136"}],"curies":[{"name":"gracias","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}