Índice:
- Etapa 1: Materiales Que Necesitamos
- Etapa 2: Iniciando com Raspberry Pi
- Etapa 3: Conectando Sensores Y Actuadores Al Raspberry Pi
- Etapa 4: Preparando Node-RED En El Raspberry Pi
- Etapa 5: Programando El Sistema Cognitivo
- Etapa 6: Conectando a Watson
- Etapa 7: Inteligencia Artificial
- Etapa 8: Construir um Hardware
- Etapa 9: Imprimiendo El Mecanismo De Dispensado
- Etapa 10: Caso Cortando En Láser El
- Etapa 11: Hardware Ensamblando El
Vídeo: Dispensador De Alimento Para Múltiples Mascotas Usando Inteligencia Artificial Con Watson: 11 Passos
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
Neste Instructable aprenderemos como hacer um dispensador de alimento para sus mascotas, por lo geral, ou pelo menos en mi caso seempre he querido hacer un dispensador automático, sem embargo, tengo un perro y un. Por ende no tengo una forma de sabre cuál animal es para dispensar o alimento adecuado.
Ele encontrou a solução, se trata de um sistema cognitivo que usa de Inteligência Artificial para que, por meio de uma cámara haga um processo de imagem para reconstituir, de cuál animal se trata e dispensar o alimento adecuado.
Lógica del sistema:
- La mascota se acerca e é detectada por um sensor de distancia
- El sistema toma uma foto do animal
- La procesa y decide qué animal es
- Saluda a la mascota (Con voz humana)
- Dispensa o alimento outro
- Envia un correo al dueño indicando que ya le ha dispensado alimento
Etapa 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 framboesa pi
- 1 sensor ultrassônico HC-SR04
- 2 Motor do driver (Pueden utilizar cualquier otro, yo usé este porque era el que tenía a mano!)
- 2 motores de passo
- 1 palestrante (Parlantes)
- 2 tubos T de PVC de pulgada e mídia (Las encuentran en cualquier ferretería por menos de 2000 colones cada una.)
- Uma lâmina de acrílico de 3mm para cortar, yo utilicé 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.
Etapa 2: Iniciando com Raspberry Pi
Raspberri Pi é um microprocesador muito poderoso que não permite projetos de desenvolvimento que requerem um alto poder computacional. É semelhante a um Arduino com a diferença que Raspberry Pi nos permite correr em um Sistema Operativo dentro da tarjeta de desarrollo.
Neste caso, você usará raspbian que é uma distribuição de linux, Open Source, projetado especialmente para correr sobre Raspberry Pi.
-
Primeros pasos con Raspbery Pi
- El primer paso es descargar el raspbian como zip.
-
Ahora debemos quemarlo em um micro SD, para ello: Usuarios MAC / Linux:
- Abrimos la terminal ou console 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 discotecas que encuentre la pc (una SD pode tomarse como un disco externo.) Debemos buscar cuál es el nombre asignado a las SD, por lo geral puede ser "disk1", para efectos de este turorial le llamaremos "TuDisco". diskutil eraseDisk JHFS + UntitledUFS <TuDisco> => Permite emprestar e formatar o disco escogido (TuDisco).
diskutil unmountDisk / dev / <TuDisco> => Desmontar o disco para não poder utilizarlo.
sudo dd if = of = / dev / <TuDisco> bs = 1m => Quema el sistema operativo dentro do 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 nas fotos, la sintáxis del ejemplo sería así
lista de 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
Usuarios Windows: Pueden usar Win32Disk, que es una herramienta sencilla o cualquier otra de su elección
-
Ver sistema operativo
- Você pode conseguir uma tela, um cabo HDMI, um mouse e um teclado.
- Conectalos y enciende la framboesa pi, verás que al igual que un computador normal este va iniciar de la misma sencilla manera que cualquier otra (recordemos that es una computera).
- Então, puedes continuar trabalhando como um computador normal ou pueden accesar remotamente, assim que lo haremos de esta ultima forma, para nenhum dependente de uma 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 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.
- Vamos a ir a nuestra computera y abrimos the terminal de la misma manera, y escribimos ssh pi @ donde é a direção que acabamos de recuperar en el paso anterior, deben sustituir por los números que les retornó. Pueden ver um ejemplo nas fotos para não perse neste paso.
- Nos va pedir la contraseña del equipo y una más de la framboesa que por default es "framboesa". Esto nos abrir la terminal inmediatamente.
Etapa 3: Conectando Sensores Y Actuadores Al Raspberry Pi
Cómo sabemos Raspberry Pi é uma tarjeta de desarrollo que posee pinheiros GPIO que podemos configurar como entradas y salidas para nuestros sensores y atuadores. Nuestros sensores son:
- Para el sensor de distancia usaremos un sensor ultrasónico. Este sensor funciona por ultrasonidos, como um murcielago… Funciona emitindo um honda (Trigger pin) que rebotará em um objeto, o sensor la recibirá de vuelta (Echo pin) e estimará o tempo que duró em regresar. Pueden ver la imagen adjunta que tomé de Zona Maker donde tienen um excelente tutorial para entender e fondo como funciona este sensor
- Para la visión artificial el sistema usará una cámara.
- Como motor usaremos un Stepper Motor.¿Qué es un Stepper Motor?
- 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 driver fácil) distinto a que ele utilizado, é fue para generalizar, ya que la mayoría de drivers tienen esa nomenclatura (dir y passo). Con el que yo estoy utlizando (el TB6560) los pines "dir" y "step" los reemplazamos por "CW +" y "CLK +" respectivamente. Y los 2 GND los reemplazamos por CLK- y CW-.
Etapa 4: Preparando Node-RED En El Raspberry Pi
Ahora a comenzar a preparar todos los paquetes necesarios para hacer que nosso sistema funcione com Node-RED, que é um IDE de programación gráfico muito sencillo de utilizar.
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 atualizaran nuestro equipo. El último comando, nos permite tener nuestro entorno Node-RED atualizado para poder instalar las dependencias que vamos a necesitar neste passo, es importanteno saltarse esta atualização.
- Node-RED viene precargado en raspbian por default, assim 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 semelhante a "Assim que o Node-RED for iniciado, aponte um navegador para https://192.168.1.102:1880" esto quiere decir que ha aberto um 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 e copiamos a direção, esto nos va abrir o IDE de Node-RED
- Ahora a instalar los paquete que necesitamos, para ello vamos a ir a: botón de menú arriba a la derecha => manage palette => Install vamos. Esto nos va permitir manera gráfica instalar todos los paquetes externos que necesitemos, lo que serían las bibliotecas de código.
-
Ahora vamos a instalar varios paquetes, esto lo haremos copiando o nombre del paquete que les dejaré abajo y dandole al botón instalar. Estão debe hacerse para cada um 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 alto-falantes
- node-red-node-watson => Para watson
- node-red-contrib-ibm-watson-iot => Para watson
- node-red-bluemix-nodes => Serviços de nuvem IBM
- node-red-contrib-python-function => Interprete de Pytho
Etapa 5: Programando El Sistema Cognitivo
Node-RED permite importar um programa por meio de copiar o código que o adjunto.
Deben ir a um botón de menú arriba a la derecha => import => clipboard => pegar el código => import. Esto les debería generar los bloques del programa, algunos bloques deben configurarse.
Configuración de bloques:
- Para el primer bloque, that dice "Distancia", le daremos doble click y nos aseguraremos that los parametros sean los mismos de la fotografía adjunta.
- Para "tirar foto python node", clique duas vezes e igual verificamos los parametros al adjunto. * Importante asegurarse de que "Nome do arquivo" le hemos puesto "image.jpg" *
- Para Email enviar, clique duas vezes e aquí debemos colocar nuestros datos, en Para: sería a qué dirección de correo quiero enviar el mailUserid: Sería la dirección de correo de la persona que envíaSenha: La clave de esta última direção de correo.
- O último passo é configurar os serviços de Watson que haremos a continuação no próximo passo.
Etapa 6: Conectando a Watson
O Watson é um serviço da IBM, muito sencillo de usar que funciona por meio de API.
- Antes de começar, crie uma lição no IBM Cloud. (IBM les introduz un mes de prueba, para tener en cuenta)
- Una vez dentro verán algo como na 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 that dice "mostrar" (Ver cuarta foto) y deben copiar las credenciales, donde dice "api_key".
- Acesse o IDE de Node-RED e clique duas vezes no bloqueio "Watson Visual Recognition", selecione a opção de pegar seus créditos no espaço correto e ajustar os parâmetros ao mesmo tempo que a 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 that dice "mostrar" (Ver cuarta foto) y deben copiar las credenciales "username" y "password". Vamos de vuelta al IDE de Node-RED e doble click al bloque "Hablar", se aseguran de pegar sus credenciales en el espacio correcto y ajustar los parametros al igual a la foto. * Esto debe hacerse para los bloques que dicen hablar *
Y listo, así de sencillo ya tienen su sistema funcionando!:) Erro possível:
Si cuando se debe tomar la foto nos retorna un erro 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í
Nuestro sistema está configurado para guardar as fotos na carpeta / home / pi / Pictures,. Em caso de que não exista foto ou la foto não se pueda abrir (0KB), é possível que la cámara este mal conectada o que não 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á em “Habilitada”.
Etapa 7: Inteligencia Artificial
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 podria ser el que se est exibindo en la imagen. Este tipo de algoritmos pueden hacerse de varias maneras, una de ellas es usando redes neuronales profundas que en la atualidad requiere un poco de tempo para poder sentarse a construir la arquitectura y programar esta red, el nombre para el tipo de red que se usaría es Redes Neuronales Convolucionales, que é o algoritmo que mais se assemelha a las neuronas na corteza visual humana. En estos algoritmos siempre se debe entrenar o sistema, con um conjunto de dados certeros y uno falso, es decir muchas fotos con el objeto que queremos reconocer y otro montón de fotos agrupadas, sen 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 universais, por supuesto dispone de um herramienta o "campo de entrenamiento" para entrenar nuestro sistema a un poco menos comunes, neste caso, los gatos y perro los reconoce por default.
A continuación haré un paréntesis donde explicaré como funciona um neuronal vermelho artificial, con fines meramente didácticos, No es necesario para la realización del instructable. (Si tu interés es replicar el proyecto rapidamente, 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 lhama perceptron o lo que equivaldría a una neurona en nuestro cerebro. Está compuesta de 3 partes principales:
- Entradas
- Función de suma (Σ)
- Función de activación
Entradas:
Estas son las representadas en la imagen como x1, x2, x3, x… Serán multiplicadas por um peso w (con un valor random al inicio)
Función de suma (Σ):
Este é o ponto ocurre para uma suma de todas as entradas multiplicadas por seu peso com os respectivos, ao finalizar a operação, envía o resultado à função de ativação.
Función de activación:
Funciona como threshold o umbral, es decir, si el valor del resultado supera cierto número (por lo geral 0) se activará la salida de la neurona. Podemos decir que es como una llave que deja pasar el agua ou 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 neuronal (perceptrón) estamos listos para ver cómo operan en una red. Como observador na segunda imagem, está compilado de 3 capas principais:
- Capa de entrada
- Capa oculta
- Capa de salida
Capa de entrada:
Aquí es donde recibe todas la entradas, pueden existir um número indefinido de neuronas.
Capa oculta:
Recibe la salida de cada neurona que existe en la capa de primer, realiza el mismo proceso en cada percetrón y su salida se la entrega la capa de salida.
Capa de salida:
This 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 se es un gato o perro necesitarías 2 neuronas, una para gatos y otra perros.
Todo esto es muy lindo, pero ¿Dónde ocurre realmente el aprendizaje? Este ocurre en cada perceptron por indivíduo, el algoritmo resulta que en calcular correctamente y ajustar los pesos w (Que boletim tenían un valor random). Isso pode ser feito mediante aprendizaje no supervisionado o aprendizaje supervisionado, la manera más sencilla, es calculando el erro, es decir, la diferencie entre el valor de la salida que yo esperaba y el que realmente me dio.
(Fin del Opcional Informativo)
Watson está criado usando muitos 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 y algunos 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 com un motón de posibilidades de objetos que puedan estar presentes en esaía. Es decir, quando procesamos la foto, Watson tem sua análise e nos devolve uma lista com prováveis objetos que foram detectados em esa foto, assim que sencillo es usar Watson!
Luego solo capaz de um script para recorrer a todas as opções possíveis e si em uma lista encuentra conciencia com um perro ou um gato, avisará ao resto do sistema para que dispense a comida correta:)
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!:)
Etapa 8: Construir um Hardware
Este paso lo hemos realizado en la Inventoría LEAD (Ver laboratorio) el cual es un maker space na Costa Rica desenvolvido pela 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 a disposicón de nosotros, la comunidad, para prototipar y desarrollar nuestras ideias y projetos de la mano con expertos en el área.
Etapa 9: Imprimiendo El Mecanismo De Dispensado
Como comentamos en en Inventoría LEAD tenemos a disposición de nosotros impresoras 3D, de las cuales hicimos use en este proyecto para hacerlo realidad. Adjunto encontrarn los arquivos listos para imprimir, 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 cosas por nosotros mismos y no que alguien 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.
Etapa 10: Caso Cortando En Láser El
De la misma forma, hicimos use 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, sem embargo, este gcode debe ser gerado por um software, neste caso gera um arquivo.svg que son lineas de dibujo, con el cual, el software propio de la cortadora láser pode converter em uma trayectoria para os motores 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 ele utilizado acrílico negro mate (que compré en panaplast), esto es por una razón, me gusta realizar 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 usar o material que deseen, si buscan realizar algo de bajo cost, pueden hacer uso de MDF de 3mm el cual es un material muy económico y de acabados muy bonitos también.
Etapa 11: Hardware Ensamblando El
Uma vez que tenemos todas as piezas completas, a eletrónica e a listo de software, 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 desvios acrílico, para pegar este material es necesario usar pegamento de acrílico o, para parecer mais interesantes e intelectuais ante outra pessoa, podemos decir Cloruro de metileno… Luego me agradecen el tip;) jaja
-
Aplicar o cloruro de metileno: -Este pegamento é um ácido que é muito peligroso, se recomienda aplicarlo com uma jeringa e guantes.
-El proceso debe realizarse com calma y cuidado, ya que uma gota em um lugar equivocado puede dañar la estética de nuestro acrílico. Como recomendação pessoal, sempre que houver um projeto realiceno com mucho oficio y detalle. Cuidar dos cabos é algo importante, um projeto de limpeza e agradável à vista tiene un impacto prefeito que um com cabos desordenados, que se vea desordenado, complejo ou sucio.
* Ensable de la caja 1, la dispensadora (Con los motores) -En este ponto debemos tomar as pessoas dos motores que imprimimos em 3D e atornillarlos no motor, tal e como se muestra na 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 debemos quedarnos como se muestra en las fotos.-Ahora insertamos la pieza completa dentro del Tubo de PVC. (Este sistema é muito utilizado na indústria como máquina de inicialização, um ejemplo de aplicação es nas máquinas de inicialização de platisco, adjunto econtrarán um diagrama de como funcionan estas máquinas) -Hacemos la inserción de las dos piezas completas de la caja de modo que nos quede um acople correcto entre os 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 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 ajusten a sus necesidades y lo hackeen por completo, le sugiero algunos retos:
- Ajustar a sus mascotas (por tipo de animal)
- Construir um caso com mais sistemas de dispensado, para mais animales, assim como configurar el sistema para reconocer más animales
- Conectar com IBM IoT para controlar o sistema desde o cualquier parte do mundo
- Agregar un dispensador de agua
- Hacerle cualquier cambio que sea oportuno para ti:)
* Este fue instructable realizado por Bernal Rojas con Cesar Rodriguez Bravo como co-autor *
Recomendado:
Inteligência artificial e reconhecimento de imagem usando HuskyLens: 6 etapas (com fotos)
Inteligência Artificial e Reconhecimento de Imagem Usando HuskyLens: Ei, e aí, pessoal! Akarsh aqui da CETech. Neste projeto, vamos dar uma olhada nas HuskyLens da DFRobot. É um módulo de câmera alimentado por IA capaz de realizar várias operações de Inteligência Artificial, como Reconhecimento de Face
Inteligência Artificial de Jogo de Tabuleiro: o Algoritmo Minimax: 8 Passos
Inteligência Artificial em Jogos de Tabuleiro: o Algoritmo Minimax: Você já se perguntou como são feitos os computadores contra os quais você joga xadrez ou damas? Bem, não procure mais, pois este Instructable para ele mostrará como fazer uma inteligência artificial (IA) simples, mas eficaz, usando o algoritmo Minimax! Usando o
Inteligência Artificial para o Seu Robô: 7 Passos
Inteligência Artificial para o Seu Robô .: Fazer o seu robô se mover e fazê-lo pensar são tarefas diferentes. Em humanos, os movimentos finos são controlados pelo cerebelo enquanto ações e tomadas de decisão - pelo grande cérebro. Se você está lendo isso, provavelmente você já tem um robô e pode gerenciar
TUTORIAL BÁSICO SOBRE LINGUAGEM DE MARKUP DE INTELIGÊNCIA ARTIFICIAL (AIML) VIA NOTEPAD: 8 etapas
TUTORIAL BÁSICO SOBRE LINGUAGEM DE MARKUP DE INTELIGÊNCIA ARTIFICIAL (AIML) VIA NOTEPAD: A Linguagem de Marcação de Inteligência Artificial (AIML) é uma linguagem de programação que é uma especificação de Linguagem de Marcação Extensível (XML) usada por chatbot, verbot, pandorabot, superbot e outro robô falante. Foi desenvolvido pelo Dr. Richard Wallace e
Fale com o Pick e o bate-papo de inteligência artificial usando o Cleverbot: 14 etapas (com imagens)
Fale com o Pick e o Bate-papo de Inteligência Artificial usando o Cleverbot: Aqui, tento não apenas o comando de voz, mas também o Bate-papo de Inteligência Artificial com o computador usando o Cleverbot. Na verdade a ideia surgiu quando encontraram crianças misturando cores na caixa de colorir ao tirar a cor de uma cor para a mais próxima. Mas finalmente impleme