Inhoudsopgave:
- Stap 1: Materiales Que Necesitamos
- Stap 2: Iniciando Con Raspberry Pi
- Stap 3: Conectando Sensores en Actuadores Al Raspberry Pi
- Stap 4: Preparando Node-RED En El Raspberry Pi
- Stap 5: Programmeando El Sistema Cognitivo
- Stap 6: Verbind een Watson
- Stap 7: Inteligencia Kunstmatig
- Stap 8: Construyendo Un Hardware
- Stap 9: Imprimiendo El Mecanismo De Dispensado
- Stap 10: Cortando En Láser El Case
- Stap 11: Ensamblando El Hardware
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
En este Instructable aprenderemos como hacer un dispensador de alimento para sus mascotas, o al menos en mi caso siempre hij querido hacer un dispensador automático, sin embargo, tengo un perro y un gato. Er is geen sprake van een forma de saber cuál animal es para dispensar el alimento adecuado.
Hij sluit aan op de oplossing, is een proces dat is gebaseerd op de kennis van de Inteligencia Artificial para que, door middel van een beeld van het beeld van de reconocer, van de manier waarop dieren in de dispensar el alimento adecuado.
Logica del sistema:
- La mascota se acerca y es detectada por un sensor de distancia
- El sistema toma una foto del animal
- La procesa y decision qué animal es
- Saluda a la mascota (Con voz humana)
- Dispensa el alimento respectivo
- Envía un correo al dueño indicando que ya le ha dispensado alimento
Stap 1: Materiales Que Necesitamos
Este proyecto lo vamos a realizar en conjunto, así que es momento de vayas a comprar, pedir, buscar o la manera que tengas en mente, los siguientes materiales:)
- 1 Raspberry Pi, les recomiendo el modelo 3, pero las anteriores tambien funcionan!
- 1 Cámara para frambozenpi
- 1 sensor ultrasonische HC-SR04
- 2 Aandrijfmotor (Pueden utilizar cualquier otro, je gebruikt este porque era el que tenía a mano!)
- 2 stappenmotoren
- 1 luidspreker (Parlantes)
- 2 tubos T de PVC de pulgada y media (Las encuentran en cualquier ferretería por menos de 2000 colones cada una.)
- U kunt een 3 mm-plaat maken voor cortar, u kunt gebruik maken van acrílico, u kunt gebruik maken van ander materiaal, como MDF.
- Una impresora 3D en cortadora laser que in Costa Rica, pueden encontrar en Inventoría LEAD.
Stap 2: Iniciando Con Raspberry Pi
Raspberri Pi es un microprocesador muy poderoso que nos permite desarrollar proyectos que requieran un alto poder computacional. Het is vergelijkbaar met Arduino met verschillende Raspberry Pi's die kunnen worden goedgekeurd door een systeem voor de werking van de tarjeta desarrollo.
Als u gebruik wilt maken van raspbian, kunt u gebruik maken van de Linux-distributie, Open Source, de speciale versie van 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 familiarizarnos 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 el nombre asignado a las SD, por lo general puede ser "disk1", para efectos de este turorial le lamaremos "TuDisco". diskutil eraseDisk JHFS+ UntitledUFS < TuDisco > => Vergunning borrar y formatear el disco escogido (TuDisco).
diskutil unmountDisk /dev/< TuDisco > => Desmonta el disco para no Poder utilizarlo.
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 uitwerpen /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í
diskutil-lijst
diskutil eraseDisk JHFS+ UntitledUFS disk1 diskutil unmountDisk /dev/disk1 sudo dd if=/Users/bernalrojas/Downloads/2017-11-29-raspbian-stretch.img of=/dev/disk1 bs=1m diskutil eject /dev/disk1
Gebruikelijke Windows: Gebruik de Win32Disk, die u kunt gebruiken om opnieuw te kiezen
-
Volledig operationeel
- U kunt kiezen uit een pantalla, een HDMI-kabel, een muis en een teclado.
- Conectalos y enciende la framboos pi, verás que al igual que un computadora normale este va iniciar de la misma sencilla que cualquier otra (recordemos que es una computadora).
- Ahora puedes continuar trabajando como un computadora normal of pueden accesar reotamente, así que haremos de esta ultima forma, para no depender de un pantalla para poder trabajar.
- U kunt gebruikmaken van de ssh om toegang te krijgen tot de externe toegang, die u kunt gebruiken om een nieuwe terminal en een "ifconfig"-code te gebruiken om het IP-adres van de nieuwe raspberry pi (bewaker die nodig is voor de toekomst) te downloaden. Ahora pueden desconectar la pantalla.
- Vamos is een nuestra computadora en abrimos la terminal de la misma manera, y escribimos ssh pi@ donde es la dirección que acabamos de recuperar and el paso anterior, deben sustituir by los números que les retornó. U kunt uw eigen foto's maken voor geen perse en este paso.
- Er is geen verschil tussen de verschillende soorten frambozen en de "raspberry" standaard. Esto nos abrirá la terminal inmediatamente.
Stap 3: Conectando Sensores en Actuadores Al Raspberry Pi
Cómo sabemos Raspberry Pi es un tarjeta de desarrollo que posee pines GPIO que podemos configurar como entradas y salidas para nuestros sensores en actuadores. Nuestros sensores son:
- Para el sensor de distancia useremos un sensor ultrasónico. Este sensorfunctie door ultrasonore, como en murcielago… Functies die worden uitgestoten door honda (Triggerpin) die opnieuw worden uitgevoerd, die de sensor van de echo (echopin) en estimará en die van de duur van de regresar. Alle afbeeldingen zijn toegevoegd aan de zone Maker en hebben een uitstekende tutorial gemaakt om een como funciona este sensor te maken
- Para la visión artificial el sistema usará una cámara.
- Como motor gebruikt een stappenmotor. Heeft u een stappenmotor nodig?
- Para mover el motor useremos Driver motor. En er zijn geen mogelijkheden voor het bepalen van de rechten, zoals het gebruik van een mano, estos (La diferencia es que estos permiten manejar una corriente mayor).*Opmerking:* El diagrama adjunto se muestra otro driver (El rojo, es un easy driver) onderscheiden van een que he utilizado, esto fue para generalizar, ya que la mayoría de drivers tienen esa nomenclatura (dir y step). Con el que yo estoy utlizando (el TB6560) los dennen "dir" en "step" los reemplazamos door "CW+" en "CLK+" respectivamente. Y los 2 GND los reemplazamos door CLK- en CW-.
Stap 4: Preparando Node-RED En El Raspberry Pi
Er zijn een aantal voorbereidende werkzaamheden voor het uitvoeren van de noodzakelijke werkzaamheden voor het uitvoeren van de functie die nodig is met Node-RED, voor het uitvoeren van een IDE-programma dat kan worden gebruikt voor het gebruik ervan.
Antes de comenzar a preparar todo es necesario tener nuestro equipo actualizado, para ello ejecutaremos los siguientes comandos en nuestra terminal:
sudo apt-get update
sudo apt-get dist-upgrade update-nodejs-and-nodered
Estos comandos nos actualizaran nuestro equipo. El último comando, nos permite tener nuestro entorno Node-RED actualizado para poder instalar las dependencias que vamos a necesitar and este step, es importanteno saltarse esta actualización.
- Node-RED viene precargado en raspbian por default, así que solo debemos iniciarlo, para esto vamos a ir a la terminal y escribimos " node-red-start" esto nos va ejecutar un servidor bajo la misma red, ahora debes asegurutadore que esté conectada a la misma red of wifi que las framboos pi.
- Vergelijkbaar met een "Once Node-RED is begonnen, wijs een browser op 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ú a la derecha => beheer palet => Install. Esto nos va permitir de manera grafica install todos los paquetes externos que 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 uno de los paquetes que les dejo abajo
- node-red-contrib-camerapi => Para la camara
- node-red-node-pisrf => Para sensor ultrasónico
- node-red-contrib-speakerpi => Para-luidsprekers
- node-red-node-watson => Para watson
- node-red-contrib-ibm-watson-iot => Para watson
- node-red-bluemix-nodes => Diensten van IBM cloud
- node-red-contrib-python-function => Interprete de Pytho
Stap 5: Programmeando El Sistema Cognitivo
Knooppunt-RED is toegestaan om een programma te importeren naar een kopie van de code die is toegevoegd aan het programma.
Deben ir a botón de menú arriba a la derecha => import => klembord => pegar el código => import. Esto les debería general los bloques del programa, algunos bloques deben configurarse.
Configuratie van de blokken:
- Para el primer bloque, que dice "Distancia", le daremos doble click y nos aseguraremos que los parametros sean los mismos de la fotografía adjunta.
- Voor "take photo python node", dubbelklik en e igual verificamos los parametros al adjunto. *Belangrijke asegurarse de que "File name" le hemos puesto "image.jpg"*
- Voor e-mail verzenden, dubbelklik en naar de meest recente gegevens, en Naar: het juiste adres voor de correspondentie en de mailGebruikersnummer: het wachtwoord voor het persoonlijke wachtwoord.
- El último paso es configurar los servicios de Watson que haremos a continuación en el siguiente paso.
Stap 6: Verbind een Watson
Watson is een IBM-service die kan worden gebruikt voor het gebruik van de API.
- En primer paso es crearse una cuenta en el IBM Cloud. (IBM les dará un mes de prueba, para tener en cuenta)
- U kunt zien wat u kunt zien aan de foto's, die u kunt zien in Watson => Visuele herkenning => 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 dice "mostrar" (Ver cuarta foto) y deben copiar las credenciales, donde dice "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 dice "mostrar" (Ver cuarta foto) y deben copiar las credenciales "gebruikersnaam" en "wachtwoord". Bekijk de vuelta al IDE de Node-RED en klik op "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, asi de sencillo ya tienen sistema funcionando!:) Mogelijke fout:
Het is mogelijk om foto's te maken van een fout en een luz (roja) van de camera die geen enciende, debemos revisar the carpeta /home/pi/Pictures. Ahora debemos ver si la foto está en negro o tiene 0KB, si es así
Nuestro is ingesteld op configuratie voor foto's en tapijten /home/pi/Pictures,. Er zijn geen bestaande foto's of foto's die niet kunnen worden gemaakt (0KB), es posible que la cámara este mal conectada o que no esté habilitada. Het is mogelijk om de camera te gebruiken voor de inicio del Raspbian "/Preferencias/Raspberry Pi/Configuración" en voor "Interfaces". Ahí debemos aseguranos que "Cámara" está en "Habilitada".
Stap 7: Inteligencia Kunstmatig
Er is geen beeld van een sencillo de hacer, requiere inteligencia artificial para poder detectar patrones en esa imagen de los cuales pueda o varias predicciones de objetos que podría el que se está mostrando en la imagen. Este tipo de algoritmos pueden hacerse de varias maneras, un ellas es usando redes neuronales profundas que en la actualidad requiere un poco de tiempo para poder sentarse a construir la arquitectura y programar esta red, el nombre el specífico red es Redes Neuronales Convolucionales, que es el algoritmo que más se asemeja a las neuronas en la corteza visual humana. En het is een goed idee om samen te werken met een basis, samen met een vaststaand feit en een ander deel van de foto's, samen met een nieuw beeld van de foto's, en een paar dingen die je kunt doen.
Una de las ventajas de usar de Watson, es que hace este trabajo pesado por nosotros incluyendo que el algoritmo esté entrenado para reconocer objetos universales, tupuesto dispone de una herramienta o "campo de para entrenamientoestoes", en este caso, los gatos en perro los reconoce por default.
Een continuación un paréntesis donde explicaré como funciona una red neuronal artificial, begrenst meramente didacticos, No es necesario para la realización del instructable. (Si tu interes 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)
Een rode está compuesta de varios indivuales (la unidad basica) que s lama perceptron o lo que equivaldría een un neurona en nuestro cerebro. Está compuesta de 3 partes principales:
- Entrada's
- Función de suma (Σ)
- Función de activación
Entrada's:
Estas son las representadas en la imagen como x1, x2, x3, x…Serán multiplicadas by un peso w (con un valor random al inicio)
Función de suma (Σ):
Het is een heel goed mogelijk resultaat van de verschillende activiteiten van het respectieve, laatste optreden van de operación, en het resultaat van een función de activación.
Functie van activatie:
Funciona como threshold o umbrale, es decir, si el valor del resultado supera cierto número (algemeen 0) se activerá la salida de la neurona. Podemos decir es como un llave que deja pasar el agua of cierra el paso del agua. Solo que en este caso, hablamos de la salida de una neurona.
Een overzicht van de algemene basis van rode neuronale (perceptrón) bevat een lijst van de meest voorkomende operan en una red. Como observeer de segunda imagen, está compuesta de 3 capas principales:
- Capa de entrada
- Capa oculta
- Capa de Salida
Capa de entrada:
Aquí es donde recibe todas la entradas, pueden existir un número indefinido de neuronas.
Capa oculta:
Recibe la salida de cada neurona que existe en la primer capa, realiza el mismo processo en cada percetrón y su salida se la entrega a la capa de salida.
Capa de Salida:
Dit is een belangrijk onderdeel van de clasificación, een bestaand nummer van neuronen die een numero de clasificadores que necesites, es decir si quieres saber si es un gato o perro necesitarías 2 neuronas, una para gaten.
Todo esto es muy lindo, pero Dónde ocurre realmente el aprendizaje? Het kan voorkomen en kan per persoon het algoritmische resultaat opleveren van een rekenkundige correctie en een justar los pesos w (Que inicialmente tenían un valor random). Er is geen toezicht of een toezicht, de manera is 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)
Wat is er aan de hand van de vele visuele herkennings-API's, de visuele herkennings-API, of de visuele herkennings-API, andere algoritmos), het resultaat is een muy sencillo de usar, esto porque cuando configuremos el bloque con nuestra credenciales y hagamos el processamiento de un imagen, Watson nos va devolver un archived tipo JSON con un motón de motón de posibilidades de objet. Dit is een proces van foto's, Watson heeft een analyse gemaakt en een lijst gemaakt met waarschijnlijke objecten die kunnen worden gedetecteerd en een foto, zoals de gebruiker van 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:)
Dit is nodig om een kunstmatige intelligentie te hebben die niet bestaat, maar speciaal voor bestaande diensten como Watson que hacen el trabajo pesado por nosotros!:)
Stap 8: Construyendo Un Hardware
Este paso lo hemos realizado en la Inventoría LEAD (Laboratorio)el cual es un maker space en Costa Rica desarrollado door Fundación Costa Rica para la Innovación.
En el laboratorio contamos con Impresoras 3D y cortadora Láser entre otro montón de Herramientas y tecnologías een disposicón de nosotros, la Comunidad, para prototipar y desarrollar nuestras ideeën y proyectos de la mano con expertos en el gebied.
Stap 9: Imprimiendo El Mecanismo De Dispensado
Meer commentaar op de Inventoría LEAD tenemos a disposición de nosotros impresoras 3D, de las cuales hicimos uso en este proyecto para hacerlo realidad. Toegevoegde archieven lijst van imprimir, les recomiendo seguir Este instructable el cuál explica paso en paso como hacer uso de las impresoras 3D de Inventoría, ya que en estos espacios buscan que todos nosotros aprendamos a hacer meer informatie over hoe u les kunt geven, hoe u instructie kunt geven over het gebruik van maquines y poner a imprimir las piezas por ustedes mismos.
Stap 10: Cortando En Láser El Case
De la misma forma, hicimos uso de la cortadora laser, donde el diseño fue realizado usando inkscape el cual es una versie Open Source de programas de diseño que nos permite algemene vectores. La maquina laser, al ser un robot carte poriano, funciona, sin embargo, este gcode debe ser generado por un software, en este caso generamos un archive.svg que son lineas de dibujo, con el cual, el software propio de la cortadora laser puede convertir en una trayectori para los motores de la maquina.
El materiaal:Para este diseño es importante saber que debemos usar material de 3mm, uno mayor puede hacer que las piezas no calcen adecuadamente. Yo he utilizado acrílico negro mate (que compré en panaplast), esto es por un gusta real razón, me los trabajos con mucho oficio y elegancia, y este material crea un efecto visual muy interesante, de lejos puede confudirse con aluminio negro, local le da mucha elegancia al proyecto.
U kunt gebruik maken van het gebruik van materiaal dat is ontworpen, en het kan worden gerealiseerd door de hoge kosten, door gebruik te maken van MDF van 3 mm en van materiaal dat u economisch en van acabados kunt maken.
Stap 11: Ensamblando El Hardware
U kunt kiezen uit alle onderdelen van het programma, de elektronische en softwarelijst, waarmee u samen kunt komen.
En las fotos adjuntas verán el processo!:)
-
Pasos para armado:
- Armar las dos cajas y pegarlas con cinta (esto porque pueden desarmarse), como commentaar usamos acrílico, para pegar este material es necesario usar pegamento de acrílico o, para parecer más interesantes e intelectuales anteodemose… agradecen el tip;) jaja
-
Aplicar el cloruro de metileno:-Este pegamento es un ácido que muy peligroso, se recomienda aplicarlo con una jeringa y guantes.
-El proces om te realiseren met kalmte en cuidado, ya que un gota en un lugar equivocado puede dañar la estética de nuestro acrílico. Como recomendación personal, siempre que hagan un proyecto realicenlo con mucho oficio y detalle. Cuidar los kabels es algo importante, un proyecto limpio y agradable a la vista tiene un impacto mayor que uno con kabels desordenados, que se vea desordenado, complejo o sucio.
*Ensable de la caja 1, la dispensadora (Con los motores)-En een este punto debemos tomar el acople de los motores que imprimimos en 3D y atornillarlos al motor, tal y como se muestra en la foto. Pueden utilizar 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áo quedarnos fotos.-Ahora insertamos la pieza completa dentro del Tubo de PVC. (Este sistema es muy utilizado en la industria como maquina de inyección, un ejemplo de aplicación es en las maquinas de inyección de platisco, adjunto econtrarán de la como funcionan estas maquinas) de modo que nos quede un acople correcto de huecos de la caja y la salida del tubo de PVC-Colocamos la tapa superior of cobertor cobertor.*Ensamble de la caja 2, la de la electronic.-Colocamos el sensor ultrasónico nl los orificios. 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 een just-in-da sus sus sustedes pueden acomodarlo a su gusto. door completo, le sugiero algunos retos:
- Ajustar a sus mascotas (por tipo de animal)
- Construir un case con más sistemas de dispensado, para más animales, así como configurar el sistema para reconocer más animales
- Verbinding maken met IBM IoT voor controle over de hele wereld
- Agregar un dispensador de agua
- Hacerle cualquier cambio que sea portuno para ti:)
*Este instructable fue realizado door Bernal Rojas met Cesar Rodriguez Bravo como co-auteur*