Hardware Tutoriales

Zowi IV | La placa base Arduino

Seguro que si nos hablan de la plataforma Arduino, a todos se nos viene a la cabeza una pequeña placa verde que permite hacer muchas cosas. Y el problema a la hora de definir esto último es que las opciones son tan amplias que a veces es complicado acotar. Desde encender pequeños LEDs hasta controlar la domótica de un hogar, hoy nos centramos en cómo esta herramienta constituye el cerebro de Zowi, el robot open source de BQ. ¡No te pierdas de qué es capaz!

Placa basada en Arduino, no Arduino

Antes de nada, es importante aclarar un aspecto en concreto: lo que Zowi tiene dentro de la cabeza no es un Arduino como tal, sino una placa base personalizada por BQ. Sin embargo, utilizar ese término para referirse a ella no es del todo incorrecto, ya que está basada en esta plataforma; a pesar de contar con algunas diferencias, es compatible con todos los sensores y actuadores que se podrían utilizar con la primera. En la segunda parte de esta serie os describo un poco más a fondo en qué consiste cada una.

Teniendo este matiz en cuenta, podemos referirnos a una u otra indistintamente, ya que incluso la documentación oficial es perfectamente válida en nuestro caso. Pero antes de profundizar en el código que mueve a este pequeño robot, vamos a echarle un vistazo a todo lo relacionado con el funcionamiento y las conexiones de la placa base.

Pines analógicos y digitales

Son los pines a los que conectaremos nuestros sensores y actuadores. En la plataforma Arduino oficial son entradas hembra, y normalmente se hace uso de una protoboard y de varios jumpers para crear nuestros circuitos; no se suelen conectar los componentes directamente a la placa.

En el caso de Zowi estos pines son macho, pero aunque lo tengamos un poco más difícil para realizar las conexiones, la finalidad es exactamente la misma. Pueden ser configurados -con algunas excepciones- como entradas (para recibir datos de sensores) o salidas (para enviar instrucciones a actuadores), y se pueden dividir en dos grandes grupos: digitales y analógicos.

  • Pines digitales: su rango de trabajo se limita a dos valores, 0 ó 1 -LOW o HIGH-. De esta forma, funcionen como entrada o como salida, sólo va a haber dos opciones posibles.
  • Pines analógicos: al funcionar como entradas, estos pines leen valores de tensión de entre 0 y 5 V. Cuentan con una resolución de 10 bits, lo que significa que puede diferenciar un total de 1024 voltajes distintos -210 = 1024-. De este modo, la variación de tensión necesaria para que haya un salto en la cifra leída de unos 5 mV -5V/1024 = 5mV-.En la imagen podéis ver de una forma mucho más visual a qué me refería justo antes. Si el valor de tensión que recibe un pin analógico está comprendido entre 0 y 0.005 V, obtendremos un 0 en nuestro programa. De igual forma, si este valor está comprendido entre 0.005 y 0.010 V, obtendremos un 1. Este comportamiento escalonado se repite a medida que aumenta el voltaje, hasta llegar al límite admitido por la placa. En total, podemos distinguir 1024 valores -1023 más el 0-, que equivalen a los 10 bits de resolución que comentaba más arriba.
    Por su parte, el funcionamiento como salidas es un poco particular, también conocido como PWM. Este modo produce intervalos a 0 intercalados con intervalos a 1, cuya duración depende del valor que le proporcionemos al pin. Este último está comprendido entre 0 y 255, y os dejo unos ejemplos aclaratorios a continuación. He marcado con una línea roja un período de 4 intervalos, para que se pueda ver el ciclo completo en las 3 modalidades.

    • 0: 0 continuo.
    • 64: tres 0 por cada 1 (primera imagen). Es decir, tres cuartas partes de 0 y una cuarta parte de 1.
    • 128: un 0 por cada 1 (segunda imagen). Es decir, mitad 0 y mitad 1.
    • 192: tres 1 por cada 0 (tercera imagen). Es decir, tres cuartas partes de 1 y una cuarta parte de 0.
    • 255: 1 continuo.

Quedándonos con lo práctico, utilizaremos los pines analógicos cuando queramos detectar más de dos valores, y los digitales cuando con esa cifra sea suficiente.

¿Y el resto de pines?

Si contamos todos los pines disponibles en la placa, las cuentas no salen. El motivo es que además de las entradas y salidas, tenemos más conexiones que posibilitan el correcto funcionamiento de Zowi, como el pin de RESET o el botón de encendido.

Al comparar las conexiones de un Arduino original con las de la placa del chiquitín, comprobaremos que parece haber más diferencias que similitudes. Así que ahora que ya les hemos hecho un repaso a las entradas y salidas, tanto digitales como analógicas, vamos a centrarnos en cómo están conectados todos los componentes. Su número y función varía con respecto a un Arduino Uno original, así que echémosle un vistazo a lo que nos encontramos en nuestro caso.

Pines digitales

  • D0, D1: no disponibles.
  • D2, D3, D4 y D5: ocupados por los 4 servos que mueven las piernas (2 correspondientes a la cadera, y otros 2 a los pies).
  • D6 y D7: correspondientes a los botones A y B, respectivamente.
  • D8 y D9: ocupados por el sensor de ultrasonidos.
  • D10: correspondiente al zumbador.

Pines analógicos

  • A0, A1, A2, A3, A4 y A5: libres. En ellos podremos conectar cualquier sensor o actuador compatible con Arduino.
  • A6: correspondiente al micrófono.

Otros pines

  • VBAT: pin al que se conecta la fuente de alimentación, en este caso la batería.
  • MO, MI, SCK y RST: ocupados por la matriz de LEDs. Los 3 primeros permiten un tipo de comunicación (SPI) con otros periféricos o microcontroladores. El último es el pin de RESET, que en un Arduino original permite reiniciar el programa cargado en la placa por medio de un pulsador.

Con esto, ya tenemos asignados todos los componentes de Zowi. El hecho de disponer de 5 entradas analógicas libres implica que vamos a poder conectar todo tipo de sensores, como IMUs o infrarrojos, entre otros muchos. Más adelante veremos cómo llevar a cabo esta tarea, aunque de momento todavía nos queda mucha tela que cortar.

En el siguiente capítulo, prepararemos el entorno para empezar a analizar el código base de Zowi, y así aprender cómo lleva a cabo todas las tareas para las que está pensado. Hasta entonces, ¡no dejes de visitar Just Unboxing!

Zowi III
¿Cómo programarlo con Bitbloq?
Zowi V
Preparando el entorno de programación
Marco

Marco

Ingeniero de Telecomunicaciones, estudiante y usuario de Android desde el HTC Magic. Muy crítico con todo lo que pruebo, ¡hay quien me llama hater!
Marco
¡Comparte!
Advertisment ad adsense adlogger