Máquina de chicles controlada mediante interfaz web y Arduino

        

1. Introducción

El presente proyecto consiste en la realización de una máquina expendedora (en nuestro caso particular, de bolas de chicle) la cual funciona de un modo un tanto distinto al que funcionan las máquinas expendedoras habituales. Normalmente, lo que se hace es ingresar una moneda y hacer girar un dispositivo mecánico para obtener un producto. En nuestro caso, lo que haremos será solicitar un código vía web e introducirlo en un teclado numérico en nuestra máquina, de modo que, si el código introducido coincide con el solicitado, la máquina nos expenderá un chicle y, en caso contrario, nos indicará que hemos introducido erróneamente el código y no recibiremos el producto solicitado.

2. Componentes y precio

Componente Cantidad Precio unitario Precio total
Pantalla LCD 1 3.91 € 3.91 €
Arduino Uno 1 Proporcionado por el profesor 0 €
Motor Servo 1 7,85 16:00 – 20:00
Raspberry Pi 3 1 39.90 € 39.90 €
Matriz de botones 1 6.50 € 6.50 €
Estructura impresa en 3D 1 24 € 24 €
Bolsa de chicles 1 8 € 8 €
PRECIO FINAL 90.16 €

Se han eliminado de la tabla de componentes los que consideramos mínimos (por ejemplo, el cableado).

3. Esquemas de conexión

  • Motor Servo:     

        El motor servo está conectado a los pines de la placa Arduino de la siguiente forma:

        – Cable negro: Ground, conectado al pin GND
        – Cable rojo: Entrada de 5 V
        – Cable verde: Pin 10 de la placa Arduino
  • Pantalla LCD + I2C:

        La pantalla LCD utilizada en nuestro proyecto está conectada a nuestra placa Arduino mediante           un módulo I2C con las siguientes conexiones:

        – Cable rojo: Toma de tierra    
        – Cable negro: Entrada de 5V
        – Cable marrón: SDA del módulo I2C (Pin A4 de la placa Arduino)
        – Cable verde: SCL del módulo I2C (Pin A5 de la placa Arduino)
        
  • Keypad numérico (matriz de botones):

       Cada cable de salida del keypad se corresponde con una fila o columna de la matriz de botones.          Puesto que tenemos una matriz de 4×4, necesitaremos 8 pines para conectar la matriz completa.

  • La Raspberry Pi 3 está conectada a la placa Arduino mediante USB.

4. Proceso de montaje

Para realizar este proyecto, planteamos distintas posibilidades respecto a los materiales a utilizar. Al principio íbamos a realizar una estructura realizada en cartón completamente, pero posteriormente y puesto que disponíamos de medios para realizar impresiones en 3D, decidimos que la estructura principal y el tambor que se encargaría de girar y depositar el chicle en la rampa de salida serian impresas y que mantendríamos el cartón únicamente para el depósito de chicles que se sitúa sobre la máquina. Inicialmente realizamos el diseño en 3D de nuestra estructura utilizando el software Autodesk Inventor. En las siguientes imágenes se puede observar el parte del proceso de montaje. 

5. Funcionamiento

Nuestro proyecto puede separarse en dos partes claramente diferenciadas: la parte del servidor web que manejará las peticiones de los códigos de los usuarios a través de una API implementado en la Raspberry Pi 3 y la máquina de chicles en sí. 
El funcionamiento de nuestra máquina de chicles se basa en una máquina de estados: uno para leer el código del Keypad, un segundo estado que comprueba la validez del código introducido y otro para mover el servo motor. 
Decidimos montar el servidor en una Raspberry Pi 3 con Sistema Operativo Raspbian que ejecuta un servidor PHP que ofrece a los usuarios una interfaz web a través de la cual registrarse, iniciar sesión y solicitar un código para obtener un chicle. Además, ejecuta un script escrito en Python para comunicarse con el Arduino. Decidimos montar el servidor en la Raspberry Pi  por motivos económicos, aunque lo óptimo hubiese sido tenerlo abierto al público (actualmente nuestro proyecto solo funciona si los clientes se conectan al punto WiFi que despliega la Raspberry Pi).
Globalmente, los pasos a seguir para obtener un chicle de nuestra máquina son los siguientes:
  1. El usuario se conecta a la web e inicia sesión o se registra.
  2. Una vez se ha iniciado la sesión, la página web mostrará el código que debe introducirse en el keypad para obtener un chicle.
  3. Cuando el código se ha generado, el usuario lo introduce en el keypad o genera otro mediante la página web.
  4. En este punto pueden pasar dos cosas:
    1. El código introducido es correcto, con lo que la máquina se activará y expenderá el chicle.
    2. El código introducido es incorrecto, con lo que la máquina mostrará “Error” en la pantalla y volverá a esperar un código. En este punto, puede regenerarse un código nuevo desde la web o introducir de nuevo el código correcto.

