Sommario:

Dispensador De Alimento Para Múltiples Mascotas Usando Inteligencia Artificial Con Watson: 11 Steps
Dispensador De Alimento Para Múltiples Mascotas Usando Inteligencia Artificial Con Watson: 11 Steps

Video: Dispensador De Alimento Para Múltiples Mascotas Usando Inteligencia Artificial Con Watson: 11 Steps

Video: Dispensador De Alimento Para Múltiples Mascotas Usando Inteligencia Artificial Con Watson: 11 Steps
Video: Accidente con AK47. Uso Indebido de Armas de Fuego. 2024, Dicembre
Anonim
Dispensador De Alimento Para Múltiples Mascotas Usando Inteligencia Artificial Con Watson
Dispensador De Alimento Para Múltiples Mascotas Usando Inteligencia Artificial Con Watson
Dispensador De Alimento Para Múltiples Mascotas Usando Inteligencia Artificial Con Watson
Dispensador De Alimento Para Múltiples Mascotas Usando Inteligencia Artificial Con Watson

En este Instructable aprenderemos como hacer un dispensador de alimento para sus mascotas, por lo general, o al menos en mi caso siempre he querido hacer un dispensador automático, sin embargo, tengo un perro y un gato. Por ende no tengo una forma de saber cuál animal es para dispensar el alimento adecuado.

He encontrado la solución, se trata de un sistema cognitivo que hace use de la Inteligencia Artificial para que, por medio una cámara haga un procesamiento de imagen para reconocer, de cuál animal se trata y dispensar el alimento adecuado.

Logica del sistema:

  1. La mascota se acerca y es detectada por un sensor de distancia
  2. El sistema toma una foto dell'animale
  3. La procesa y decide qué animal es
  4. Saluda a la mascota (Con voz humana)
  5. Dispensa el alimento rispettivo
  6. Envía un correo al dueño indicando que ya le ha dispensado alimento

Passaggio 1: materiale necessario

Materiali necessari
Materiali necessari
Materiali necessari
Materiali necessari
Materiali necessari
Materiali necessari

Este proyecto lo vamos a realizar en conjunto, así que es moment de vayas a comprar, pedir, buscar o la manera que tengas en mente, los siguientes materials:)

  1. 1 Raspberry Pi, consiglia il modello 3, ma prima di tutto funziona!
  2. 1 Cámara para lampone pi
  3. 1 sensore ultrasonico HC-SR04
  4. 2 Motore del driver (Pueden utilizar cualquier otro, yo usé este porque era el que tenía a mano!)
  5. 2 motori passo-passo
  6. 1 Oratore (Parlanti)
  7. 2 tubos T de PVC de pulgada y media (Las encuentran en cualquier ferretería por menos de 2000 colones cada una.)
  8. Una lamina di acrilico di 3mm per corta, si utilizzerà acrilica, può essere usata come altro materiale, come MDF.
  9. Una stampa 3D e corta in Costa Rica, può essere confrontata con Inventoria LEAD.

Passaggio 2: iniziando con Raspberry Pi

Iniziando con Raspberry Pi
Iniziando con Raspberry Pi
Iniziando con Raspberry Pi
Iniziando con Raspberry Pi
Iniziando con Raspberry Pi
Iniziando con Raspberry Pi

Raspberri Pi es un microprocesador muy poderoso que nos permite desarrollar proyectos que requieran un alto poder computacional. È simile a un Arduino con la differenza di Raspberry Pi che consente di correggere un sistema operativo all'interno della tarjeta desarrollo.

In questo caso si usa raspbian que es una distribuzione di Linux, Open Source, adattata specialmente per correggere Raspberry Pi.

  • Primeros pasos con Raspbery Pi

    1. El primer paso es descargar el raspbian como zip.
    2. Ora debemos quemarlo en una micro SD, per ello:Usuarios MAC / Linux:

      1. Abrimos la terminal o consola del sistema, come se muestra en la foto.
      2. Usemos ciertos comando que explicaré para familiarizarnos y al final daré un ejemplo de uso. diskutil list => Este il comando mi devuelve la lista de todos los discos que encuentre la pc (una SD puede tomarse come un disco externo.) Debemos buscar cuál es el nombre assignado a las SD, per lo general puede ser " disk1", para efectos de este turorial le llamaremos "TuDisco". diskutil eraseDisk JHFS+ UntitledUFS < TuDisco > => Permetti di 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 eject /dev/< TuDisco> => Expulsa el Disco

        Un esempio di uso de este, se encuentra adjunto en las fotos, la sintáxis del ejemplo sería así

lista diskutil

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

