jueves, 2 de septiembre de 2021

Proyecto Ascensor con Arduino

 

  • Primeros paso de diseño del ascensor y rúbrica de seguimiento del proyecto / evaluación.

    Hola a tod@s.

    Para realizar el proyecto del ascensor hemos comenzado repasando las fases del proyecto tecnológico y la diferente documentación a preparar a la hora de afrontar un proyecto.
    Para repasar el diseño y presentación de ideas mediante croquis hemos practicado dibujando estos dos ejemplos antes de presentar nuestro propio croquis con la propuesta del ascensor.


    Croquis obtenido del pdf de la web 


     

    Croquis obtenido del pdf de la web

    Hemos elegido estos dos ejemplos porque entre ambos reúnen las características más importantes que debe tener un croquis completo, el cual nos debe informar de la forma del objeto, su partes, funcionamiento y medidas o cotas.

    Como decíamos, una vez realizados los dos croquis de ejemplo hemos realizado el de nuestra propuesta de diseño para el ascensor teniendo en cuenta que debe ser un ascensor que tenga planta baja y dos plantas más por encima, cada una de ellas con paradas a 10cm y 20cm. 

    Para la evaluación de las diferentes fases del proyecto en la primera parte se ha creado la siguiente rúbrica:


    La rúbrica incluye todas las partes referentes a la elaboración de la documentación del proyecto, construcción de la maqueta y programación de la misma.

    En los siguientes temas veremos como comenzar a programar con arduino los diferentes elementos del control del ascensor.

    Un saludo,
    Raúl.

    • Iniciación a arduino y bitbloq

      Hola a tod@s.

      En este primer tema vamos a conectar nuestra controladora de arduino con el ordenador y cargaremos un sencillo programa de prueba, el blink, que hará parpadear un led.

      Las controladoras de arduino UNO que vamos a utilizar tienen un led incorporado (y asociado al pin 13) que permite comprobar que el programa está funcionando correctamente sin necesidad de añadir ningún componente extra a la controladora.

      El programa arduino, su entorno de programación (denominado el IDE de arduino) puede descargarse en la web: https://www.arduino.cc/en/Main/Software

      Para este primer ejercicio podemos seguir los pasos de este vídeo: 

      Como podréis ver en el vídeo el programa blink no hace falta crearlo ya que forma parte de los programas base de ejemplo de arduino (minuto 3:45 del vídeo).

      Veremos también que es imprescindible seleccionar en herramientas (Tools) la placa que estamos usando (minuto 7:00 del vídeo) y el puerto COM (minuto 7:20 del vídeo) en el que aparezca que se ha conectado nuestra placa (debe ser un puerto COM diferente al 1).

      Una cosa más antes de entrar en el vídeo es que si la controladora UNO que tenemos no es la original de la marca arduino si no una clónica tendremos que instalar unos drivers tal y como explican en esta web desde la que también se pueden descargar para los diferentes sistemas operativos: https://www.geekfactory.mx/tutoriales/tutoriales-arduino/driver-ch340-para-arduino-chinos-o-genericos/

           


      El vídeo anterior pertenece a una serie de vídeos para iniciarse en bitbloq 2. Aquí podéis ver el vídeo presentación del curso:


      USANDO BITBLOQ 2:

      Gran parte de la programación para arduino que haremos será utilizando Bitbloq 2, el entorno de programación por bloques para arduino que ha creado la empresa BQ. Gracias a bitbloq simplificaremos la parte un poco más farragosa de evitar cometer errores de escritura al realizar nuestros programas y podremos centrarnos en la parte lógica y de programación de algoritmos, lo que se denomina la parte de pensamiento computacional.

      Para utilizar bitbloq tendremos que registrarnos en su web: https://bitbloq.bq.com/#/

      En el siguiente vídeo tenemos una explicación bastante detallada de los primeros pasos para enceder un led con bitbloq. Aunque en el vídeo utiliza la placa zumkit de bq en bitbloq se puede seleccionar también la genérica arduino UNO.

      Algo importante a la hora de cargar programas en arduino usando bitbloq es que debemos tener instalado el componente web2board en nuestro ordenador. Si no lo tenemos instalado bitbloq nos avisará y nos pedirá que lo descarguemos e instalemos. Por otro lado, si lo tenemos instalado, nos saltará una ventana pidiendo que abramos en una nueva ventana una consola de MSDOS donde se ejecutará este componente. Es imprescindible decir que sí a esta pregunta y no cerrar la consola de MSDOS durante el tiempo que estemos trabajando con btibloq.  


       

       

      El vídeo anterior pertenece a una serie de vídeos para iniciarse en bitbloq 2. Aquí podéis ver el vídeo presentación del curso:

       

       

      Una vez que ya sabemos como encender un led con bitbloq será bastante fácil usando los bloques realizar el programa blink para que el led se encienda y apague.

      En el siguiente tema veremos como conectar a nuestro arduino los diferentes componentes electrónicos de nuestro proyecto de ascensor.

      Un saludo,

      Raúl.


      • Conexión de componentes a arduino y protoboard

        Hola a tod@s.

        En este tema haremos una recopilación de imágenes y algún vídeo explicativo sobre la conexión de los componentes para nuestro proyecto del semáforo.

        Para poder hacer este proyecto necesitaremos por un lado conectar los leds:

        Tal y como dicen en esta web:

        "Hay dos tipos de personas, los que conectan los LEDs con resistencia y los que no… y solo una de ellas lo está haciendo bien."

        Es por eso que nosotros lo vamos a hacer bien, es decir, con resistencia.


        Para recordar el código de colores de la resistencia podemos usar estas imágenes en función de que lleve 3 o 4 lineas de colores + la tolerancia.




        Otro componente muy importante que instalaremos serán los pulsadores:


        Conectar los componentes es una fase que parece que tiene menor importancia que la de programar, pero sin duda es realmente importante prestar la máxima atención y entender porque se conectan los componentes de esta manera para evitar fallos que puedan dañar a la placa o los componentes y además nos puedan hacer dar mil vueltas a la programación sin darnos cuenta de que el problema no es de código si no de instalación y conexión.

        Un saludo,
        Raúl.


        • Parpadeo/Blink con bitbloq e iniciación a las variables y los condicionales

          Hola a tod@s.

          En este tema vamos a ver los primeros pasos de programación de arduino usando bitbloq: https://bitbloq.bq.com/#/ para conseguir programar nuestro ascensor de 3 paradas (planta baja, primera y segunda).

          Lo primero como siempre será comprobar si somos capaces de crear y cargar el clásico programa de parpadeo (blink) de un led conectado al pin 13 de nuestra placa:



          Con el fin de aprender un nivel más avanzado de programación y practicar con el uso de las variables nos hemos propuesto el reto de conseguir que nuestro led haga cada vez parpadeos más lentos. En la siguiente imagen puede verse una forma de solucionar este ejercicio:


          Por último, para iniciarnos en el uso de los condicionales, nos hemos puesto el reto de conseguir que  desde los 100ms de parpadeo el led parpadee mas lento y que cuando haga un parpadeo de encendido 1000ms pase a ir cada vez más rápido hasta los 100ms y así sucesivamente.


          Un saludo,
          Raúl.

          • Iniciación al uso de pulsadores con arduino/bitbloq

            Hola a tod@s.

            El siguiente paso para iniciarnos en los componentes de nuestro semáforo será la programación de los botones/pulsadores.
            Es muy importante aprender a conectar el pulsador a la protoboard y arduino para que funcionen correctamente. Para ello necesitaremos 3 cables y una resistencia. La conexión directa a arduino se realiza de la siguiente manera:


            Cuando tengamos varios botones las conexiones de todos ellos a 5V y GND las haremos en la protoboard.

            Comenzaremos por un programa sencillo en el que al pulsar un botón consigamos encender una luz.



            Como puede verse en el código usamos una variable de estado "boton_baja" (para declarar variables de tipo entero hay que usar las funciones avanzadas) que tomar el valor del botón que hemos conectado.

            Un siguiente paso sería añadir dos botones y dos leds más para así tener los 3 pulsadores que usaremos en nuestro semáforo. En este ejemplo tenemos 3 botones activando 3 leds de colores diferentes:




            Hasta ahora para que el led esté encendido hemos tenido que estar pulsando el botón constantemente. En el siguiente programa basado en el anterior nos proponemos conseguir que esto no sea necesario y que una pulsación del botón deje el led ya encendido todo el tiempo que es lo que es un futuro querremos que haga el motor del ascensor.




            Un saludo,
            Raúl.

            • Primeros pasos de control de motor mediante pulsadores

              Hola a tod@s.

              En este tema vamos a conectar un motor de rotación continua y programar la forma de controlarlo mediante los botones que hemos estado usando anteriormente para las luces. Además de las opciones de giro del motor en sentido horario y antihorario y la opción de pararlo, usaremos el bloque verde de bitbloq que nos permite escribir código directo de arduino para poder usar las opciones attach y detach que no existen en bitbloq.





              El siguiente paso será añadir a nuestro arduino los sensores que detecten la posición exacta del ascensor en cada momento para así saber en que planta está y poder darle las ordenes adecuadas al motor para que el ascensor vaya a la planta desde la que se le llama.

              Un saludo,
              Raúl.

              • Planos eléctricos y despiece acotado

                Hola a tod@s.

                Para el diseño final de nuestros proyectos además de los planos acotados, las herramientas y fases de fabricación, tendremos que añadir los planos eléctricos de los diferentes componentes del proyecto.

                En la siguiente web podemos encontrar una imagen resumen de los más utilizados:



                En esta otra web aparecen algunos algo más avanzados.


                Con esta simbología podremos hacer nuestros propios esquemas eléctricos como los de los siguientes ejemplos:

                Desde un sencillo encendido de una bombilla con interruptor:


                A algunos más complejos como este temporizador ajustable 1-10 minutos.


                En nuestro caso al incluir arduino en muchos de nuestros proyectos, los esquemas eléctricos tendrán un esquema parecido al de la siguiente figura:



                Podemos realizar nuestros esquemas con un procesador de texto, como Word por ejemplo, incluyendo imágenes y utlizando las librearías de símbolos. También existen aplicaciones específicas online con las que podemos diseñar e incluso probar circuitos de manera bastante sencilla.


                Dos ejemplos son: 

                CIRCUIT LAB Que también es simulador

                y

                EasyEDA con muchas opciones de diseño y librerías


                En los siguiente vídeos podemos ver como iniciarse en el uso de CircuitLab:



                El esquema eléctrico también podremos realizarlo de manera detallada en tinkercad circuits: https://www.tinkercad.com/ Un ejemplo de como podría quedar nuestro ascensor:



                Además de los planos eléctricos tendremos que realizar un despiece acotado de cada de las piezas que vamos a construir para nuestro proyecto. En la siguiente imagen podemos ver un ejemplo de despiece acotado de todas las piezas que componen un rodillo de campana:


                Un saludo,
                Raúl.

                • Soluciones a la programación del ascensor

                  Hola a tod@s.
                  Durante la primera parte del proyecto hemos trabajado las diferentes fases de programación del ascensor:
                  Proyecto Ascensor.

                  Fase 1: Encendido de luces indicadoras de planta en modo pulsador.
                  Fase 2: Encendido de luces indicadoras de planta en modo interruptor.
                  Fase 3: Control del giro del motor en ambos sentidos y stop.
                  Fase 4: Sensores de detección del ascensor.
                  Fase 5: Programación completa del ascensor: pulsadores, motor y sensores.

                  En la siguiente carpeta: https://drive.google.com/drive/folders/1EKGmvvC3VYdyyJH2Ll1o1K-E4h0sWpTa?usp=sharing puedes encontrar los archivos de bitbloq de programación de las 4 primeras fases. La quinta, que permite controlar la maqueta del ascensor completamente de manera muy parecida a un ascensor real, la resolveremos durante esta segunda fase. En las siguientes imágenes puedes ver como programarla.











                  Un saludo,

                  Raúl.


                  • Ejemplos de maquetas proyecto ascensor

                    Hola a tod@s.
                    En el siguiente enlace podéis ver varios proyectos de ascensores, algunos con muchas características similares al tipo de ascensor que estamos construyendo: Varias plantas, finales de carrera...


                    Algunas imágenes de ejemplo de los vídeos:




                    Un saludo,
                    Raúl.

                    • Fase 5: Programación completa del ascensor: pulsadores, motor y sensores.

                      Hola a tod@s.

                      En este tema vamos a poder descargar el código de una de las posibles soluciones para realizar la quinta fase de la programación del ascensor, que permite controlar la maqueta del ascensor completamente de manera muy parecida a un ascensor real, en la sección 8 de este curso podías descargar el resto de fases del proyecto y ver las imágenes de como resolver esta última.

                      En este enlace puedes descargar el archivo de bitbloq completo.

                      Un saludo,
                      Raúl.
                      • Programación ascensor. Seguridad en caso de fallo de sensor

                        Hola a tod@s.

                        Continuando con el proyecto del ascensor hemos comprobado que podíamos mejorar la seguridad del funcionamiento en caso de fallo de los sensores.

                        Tal y como estaba programado anteriormente el ascensor cuando le llamábamos desde una planta en la que no estaba el ascensor se movía en ese sentido hasta llegar a ella, pero al probarlo hemos comprobado que si está en la planta baja y le llamamos desde la planta primera y el sensor que detecta que ha llegado a la primera no hace buen contacto y el ascensor sigue subiendo ya nada lo detendrá ni siquiera al llegar a la segunda planta y por tanto el motor seguirá girando aunque llegue al techo.
                        Lo mismo ocurriría si estuviese en la planta segunda y le llamamos desde la primera, si el sensor no funciona el motor seguiría funcionando incluso cuando este en el suelo.

                        Repasando nuestro programa es en estas dos partes que hemos marcado en rojo donde deberemos actuar:


                        En la primera estaría en la planta baja "on_baja = 1" y le llamamos desde la primera "llamar_1 = 1" y en la segunda estaría en la planta segunda "on_2 = 1" y le llamamos desde la primera "llamar_1 = 1".

                        Anteriormente lo teníamos programado así:


                        Si esta en la planta baja y le llamamos desde la planta primera activamos el motor y le ponemos a girar en sentido antihorario. A continuación ponemos un mientras que no hace nada (es decir el programa no avanza más allá de ese mientras) mientras se cumpla la condición que le ponemos que es que el sensor_1 sea 0. Es decir que el programa no va a hacer otra cosa y por tanto motor va a estar girando mientras el sensor_1 el de la planta primera este a 0. Cuando ese sensor detecte algo el programa continua en la siguiente línea que como puede verse para el motor y pone a 0 la variable de que se ha llamado al ascensor.

                        Como hemos explicado antes con este programa si el ascensor no hace buen contacto con ese sensor y sigue subiendo por encima de él ya nada lo va a parar. Es por eso que podemos añadir una medida de seguridad haciendo que en ese caso pare también si detecta que ha llegado a la segunda planta es decir si el sensor:2 pasa a ser 1.
                        La programación quedaría de la siguiente manera:


                        Como puede verse en la parte marcada en rojo para que el bucle mientras sea cierto y por tanto el motor siga girando ahora es necesario que se cumplan las dos condiciones de que los dos sensores estén a 0, con que uno de los dos sensores, el de la planta 1 o el de la planta 2 pase a ser 1 el mientras ya no se cumple y el programa pasa a la siguiente linea que lo que hace es parar el motor.

                        Lo mismo tendremos que hacer para el caso de que el ascensor este en la segunda planta y le llamamos desde la primera:


                        En este caso con que el sensor de la primera o el de la planta baja pasen a ser 1 el motor se pararía.

                        De esta manera mediante una sencilla modificación en la programación podemos añadir un sistema extra de seguridad a nuestro ascensor en caso de fallo al pasar por un sensor.

                        Un saludo,
                        Raúl.

                        No hay comentarios:

                        Publicar un comentario