Os primeiros retos

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
Unha vez marcamos esta opción, aparecerásenos o modo Arduino que ven a ser como o seguinte:
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
Ahora un pequeno consello, antes de programar o robot, poñedeo sempre coas rodas para arriba ou se é imposible por algún motivo, deixalo coas rodas no aire de xeito que non se mova e se caia da mesa.

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
A solución pasaría pois por facer algo como esto e podes descargala dende aquí:

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:

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
Coas estruturas que temos arestora tan só temos unha oportunidade... volver a introducir todos os bloques mais veces ou, canto menos, duplicalos.

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