1 of 69

MBot 2

A nova versión de MBot

2 of 69

Introdución

  • A principal diferencia coa versión anterior é o seu cerebro, é dicir, a placa controladora CyberPi.
  • MBOT vs MBOT2
    • Agora podemos controlar con exactitude os movementos do robot
      • Centímetros a avanzar
      • Grados a xirar
    • Inclúe unha pantalla
    • Pode almacenar ata 8 programas simultáneamente

3 of 69

Compoñentes

4 of 69

CyberPi

  • CyberPi é unha placa controladora que pode funcionar de xeito independente:
    • Está baseada na ESP32 de código aberto
    • Toda a súa documentación pode consultarse aquí.
    • Ten o seu propio Sistema Operativo CyberOS
    • Pode ser programado en Python
      • Python3 en modo conectado
      • MicroPython para programas grabadas na placa

5 of 69

CyberPi

  • Características:
    • Display: pantalla onde se pode ver unha contorna gráfica.
    • Wifi: conexión sen cables entre dispositivos e Internet.
    • Bluetooth: Conexión entre dispositivos. Rápida. Non depende de internet.
    • Sensor de Luz e Son
    • Interfaz mbuild para máis sensores e actuadores
    • Joystick
    • Xiroscopio: Serve para saber a orientación do robot.
    • Speaker: Altofalante

6 of 69

CyberPi

7 of 69

CyberPi

8 of 69

Conexión dun Debian co dispositivo

Executo como administrador

Antes de abrir o navegador Chrome con programa online…

9 of 69

Exercicio 1-Traballando coa pantalla - Texto

  • Dispoñemos dos seguintes bloques
  • O Seguinte programa de exemplo fai o seguinte
    • Ao premer o botón A
      • Escribe: Ola, Enter, agarda medio segundo
      • Escribe: Mundo!
    • Ao premer o botón B borra a pantalla

10 of 69

Exercicio 2 - Escribe

  • Fai un programa que amose o texto “Isto é todo amigos” por pantalla
    • As palabras aparecerán espaciadas por medio segundo
    • Fai dúas versións
      • O texto todo seguido (con espacios entre as palabras)
      • Cada palabra nunha liña

11 of 69

Exercicio 2- Escribe (Solución)

Versión 1

Versión 2

12 of 69

Exercicio 3 - Táboa de multiplicar

  • Ao premer o botón A
    • Amosa por pantalla “Táboa do Num”
    • Num será un número escollido ó azar entre 1 e 10.
  • O premer o botón B
    • Borra a pantalla
    • Amosa a táboa de multiplicar de Num
  • Nota: É útil cambiar o tamaño de letra a pequeno.
    • Non podemos simultanear en pantalla dous tamaños distintos

13 of 69

Exercicio 3- Táboa de multiplicar (Solución)

14 of 69

Táboa de multiplicar (Solución)

15 of 69

Escribir nunha Coordenada concreta

  • Dispoñemos dunha pantalla de 128x128 píxeles
  • Podemos posicionar un texto nunha coordenada concreta
  • Ollo: se queremos imprimir varios textos simultaneamente, cada un ten que ter un número distinto.

16 of 69

Exercicio 4- Coordenadas

  • Completa o seguinte código
  • Fai que aparezan dous asteríscos nas outras dúas esquinas

17 of 69

Exercicio - Coordenadas - Solución

18 of 69

Cambiando a cor do texto

  • Non podemos simultanear varias cores na mesma pantalla

19 of 69

Traballando cos sensores

  • Dispoñemos dun joystick integrado que permite as seguintes accións:
    • Mover (arriba, abaixo, dereita, esquerda)
    • Premer

20 of 69

Exercicio: Joystick

  • Queremos contar as pulsacións no centro do joystick
  • Queremos que o contador de pulsacións se amose no centro da pantalla
  • Queremos que ao premer o botón A, o contador de pulsacións se poña a cero.

21 of 69

Exercicio: Joystick - Solución

22 of 69

Exercicio: Joystick V2

  • Queremos contar as pulsacións no centro do joystick
  • Queremos que o contador de pulsacións se amose no centro da pantalla
  • Queremos que o premer o botón A, o contador de pulsacións se poña a cero.
  • Movemento do marcador
    • Inicialmente o marcador aparece na esquina superior esquerda
    • Queremos que ao mover o joystick á dereita e esquerda se mova

23 of 69

Exercicio: Joystick V2 - Solución

24 of 69

Exercicio: Joystick V3

  • Queremos contar as pulsacións no centro do joystick
  • Queremos que o contador de pulsacións se amose no centro da pantalla
  • Queremos que o premer o botón A, o contador de pulsacións se poña a cero.
  • Movemento do marcador
    • Inicialmente o marcador aparece na esquina superior esquerda
    • Queremos que o mover o joystick a dereita e esquerda se mova
  • Problema:
    • Se prememos moito dereita, os puntos sáense da pantalla
    • Temos que evitalo

25 of 69