6. Problemas y soluciones

A la hora de desarrollar nuestro proyecto tuvimos que afrontar y resolver una serie de problemas que retrasaron el trabajo y dieron lugar a unos resultados con los que, generalmente, estamos conformes, pero que sabemos que podrían ser mejores si hubiésemos salvado estos problemas. Cronológicamente, los problemas con los que nos hemos encontrado han sido los siguientes:
  1. Inicialmente, nuestro keypad no funcionaba de ninguna de las maneras que encontrábamos en Internet, guías y manuales. Finalmente, encontramos solución descargando una librería para Arduino que incluía las funciones necesarias para manejar nuestro Keypad.
  2. La pantalla LCD y el módulo I2C nos dieron problemas durante bastante tiempo. A pesar de que su conexión y funcionamiento son bastante simples, ninguna de las librerías con las que probamos inicialmente parecía funcionar (parpadeos de pantalla constantes, encendido y apagado aleatorios, impresión de un único carácter de una cadena…). La solución fue, de nuevo, encontrar la librería adecuada y ajustar levemente el contraste del I2C para mejorar la visibilidad.
  3. La impresión de las piezas 3D. Este fue el mayor problema con el que nos encontramos a lo largo del proyecto. Para empezar, la realización de un buen diseño nos llevó cerca de 3 días. El siguiente inconveniente es que la impresión en 3D tarda bastante tiempo en completarse, por lo que un fallo durante la impresión provoca grandes retrasos. Y tuvimos fallos durante la impresión. Al imprimir la estructura principal de nuestra máquina, el filamento del material se atascó en la impresora y dejó de imprimir. Al final solucionamos este problema colocando una brida en el mecanismo de la impresora que hacía que el filamento se tensase y no se enredase a la hora de imprimir.
  4. Errores en el diseño. Además de los ya mencionados problemas de impresión, cuando las piezas estuvieron acabadas, descubrimos errores milimétricos que provocaban que nuestros componentes no se ajustasen completamente a los huecos que habíamos dejado para los mismos. Además, la primera vez que enviamos a imprimir las piezas no se pudieron realizar puesto que la estructura tenía una altura de 4mm más de lo que la impresora era capaz de elevar. Solucionamos estos problemas limando la estructura para encajar los componentes y rediseñándola con 4 milímetros menos de altura para poder imprimirla.

7. Posibles mejoras

Somos conscientes de que en nuestro proyecto hay mejoras que podrían añadir valor a nuestro producto e incluso mejorar su funcionamiento. Las mejoras que proponemos para nuestro proyecto son las siguientes:
  • Tener la aplicación disponible para todo el mundo en Internet, además de desarrollarla para dispositivos móviles.
  • A pesar de que nuestro diseño impide llevar a cabo esta mejora (por motivos de espacio en la estructura de la máquina), podríamos implementar un mecanismo que detectase un posible atasco del mecanismo que libera las bolas de chicle de la máquina.
  • Imprimir piezas para el contenedor de chicles. Por simplicidad en el proyecto, nosotros decidimos mantener nuestro diseño inicial en cartón para el contenedor, pero podrían diseñarse piezas en 3D o rediseñar la estructura para incluir un tambor.
  • Incluir botones en el keypad. 
  • Elevar la altura del límite en la boca de salida de la rampa de chicles. En ocasiones, si la bola es demasiado grande, su velocidad hace que el escalón que impide que se salgan al descender por la rampa no cumpla su función correctamente. Elevar unos milímetros su altura o colocar un escalón adicional previo resolvería este problema

8. Anexos

También te podría gustar...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *