Biomixer
Tarea Universitaria
1 CONTEXTO
A veces hay elementos considerados desechos y son eliminados en la basura, sin reparar en que pueden tener propiedades que le permitan tener otro uso, afectando así al medio ambiente y a las personas mismas. En esto, la biofabricación cumple un rol importante, siendo un gran cambio de paradigma para la producción y el consumo, pues significa enmarcar la producción dentro de una economía más circular y sustentable, generando materiales y productos basados en materia orgánica y biodegradable. Se trata de diseñar considerando los ciclos de vida completos.
Bajo este contexto, en el FabLab se pretende crear 6 máquinas como parte de un kit Open Hardware de Biofabricación Digital, el primero de esta naturaleza en el mundo, utilizando desechos del laboratorio y de la Facultad, domiciliarios e industriales. Además de productivo y funcional, el kit será una herramienta educativa, por lo que es muy importante que las máquinas sean lo más "transparentes" posibles, utilicen la menor cantidad de material, y tengan buenas terminaciones en lo posible.
Una de las máquinas de este kit, y la que se describe en el presente documento, es la Biomixer, una cocina en la que se mezclan los ingredientes, cuyas cantidades son indicadas por el usuario, y se calientan para que, el material resultante, se vierta en un molde y pase por otro proceso y finalmente, generar el producto deseado.
Durante enero-febrero de 2019 se estuvo trabajando en el primer prototipo de esta máquina. Al momento de retomar el proyecto en el semestre primavera 2019, la máquina se encontraba en el siguiente estado:
Software: Para facilitar el proceso de mezcla y cocción para el usuario, se implementa una aplicación para que este pueda ingresar qué ingredientes y en qué cantidad utilizar, y luego monitorear el estado de la mezcla mientras dure el proceso. Considerando esto, el estado del software al retomar el proyecto era el de una aplicación (web) para interactuar con la máquina hecha con Flask (que venía incluido en el servidor que se decidió usar), HTML, CSS (Boostrap), servidor en una Raspberry Pi 2 B+ (OS Raspian), con capacidad de interactuar con 1 microcontrolador (Arduino), para dispensar materiales secuencialmente, y capacidad de desplegar una lectura analógica asíncrona mediante Ajax.
Hardware: Para el prototipo inicial, se planificó utilizar solamente un número acotado de materiales, los que entre ellos se encontraba el agar-agar, residuos de café, gelatina en polvo, agua y glicerina. Entonces, inicialmente se dividió el funcionamiento de la máquina en 3 procesos generales: dispensado de material particulado, dispensado de agua y dispensado de glicerina. Cabe señalar que, si bien la glicerina y el agua estaban en formatos líquidos, se hacía necesario tener procesos separadas para cada uno, ya que la viscosidad de la glicerina influye mucho en el proceso.
2 ETAPAS DE DESARROLLO
2.1 FAMILIARIZACIÓN CON EL PROYECTO
En la primera semana de trabajo, los integrantes del grupo que participaron en el desarrollo del prototipo compartieron conocimientos con los participantes que desconocían del tema.
2.2 DESARROLLO
Se decide que el proyecto se avanzará de forma paralela software y hardware, ya que se necesitan ambas partes al mismo tiempo para poder avanzar de manera óptima en la máquina. Además de esta forma cada integrante se dedica al área en el que tenga mayores conocimientos. Antes de empezar las tareas separadas, se toman decisiones generales del proyecto, las cuales son las bases del proyecto. Se enumeran a continuación (cada idea se explicará con más detalle en la siguiente sección):
Se usa el sistema de dispensado del material granulado usado en el prototipo de esta máquina, esto ya que, por experiencia de los integrantes que participaron en este proyecto preliminar, este sistema era fiable y tenía la precisión necesaria para dispensar el material granulado sobre la unidad de pesaje con exactitud.
Para el pesaje del material granulado se usará la gramera utilizada en el prototipo anterior. Se tienen dos ideas sobre como depositar el material en la olla. A grandes rasgos, la primera idea es girar la gramera en 180º y la segunda es barrer el material con una de las paredes del recipiente (creado por nosotros).
La olla se ubicaría por debajo de la gramera y tendría restringido su movimiento en el plano horizontal gracias a piezas de aluminio fabricadas en el Fablab. Esta olla sería calentada por una cocina de inducción. Se espera poder reparar la cocina de inducción dañada utlizada en el prototipo anterior y sería modificada de forma de poder manejarla desde el Arduino mega. La temperatura de la olla sería medida por una termocupla en contacto con la superficie exterior de ésta, se puede observar el boceto de esta idea en la Figura 2.
Para la inyección y medición del agua, se acopla un motor DC a una bomba hidráulica del tipo centrífuga construida en el Fablab. Esta bomba tiene la característica que la turbina tendría en su extremo un imán, el giro del imán es medido a través de un sensor efecto Hall, la información proveniente de este sensor es traspasada a una extrapolación de un polinomio de primer orden, el cual entrega el caudal de agua. El agua de esta bomba proviene de algún tipo de envase que aún no se decide, que estaría ubicado cercano a la bomba.
Se usan tres placas de desarrollo, una Raspberry Pi 2B+ encargada de ser el servidor y funciona como centro de contro entre la app web y la máquina. Un Arduino Mega conectado a la Raspeberri Pi 2B+ y a todos los actuadores de la BioMixer. Éste se encarga de recibir las señales digitales desde la Raspeberri Pi, las procesa y luego comanda los diferentes actuadores a través del tipo de señal correspondiente con el actuador. Finalmente se tiene un Arduino Nano que está conectado con todos los sensores, a la Raspberry Pi 2B+ y al Arduino Mega. Esta placa se encarga de supervisar el funcionamiento del Arduino Mega y se comunica a éste mediante interrupts de hardware en caso de algún tipo de emergencia según información proveniente desde de algún sensor, o ante la necesidad de enviar información importante. Esto se decide, ya que los sensores, al tener que estar funcionando en todo momento, restarían velocidad de procesamiento a los actuadores, como el dispensador de agua.
El material que se usará para construir la estructura son perfiles de aluminio para máquinas CNC, debido a que este sistema permite una construcción modular rápida. Además de tener la característica de estar formado por aluminio, material fácilmente reciclable, lo que promueve la enconomia circular. Por otra parte, la estructura estaría forrada por laminas aluminio sándwich, éstas están formadas por un núcleo de plástico forrado por láminas de aluminio por ambos lados, material que tiene la característica de ser liviano y fácil de cortar, lo que permite una construcción rápida.
La inyección de glicerina se hace mediante una jeringa de 20 ml cuyo émbolo es movido por un mecanismo en que un motor paso a paso provoca el giro de un husillo, el cual mueve una tuerca unida al émbolo. Se elige este sistema ya que éste fue utilizado en el prototipo de la Biomixer y se observó que el mecanismo tiene la precisión que se requiere además de ser robusto y fácil de armar.
Para revolver el contenido de la olla se usaría un revolvedor que tendría una forma que calzaría con la forma de la superficie interior de ella, este revolvedor sería accionado por un motor de corriente continua con una reducción tal que la velocidad del revolvedor sea entre 2 a 0.5 revoluciones por segundo, se decide el uso de un motor DC ya que no es necesario controlar con una precisión demasiado alta la velocidad de giro del revolvedor, por lo que simplemente sería necesaria un sistema de control de lazo abierto. Este conjunto estaría sujeto a un sistema que se encargaría de elevar y bajar el revolvedor, este sistema es sumamente importante ya que permitiría un acceso cómodo a la olla, lo cual suma relevancia al considerar que se estaría trabajando en una zona donde habría superficies a alta temperatura como lo sería la olla y su contenido. Por otro lado, se seguiría la línea del proyecto general que busca automatizar lo más posible la fabricación de biomateriales. Este sistema estaría accionado por un motor a pasos que accionaría el movimiento de un husillo, el que levantaría todo el conjunto revolvedor más motor dc de forma lineal en dirección perpendicular al suelo. Se decide usar un motor a pasos para esta tarea debido a que se tiene que controlar la altura final e inicial del conjunto. los bocetos de este sistema se pueden observar en la Figura 3.
Finalmente, se decide cuál es la configuración en que todos los componentes serían distribuidos, los componentes electrónicos más el motor de corriente continua unido a la bomba hidráulica más el sistema de inyección estarían ubicados en un compartimiento ubicado en el lado izquierdo, en la parte central y derecha estaría ubicada la cocina de inducción, sobre esta se colocaría la olla. sobre este se ubicaría el sistema de pesaje y sobre este se ubicaría el sistema encargado de subir y bajar el revolvedor más el sistema encargado de dispensar el material sólido con los respectivos contenedores. Se puede observar el boceto en la Figura 1.
Figura 1: Boceto máquina inicialmente
Figura 2: Disposición olla con termocupla
Figura 3: Revolvedor
Luego de haber realizado esta primera etapa se procede a avanzar con los detalles de estas ideas separando la parte del hardware y la de software.
2.2.1 HARDWARE
A continuación se detalla con mayor profundidad cada parte de la máquina.
Material sólido
Se usará el mismo sistema para todos los materiales granulados que sean utilizados. Este sistema consta de una secuencia de pasos a realizar para lograr tener la cantidad necesaria y depositarla en la olla. Primero dispensar el material al lugar donde es pesado y, luego de llegar a la cantidad requerida, depositar el material en la olla.
Como se explicó en la sección anterior, para dispensar el material, se utiliza el mismo sistema del prototipo, el cual consiste en un tornillo sin fin puesto de forma horizontal, el cual, al girar, empuja el material hacia un agujero en la carcasa del tornillo por donde el material cae. Este tornillo sin fin es accionado por un motor nema 17 y se puede ver de forma más clara su funcionamiento en la Figura 4, 5 y 6. Para este proyecto en específico se usarán cuatro (4) de estos tornillos, permitiendo el uso de cuatro (4) materiales granulados distintos. Todo esto estará ubicado sobre la olla, protegido del calor con aislación. El tipo de recipiente en que se almacenará el material granulado queda como pendiente.
Figura 4: Sistema tornillo infinito
Figura 5: Sistema sin carcasa
Figura 6: Tornillo infinito
Para depositar el material en la olla se tienen dos ideas. La primera idea considera que la gramera esté unida por la parte superior a un recipiente en el cual se depositaría el material granulado y, al finalizar el pesaje, la gramera giraría en 180° en el eje "Y" mediante un motor servo para depositar el material en la olla y volviendo, luego de esto, a la posición original en espera del siguiente uso. El boceto de este sistema se puede observar en las Figuras 7 y 8. La ventaja de este sistema consistía en su simplicidad debido a que, generalmente, los sistemas simples, si son bien diseñados, suelen presentar menos fallas que los complejos. La desventaja de esta idea es el espacio que utiliza, además del requerimiento de un servomotor con un torque relativamente elevado.
Figura 7: Gramera con recipiente
Figura 8: Gramera con giro 180º
La segunda opción se piensa en que le material granulado se deposite sobre una superficie delimitada por paredes móviles, éstas se podrían mover gracias a un servomotor fijo que accionaría un sistema biela-manivela, el cual movería las paredes. La idea detrás de este sistema es que, al moverse las paredes, éstas empujen el material granulado a un agujero que tenga las mismas dimensiones del área delimitada por la pared, de esta forma el ingrediente caería a través de este agujero a la olla; la gramera sostendría todo este sistema. El funcionamiento de este sistema se puede observa de mejor forma en el boceto presentado en las Figuras 9 y 10. Las ventajas de este sistema es que ocupa menos espacio y requiere de un motor con menor torque que la idea presentada anteriormente, pero, por otro lado, el sistema sería más complejo, por lo que requeriría un buen diseño para que sea robusto.
Figura 9: Recipiente movil
1er estado
Figura 10: Recipiente móvil
2do estado
Luego de decidir usar la segunda opcion se procede a diseñar el modelo con mayor detalle, se decide usar un servomotor standar HS-311, este se carácteriza por tener un torque a velocidad ángular 0 igual a 3.7 [kgN*cm] (Stall Torque), además de tener un ángulo de giro de 202,5°, lo que es suficiente para este caso, además ocupa un voltaje de entre 4.8-6.0 [V] por lo que es similar al voltaje que ocupa arduino, además de poder ser controlado a través de señal PWM proveniente del arduino. Dado esto se procede a hacer el diseño CAD de este dispositivo con lo que se llega a lo que se observa en la Figura 11. Se puede observar en esta que primero se tiene una especia de plano inclinado por donde el materical cae hace el recipiente, se estima que el torque máximo que tendría que soportar el servo es de 1.8 [kgN*cm] dado que se estima que el peso máximo del contenido es 500 [gr] y además que el coeficiente de roce de este con la superficie es 2 (se toma el máximo coeficiente de roce entre superficie que normalmente pordría existir) y finalmente el brazo del servo es de 1.8 cm. Se observa que según la información antes descrita sobre el servo este tiene el torque suficiente. Todo este conjutno sería fabricado en plastico mediante impresora 3D, a excepción del tornillo que serviría como pasador entre la manivela y el recipiente más el propio servo.
Figura 11: Diseño CAD sistema Gramera
Se trata de hacer las paredes que contendrían el material lo más chicas posible, esperando de esta manera que el largo total de la estructura sea el menor, esto es importante dado que este conjunto tiene que compartir un espacio bastante pequeño con el sistema encargado de bajar el agitador, esto se verá con más detalle en la sección donde se hable del ordenamiento de las piezas. Buscando lo anterior da como resultado necesitar un plano inclinado para que el material caiga en una recicpiente lo mas corto posible. Después de esto se determina la distribución de los tornillos que se puede observar en la Figura 12. Se tiene esta distribución de los tornillos sin fin porque permite que la salidas del material queden lo más cerca posible una de otras como se puede observar en la Figura 13, además se tiene que incluir un especia de conducto de tal forma que los recipientes tengan espacio para ser colocados. Este conducto esta en duda si es lo suficientemente amplio, lo que tiene que ser demostrado de forma empírica (trabajo que no se realizó), La carcasa será fabrica mediante impresora 3D usando PLA. Por otro lado el tornillo sin fin será fabricado usando una impresora de resina.
Figura 12: Distribusión tornillos infinitos
Figura 13: Distribución tornillos infinitos vista inferior
Finalmente se decide que los contenederos serán botellas de vidrio reutilizadas, por lo tanto la boquilla donda esta botellas serían colocadas tienen que ser diseñadas de forma diferente según el tipo de botella que se logre reciclar, estas boquilla pueden entrar fácilmente en el la entrada del conducto del tornillo sin fin, el diseño de esta se puede observar en las Figuras 14 y 15. La boquilla será fabricada mediante impresora 3D en PLA, mientras que la válvula y la perilla sería impresas en resina debido a que estas necesitan una mayor resistencia. El Plano de este conjunto se puede observar en el archivo "ensamblaje gramera.iam".
Figura 14: Diseño válvula 3D
Figura 15: Válvula
Material líquido
Dispensador de Agua
Se necesita dispensar agua en cantidades del orden entre 100 ml y 300 ml con la mejor precisión posible, ya que un cambio a más de 5 ml en la receta podría provocar grandes cambios en el biomaterial resultante. En el primer prototipo de la máquina se analizaron varias ideas como por ejemplo, un sistema por goteo que consistía solo en dejar o no caer agua, cerrando o abriendo una válvula, sin embargo, se descartó porque no había forma precisa de calcular la cantidad de agua que cayera. Otra idea fue el mismo sistema, pero incluyendo sensores de nivel de agura (un sensor de nivel de agua gener aun True o False dependiendo si el agua pasó o no el nivel en donde se posiciona el sensor), pero se descartó también dado que implicaba niveles de agua discretos y la precisión de este método dependía directamente de la cantidad de sensores que se tuvieran. Finalmente, luego de otras ideas fallidas, se decide que la mejor manera de dispensar agua de forma controlada era con una bomba de agua.
Inicialmente, se realizan pruebas simples con un microcontrolador (Arduino Nano), un transistor, una bomba de agua y una fuente de poder. Se utiliza un transistor tipo mosfet como un amplificador de una señal pwm (generada por el microcontrolador) con una fuente DC (fuente de poder) como ganancia. La señal pwm alimenta la bomba de agua y se mantiene un ciclo de trabajo constante. Se presume que, a un voltaje fijo de alimentación, la bomba tendrá un caudal de agua constante, entonces solo bastaría controlar el tiempo en que la bomba esté activa, para controlar el volumen de agua dispensado. Entonces, de esta forma se hace funcionar la bomba durante una cantidad constante de tiempo y se mide la cantidad de agua dispensada con un recipiente graduado y se repite el proceso en reiteradas ocasiones. Los resultados mostraron que la cantidad de agua dispensada no fue siempre la misma y que, en realidad, no había una correlación directa entre el tiempo de funcionamiento de la bomba y la cantidad de agua dispensada.
Dado estos resultados, se observan dos errores en el sistema. El primero es que, al apagar la fuente de alimentación de la bomba de agua (al terminar el tiempo dado para dispensar agua), el motor seguía girando por su propia inercia, por o que seguía dispensando agua, entonces durante ese lapso de tiempo, se dispensaba una cantidad indeterminada de agua que variaba de prueba en prueba, lo que claramente agregaba un error aleatorio al sistema. Este primer error se elimina agregando una válvula (una válvula de agua cierra o abre el paso de agua rápidamente) a la salida de la bomba de agua, entonces cuando se apaga la fuente de la bomba, la siguiente instrucción del microcontrolador es cerrar la válvula y así evitar que se siga dispensando agua por inercia del motor. El segundo error encontrado fue que, en un principio, se presumía que al tener la bomba de agua alimentada con un voltaje fijo (en este caso con una señal pwm con un ciclo de trabajo constante), ésta tendría un caudal de agua constante, dado que el motor de la bomba estaría girando a una velocidad constante, sin embargo, esto no fue así ya que la turbida, al girar, va tomando distintas cantidades de masas de agua, por lo tanto, el motor tendrá una carga mecánica distinta en diferentes instantes, lo que, a su vez, provocará que el motor gire a velocidades distintas y provoque que el caudal de agua dispensado por la bomba varíe en el tiempo.
La idea para solucionar este problema fue implementar un controlador PID para la velocidad de giro del motor de la bomba de agua, de esta forma se le exige al motor girar siempre a la misma velocidad, sin importar la cantidad de masa de agua que lleve la turbina, es decir, sin importar la carga mecánica sobre el eje del motor. Esto, ya que en casos que haya una mayor o menor carga sobre el eje, el controlador PID ajustará la velocidad rápidamente a la velocidad que se quiera, aumentando o disminuyendo el voltaje de alimentación (señal pwm) según corresponda. Entonces, al lograr fijar la velocidad de giro del motor en todo momento, se podría también fijar el caudal de agua y, por lo tanto, se podría controlar el volumen de agua dispensado solo controlando la cantidad de tiempo en que la bomba esté activa. Sim embargo, esta idea requería indispensablemente de un "encoder" (enconder es utilizado para medir la posición, velocidad o dirección de giro de un motor) para medir las revoluciones del motor, pero dado el diseño físico de la bomba de agua, era imposible implementarlo. Por esta razón, se debía modificar la tapa de la bomba.
Figura 16: Tapa final en resina
Figura 17: Modelo tapa con vista de interior
Figura 18: Todas las tapas impresas en PLA y Resina
Dada esta posible solución, se comienza extrayendo la tapa original de la bomba de agua, se toman las medidas correspondientes y se diseña un modelo en 3D para luego imprimir la pieza tal que cumpla con las restricciones necesarias para adaptar un encoder al motor de la bomba. Se decide utilizar un sensor de Efecto Hall y un imán diametral de neodimio para construir el encoder. Entonces, el diseño original de la tapa debe ser modificada para que en su interior, encaje una hélice (para la turbina de la bomba) que contenga un imán (Ver Figura 20) y que además por el exterior de la tapa encaje el sensor de efecto Hall tal que esté directamente expuesto al campo magnético del imán. Dada la complejidad de la pieza, fueron necesarias muchas iteraciones e intentos para desarrollarla de forma correcta. Esto se puede observar en la Figura 18, en la que aparecen las 5 piezas construidas en total, para obtener en el último casi una pieza funcional acorde a las restricciones. En la Figura 18, se observa una de las tapas construidas con un corte transversal, que se utilizó para verificar el correcto posicionamiento de todas las piezas. En la Figura 19 se observa como cómo la hélice encaja perfectamente con la tapa y el sensor de efecto Hall queda posicionado justo para leer el campo magnético del imán diametralmente. Cabe destacar que los prototipos de las tapas fueron impresas en PLA, sin embargo estas piezas no eran funcionales ya que no quedaban completamente selladasm por lo que el prototipo final se debió imprimir en resina (Se imprime en resina utilizando la impresora 3D Form2 disponible en el FabLab), como se observa en la Figura 16.
Figura 19: Sistema completo
Figura 20: Hélice con imán
Una vez terminado el prototipo de la tapa, se procede a implementarlo, el resultado de esto se puede observar en las Figuras 21 y 22, donde en la Figura 21 se muestra la bomba de agua con la hélice en el eje del motor, y a su vez, el imán sobre la hélice, y la Figura 22 muestra el prototipo final de la bomba de agua, con la tapa y el sensor de efector Hall implementados correctamente. Cabe destacar que el sensor utilizado permite medir solamente una vez por revolución. Entonces, se implementa un código en el microcontrolador que sea capaz de medir las revoluciones del motor y que a su vez las controle a través del controlador PID propuesto. El resultado de estas prueban fueron efectivas. Al mantener una velocidad de giro constante en el motor, se mantenía también constante el caudal de agua dispensado, entonces el control sobre el volumen de agua dispensado era fácilmente manejable controlando el tiempo en que se encuentra activa la bomba. Tras varias pruebas, se obtiene que para una velocidad de 100 revoluciones por segundo, se obtiene un caudal de aproximadamente 4.1[ml/s]. Esta fue la velocidad y caudal usados para las pruebas finales. Experimentando para verificar el correcto funcionamiento del dispositivo, se tomaron datos dispensando distintos volúmenes de agua entre 50[ml] y 500[ml] los que arrojaron un error máximo de pm 2[ml].
Figura 21: Bomba con hélice
Figura 22: Bomba completa
A este diseño original realizado en el prototipo se hiceiron pequeñas modificaciones en el diseño para mejorar la eficiencia mecánica y así aumentar la cantidad de agua dispensada. El nuevo diseño se puede observar en la Figura 23, en este diseño a diferencia del anterior se movió la salida del agua a la tangente del circulo que forma la carcasa de la bomba, con esto se espera que el líquido salga con una velocidad parecida a la velocidad angular que tenía justo en el momento antes de la sálida, a esto se le tiene que sumar la diferencia de presión entre el interior de la bomba y el exteior de la mangera, En el modelo antiguo, ló único que presionaba al agua al exterior era la diferencia de presión, toda la inercia era perdida debido a que el agua salía de forma radial como se puede observar en la Figura 16.
Figura 23: Diseño 3D nueva tapa
-Dispensador de Glicerina
Se necesita dispensar una cantidad de glicerina del orden entre 2 ml y 8 ml, para este caso se necesita una precisión aún mayor que para el de agua, ya que un error de 1 ml provoca en el biomaterial propiedades muy distintas. Para solucionar este problema se acordó utilizar parte de un proyecto anterior del FabLab. Este consiste, básicamente, en empujar el émbolo de una jeringa por la acción del giro de un tornillo provocado por un motor paso a paso. El ingeniero mecánico parte del equipo ya había trabajado en proyectos donde se hizo un dispositivo similar, por lo que puso a disposición todos los planos y diseños necesarios para construirlo. Dado esto, construir el dispensador de glicerina fue rápido.
Su funcionamiento se basa en que, al avanzar el émbolo, se dispensa una cantidad de glicerina, dado que se conoce el avance lineal de un giro de tornillo, se conoce la cantidad de pasos del motor en una vuelta y se sabe que el avance lineal del émbolo de la jeringa tiene una relación lineal y conocida con el volumen de glicerina dispensado, entonces era directo calcular el volumen de glicerina dispensado por cada paso del motor y éste es 0.02667 ml por paso del motor. Es evidente que, mientras más pequeña sea la jeringa o, más bien, mientra más pequeño sea el radio del cilindro que la conforma, más preciso será el paso de volumen de glicerina, sin embargo se decide ocupar una jeringa de 20 ml, dado que en este tamaño se tenía un paso de volumen suficiente y alcanzaba para varias mezclas antes de tener que volver a rellenar el cartucho (jeringa).
Figura 24: Sistema Glicerina
vista inferior
Figura 25: Sistema Glicerina
vista superior
Al sistema original se le hace una pequeña modificación agregandole sensores de finales de carrara de tal forma de que en el caso de que el motor a pasos pierda un paso aún así se pueda detectar cuando el émbolo este totalmente abierto o cerrado, esto se puede observar en la Figura 26. Para este conjunto las piezas que se tienen que comprar son los dos rodamiento lienales para ejes de 6 mm, dos ejes de 6 mm de diametro y de 40 cm de largo, una tuercas para el husillo de 8mm, el husillo de 8 mm de diámetro, un motor stepper Nema 17 y finalmente la jeringa de 60 ml, cabe decir que el motor Nema no requiere de gran torque dado que el sistema que transforma el movimiento rotacional del motor stepper a un movimiento lineal a través del husillo y la tuerca es bastante eficiente.Todo el resto de las piezas pueden ser impresas mediante impresora 3D en PLA.
Figura 26: Diseño Sistema Glicerina
Sistema de control de dispensado de agua y glicerina
Dado los dos sistemas anteriores, era necesario juntarlos en un mismo sistema, y un mismo esquemático eléctrico con el fin de simplificar la implementación de ambos sistema en el resto de la máquina. Bajo esta premisa, se hizo necesario construir una placa de circuito impreso (pcb) para el diseño el eléctrico. Se diseña un esquemático en el sofware Eagle con todos los componentes requeridos. Estos son, el microcontrolador (Arduino Nano), driver de motor paso a paso, un capacitor en la entrada del driver, 2 transistores tipo mosfet, 2 resistencias para polarizar los transistores, y conectores header hembra para conectar el motor paso a paso, la bomba de agua y la válvula de agua. Luego, se diseña la placa como se observa en la Figura 27. Una vez terminada, se corta en la máquina Roland Modela MDX20 obteniendose el resultado que se puede ver en la Figura 28. Luego, se soldaron todos los conectores hembra header, resistencias y condensador a la placa como se ve la Figura 29. Finalmente se montan el resto de los componentes como se ve en la Figura 30.
Figura 27: Diseño PCB
Figura 28: PCB impresa
Figura 29: PCB con componentes
Figura 30: PCB montada
Luego de tener la pcb del sistema lista, se conecta con el resto de los componentes, y se prueban nuevamente los sistema de dispensado, agregando también una pieza en 3D para el montaje de la válvula y la bomba de agua. Este sistema en conjunto se puede observar en las siguientes Figuras. Las pruebas resultaron satisfactorias, el sistema funcionó como se planteó inicialmente.
-Sistema revolvedor
Este sistema cumple la funcionalidad de extraer el revolvedor de la olla para permitir la manipulación segura de esta, se necesita que este sistema se eleve sin rotar para evitar que los cables que se unen al motor reductor DC (link a pagina de compra: https://hubot.cl/product/motor-reductor-3-9v-dc-sku-124/ ) se enreden u ocasionen un posible corte en los cables, Debido a esto se decide por un sistema accionado por un motor stepper más un husillo, el diseño final se puede observar en la Figura 31.
Figura 31: Diseño 3D sistema revolvedor
En la imagen anteriormente mencionada se observa que el motor Nema 17 esta sujeto al sistema móvil, esto es debido a que si se colocara en una posición fija en la parte superior, el husillo no se podría mover, y sobresaldría por la parte inferior del sistema molestando la manipulación de la olla. Por otra parte se colocan dos sensores de final de carrera, esto con el fin de obtener información de cuando el revolvedor llega a la posición de trabajo, o cuando este llega a la posición de máxima elevación. Estos sensores serán accionados por una especie de brazos que se despegan de la carcasa que sujeta el motor a pasos. Se decide utilizar un motor reductor con una veocidad ánguar de 50 revolución por minuto este tiene un torque de 10 [kgN*cm] y ocupa un voltaje de 6 volt, esto ayuda a tener un sistema electrico más simple dado que el arduino igual utiliza este voltajes en este rango. Además se colocan dos rodamiento lineales para asegurarse de que el sistema se eleve con el mínimo roce posible, esto es importante dado que el sistema por si solo ya es considerablemente pesado.
Las piezas que se tienen que comprar para este conjunto son un husillo de 8 mm de diámetro por 20 cm de largo, dos sensores final de carrera, un motor a pasos Nema 17 con un torque de entre 0,5 [kgN*cm] a 2 [kgN*cm], dos ejes de 6 mm de diametro de acero-plata, dos rodamientos lineales para ejes de 6 [mm] de diametro más el motor con caja reductora ya mensionado. Por otra parte se tiene que fabricar una pieza de acrílico que cubra la parte frontal del sistema, (la Figura 31 muestra la parte posterior), esto con el propósito de que se pueda ver el mecanismo completo, pero que al mismo tiempo que ningún niño pueda meter la mano en el mecanismo o evitar que el pelo de alguien se pueda enredar. La paleta del revolvedor se piensa hacer con una maquina CNC en aluminio, la superificie en contacto con la olla será fabricada en plástico resistente a altas temperatura, el mecánismo de fabricación de este no se alcanzó a estudiar. Además de esto todo el resto de las piezas pueden ser impresas en impresoras 3D mediante impresoras de extrusión en PLA.
-Disposión de elemetos
Al tener todas las piezas listas se procede a definir la posición exacta de cada pieza, cabe decir que en este proceso algunas piezas tienes que ser rediseñadas (Aquí solo se presenta el diseño final).
Figura 32: Disposicion final
Figura 33: Compartimiento izquierdo
En la Figura 32 se puede observar la disposición final de todos los elementos, si observamos la Figura 33 se ve el lado izquierdo del modelo final, en este sector se decide dejar dos compartimientos en vez de uno como se había pensado inicialmente, esto con la intención de proteger los componentes electrónicos de los líquidos. Finalmente se decide que para almacenar el agua, se utilizará un frasco de vidrio utilizado generalmente para almacenar conservas. Por otro lado la bomba hidraulica queda en una posición elevada con el fin de evitar que esta se pueda mojar, lo que podría ocasionar daños al motor. Estos compartimientos estan sellados en todas sus caras por placas "aluminio sandwich" a excepcion de la cara izquierda que sería forrada por acrílico, con el propósito de que el usuario o persona interesada pueda observar la disposición de los elementos. Esto se puede observar en la Figura 32.
En la Figura 34 se puede observar gracias a una vista superior como se deja la disposicion final de los tornillos sin fin engargados de dispensar el material sólido y por otro lado la posición del sistema encargado de elevar el revolvedor, además en esta imagen se puede observar que debajo de los tornilos sin fin se encuentra el sistema de pesaje que resalta por el color azul de la carcasa.
Figura 34: Disposición final tornillos sin fin
Si se realiza un corta como el que se puede apreciar en la Figura 35 un detalle de un corte realizado a la altura D-D, en este detalle se puede apreciar lo cerca que queda el sistema de pesaje, ubicado al lado derecho, del sistema encargado de elevar el revolvedor, esto obligó a que el largo del recipiente que contendría el material sólido sea el menor posible de forma que el material solido caiga en la olla y al mismo tiempo quede espacio para el sistema del revolvedor. Además en esta misma imagen se puede observar al lado derecho la disposición de la cocina a inducción.
Figura 35: Detalle sistema de pesaje
2.2.2 SOFTWARE
Diagnosticar Necesidades del Sistema
Los requisitos que debe cumplir la aplicación son, que:
La interfaz sea simple, intuitiva y pensada para usuarios de competencias diversas.
El código debe estar documentado.
Funcione para múltiples usuarios, en diferentes plataformas.
Propuesta de Modelo de Interacción
Después de discutir herramientas, lenguajes, metodologías y tecnologías a utilizar, se propone el siguiente modelo de comunicación entre la aplicación, el servidor y la máquina, y cómo interactua el usuario con la interfaz:
En este modelo, la parte del usuario representa su interacción con la interfaz, y la máquina tiene 2 arduinos, uno que servirá para accionar el proceso de mezclado y cocción, y uno para monitorear el estado de este.
En base a ese modelo, esta parte se divide en las siguientes etapas:
Ingresar a la aplicación y la mezcla: Trabajo en la interfaz que vería el usuario al momento de ingresar a la aplicación e indicar las cantidades de los distintos ingredientes.
Verificaciones: Trabajo en las verificaciones para el correcto funcionamiento de la máquina
Verificaciones de usuario: la aplicación debe verificar que los valores ingresados para la mezcla sea correctos (en el lado del cliente).
Verificaciones del servidor: Revalidar los datos del Usuario. Ver que exista el suficiente material en la máquina para los valores ingresados por el usuario.
Verificaciones de la máquina: Ver que la olla esté puesta.
Envío de datos: Trabajo en enviar los datos ingresados por el usuario al servidor, y de ahí a la máquina para que comience la mezla, e indicarle al usuario que los datos fueron guardados y enviados sin problemas. Como el proceso solo depende de la cantidad y tipo de elementos ingresados, el computo de movimientos se puede realizar de forma precisa y exclusiva por la máquina (i.e, no es necesario un lenguaje especial de coordenadas, o movimientos, propios de otras máquinas de prototipado).
Vista de los datos: Trabajo en el monitoreo del proceso, para ver la temperatura. También trabajo en darle la opción al usuario de pausar (y reanudar) o detener completamente la cocción en casos de ser necesario.
Evaluación del estado actual de acuerdo al modelo
A continuación, se prueba la aplicación existente, encontrándose el siguiente problema a solucionar: velocidad de respuesta de la Raspberry como servidor es lenta, demoraba alrededor de 40 segundos en cargar cada pantalla. Las posibles causas son:
Insuficiencia de procesador.
Ineficiencia del proceso de conexión.
Página demasiado pesada.
Framework ineficiente (Flask).
Se investiga cuál de las causas anteriores es la más probable para solucionarla:
Respecto al punto dos, se prueba con hacer ping entre la raspberry distintas direcciones IP de la red local. Funcionó bien, desde la interfaz del Router, en Chromium y desde el terminal. Desde el terminal era un poco más rápido el proceso. Usando la misma red, se hace ping entre equipos de mayor rendimiento laptops del equipo, y se verifica que la diferencia de velocidad no es considerable, siendo a penas unas centesimas de milisegundo más rápido.
Para evaluar el punto tres, se verifica la velocidad de envío de datos del Router, ancho de banda teorico, y se usan datos de prueba para verificar si la página pudiera contener demasiado material extra (CSS, JS, imágenes) que ralentizaran el proceso de carga. Se verifica que la totalidad del proyecto podría transferirse en pocos segundos. A traves de la copia por SSH.
Para determinar si hay insuficiencia del procesador se analiza el funcionamiento de un caso de uso normal (Usuario ingresando a la página e ingresando los datos a traves de las diferentes páginas. Y monitoreando el rendimiento con el comando TOP, en la terminal de la Raspberry.
Observaciones: Había un proceso (pedido o request de cierta página web abierta) que no se ejecutó, pero trataba de realizarse constantemente (1 vez por segundo aproximadamente), lanzando un error, incluso luego de cerrada la interfaz. La cantidad de memoria y de procesador, analizado con TOP, se veía en niveles normales, sin embargo la RPi se quedó "pegada", al punto que hubo que reiniciarla de manera forsoza, se constato que el este proceso se repetía consistentemente. Se verifica que es una función del framework.
Cambio de Framework
Se decide cambiar el framework de trabajo de Flask a XAMPP (Apache, PHP, MySQL), por lo que se recosntruye el estilo (CSS) en XAMPP y se cambia la sintaxis para adecuarse a los nuevos lenguajes. Finalmente, la aplicación (del lado del Usuario) quedó en HTML, CSS (con Bootstrap), Javascript, viendo de la manera siguiente:
Vista de la aplicación en celular y en computador.
En esta iteración, el código para la interfaz (las pantallas principales, siguiendo el flujo que seguiría el usuario) es la siguiente:
Landing page
Código disponible en: https://github.com/Shellowb/BioMixer/blob/master/templates/index.html
Que resulta en la siguiente pantalla:
Preparar la mezcla
Código disponible en: https://github.com/Shellowb/BioMixer/blob/master/templates/prepare.html
Que resulta en la siguiente pantalla:
Monitoreo de la mezcla
Código disponible en: https://github.com/Shellowb/BioMixer/blob/master/templates/mixing.html
Que resulta en la siguiente pantalla:
3 MATERIALES Y TECNOLOGÍAS UTILIZADAS
Como ya se ha mencionado, para trabajar en el proyecto, se ha dividido en software y hardware. Por lo tanto, los materiales y tecnologías utilizadas, en resumen, para cada parte fueron:
Materiales y tecnologías utilizadas.
Hardware
Software
Cocina de induccion Digital-Negro
Raspberri Pi 2B+, cable de alimentación, SD (boot)
Olla pequeña 750 ml
Arduinos, cables de conexión.
Frasco Conservero 1000 cc
Computadores personales (para el desarrollo)
LMK8UU, Rodamiento lineal soporte Cuadrado (8mm)
Componetes eléctricos de prueba (protoboard, leds, cables dupont, potenciometro)
Acople flexible de aluminio
Monitor genérico
Tuerca para varilla roscada (husillo) TR8*8
Mouse
Motor stepper bipolar Nema 17 (2.55V, 1.7A, 41.2 N.cm, 1.8º)
Cable HDMI (conexión RP a Monitor)
Motor Stepper bipolar NEMA 17 (3.06V, 1.7A, 56N.cm, 1.8°)
IDE Arduino
Motor reductor para agitador
Browser
Servo Emax ESO8MAIL analog servo
OS Raspian
LMK6UU Rodamiento lineal con soporte cuadrado
Editor de Texto
Monolithic Power Sistems Inc. MA700GQ-P (Sensor efecto Hall)
Eagle
Inventor
MakerBot Desktop
Makerbot replicator 2
impresora Resina Estándar Form 2 Tránslucido (Clear)
4 PROYECCIONES
Se proyecta el término del proyecto por otro equipo de trabajo, continuando con los desarrollos iniciados por el equipo aquí representados. Y así, en un futuro cercano, que la máquina pueda ser utilizada como material de estudio y desarrollo experimental para la estandarización de biopolímeros.