Introdución
Unha vez conectado o robot Mbot, tentaremos realizar pequenos retos que nos permitirán practicar o concepto de secuanciación de instrucións así como o xeito de volcado de programas sobre o robot.
O primeiro que faremos será configurar o mBlock para que poidamos programar dun xeito cómodo o robot, polo que cargaremos o modo de traballo de Arduino. Para iso iremos ao menú Editar e posteriormente marcaremos a opción de "Modo Arduino"
Menú editar, seleccionando o Modo Arduino |
Fiestra do mBlock co modo Aruino cargado |
Unha vez temos o modo adecuado, e como xa se comentou anteriormente no Mblock temos distintos elementos ou bloques que podemos apilar para xerar un programa, neste caso e para comezar centrarémonos na sección de "Robots", e dentro desta usaremos os dous primeiros bloques. O de "Programa de mBot" e o de "avanzar a velocidad"
Primeiros bloques da sección Robots |
Con estos dous bloques o que pretendemos amosarlle ao alumnado o xeito de colocar as instrucións e a acción de volcar o programa á placa mCore.
O robot realizará as sentencias que se lle indiquen na zona central, e no lado dereito aparecerá o código en linguaxe C que en realidade non nos vai a aportar nada a estas alturas. Como veremos máis adiante tan só será útil o botón de "Subir a Arduino".
Para programar o robot, arrastraranse os distintos bloques para a zona central, e encaixaranse entre eles, pero neste caso o robot tan só realizará os bloques que estén debaixo do bloque inicial, que de momento imos a usar o único que nos permite a sección de Robots e que se chama "Programa de mBot".
Como iremos aprenciando hai deferentes tipos de bloques, a este chamarémoslle bloque de inicio, e presenta a peculiaridade de que será o primeiro bloque que execute o robot, executando posteriormente todos os que estén conectados debaixo deste. O resto de bloques que non estén enlazados obviaranse.
Bloque de inicio da sección Robots |
Bloque de inicio e bloque de orde avaanzar sen contectar |
Bloque de inicio e bloque de orde avanzar ben conectados |
Por exemplo imos a facer un pequeno reto...
Reto 1.1 |
A verdade e que non me convence moito nin a solución nin o resultado do reto, xa que unha vez volcado o programa xustamente fai o contrario do que a lóxica da programación dí. A solución pódela descargar dende aquí.
Solución Reto 1.1 |
Unha vez realizada a programación, volcaremos esta solución ao robot, para iso teremos que revisar que o robot esté conectado correctamente (ver entrada no blog), e posteriormente premer no botón de "Subir a Arduino".
Botón para subir o programa a placa mCore |
Durante un tempo estará realizando a compilación do programa (comprobando erros) e enviando o programa á placa mCore, na parte inferior da fiestra do mBlock sairanos a seguinte imaxe (lembra que nesta mesma entrada explicamos como poñer o modo Arduino par que se poida ver esta sección):
Subindo o programa á placa mCore |
En realidade o robot e seguindo as instrucións que lle indicamos, non debería de facer nada, xa que debería de avanzar nunha parte diminuta de tempo e despois pararse, co que en realidade non deixaría que apreciaramos o movemento.
O robot o que en realidade fai e avanzar a 100 e de xeito contínuo, e iso e así debido a que o propio robot está a executar esa acción de avanzar indefinidamente xa que se configura por defecto para que faga esa opción sempre, polo que teremos que ir realizando axustes para que o robot non faga nada realmente alonxado da programación.
Ee tódolos xeitos, o noso obxectivo para este reto será que o alumnado sexa capaz de encaixar os bloques e de entender a secuenciación de instruccións. Ademáis estaría volcando a solución ao robot.
Sen necesidade de analizar profundamente o programa, imos a realizar o reto seguinte que se nos plantexa (lembra que poderás descargar todos os retos desta entrada no final da mesma)
Reto 1.2 |
Unha idea que utilizo nos cursos e apoiar un reto nun anterior, deste xeito tan só terían que usar o reto anterior de base para construír o novo coñecemento que queremos que o alumnado adquira.
Neste caso teremos que dar un pequeno salgo á sección de bloques de control, e aínda que non moi axeitado o salto tan prematuro, é esencial para poder controlar un pouco o robot.
Sección de control |
Desta sección de momento tan só usaremos o primeiro bloque, no que aparece o de "esperar 1 segundos". Con este bloque e os anteriores que fixemos, deberíamos ser capaces de conseguir superar o reto.
Hai que destacar de tódolos xeitos que se prememos sobre a opción de "avanzar" no bloque de acción do robot, despregaranse as outras opcións para retroceder ou ben para virar.
Bloque de acción avanzar |
Na zona de velocidade, tamén poderemos poñer o número que consideremos dende o teclado (valores de -255 ata 255), sendo a velocidade 0 a única opción de que o robot pare.
Bloque de avanzar a velocidade 0 para que pare |
Solución reto 1.2 |
Neste caso e debido a que o mandamos parar o final, o resultado e o agardado, aínda que de tódolos xeitos neste caso e porque rematamos con unha instrucción de parada.
Vexamos un novo reto:
Vexamos un novo reto:
Reto 1.3 |
Neste caso non se inclúen tipos de bloques novos, tan só se incrementarán o número de bloques a usar.
A solución coa carga de batería actual do meu robot, e sobre o meu chan sería a seguinte (digo esto porque pode variar dependendo do terreo sobre o que camiña o robot ou ben do estado das pilas ou baterías).
Tamén indicar que sempre se probe o funcionamento co robot solto do ordenador, de xeito que eliminemos a conexión co cable USB.
A solución ao reto pódela descargar dende aquí, e sería a seguinte:
Solución reto 1.3 |
Nos retos máis complexos xuntaremos un vídeo demostrativo, neste caso o vídeo da solución sería o seguinte:
Imos a rematar a entrada con outro reto, neste caso será moi similar ao anterior...
Reto 1.4 |
A primeira vista o que temos que facer con respecto ao anterior e configurar ese medio segundo, para iso cargamos o bloque de agarda e escribimos co teclado o tempo, usaremos o punto "." en lugar da coma para indicar decimais.
A solución parcial (so un dos lados do cadrado) sería a que se ve a continuación, co traballo polo tanto de que teñamos que repetir estos 6 bloques outras 4 veces.
Solución parcial reto 1.4 |
Para duplicar un bloque, simplemente prememos sobre o mesmo e eleximos a opción de duplicar. O interesante e que nos duplica tanto ese bloque como o resto de bloques que "colgan" del, polo que neste caso o que nos interesa duplicar será o de "avanzar a velocidad 100".
Duplicando cadea de bloques |
Unha vez duplicados os bloques, a solución coas estruturas que coñecemos deica arestora sería a seguinte e podela descargar dende aquí:
Solución reto 1.4 |
Seguramente poidas darte de conta que este caso debería ser mellorable xa que estamos a facer o mesmo (avanzar e xirar) catro veces, esto daranos pe ao seguinte tema no que explicaremos os bucles e aprenderemos a utilizalos para que o noso código sexa máis óptimo.
No hay comentarios:
Publicar un comentario