Usa Windows: Pueden usa Win32Disk, que es una herramienta sencilla o cualquier otra de su elección

  • Ver sistema operativo

    1. Debes conseguir una pantalla, un cable HDMI, mouse y teclado.
    2. Conectalos y enciende la raspberry pi, verás que al igual que una computadora normal este va iniciar de la misma sencilla manera que cualquier otra (recordemos que es una computadora).
    3. Ahora puedes continuar trabajando como una computadora normal o pueden accesar remotamente, así que lo haremos de esta ultima forma, para no depender de una pantalla para poder trabajar.
    4. Vamos a hacer uso de ssh para accesar remotamente, antes de quitar la pantalla abrimos vamos a ir a nuestra terminal y escribimos " 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.
    5. Vamos a ir a nuestra computadora y abrimos la terminal de la misma manera, y escribimos 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.
    6. Nos va pedir la contraseña del equipo y una más de la raspberry che per default è "raspberry". Esto nos abrirá la terminal inmediatamente.

Passaggio 3: collegamento dei sensori e degli attuatori al Raspberry Pi

Collegamento dei sensori e degli attuatori al lampone Pi
Collegamento dei sensori e degli attuatori al lampone Pi
Collegamento dei sensori e degli attuatori al lampone Pi
Collegamento dei sensori e degli attuatori al lampone Pi
Collegamento dei sensori e degli attuatori al lampone Pi
Collegamento dei sensori e degli attuatori al lampone Pi

Come se il Raspberry Pi es una tarjeta de desarrollo que posee pines GPIO que podemos configurar come entradas and salidas para nuestros sensors and actuadores. Nuestros sensores son:

  1. Per il sensore di distanza usaremos un sensor ultrasónico. Este sensor funciona por ultrasonidos, como un murcielago… Funciona emitiendo una honda (Trigger pin) che rebotará en un objeto, el sensor la recibirá de vuelta (Echo pin) y estimará 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 come funciona este sensor
  2. Para la visione artificiale el sistema usará una cámara.
  3. Como motor usemos un Stepper Motor.¿Qué es un Stepper Motor?
  4. Para mover el motor usaremos Driver motor. 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 permiten manejar una corriente mayor).*Nota:* El diagrama adjunto se muestra otro driver (El rojo, es un easy driver) distinto a 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 pines "dir" y "step" los reemplazamos por "CW+" e "CLK+" rispettivamente. Y los 2 GND los reemplazamos por CLK- e CW-.

Passaggio 4: preparare Node-RED En El Raspberry Pi

Preparando Node-RED En El Raspberry Pi
Preparando Node-RED En El Raspberry Pi
Preparando Node-RED En El Raspberry Pi
Preparando Node-RED En El Raspberry Pi
Preparando Node-RED En El Raspberry Pi
Preparando Node-RED En El Raspberry Pi
Preparando Node-RED En El Raspberry Pi
Preparando Node-RED En El Raspberry Pi

Ora vamos a comenzar a preparar todos the paquetes necesarios para hacer que nuestro system funcione con Node-RED, che es un IDE de programación gráfico muy sencillo de utilizar.

Antes de comenzar a preparar todo es necesario tener nuestro equipo currentizado, para ello ejecutaremos los siguientes commands en nuestra terminal:

sudo apt-get update

sudo apt-get dist-upgrade update-nodejs-and-nodered

Questo comandos nos attualizaran nuestro equipo. L'ultimo comando, che non consente di mantenere il nuovo ambiente Node-RED attualizzato per installare le dipendenze che richiedono un passaggio, è importante saltare l'aggiornamento.

  • 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 asegurarte que tu computadora esté conectada a la misma red o wifi que las raspberry pi.
  • Vas a ver una linea que dice algo similar a "Once Node-RED hasstarted, point a browser at 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 => manage palette => Install. Esto nos va permitir de manera gráfica instalar todos los paquetes externos que necesitemos, lo que serían las librerías en codice.
  • 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

    1. node-red-contrib-camerapi => Para la camara
    2. node-red-node-pisrf => Para sensore ultrasónico
    3. node-red-contrib-speakerpi => altoparlanti para
    4. node-red-node-watson => Para watson
    5. node-red-contrib-ibm-watson-iot => Para watson
    6. node-red-bluemix-nodes => Servizi cloud IBM
    7. node-red-contrib-python-function => Interprete de Pytho

Passaggio 5: Programmazione del sistema cognitivo

Programando El Sistema Cognitivo
Programando El Sistema Cognitivo
Programando El Sistema Cognitivo
Programando El Sistema Cognitivo

Node-RED permette di importare un programma per medio de copiar u código 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 i blocchi del programma, algunos bloques deben configurarse.

Configurazione blocchi:

  1. 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.
  2. Para "take photo python node", doble click y e igual verificamos los parametros al adjunto. *Importante asegurarse de que "File name" le hemos puesto "image.jpg"*
  3. Para Email send, doble click y aquí debemos colocar nuestros datas, en To: sería a qué derección de correo quiero enviar el mailUserid: Sería la dirección de correo de la persona que envíaPassword: La clave de esta última dirección de correo.
  4. L'ultimo passo es configurar los servicios de Watson que haremos a continuación en el siguiente paso.

Passaggio 6: collegamento a Watson

Conectando a Watson
Conectando a Watson
Conectando a Watson
Conectando a Watson
Conectando a Watson
Conectando a Watson

Watson es un servicio de IBM muy sencillo de utilizar que funciona por medio de API.

  1. En primer paso es crearse una cuenta en el IBM Cloud. (IBM les dará un mes de prueba, para tener en cuenta)
  2. Una cosa che si vede dentro come una foto, anche se non c'è niente di meglio su Watson => Riconoscimento visivo => Riconoscimento di un nome unico e di tutti i giorni. Como se muestra en las fotografías adjuntas.
  3. Una volta che è stato inserito, può essere osservato che è stato generato un API, ora è il pulsante che dice "mostrar" (Verifica foto) e copia le credenziali, oltre a "api_key".
  4. Van de vuelta al IDE de Node-REDy 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.
  5. 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.
  6. Ha generato un'API di nuovo, ora il pulsante que dice "mostrar" (Ver cuarta foto) e copia le credenziali "username" e "password". 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 elenco, así de sencillo ya tienen su sistema funcionando!:)Possibile errore:

Si cuando se debe tomar la foto nos retorna un error y la luz (roja) de la cámara no enciende, debemos revisar la carpeta /home/pi/Pictures. Ahora debemos ver si la foto está en negro o tiene 0KB, si es así

Nuovo sistema è stato configurato per guardare le foto sulla moquette /home/pi/Pictures,. En caso de que non esiste 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” e vamos a “Interfaces”. Ahí debemos aseguranos que “Cámara” está en “Habilitada”.

Step 7: Inteligencia Artificial

Intelligenza Artificiale
Intelligenza Artificiale
Intelligenza Artificiale
Intelligenza Artificiale

Procesar una imagen no es algo sencillo de hacer, requiere inteligencia artificial para poder detectar patrones en esa imagen de los cuales pueda generar una o varias predicciones de objetos que podría ser el que se está mostrando en la imagen. Este tipo de algoritmos pueden hacerse de varias maneras, una de ellas es usando redes neuronales profundas que en la currentidad requiere 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 utilizarí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 conjunto de datos certeros y uno falso, es decir muchas fotos con el objeto que queremos reconocer y otro montón de fotos agrupadas, sin el objeto que queremos reconocer.

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, por supuesto dispone de una herramienta o "campo de entrenamiento" para entrenar nuestro sistema a objetos un poco menos, en este caso, los gatos y perro los reconoce por default.

A continuación haré un paréntesis donde explicaré come funciona una red neuronal artificial, con fines meramente didacticos, No es necesario para la realización del instructable. (Si tu interés es replicar el proyecto rápidamente, puedes saltarte hasta el fin del paréntesis).

Come funziona una Red Neuronal Básica (Inicio Opcional Informativo)

Una red está compuesta de varios elementis indivuales (la unidad básica) que se llama perceptron o lo que equivaldría a una neurona en nuestro cerebro. Valutazione di 3 parti principali:

  1. Entradas
  2. Funzione di somma (Σ)
  3. Funzione di attivazione

Entrate:

Estas son las Representativeadas en la imagen como x1, x2, x3, x…Serán multiplicadas por un peso w (con un valor random al inicio)

Funzione di somma (Σ):

En este punto ocurre una somma de todas las entradas multiplicadas por su peso w rispettivo, al finalizzare l'operación, envía el resultado a la función de activación.

Funzione di attivazione:

Funciona como threshold o umbral, es decir, si el valor del resultado supera cierto número (por lo general 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.

Ora che conocemos l'unidad base de una red neuronal (perceptrón) estamos listos para ver como operan en una red. Come osservare la seconda immagine, questa è la computabilità di 3 punti principali:

  1. Capa de entrada
  2. Capa oculta
  3. 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 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í existe 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 neuronas, una para gatos y otra perros.

Todo 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 inizialmente tenían un valor random). Esto puede hacerse mediante aprendizaje no supervisado o aprendizaje supervisado, la manera 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.

