Archivo de la etiqueta: Minisumo

Qué es Arduino

Arduino es un dispositivo programable como es un ordenador, un móvil, un tablet o un PLC, es decir, se puede cambiar el comportamiento o la funcionalidad del dispositivo mediante unas órdenes en un lenguaje concreto que es capaz de ser interpretado por el dispositivo y seguir esas órdenes con el fin de realizar una tarea automática o resolver un problema.

En el caso de los ordenadores, móviles o tablets, la entrada de los datos y la interacción con las personas es a través del teclado, ratón, pantalla táctil o incluso la posición GPS o la inclinación del móvil y la salida de los resultados o visualización por las personas es a través de la pantalla. Sin embargo un PLC/Autómata o un Arduino, la interacción con el humano o con el entorno no está tan limitada como en el caso de un Ordenador o un tablet, los interfaces de comunicación (entrada/salida) son ilimitados y consisten en ciertos componentes hardware (transductores) que convierten los cambios de energía producidos por las alteraciones en el medio físico, en señales eléctricas entendibles por las máquinas. Por lo tanto las entradas a estos dispositivos son los sensores y las salidas son los actuadores que convierten las señales eléctricas en magnitudes físicas.

Arduino es un dispositivo programable que nos permite interactuar con el entorno, pudiendo leer la temperatura de una sala, el deslizamiento de una rueda o el ángulo de inclinación de una plataforma y escribir/actuar sobre el encendido de una caldera, los frenos del coche o un motor para nivelar una plataforma.

La computación física se refiere al diseño de objetos y espacios que reaccionan a cambios en el entorno y actúan en este. Se basa en la construcción de dispositivos que incluyen microcontroladores, sensores y actuadores y que pueden tener capacidades de comunicación con la red u otros dispositivos.

Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares.

Hardware Libre: http://es.wikipedia.org/wiki/Hardware_libre

Arduino es una plataforma abierta que facilita la programación de un microcontrolador. Los microcontroladores nos rodean en nuestra vida diaria, usan los sensores para escuchar el mundo físico y los actuadores para interactuar con el mundo físico. Los microcontroladores leen sobre los sensores y escriben sobre los actuadores.

En palabras de David Cuartielles: “Actualmente todo lo que nos rodea en la vida es digital (entendido como hacer operaciones matemáticas complejas y comunicar con otros dispositivos), cualquier cosa lleva un microchip, desde el microondas a un coche. Arduino lleva uno de esos microchips y te permite aprender a manejar como funciona el mundo en el que vivimos hoy en día y cómo interactúa el hombre con el mundo digital. Arduino es la puerta hacia tomar control de cómo funcionan las cosas actualmente y en el futuro. Así que encender el ordenador y empezar a programar.

Arduino no solo proporciona las placas (Hardware), sino que nos proporciona un software consistente en un entorno de desarrollo (IDE), un lenguaje de programación simplificado para el HW y el bootloader ejecutado en la placa. La principal característica del software (IDE) y del lenguaje de programación es su sencillez y facilidad de uso.

Arduino promete ser una forma sencilla de realizar proyectos interactivos para cualquier persona. Para alguien que quiere hacer un proyecto, el proceso pasa por descargarnos e instalar el IDE buscar un poco por internet y simplemente hacer “corta y pega” del código que nos interese y cargarlo en nuestro HW. Luego hacer los cableados correspondientes con los periféricos y ya tenemos interaccionando el software con el Hardware. Todo ello con una inversión económica mínima: el coste del Arduino y los periféricos.

Arduino es una tecnología que tiene una rápida curva de aprendizaje con básicos conocimientos de programación y electrónica, que permite desarrollar proyectos en el ámbito de las Smart Cities, el Internet de las cosas, dispositivos wearables, salud, ocio, educación, robótica, etc…

Definición de Arduino en la web oficial: https://www.arduino.cc/en/Guide/Introduction

Otras definiciones de Arduino:

Que es arduino en un minuto (video): http://learn.onemonth.com/what-is-arduino

Hay otro factor importante en el éxito de Arduino, es la comunidad que apoya todo este desarrollo, comparte conocimiento, elabora librerías para facilitar el uso de Arduino y publica sus proyectos para que puedan ser replicados, mejorados o ser base para otro proyecto relacionado.

En resumen:

Arduino = HW + SW + Comunidad

¿Para qué sirve Arduino?

Arduino se puede utilizar para desarrollar elementos autónomos, conectándose a dispositivos e interactuar tanto con el hardware como con el software. Nos sirve tanto para controlar un elemento, pongamos por ejemplo un motor que nos suba o baje una persiana basada en la luz existente es una habitación, gracias a un sensor de luz conectado al Arduino, o bien para leer la información de una fuente, como puede ser un teclado, y convertir la información en una acción como puede ser encender una luz o mostrar por un display lo tecleado.

Con Arduino  es posible automatizar cualquier cosa para hacer agentes autónomos (si queréis llamarles Robots también). Controlar luces y dispositivos, o cualquier otra cosa que se pueda imaginar, es posible optar por una solución basada en Arduino. Especialmente en desarrollos de dispositivos conectados a Internet, Arduino es una solución muy buena.

Aplicaciones de Arduino

¿Qué puede hacer Arduino? https://aprendiendoarduino.wordpress.com/2016/06/26/que-puede-hacer-arduino/

¿Entornos de aplicación de Arduino? https://aprendiendoarduino.wordpress.com/2016/06/26/entornos-de-aplicacion-arduino/

Una de las aplicaciones más conocidas de Arduino es la educación https://aprendiendoarduino.wordpress.com/2018/05/06/arduino-en-la-educacion/ y en el aprendizaje de las nuevas tecnologías. La Aertic http://aertic.es/en/home/ promueve las vocaciones tecnológicas en edades tempranas con el “ArduKit”: https://cepymenews.es/aertic-lanza-iniciativa-ardukit-proyecto-promueve-vocaciones-tecnologicas-edades-tempranas/

Arduino tiene múltiples aplicaciones, pero podemos ver dos ejemplos opuestos para darnos cuenta del amplio rango de aplicaciones que podemos cubrir con Arduino. Además en ambos casos, la programación es diferente, en el primero se usa programación por bloques basado en mBlock/Scratch www.mblock.cc y en el segundo programado en C++ o incluso con herramientas industriales: https://www.industrialshields.com/software-to-program-industrial-shields-products

Robot Minisumo:

Vídeo: https://youtu.be/xh1eUzSPBac

Smart Monitoring, ejemplo de http://www.geezar.es/monitorizacion-e-innovacion/

Anuncios

Construcción y Programación de Robot Minisumo

Este tutorial de construcción y programación de un robot minisumo para competiciones de minisumo está motivado por el Taller de construcción de Robot Minisumo celebrado el 15 de marzo del 2019 en el CEIP Obispo Blanco dentro del Arduino Day 2019 de Logroño https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-logrono-2019/ y el posterior taller de perfecionamiento celebrado el 9 de mayo en el Área UR-Maker de la Universidad de La Rioja

Con el objetivo de acercar la robótica y la programación a los niños, proponemos un taller donde fabricar y programar un robot de sumo autónomo. El hardware y el software para fabricarlo y programarlo es libre y abierto. Los robots de sumo competirán por pares en un dohyo (tablero circular). El robot ganador será el que logre sacar a su contrincante fuera del dohyo.

También aprovechamos este taller para preparar los robots de minisumo para la competición en el 1er encuentro maker en tierra de Estella: https://encuentromaker.dictelweb.org/

Repositorio github de este tutorial: https://github.com/jecrespo/Robot-MiniSumo

Robots Minisumo

Este robot minisumo ha sido diseñado desde cero nos hemos basado en este robot: https://www.instructables.com/id/SimpleSumo-Educational-Fighting-Robots/

Se ha simplificado al no tener brazos ni botones de sensores de pulsación. El diseño 3D se ha rehecho desde el principio. Se trata de un fork del SimpleSumo robot kit https://www.instructables.com/id/SimpleSumo-Educational-Fighting-Robots/

Existen muchos tutoriales de robots minisumo como:

Reglas Competiciones Minisumo

Para un conjunto de reglas serias ver: Unified Sumo Robot Rules

Para un conjunto de reglas divertidas de leer ver: fully illustrated guide to robot sumo rules

Más enlaces con reglas de competiciones de robots sumo en español:

Lista de Materiales

Los materiales deben ser iguales o similares en dimensiones para encajar en el diseño del chasis:

Coste Aproximado Materiales Robot Minisumo: 20€

Construcción Robot

El chasis impreso en 3D consiste en dos piezas, en la pieza inferior se coloca el portapilas y los tres sensores IR TCRT5000 sujetos con tornillos. Luego se colocan los dos servos con las ruedas y el sensor de distancia ultrasónico HC-SR04 en los huecos a tal efecto.

Sobre la pieza superior se coloca la placa de expansión de Arduino nano y el Arduino ya instalado.

Una vez todo colocado, se conectarán los cables usando los jumpers dupont.

La parte principal para las conexiones es la Arduino Nano Expansion Board. Esta placa dispone de una expansión de los puertos del Arduino Nano junto con un pin de VCC y otro de GND para cada pin del Arduino.

Buena explicación de la expansion board: http://dyor.roboticafacil.es/en/arduino-intro/

Datasheet: https://roboticafacil.es/datasheets/nano_io_shield.pdf

Arduino nano data sheet:

Otro modelo de placa:

Conexionado de Placa y Dispositivos

Conexiones:

Dispositivo Pin Arduino
Sensor Suelo IR Izquierdo 2
Sensor Suelo IR Derecho 3
Sensor Suelo IR Trasero 4
Sensor Ultrasónico Distancia 5 (Trigger), 6 (Echo)
Servo Rueda Derecha 9
Servo Rueda Izquierda 10
Buzzer 12

Esquema Fritzing:

Imagen en Github: https://github.com/jecrespo/Robot-MiniSumo/blob/master/Robot%20Minisumo%20Sketch_bb.jpg

Esquema en Github: https://github.com/jecrespo/Robot-MiniSumo

Ejemplo parecido donde obtener algunas partes de Fritzing: http://fritzing.org/projects/bender-dyor

Programación por Bloques

Para programar el robot minisumo usaremos mBlock: http://www.mblock.cc/mblock-software/

Existen varias opciones:

Para la programación se ha usado la versión 3.4.12 de mBlock y no ha sido necesario instalar ninguna extensión.

Para programar es necesario usar el modo Arduino, que se selecciona desde edit – Arduino Mode. Si se usa un Arduino Nano, en boards poner Arduino UNO, si se selecciona Nano (mega328) no funciona.

En caso que no cargue, comprobar si el Arduino Nano tiene el bootloader viejo, en ese caso habrá que actualizar el bootloader o sino usar el IDE de Arduino y usar el bootloader antiguo como se explica en el siguiente punto.

Los códigos en mBlock usados se pueden encontrar en: https://github.com/jecrespo/Robot-MiniSumo/tree/master/Firmware%20mBlock

La primera parte de la programación es hacer las funciones básicas y ponerlas todas en un código de test que compruebe que funcionen los motores y todos los sensores y buzzer.

Funciones básicas a programar:

  • Marcha adelante
  • Marcha Atrás
  • Gira derecha
  • Gira Izquierda
  • Para
  • Pita (se pueden hacer diferentes tonos para identificar qué hace, por ejemplo inicio, detecta linea, detecta oponente, etc…)
  • Detecta distancia
  • Detecta linea (diferencia entre derecha, izquierda y trasero)

Los bloques de funciones básicas quedan así:

En mi caso en lugar de poner 0 y 180 para máxima velocidad de los servos (giro izda. y dcha.) he puesto 15 y 165 que funciona mejor.

El código de prueba es:

Este código comprueba el correcto funcionamiento de los motores y los movimientos, así como el buzzer y los sensores IR de suelo y el sensor de distancia ultrasónico.

Fotos

Frontal:

Lateral

Trasera

Bajo