Exercicio: Joystick V3

26 of 69

Sensor de Luz Integrado

  • CyberPi posúe un sensor de luz integrado.
  • Este sensor é quen de transformar a enerxía lumínica en eléctrica.
  • O rango de valores é entre 0 e 100.
  • Podemos visualizar en tempo real os seus valores na pantalla.

27 of 69

Exercicio: Sensor de Luz

  • Consegue que o robot amose na pantalla:
    • “A oscuras” se o nivel de luz é menor de 30
    • “Claridade” se o nivel de luz está entre 70 é 30
    • “Soleado” se o nivel de luz está entre 70 e 100

28 of 69

Exercicio: Sensor de Luz

29 of 69

Exercicio: Sensor de Son

30 of 69

Sensor Ultrasóns

  • Pode empregarse para detectar a distancia cun obstáculo
  • O rango de medición está entre 5 e 300 cm.
  • Tamén dispón de 8 leds que podemos empregar para expresar emocións
  • Funcionamento:
    • Os humanos podemos escoitar un rango de frecuencias entre 20-20.000 Mhz
    • Os ultrasóns teñen frecuencias superiores ós 20.000 Mhz
    • Os ultrasóns son emitidos polo transmisor, rebotan no obxecto e recíbense no receptor.
    • Baseándose no tempo entre a emisión e a recepción, calcúlase a distancia.

31 of 69

Sensor Ultrasons

  • Para empregalo temos que engadir unha extensión
  • Unha vez engadida dispoñemos dos seguintes módulos:

32 of 69

Exercicio 5- Medición distancia

  • Fai un programa que amose na pantalla do cyberPi a distancia medida en tempo real

33 of 69

Sensor Ultrasons - Leds

  • Podemos empregar os leds do sensor para expresar “emocións”
  • Podemos controlar cada un dos leds por separado
    • 1-4 - “Ollo Esquerdo”
    • 5-9 - “Ollo Dereito”

34 of 69

Exercicio 6 - Leds distancia

  • Se o obxecto está a menos de 20 cm acendo os leds a plena potencia
  • Se o obxecto está entre 20 e 50 cm acendo os leds a potencia media
  • Se o obxecto está a máis de 50 cm apago os leds

35 of 69

Exercicio 6 - Leds distancia

36 of 69

Bloques Personalizados

  • Podemos crear os nosos bloques que fagan varias accións para simplificar e evitar repetir código.
  • Para elo Mis Bloques -> Crear Bloque

37 of 69

Bloques Personalizados

  • Creamos dous bloques
    • Apagar Ollo Dereito
    • Acender Ollo Dereito

38 of 69

Exercicio 7

  • Fai un programa no que
    • O premer o botón B acenda e apague os ollos alternativamente
    • O premer o botón A apague ambos ollos.

  • Para facelo teremos que crear dous bloques máis, un para acender o ollo esquerdo e outro para apagalo. É o mesmo proceso mais, cos valores 5,6,7,8.

39 of 69

Bloques Personalizados - Solución

40 of 69

Controlando os motores

  • En MBlock 5 temos que engadir a extensión “Placa de extensión para mbot2” e aparecen 2 grupos de bloques novos
    • Chasis MBot2
      • Mover os motores do mbot (encoders)
    • Puerto de extensión Mbot2
      • Xestionar outros motores de continua e servos

41 of 69

Controlando os motores

  • Unha das novidades de Mbot2 é que permite:
    • Avanzar distancias concretas.

    • Xirar un determinado número de grados

42 of 69

Movendo o robot

  • Podes deseñar un programa que controle o movemento do robot co joystic:
    • Se pulsamos Adiante que avance 5 cm
    • Se pulsamos atrás que retroceda 5 cm
    • Se pulsamos dereita que xire 90º á dereita
    • Se pulsamos esquerda que xire 90º á esquerda

43 of 69

Solución - Movendo o robot co joystick

44 of 69

Exercicio - Circuíto

  • Debuxa nun folio un circuíto con tamaño suficiente para o MBOT 2
  • Programa os movementos para que o robot recorra o circuíto.

45 of 69

Movendo o robot cos “encoders”

  • O máis habitual no mbot2 é controlar o movemento empregando os encoders que levan a roda dereita e a esqueda.
  • É importante ter en conta que o encoder EM2 da roda dereita para avanzar cara diante temos que poñerlle valor negativo.

46 of 69

Exercicio 7-Controlando os motores

47 of 69

Moverse en Círculo

  • Xirar a dereita
  • Xirar a esquerda
  • Para moverse en círculo precisamos un bloque que nos permita controlar os motores de xeito independente xa que a roda que vai por fóra da curva recorrerá un camiño máis longo e, polo mesmo, terá que ir máis rápido.
  • Como os motores están conectados de xeito inverso, o encoder EM2 tamén terá valores negativos para que avance.

48 of 69

Exercicio 8- Controlando motores