(Fine dell'Informativo Opzionale)

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 reconocimiento visual, (Que ahora sabemos que se trata de redes neuronales convolucionales 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 archivio tipo JSON con un motón de posibilidades de objetos que esa fotografía presentes en. Es decir, cuando processa la foto, Watson ha analizzato e non c'è una lista con probabili oggetti che ha rilevato in una foto, come se fosse usato Watson!

Solo uno script può essere utilizzato per correggere tutte le opzioni possibili e una lista in cui inserire la conoscenza con un permesso o un allegato le avisará al resto del sistema per la dispensazione della commissione corretta:)

Es necesario que se den cuenta que la inteligencia artificial no es algo tan complejo, especialmente cuando existen servicios como Watson que hacen el trabajo pesado por nosotros!:)

Passaggio 8: costruire un hardware

Construcyendo Un Hardware
Construcyendo Un Hardware
Costruzione di un hardware
Costruzione di un hardware
Costruzione di un hardware
Costruzione di un hardware

Questo è il motivo per cui è realizzato l'Inventario LEAD (Ver laboratorio) e lo spazio creatore in Costa Rica è stato creato dalla Fundación Costa Rica per l'Innovación.

En el laboratorio contamos con imprese 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 ideas and proyectos de la mano con expertos en el area.

Fase 9: Imprimiendo El Mecanismo De Dispensado

Imprimiendo El Mecanismo De Dispensado
Imprimiendo El Mecanismo De Dispensado
Imprimiendo El Mecanismo De Dispensado
Imprimiendo El Mecanismo De Dispensado
Imprimiendo El Mecanismo De Dispensado
Imprimiendo El Mecanismo De Dispensado

Come vedere in Inventoría LEAD tenemos a disposición de nosotros impresoras 3D, de las cuales hicimos use en este proyecto para hacerlo realdad. Adjunto encontrarán los archivos listos para imprimir, les recomiendo seguir Este instructable 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 mismos por nosoy más nos las haga, por ello con este instructable aprenderán a utilizar estas maquinas y poner a imprimir las piezas por ustedes mismos.

Passaggio 10: Cortando En Láser El Case

Cortando En Láser El Case
Cortando En Láser El Case
Cortando En Láser El Case
Cortando En Láser El Case
Cortando En Láser El Case
Cortando En Láser El Case
Cortando En Láser El Case
Cortando En Láser El Case

De la misma forma, hicimos uso de la cortadora láser, donde el diseño fue realizado usando inkscape el cual es una versión Open Source de programas de diseño gráfico que nos permite generar vectores. La maquina láser, al ser un robot cartesiano, funciona por gcode, sin embargo, este gcode debe ser generado por un software, en este caso generamos un archivo.svg que son lines de dibujo, con el cual, el software propio de la cortadora láser puede convertir en una trayectoria para los motors de la maquina.

El material:Para este diseño es importante saber que debemos usar material de 3mm, uno mayor puede hacer que las piezas no calcen adecuadamente. Yo utilizado acrílico negro mate (que compré en panaplast), esto es por una razón, me gustazar los trabajos con mucho oficio y elegancia, y este material crea un efecto visual muy interesante, de lejos puede confudirse con aluminio negro, lo cual le da mucha elegancia al proyecto.

Ustedes pueden utilizar 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.

Passaggio 11: Ensamblando El Hardware

Ensamblando El Hardware
Ensamblando El Hardware
Ensamblando El Hardware
Ensamblando El Hardware
Ensamblando El Hardware
Ensamblando El Hardware

Una vez que tenemos todas piezas completes, la electrónica y software listo, podemos comenzar a ensamblar.

En las fotos adjuntas veron el proceso!:)

  • Passi per l'armato:

    1. 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 interesantes e intelectuales ante otra persona, podemos de medecile agradecen el tip;) jaja
    2. Aplicar el cloruro de metileno:-Este pegamento es un ácido 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 personal, 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 mayor que uno 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 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á quedarnos como se muestra en las fotos.-Adesso inseriamo la pieza completa all'interno del tubo in PVC. (Este sistema es molto utilizado en la industria come maquina de inyección, un ejemplo de aplicación es en las maquinas de inyección de platisco, adjunto econtrarán un diagrammaa de como funcionan estas maquinas)-Hacemos l'inserimento de las dos de piezas completas dentro in questo modo non c'è niente di corretto tra i colori di salita della corda e della salita del tubo di PVC-Colocamos la tapa superior o cobertor cobertor.*Ensamble de la caja 2, la de la electrónica. 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 sigue que lo acesckidades a sus nes por completo, le sugiero algunos retos:

  1. Ajustar a sus mascotas (por tipo de animal)
  2. Costruisci un caso con più sistemas de dispensado, per più animali, così come configurare il sistema per più animali
  3. Collegati a IBM IoT per il controllo del sistema da parte del mondo
  4. Agregar un dispensador de agua
  5. Hacerle cualquier cambio que sea oportuno para ti:)

*Este instructable fue realizado por Bernal Rojas con Cesar Rodriguez Bravo co-autore*

Consigliato: