Controlar Arduino Usando La Teachable Machine
by Diego Ojeda in Circuits > Arduino
1155 Views, 3 Favorites, 0 Comments
Controlar Arduino Usando La Teachable Machine
En este proyecto veremos como usar la teachable machine para darle instrucciones a un Arduino nano. La usaremos para mover un servo.
Supplies
Necesitaremos un ordenador con webcam, un arduino, un servomotor y acceso a internet.
Crear Nuestro Modelo Con La Teachable Machine
Ve a Image Model - Teachable Machines. Crea las diferentes clases (objetos) que quieras crear. Dale a las clases un nombre que puedas reconocer más tarde. Puedes subir las imágenes de cada clase usando la webcam. Suele ser buena idea poner una clase vacía. A continuación haz clic en "Preparar modelo". Una vez haya cargado el modelo podrás comprobar que el modelo funciona bien usando la webcam.
A continuación vamos a exportar el modelo de la siguiente manera: Haz clic en exportar modelo, en Tensorflow (no Tensorflow.js), en Keras, y en descargar modelo. Extrae ese archivo y guarda los archivos en una carpeta.
Tendrás que tener 2 archivos: uno llamado keras_model.h5 y otro llamado labels.txt
Instalar Python 3.10
Ahora vamos a instalar python. Para ello vamos a ir a la Microsoft Store e instalarlo desde allí. Para este tutorial he usado python 3.10.
A continuación vamos a instalar diferentes modulos para ello vamos a usar pip. Para verificar si lo tienes instalado, escribe en el terminal : py -m ensurepip --upgrade normalmente debería estar instalado, pero si no lo tienes instalado, sigue este tutorial aquí .
Antes de empezar a instalar los paquetes hay que hacer que Windows acepte los archivos de mas de 260 caracteres de largo, para ello sigue este tutorial aquí.
A continuación introduce los siguientes comandos en el terminal de windows:
pip install opencv-python
pip install "tensorflow<2.11"
pip install pyserial
Ahora pon los archivos keras_model.h5 y labels.txt en una carpeta llamada keras y pon el programa TeachableMachineaArduino.py al mismo nivel que la carpeta.
Downloads
Modificar El Programa
Para que funcione el programa hay que modificar 2 cosas:
1) en la línea 15 pon el puerto COM al cual esté conectado tu arduino
2) en las líneas 136 y 138 cambia "yo" y "nada" por los nombres que le hayas dado a tus clases en la teachable machine (si tienes más de 2 clases tienes que añadirlas aquí)
3) OPCIONAL: Puedes cambiar la precisión que deseas modificando la línea 89, por defecto la precisión es de 90%.
Conecta tu arduino por USB y ejecuta el codigo python si todo funciona bien deberias de ver una ventana con la cámara abierta que detecta las diferentes clases
Si tienes este error al ejecutar el archivo: Could not find the DLL(s) 'msvcp140_1.dll'. TensorFlow requires that these DLLs be installed in a directory that is named in your %PATH% environment variable... tienes que ir a este link, instalar la versión correspondiente y ejecutar el programa. Si tras reiniciar el ordenador sigues teniendo el error, prueba a copiar esos archivos (msvcp140_1.dll y msvcp140.dll) donde tengas instalado python y asegúrate que esa carpeta esté incluida en la variable de entorno %PATH% de tu sistema (tutorial aquí) .
Programar El Arduino
Para ver que números ha recibido el arduino podemos usar el programa Comunicacion.ino.
Si queremos usar los resultados de la teachable machine para mover un servo u otro podemos usar el programa MoverServos.ino.
Este programa es muy sencillo y no es más que un ejemplo. Ahora te toca a tí hacer cosas más grandes con Teachable Machine y Arduino!