En función do código do exercicio anterior serías quen de facer un programa que faga o seguinte?:

  • Frecha arriba joystick: Avance recto a 50% de potencia controlando os encoders durante un 1sg
  • Frecha esquerda joystick: Xire cara á esquerda durante 0.5 sg e faga unha curva no sentido das agullas do reloxo durante 0.5 sg.
  • Frecha abaixo joystick: Retroceda recto a 50% controlando os encoders durante un 1sg
  • Frecha dereita joystick: Xire cara á dereita durante 0.5 sg e faga unha curva no sentido contario das agullas do reloxo.

49 of 69

Aquí tes algunha pista….

50 of 69

Sensor de Liña cúadruple RGB

  • Pódese empregar para seguir liñas polo chan
  • É moito máis potente que o seu equivalente en mbot.
  • Ten 4 emisores e 4 receptores
    • Esquerdos (L1, L2)
    • Dereitos (R1,R2)
  • Gracias a eles non só poden detectar unha liña, senón tamén cruces ou liñas adicionais.
  • O seu rango de detección está entre 5 e 15 mm.
  • O sensores tamén pode detectar cores.

51 of 69

Sensor de Liña cúadruple RGB

  • Funcionamento:
    • Cada sensor RGB ten emparellado un Led RGB
    • O led emite luz, que será reflictida pola superficie e captada polo sensor.
    • Ao empregar sensores de luz, pode indentificar a cor da luz reflictida en cada un dos catro sensores. Cada sensor almacena os tres valores de cor RGB.
    • MBot2 devolve a cor detectada e non os tres valores RGB para que os interpretemos nós.
  • Pode traballar por cor ou por escala de grises

52 of 69

Sensor de Liña - Calibración

  • Tamén dispón de un botón de calibración de contraste e luz ambiente, aconsellable para adaptarse ás condicións de iluminación onde se empregará o robot.
  • Se facemos un dobre click no botón de calibración, os leds parpadearán e poderemos deslizar o robot sobre a liña a detectar para que lle sexa máis sinxela a súa detección

53 of 69

Sensor de liña

  • Para empregalo temos que instalar a seguinte extensión e aparecerá dispoñible a seguinte categoría de bloques

54 of 69

Sensor de Liña - Liña negra

  • Seguindo liña negra sobre fondo branco

55 of 69

Exemplo - Liña Negra

Negro

Branco

56 of 69

Exercicio 9-Segueliña Negra Pouco Eficiente

57 of 69

Sigueliña Eficiente

  • Dispoñemos dun bloque que nos proporciona a desviación con respecto á liña co que o teñas calibrado
  • 0 - Se estamos sobre a liña.
    • Valores negativos (cada vez maiores) se nos desviamos cara esquerda
    • Valores positivos (cada vez maiores) se nos desviamos cara á dereita

58 of 69

Exercicio 10-Sigueliña Eficiente

  • É un dos códigos de exemplo que está dentro do propio manual, podes abrilo directamente.

59 of 69

Detectar Cores

  • O seguinte bloque permite detectar cores con calquera dos sensores
  • Tamén poderíamos detectar cores con un sensor concreto. Por exemplo para detectar cores a dereita da liña

60 of 69

Exercicio - Detectar cores

  • Fai un programa no que o robot siga a liña negra
  • Cando detecte un cor vermello acenda os leds en vermello e siga andando
  • Cando detecte unha cor verde que xire á esquerda 180º

61 of 69

Solución - Detectar cores

62 of 69

Moverse en Círculo

  • Xirar a dereita
  • Xirar a esquerda
  • Para moverse en círculo precisamos un bloque que nos permita controlar os motores de xeito independente
  • Como os motores están conectados de xeito inverso, ten que ter valores negativos para que avance

63 of 69

Moverse en Círculo - Diámetro

  • Pequeno
  • Grande
  • Amplíase o círculo ó aumentar a diferencia entre a velocidade de ambas rodas.

64 of 69

Exercicio: Seguir liña con obstáculos

  • Mbot debe seguir a liña negra
  • Se atopa un obstáculo debe xirar 180º e seguir o seu camiño pola liña negra.
  • Vídeo de Exemplo

65 of 69

Solución: Seguir liña con obstáculos

En primeiro lugar deseñamos un bloque de código que nos permita parar o robot e poñelo a cero premendo o botón A

Posteriormente, deseñamos un código que nos permita seguir a liña detectada polo sensor RGB(previamente calibrado) e esquivar un obstáculo cando o detecte a menos de 14 cm.

66 of 69

Solución: Seguir liña con obstáculos

Neste caso, o robot vai esquivar o obstáculo no sentido horario. Por iso, ao detectalo, xirará primeiro á esquerda.

Podemos ver como este programa ten como desencadeante a frecha dereita da Cyberpi.

67 of 69

Observando o código anterior…como farías ti para que o mbot2 xirase no sentido antihorario ao premer a frecha á esquerda da Cyberpi?

Escribe na seguinte diapositiva a túa proposta.

68 of 69

Links

69 of 69

Plantilla