En este proyecto vamos a realizar el control de un pestillo mediante una clave de acceso.
Consiste en montar un servo en el eje de un actuador lineal que funcionará como pasador del pestillo, permitiendo la movilidad de esté.
La idea es que al introducir la clave, el servo cambie de posición dependiendo del estado anterior al que se encontrara. Quiere decir, que si estaba abierto, se cerrará, y si estaba cerrado, se abrirá.
Vamos a necesitar:
Tarjeta MIOIO
Shield MIOIOBOT
Piezas Pestillo en formato STL
![]() |
![]() |
![]() |
![]() |
También nesesitarás:
1 bluetooth usb
1 mini servos S9
1 portapilas.
En este caso vamos a utilizar el entorno de desarrollo MIOIO App Inventor 2, ya que para este propósito es más que suficiente.
Una vez montada la estructura con el servo, procedemos a conectar el servo al Shield MIOIOBot en los pines auxiliares de la siguiente forma:
DISEÑO
Vamos ahora a realizar el programa que controlará este servo.
Los bloques en la parte del diseñador que vamos a necesitar son:
- 1 bloques servo MIOIOBOT.
- 12 botones para introducir la clave de acceso y para borrar o aceptar la operación.
- 1 bloques etiqueta que nos mostrará el código que estamos introduciendo.
- 1 bloque notificación que nos indicará si el código ha sido aceptado.
Arrastramos todos esos bloques en el diseñador con la siguiente estructura:
BLOQUES
Ahora nos vamos a la parte de bloques y ponemos los bloques según la siguiente figura:
En los bloques del programa podemos ver como hay una variable global que es la que posee la clave de acceso, la hemos puesto aquí para facilitar el programa y no tener que introducirla desde la aplicación. Y otra variable global "estado" que almacenará la situación del servo ya sea abierto, o cerrado.
Los botones del 1 al 10 pertenecen al teclado numérico que nos hemos creado y sus eventos de Clic únicamente introducen su valor en la casilla de texto.
El botón 11 es para borrar y su evento Clic borra todo el contenido del campo de texto.
El botón 12 es para aceptar la operación, y su evento Clic compara el contenido del campo de texto con la variable global del password. En caso de ser correcto o incorrecto nos avisará con el evento del notificador. En caso de ser correcto, el servo se moverá dependiendo del estado anterior al que se encontraba, que lo conocemos gracias a la variable global "estado".