Mục lục:
- Bước 1: Nguyên liệu Que Necesitamos
- Bước 2: Iniciando Con Raspberry Pi
- Bước 3: Conectando Sensores Y Actuadores Al Raspberry Pi
- Bước 4: Chuẩn bị Node-RED En El Raspberry Pi
- Bước 5: Programando El Sistema Cognitivo
- Bước 6: Conectando a Watson
- Bước 7: Inteligencia nhân tạo
- Bước 8: Construyendo Un Hardware
- Bước 9: Imprimiendo El Mecanismo De Dispensado
- Bước 10: Cortando En Láser El Case
- Bước 11: Phần cứng Ensamblando El
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
En este aprenderemos como hacer un dispensador de alimento para sus mascotas, por lo chung, o al menos en mi caso siempre he querido hacer un dispensador automático, sin cấm vận, tengo un perro y un gato. Por ende no tengo una forma de saber cuál súc vật es para dispensar el alimento adecuado.
He encontrado la solución, se trata de un sistema cognitivo que hace uso de la Inteligencia Nhân tạo para que, por medio una cámara haga un procesamiento de imagen para recnocer, de cuál động vật se trata y dispensar el alimento adecuado.
Lógica del sistema:
- La mascota se acerca y es Detada bởi un sensor de distancia
- El Sistema toma una foto del động vật
- La procesa y quyết định qué động vật es
- Saluda a la mascota (Con voz humana)
- Dispensa el alimento respectivo
- Envía un Correo al doño indicando que ya le ha dispensado alimento
Bước 1: Nguyên liệu Que Necesitamos
Este proyecto lo vamos a realizar en suggest, así que es momento de vayas a comprar, pedir, buscar o la manra que tengas en mente, los siguientes materiales:)
- 1 Raspberry Pi, les recomiendo el modelo 3, pero las anteriores tambien funcionan!
- 1 Cámara para raspberry pi
- 1 cảm biến ultrasónico HC-SR04
- 2 Động cơ điều khiển (Pueden useizar cualquier otro, yo usé este porque era el que tenía a mano!)
- 2 động cơ bước
- 1 loa (Parlantes)
- 2 tubos T de PVC de pulgada y media (Las encuentran en cualquier ferretería por menos de 2000 colones cada una.)
- Una lámina de acrílico de 3mm para cortar, yo useicé acrílico, ustedes pueden usar cualquier otro material, como MDF.
- Una impresora 3D y cortadora láser que en Costa Rica, pueden encontrar en Inventoría LEAD.
Bước 2: Iniciando Con Raspberry Pi
Raspberri Pi es un microprocesador muy poderoso que nos permite desarrollar proyectos que favieran un alto poder computacional. Es tương tự một un Arduino con la diferencia que Raspberry Pi nos permite Correr un Sistema Operativo dentro de la tarjeta de desarrollo.
En este caso yo usaré raspbian que es una Distributionución de linux, Open Source, desarrollada especialmente para Correr sobre Raspberry Pi.
-
Primeros pasos con Raspbery Pi
- El primer paso es descargar el raspbian como zip.
-
Ahora debemos quemarlo en una micro SD, para ello: Usuarios MAC / Linux:
- Abrimos la terminal o consola del sistema, como se muestra en la foto.
-
Usaremos ciertos comando que explicaré para Familrizarnos y al final daré un ejemplo de uso. diskutil list => Este comando me devuelve la lista de todos los discos que encuentre la pc (una SD puede tomarse como un disco externo.) Debemos buscar cuál es el nombre asignado a las SD, por lo chung puede ser "disk1", para efectos de este turorial le llamaremos "TuDisco". diskutil deleteDisk JHFS + UntitledUFS <TuDisco> => Permite borrar y formatear el disco escogido (TuDisco).
diskutil unountDisk / dev / <TuDisco> => Desmonta el disco para no poder useizarlo.
sudo dd if = of = / dev / <TuDisco> bs = 1m => Quema el sistema operativo dentro de la SD, podría durar hasta 1 hora en este paso.
diskutil eject / dev / <TuDisco> => Expulsa el Disco
Un ejemplo de uso de este, se encuentra adjunto en las fotos, la sintáxis del ejemplo sería así
danh sách diskutil
diskutil deleteDisk JHFS + UntitledUFS disk1 diskutil unountDisk / dev / disk1 sudo dd if = / Users / bernalrojas / Downloads / 2017-11-29-raspbian-stretch.img of = / dev / disk1 bs = 1m diskutil eject / dev / disk1
Usuarios Windows: Pueden usar Win32Disk, que es una herramienta sencilla o cualquier otra de su elección
-
Ver Sistema operativo
- Debes conseguir una pantalla, un cáp HDMI, chuột y teclado.
- Conectalos y enciende la raspberry pi, verás que al igual que una computadora normal este va iniciar de la misma sencilla manra que cualquier otra (recordemos que es una computadora).
- Ahora puedes liên tục trabajando como una computadora normal o pueden accesar remotamente, así que lo haremos de esta ultima forma, para no Depnder de una pantalla para poder trabajar.
- Vamos a hacer uso de ssh para accesar remotamente, antes de quitar la pantalla abrimos vamos a ir a nuestra terminal y escribeimos "ifconfig" este comando nos va devolver la dirección IP de nuestro raspberry pi (Guardelan porque la necesitaremos en el futuro). Ahora pueden desconectar la pantalla.
- Vamos a ir a nuestra computadora y abrimos la terminal de la misma manra, y escribeimos ssh pi @ donde es la dirección que acabamos de recuperar en el paso anterior, deben sustituir por los números que les retornó. Pueden ver un ejemplo en las fotos para no perse en este paso.
- Nos va pedir la contraseña del equipo y una más de la raspberry que por default es "raspberry". Esto nos abrirá la terminal inmediatamente.
Bước 3: Conectando Sensores Y Actuadores Al Raspberry Pi
Cómo sabemos Raspberry Pi es un una tarjeta de desarrollo que posee pines GPIO que podemos configurar como entradas y salidas para nuestros sensores y actuadores. Nuestros cảm nhận con trai:
- Para el sensor de distancia usaremos un sensor ultrasónico. Este sensor funciona por ultrasonidos, como un murcielago… Funciona emitiendo una honda (Trigger pin) que rebotará en un objeto, el sensor la Recogbirá de vuelta (Echo pin) y ước lượng el tiempo que duró en regresar. Pueden ver la imagen adjunta que tomé de Zona Maker donde tienen un excelente tutorial para entender a fondo como funciona este sensor
- Para la visión nhân tạo el Sistema usará una cámara.
- Como motor usaremos un Stepper Motor.¿Qué es un Stepper Motor?
- Para mover el motor usaremos Driver động cơ. En mi caso no tenía disponibles de estos pequeños, así que usaré los que tenía a mano, estos (La diferencia es que estos allowen manjar una corriente mayor). * Nota: * El Diagrama adjunto se muestra otro driver (El rojo, es un trình điều khiển đơn giản) Con el que yo estoy utlizando (el TB6560) los pines "dir" y "step" los reemplazamos por "CW +" y "CLK +" respectivamente. Y thua 2 GND thua reemplazamos bởi CLK- y CW-.
Bước 4: Chuẩn bị Node-RED En El Raspberry Pi
Ahora vamos a comenzar a preparar todos los paquetes necesarios para hacer que nuestro sistema funcione con Node-RED, que es un IDE de programación gráfico muy sencillo de useizar.
Antes de comenzar a preparar todo es necesario tener nuestro Equipo factizado, para ello ejecutaremos los siguientes comandos en nuestra terminal:
sudo apt-get cập nhật
sudo apt-get dist-upgrade update-nodejs-and-gật gù
Estos comandos nos realizaran nuestro Equipo. El último comando, nos permite tener nuestro entorno Node-RED realizado para poder instalar las dependencias que vamos a necesitar en este step, es importanteno saltarse esta THỰCización.
- Node-RED viene precargado en raspbian por default, así que solo debemos iniciarlo, para esto vamos a ir a la terminal y escribeimos "node-red-start" esto nos va ejecutar un servidor bajo la misma red, ahora debes asegurarte que tu computadora esté conectada a la misma red o wifi que las raspberry pi.
- Vas a ver una linea que dice algo algo tương tự như "Khi Node-RED đã bắt đầu, hãy trỏ trình duyệt tại https://192.168.1.102:1880" esto quiere decir que ha abierto un servidor a esa en esa dirección, por supuesto, la dirección de ustedes será diferente a la mía.
- Entraremos a nuestro navegador web y copiamos la dirección, esto nos va abrir el IDE de Node-RED
- Ahora vamos a instalar los paquete que necesitamos, para ello vamos a ir a: botón de menú arriba a la derecha => quản lý bảng màu => Cài đặt. Esto nos va permitir de manra gráfica instalar todos los paquetes externos necesitemos, lo que serían las librerías en código.
-
Ahora vamos a instalar varios paquetes, esto lo haremos copiando el nombre del paquete que les dejaré abajo y dandole al botón instalar. Esto debe hacerse para cada una de los paquetes que les dejo abajo
- node-red-Contrib-camerapi => Para la camara
- node-red-node-pisrf => Cảm biến Para ultrasónico
- node-red-Contrib-speakerpi => Loa Para
- node-red-node-watson => Para watson
- node-red-Contrib-ibm-watson-iot => Para watson
- node-red-bluemix-node => Đám mây Servicios de IBM
- node-red-Contrib-python-function => Phiên dịch de Pytho
Bước 5: Programando El Sistema Cognitivo
Node-RED permite importar un programma por medio de copiar u codigo que les dejo adjunto.
Deben ir a botón de menú arriba a la derecha => import => clipboard => pegar el código => import. Esto les debería generar los bloques del programma, algunos bloques deben configurarse.
Configuración de bloques:
- Para el primer bloque, que xúc xắc "Distancia", le dámmos doble click y nos aseguraremos que los parametros sean los mismos de la fotografía adjunta.
- Tham số "chụp ảnh nút python", nhấp chuột vào y e igual verifyficamos los parametros al adjunto. * Importante asegurarse de que "Tên tệp" le hemos puesto "image.jpg" *
- Para Gửi email, doble click y aquí debemos colocar nuestros datos, vi Tới: sería a qué dirección de Correo quiero enviar el mailUserid: Sería la dirección de Correo de la persona que envía Mật khẩu: La clave de esta última dirección de Correo.
- El último paso es configurar los servicios de Watson que haremos a continueación en el siguiente paso.
Bước 6: Conectando a Watson
Watson es un servicio de IBM muy sencillo de useizar que funciona por medio de API.
- En primer paso es crearse una cuenta en el IBM Cloud. (IBM les dará un mes de prueba, para tener en cuenta)
- Una vez dentro verán algo como en la foto, aquí buscaremos abajo a la izquierda Watson => Visual Recognition => Pondremos un nombre único y le damos a crear. Como se muestra en las fotografías adjuntas.
- Una vez que estén dentro, pueden Observar que han generado un API, ahora le dan al botón que xúc xắc "mostrar" (Ver cuarta foto) y deben copiar las credenciales, xúc xắc donde "api_key".
- Van de vuelta al IDE de Node-RED y doble click al bloque "Watson Visual Recognition", se aseguran de pegar sus credenciales en el espacio correcto y ajustar los parametros al igual que la foto.
- Esto mismo debe hacerse para el text to speech, Watson => Texto a voz => Pondremos un nombre único y le damos a crear. Como se muestra en las fotografías adjuntas.
- Hemos generado un API nuevamente, ahora le dan al botón que xúc xắc "mostrar" (Ver cuarta foto) y deben copiar las credenciales "tên người dùng" y "mật khẩu". Vamos de vuelta al IDE de Node-RED y doble click al bloque "Hablar", se aseguran de pegar sus credenciales en el espacio correcto y ajustar los parametros al igual que la foto. * Esto debe hacerse para los bloques que dicen hablar *
Y listo, así de sencillo ya tienen su sistema funcionando!:) Lỗi có thể xảy ra:
Si cuando se debe tomar la foto nos retorna un error y la luz (roja) de la cámara no enciende, debemos revisar la thảma / home / pi / Pictures. Ahora debemos ver si la foto está en negro o tiene 0KB, si es así
Nuestro sistema está configurado para Guardar las fotos en la thảma / home / pi / Pictures,. En caso de que no beinga foto o la foto no se pueda abrir (0KB), es posible que la cámara este mal conectada o que no esté habilitada. Para habilitar la cámara nos vamos al botón de inicio del Raspbian “/ Preferencias / Raspberry Pi / Configuración” y vamos a “Interfaces”. Ahí debemos aseguranos que “Cámara” está en “Habilitada”.
Bước 7: Inteligencia nhân tạo
Procesar una imagen no es algo sencillo de hacer, cầuere inteligencia nhân tạo para poder detar patrones en esa imagen de los cuales pueda generar una o varias Predciones de objetos que podría ser el que se está mostrando en la imagen. Este tipo de algoritmos pueden hacerse de varias Mahras, una de ellas es usando tái thiết kế neuronales profundas que en la realidad demandere un poco de tiempo para poder sentarse a construir la arquitectura y programar esta red, el nombre específico para el tipo de red que se Pracizaría es Redes Neuronales Convolucionales, que es el algoritmo que más se asemeja a las neuronas en la corteza visual humana. En estos algoritmos siempre se debe entrenar el sistema, con un affunto de datos certeros y una falso, es decir muchas fotos con el objeto que queremos recnocer y otro montón de fotos agrupadas, sin el objeto que queremos recnocer.
Una de las ventajas de usar de Watson, es que hace este trabajo pesado bởi nosotros incluyendo que el algoritmo esté entrenado para recnocer objetos universales, bởi supuesto dispone de una herramienta o "campo de entrenamiento" para entrenar nuestro sistema a objetosu, en este caso, los gatos y perro los regnoce por default.
Một liên tục haré un paréntesis donde explicaré como funciona una red neuron nhân tạo, con phạt meramente didacticos, No es necesario para la realización del có thể hướng dẫn. (Si tu interés es replicar el proyecto rápidamente, puedes Saltarte hasta el fin del paréntesis).
Cómo funciona una Red Neuronal Básica (Inicio Opcional Informativo)
Una red está compuesta de varios elementos indivuales (la unidad básica) que se llama perceptron o lo que equivaldría a una neurona en nuestro cerebro. Está compuesta de 3 partes hiệu trưởng:
- Entradas
- Función de suma (Σ)
- Función de activación
Entradas:
Estas son las agentadas en la imagen como x1, x2, x3, x… Serán multilicadas por un peso w (con un valor random al inicio)
Función de suma (Σ):
En este punto ocurre una suma de todas las entradas multilicadas por su peso w respectivo, al finalizar la operación, envía el resultado a la función de activación.
Función de activación:
Funciona como ngưỡng o umbral, es decir, si el valor del resultado supera cierto número (por lo chung 0) se activará la salida de la neurona. Podemos decir que es como una llave que deja pasar el agua o cierra el paso del agua. Solo que en este caso, hablamos de la salida de una neurona.
Ahora que conocemos la unidad básica de una red neuron (perceptrón) estamos listos para ver cómo operan en una red. Como Observan en la segunda imagen, está compuesta de 3 capas hiệu trưởng:
- Capa de entrada
- Capa oculta
- Capa de salida
Capa de entrada:
Aquí es donde Recogbe todas la entradas, pueden existir un número indfinido de neuronas.
Capa oculta:
Recibe la salida de cada neurona que survivale en la primer capa, realiza el mismo proceso en cada percetrón y su salida se la entrega a la capa de salida.
Capa de salida:
Esta es la capa de clasificación, aquí survivale el número de neuronas igual al número de clasificadores que necesites, es decir si quieres saber si es un gato o perro necesitarías 2 neuron, una para gatos y otra perros.
Todo esto es muy lindo, pero ¿Dónde ocurre realmente el aprendizaje? Esto ocurre en cada perceptron por Individual, el algoritmo resulta que en calcular correctamente y ajustar los pesos w (Que inicialmente tenían un valor random). Esto puede hacerse mediante aprendizaje no supervisado o aprendizaje supervisado, la manra más sencilla, es Calculando el error, es decir, la diferencia entre el valor de la salida que yo esperaba y el que realmente me dio.
(Fin del Opcional Informativo)
Watson está creado usando muchos algoritmos como el que acabamos de ver, pero con una mayor profundidad y complejidad por supuesto, ante esto usar el Visual Recognition API, o API de recnocimiento visual otros algoritmos más), resulta muy sencillo de usar, esto porque cuando configuremos el bloque con nuestra credenciales y hagamos el procesamiento de una imagen, Watson nos va devolver un archivo tipo JSON con un motón de posibilidades de objetos que puedan estar presentes. Es decir, cuando procesamos la foto, Watson hace su análisis y nos devuelve una lista con probables objetos que ha detado en esa foto, así de sencillo es usar Watson!
Luego solo usamos un script para recorrer todas esas posibles opciones y si en esa lista encuentra conciencia con un perro o un gato le avisará al resto del sistema para que dispense la comida correcta:)
Es necesario que se den cuenta que la inteligencia Artificial no es algo tan complejo, especialmente cuando survivalen servicios como Watson que hacen el trabajo pesado por nosotros!:)
Bước 8: Construyendo Un Hardware
Este paso lo hemos realizado en la Inventoría LEAD (Ver laboratorio) el cual es un maker space en Costa Rica desarrollado por Fundación Costa Rica para la Innovación.
En el laboratorio contos con impresoras 3D y cortadora láser entre otro montón de herramientas y tecnologías a disposicón de nosotros, la comunidad, para prototipar y desarrollar nuestras ý tưởng y proyectos de la mano con Expertos en el área.
Bước 9: Imprimiendo El Mecanismo De Dispensado
Como comentábamos en Inventoría LEAD tenemos a disposición de nosotros impresoras 3D, de las cuales hicimos uso en este proyecto para hacerlo realidad. Adjunto encontrarán los archivos listos paraprintmir, les recomiendo seguir Este directionable el cuál explica paso a paso como hacer uso de las impresoras 3D de Inventoría, ya que en estos espacios buscan que todos nosotros aprendamos a hacer las cosas por nosot más nos las haga, por ello con este có thể hướng dẫn được aprenderán a consizar estas maquinas y poner a printmir las piezas por ustedes mismos.
Bước 10: Cortando En Láser El Case
De la misma forma, hicimos uso de la cortadora láser, donde el disño fue realizado usando inkscape el cual es una versión Mã nguồn mở de programas de disño gráfico que nos permite generar vectores. La maquina láser, al ser un robot cartesiano, funciona por gcode, sin cấm vận, phần mềm este gcode debe ser generado por un, en este caso generamos un archivo.svg que son lineas de dibujo, con el cual, el software propio de la cortadora láser puede converttir en una khayectoria para los motores de la maquina.
El material: Para este disño es importante saber que debemos usar material de 3mm, una thị trưởng puede hacer que las piezas no calcen adecuadamente. trabajos con mucho oficio y elegancia, y este material crea un efecto visual muy Featsante, de lejos puede confudirse con aluminio negro, lo cual le da mucha elegancia al proyecto.
Ustedes pueden useizar el material que deseen, si buscan realizar algo de bajo costo, pueden hacer uso de MDF de 3mm el cual es un material muy económico y da acabados muy bonitos también.
Bước 11: Phần cứng Ensamblando El
Una vez que tenemos todas piezas completas, la electrónica y phần mềm listo, podemos comenzar a ensamblar.
En las fotos adjuntas verán el proceso!:)
-
Pasos para armado:
- Armar las dos cajas y pegarlas con cinta (esto porque pueden desarmarse), como comentabamos usamos acrílico, para pegar este material es necesario usar pegamento de acrílico o, para parecer más INTsantes e intelectuales ante otra persona, podemos metileno … agradecen el tip;) jaja
-
Aplicar el cloruro de metileno: -Este pegamento es un ido que es muy peligroso, se recomienda aplicarlo con una jeringa y guantes.
-El proceso debe realizarse con calma y cuidado, ya que una gota en un lugar Equivocado puede dañar la estética de nuestro acrílico. Como recomendación cá nhân, siempre que hagan un proyecto realicenlo con mucho oficio y detalle. Cuidar los cable es algo importante, un proyecto limpio y agradable a la vista tiene un Impacto thị trưởng que una con cable desordenados, que se vea desordenado, complejo o sucio.
* Ensable de la caja 1, la dispensadora (Con los motores) -En este punto debemos tomar el acople de los motores que printmimos en 3D y atornillarlos al motor, tal y como se muestra en la foto. Pueden useizar tornillos con medida M3, el largo no importa… -Ahora debemos tomar la espiral y, a presión, debemos hacer calzar el hueco que tiene por debajo con el rotor (palito que gira) del motor y deberá quedarnos como se muestra en las fotos.-Ahora insertamos la pieza completa dentro del Tubo de PVC. (Este sistema es muy effizado en la Industrialria como maquina de inyección, un ejemplo de aplicación es en las maquinas de inyección de platisco, adjunto econtrarán un Diagrama de como funcionan estas maquinas) -Hacemos dent la insertción de las dos piezas de modo que nos quede un acople correcto entre los huecos de salida de la caja y la salida del tubo de PVC-Colocamos la tapa superior o cobertor cobertor. * Ensamble de la caja 2, la de la electrónica.-Colocamos el sensor ultrasónico en los orifectos. Con contadoble cara fijamos la cámara a la pared de acrílico.-Acomodamos la electrónica, esto lo hice como se muestra en la foto, pero ustedes pueden acomodarlo a su gusto. Próximos RetosAhora sigue que hackeen ajusten a bởi hoàn thành, le sugiero algunos retos:
- Ajustar a sus mascotas (por tipo de động vật)
- Construir un case con más sistemas de dispensado, para más animales, así como configurar el sistema para recnocer más animales
- Conectar con IBM IoT para controlar el sistema desde cualquier parte del mundo
- Agregar un dispensador de agua
- Hacerle cualquier cambio que sea oportuno para ti:)
* Este directionable fue realizado bởi Bernal Rojas con Cesar Rodriguez Bravo como co-autor *