{"id":3415,"date":"2020-03-25T07:48:02","date_gmt":"2020-03-25T07:48:02","guid":{"rendered":"https:\/\/www.logix5.com\/roboticaeducativa\/?page_id=3415"},"modified":"2020-03-25T07:48:03","modified_gmt":"2020-03-25T07:48:03","slug":"encoders-opticos-del-ranger","status":"publish","type":"page","link":"https:\/\/www.logix5.com\/roboticaeducativa\/encoders-opticos-del-ranger\/","title":{"rendered":"Encoders \u00f3pticos del ranger"},"content":{"rendered":"<p>En este post os queremos ense\u00f1ar de una manera pr\u00e1ctica los encoders \u00f3pticos que vienen en el robot Ranger. Si buscamos por internet podr\u00e9is encontrar muchas definiciones y utilidades.<\/p>\n<p><span class=\"hide\" style=\"color: #05ac63;\">[one_fourth last_column=\u00bbtrue\u00bb]<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/encoder-\u00f3ptico-e1484926353138.jpg\"><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-2173\" src=\"https:\/\/logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/encoder-\u00f3ptico-e1484926353138.jpg\" alt=\"\" width=\"383\" height=\"280\" srcset=\"https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/encoder-\u00f3ptico-e1484926353138.jpg 720w, https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/encoder-\u00f3ptico-e1484926353138-600x438.jpg 600w, https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/encoder-\u00f3ptico-e1484926353138-300x219.jpg 300w\" sizes=\"(max-width: 383px) 100vw, 383px\" \/><\/a><\/p>\n<p><span class=\"hide\" style=\"color: #05ac63;\">[\/one_fourth]<\/span><\/p>\n<p>Un encoder \u00f3ptico es un sensor que permite detectar el movimiento de rotaci\u00f3n&nbsp;de un eje. De esta forma, podremos conocer el n\u00famero vueltas gira nuestro motor.<\/p>\n<p>\u00bfy qu\u00e9 utilidad tiene esto? Principalmente, en proyectos de rob\u00f3tica, nos ser\u00e1 de gran utlidad para controlar el movimiento de nuestro robot y saber de una manera m\u00e1s precisa donde se encuentra en cada momento.<\/p>\n<p>Este encoder se encuentra junto al motor, y en el caso del ranger tenemos dos, &nbsp;uno&nbsp;para cada rueda. As\u00ed que vamos a verlo de manera pr\u00e1ctica<\/p>\n<p>Si nos abstraemos del funcionamiento, y simplemente usamos los bloques en Scratch que lo usan, podemos aprenderlos de una manera pr\u00e1ctica. Concretamente hablamos de estos bloques:<\/p>\n<p><a href=\"https:\/\/logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/encoders.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-2193\" src=\"https:\/\/logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/encoders.jpg\" alt=\"\" width=\"580\" height=\"294\" srcset=\"https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/encoders.jpg 580w, https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/encoders-300x152.jpg 300w\" sizes=\"(max-width: 580px) 100vw, 580px\" \/><\/a><\/p>\n<p>Los dos primeros bloques sirven para dar ordenes a cada encoder pero como pod\u00e9is observar s\u00f3lo nos permiten variar la velocidad o la potencia pero no nos sirven para indicarle cuantos grados debe girar.<\/p>\n<p>Para ello se usan los siguientes dos bloques, marcados en el gr\u00e1fico con un aspa roja. Ah\u00ed, como pod\u00e9is ver, podemos indicar, aparte de la velocidad, los grados que debe de girar. La diferencia entre ambos es que con el primero podemos indicar lo que debe girar cada encoder por separado y con el otro, de cara a simplificar los programa conjuntamente, podemos realizar el movimiento que le indiquemos.<\/p>\n<h4><strong>Objetivo<\/strong><\/h4>\n<p>El reto que nos hemos propuesto es hacer que nuestro robot se mueva realizando un cuadrado de 1m&nbsp;de lado.<\/p>\n<p>Para hacer un cuadrado, lo que haremos es ordenar ir hac\u00eda adelante al robot &nbsp;en l\u00ednea recta 1m, despu\u00e9s le ordenaremos rotar 90\u00ba a la derecha y as\u00ed sucesivamente 4 veces para finalmente parar.<\/p>\n<p>Lo m\u00e1s importante antes de programarlo es conocer el robot que utilizaremos&nbsp;porque nos condicionar\u00e1 los valores que tenemos que darle a los encoders para lograr nuestro objetivo. En nuestro caso seguiremos con nuestro robot explorador, del que ya hemos hablado en <a href=\"https:\/\/logix5.com\/roboticaeducativa\/2017\/01\/12\/ranger-robot-programar-y-controlar-el-robot-desde-la-tablet\/\">otro post<\/a>. &nbsp;Si quer\u00e9is hacer esta pr\u00e1ctica, simplemente montando el modelo dash obtendremos el mismo comportamiento.<\/p>\n<p><a href=\"https:\/\/logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/dash.jpg\"><img decoding=\"async\" class=\"aligncenter wp-image-2179\" src=\"https:\/\/logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/dash.jpg\" alt=\"\" width=\"444\" height=\"388\" srcset=\"https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/dash.jpg 693w, https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/dash-600x525.jpg 600w, https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/dash-300x262.jpg 300w\" sizes=\"(max-width: 444px) 100vw, 444px\" \/><\/a><\/p>\n<p><strong>\u00bfC\u00f3mo mover el robot hacia adelante 1m? :&nbsp;Movimiento Recto ( Hacia adelante o hacia atr\u00e1s )<\/strong><\/p>\n<p>Para realizar el moviento recto, vamos a decir a cada rueda o a las dos a la vez utilizando el bloque conjunto, los grados que debe girar para recorrer la distancia de 1 metro. Lo primero que tenemos que saber es cuanto avanza nuestra rueda cuando da una vuelta completa ( 360\u00ba ). De ah\u00ed que sea clave el robot que hemos montado y el tama\u00f1o de las ruedas.<\/p>\n<p>Cogemos un metro, una regla, y medimos el radio o el di\u00e1metro de nuestra rueda. En nuestro caso es de &nbsp;6,4cm<\/p>\n<p>Ya sabemos entonces lo que avanza el robot con cada vuelta, simplemente tenemos que calcular la longitud de la rueda, que como todos sab\u00e9is es 2 * PI * Radio \u00f3 &nbsp;PI * Di\u00e1metro. Los c\u00e1lculos los he hecho en el word para poder usar el editor de ecuaciones:<\/p>\n<p><a href=\"https:\/\/logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/mov_recto.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2202\" src=\"https:\/\/logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/mov_recto.png\" alt=\"\" width=\"575\" height=\"404\" srcset=\"https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/mov_recto.png 575w, https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/mov_recto-300x211.png 300w\" sizes=\"(max-width: 575px) 100vw, 575px\" \/><\/a><\/p>\n<p><strong>\u00bfC\u00f3mo rotar el robot 90\u00ba a la derecha?&nbsp;<\/strong><\/p>\n<p>Lo m\u00e1s importante a destacar es porqu\u00e9 rotamos y no giramos. Principalmente se debe a que a la hora de realizar c\u00e1lculos para posicionar nuestro robot, es mucho m\u00e1s sencillo rotar que girar. Para rotar, cada motor-encoder girar\u00e1 en sentido contrario y con la misma velocidad, de manera que describir\u00e1 un circulo cuyo di\u00e1metro es la longitud desde el eje de una rueda a la otra. Si lo hici\u00e9ramos girando nuestros c\u00e1lculos se complicar\u00edan y de cara a los alumnos, este m\u00e9todo ya es bastante instructivo.<\/p>\n<p><a href=\"https:\/\/logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/rotacion.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2212\" src=\"https:\/\/logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/rotacion.jpg\" alt=\"\" width=\"885\" height=\"399\" srcset=\"https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/rotacion.jpg 885w, https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/rotacion-600x271.jpg 600w, https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/rotacion-300x135.jpg 300w, https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/rotacion-768x346.jpg 768w\" sizes=\"(max-width: 885px) 100vw, 885px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/rotaci\u00f3n.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2204\" src=\"https:\/\/logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/rotaci\u00f3n.png\" alt=\"\" width=\"521\" height=\"543\" srcset=\"https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/rotaci\u00f3n.png 521w, https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/rotaci\u00f3n-288x300.png 288w\" sizes=\"(max-width: 521px) 100vw, 521px\" \/><\/a><\/p>\n<p><strong>Soluci\u00f3n completa<\/strong><\/p>\n<p>Os dejo una posible implementaci\u00f3n de nuestro reto. Ver\u00e9is lo dif\u00edcil que resulta en la pr\u00e1ctica que el robot describa el cuadrado de una manera perfecta, cualquier variaci\u00f3n hace que no sea tan preciso como imagin\u00e1bamos durante la programaci\u00f3n del c\u00f3digo.<\/p>\n<p>No hemos usado el bloque \u00abrepetir 4 veces\u00bb para que se vea m\u00e1s claro, pero la forma de programarlo es repetir 4 veces los 5 primeros bloques. Las esperas de 5 segundos son para asegurar que el robot ha realizado el movimiento. Es posible ajustarlo mucho m\u00e1s para que realice el cuadrado a mayor velocidad. Esta vez no era nuestro objetivo, de esta forma pretendo que ve\u00e1is c\u00f3mo se describe el movimiento en cada una de las posiciones.<\/p>\n<p>Para el movimiento hacia adelante, hemos usado el bloque \u00abrun forward\u00bb que configura los dos encoders y para rotar, lo hemos hecho nosotros para indicarle claramente el sentido de giro y que la velocidad y \u00e1ngulo sean exactamente las que deseamos. Aqu\u00ed pod\u00e9is ver que los hacemos girar en el mismo sentido pero esto se debe a que est\u00e1n colocados al rev\u00e9s y este sentido programado es el que hace que rotemos hacia la derecha \ud83d\ude42<\/p>\n<p><a href=\"https:\/\/logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/cuadrado.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2198\" src=\"https:\/\/logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/cuadrado.png\" alt=\"\" width=\"573\" height=\"591\" srcset=\"https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/cuadrado.png 573w, https:\/\/www.logix5.com\/roboticaeducativa\/wp-content\/uploads\/2017\/01\/cuadrado-291x300.png 291w\" sizes=\"(max-width: 573px) 100vw, 573px\" \/><\/a><\/p>\n<p>En el pr\u00f3ximo tutorial &nbsp;usaremos esto para hacer un juego pr\u00e1ctico y divertido. Creo que os gustar\u00e1 \ud83d\ude42<\/p>\n<p>Por cierto, pod\u00e9is dejar vuestros comentarios, sugerencias, dudas,&#8230; Muchas gracias. \u00a1\u00a1Hasta el pr\u00f3ximo!!<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este post os queremos ense\u00f1ar de una manera pr\u00e1ctica los encoders \u00f3pticos que vienen en el robot Ranger. Si buscamos por internet podr\u00e9is encontrar muchas definiciones y utilidades. [one_fourth last_column=\u00bbtrue\u00bb] &nbsp; [\/one_fourth] Un encoder \u00f3ptico es un sensor que permite detectar el movimiento de rotaci\u00f3n&nbsp;de un eje. De esta forma, podremos conocer el n\u00famero &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.logix5.com\/roboticaeducativa\/encoders-opticos-del-ranger\/\"> <span class=\"screen-reader-text\">Encoders \u00f3pticos del ranger<\/span> Leer m\u00e1s &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-3415","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.logix5.com\/roboticaeducativa\/wp-json\/wp\/v2\/pages\/3415","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.logix5.com\/roboticaeducativa\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.logix5.com\/roboticaeducativa\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.logix5.com\/roboticaeducativa\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.logix5.com\/roboticaeducativa\/wp-json\/wp\/v2\/comments?post=3415"}],"version-history":[{"count":1,"href":"https:\/\/www.logix5.com\/roboticaeducativa\/wp-json\/wp\/v2\/pages\/3415\/revisions"}],"predecessor-version":[{"id":3416,"href":"https:\/\/www.logix5.com\/roboticaeducativa\/wp-json\/wp\/v2\/pages\/3415\/revisions\/3416"}],"wp:attachment":[{"href":"https:\/\/www.logix5.com\/roboticaeducativa\/wp-json\/wp\/v2\/media?parent=3415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}