תוכן עניינים:
- שלב 1: Materiales Que Necesitamos
- שלב 2: Iniciando Con Raspberry Pi
- שלב 3: Conectando Sensores Y Actuadores Al Raspberry Pi
- שלב 4: Preparando Node-RED En El Raspberry Pi
- שלב 5: תכנית El Sistema Cognitivo
- שלב 6: קונקטנדו ווטסון
- שלב 7: Inteligencia מלאכותי
- שלב 8: בניית חומרה
- שלב 9: Imprimiendo El Mecanismo De Dispensado
- שלב 10: Cortando En Láser El Case
- שלב 11: Ensamblando El Hardware
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
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.
הוא מכיל את האפשרות לפתור את מערכת החיסון והמערכת, כך שתוכלו להשתמש בבעלי חיים מלאכותיים.
מערכת הדרישות:
- La mascota se acerca y es detectada por un sensor de distancia
- El systemema toma una foto del animal
- La procesa y decid qué animal es
- סלודה א לה מסקוטה (Con voz humana)
- Dispensa el alimento respectivo
- Envía un correo al dueño indicando que ya le ha dispensado alimento
שלב 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 פטל פאי
- חיישן 1 ultrasónico HC-SR04
- מנוע נהג 2
- 2 מנועי צעד
- רמקול אחד (פרלנטס)
- 2 צינורות 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 utilicé acrílico, ustedes pueden usar cualquier otro material, como MDF.
- Una impresora 3D and cortadora láser que in Costa Rica, pueden encontrar in Inventoría LEAD.
שלב 2: Iniciando Con Raspberry Pi
Raspberri Pi הוא אחד המיקרו -מעבדים שיכולים לאפשר למחשב להתחבר ולפנות. זה דומה לא 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 distribución de linux, Open Source, desarrollada especialmente para correr sobre Raspberry Pi.
-
Primeros pasos con Raspbery Pi
- אל פריימר paso es הורדה של el raspbian como zip.
-
Ahora debemos quemarlo en una micro SD, עבור: 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 => Ester comando me devuelve the list of 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 general puede ser "disk1", para efectos de este turorial le llamaremos "TuDisco". diskutil eraseDisk JHFS+ UntitledUFS <TuDisco> => פורמט מתיר וכל פורמט דיסקו אסקוגידו (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 ejemplo de uso de este, se encuentra adjunto en las fotos, la sintáxis del ejemplo sería así
רשימה diskutil
diskutil eraseDisk JHFS+ UntitledUFS disk1 diskutil unmountDisk/dev/disk1 sudo dd if =/Users/bernalrojas/הורדות/2017-11-29-raspbian-stretch.img of =/dev/disk1 bs = 1m diskutil eject/dev/disk1
Usuarios Windows: הורדת שימוש ב- Win32Disk, אם יש לנו מידע אחר או על ידי בחירה
-
מערכת סיסטם אופרטיבית
- Debes conseguir for pantalla, HDMI כבל, עכבר וטכנולוגיה.
- 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).
- Ahora puedes continuar trabajando como una computadora normal or pueden accesar remotamente, así que lo haremos de esta ultima forma, para no depender 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 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 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 supportituir por los números que les retornó. אפשר לראות הרבה פרטים על כל התמונות.
- Nos va pedir la contraseña del equipo y una más de la פטל que por default es "פטל". Esto nos abrirá la terminal inmediatamente.
שלב 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 configar como entradas y salidas para nuestros sensores y actuadores. Nuestros sensores son:
- עבור חיישן של distancia usaremos un sensor ultrasonic. חיישן Este עבור ultrasonidos, como un murcielago… פונקציה המיועדת להונדה (סיכה מפעילה) שאפשר להפעיל מחדש את החיישן, להדגיש את החיישן (pin pin) ולהעריך את כל הזמן. Pueden ver la imagen adjunta que tomé de Zona Maker donde tienen un excelente tutorial for entender a fondo como funciona este sensor
- Para la visión art system el system usará una cámara.
- האם אתה משתמש במנוע צעד?
- Para mover el motor usaremos מנוע נהג. 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 ראש העיר).* הערה:* El diagrama adjunto se muestra otro driver (El rojo, es un נהג קל) distinto a que he utilizado, esto fue para generalizar, ya que la mayí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+" y "CLK+" respectivamente. Y los 2 GND los reemplazamos por CLK- y CW-.
שלב 4: Preparando Node-RED En El Raspberry Pi
Ahora vamos a comenzar a preparar todos los paquetes necesarios para hacer que nuestro system funcione con Node-RED, que es un IDE de programación gráfico muy 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
sudo apt-get dist-upgrade update-nodejs-and-nodered
Estos comandos nos actualizaran nuestro equipo. כל הסיכויים לא יתאפשרו לנו להתאים את הצומת של הצומת האדום לאדום ולהתקין אותה בהתאם.
- Node-RED viene precargado en raspbian for 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.
- אם אתה יכול לראות את זה כמו "ברגע שהצומת האדום התחיל, הצבע דפדפן בכתובת https://192.168.1.102:1880". dirección de ustedes será diferente a la mía.
- Entraremos a nuestro navegador web and 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 => ניהול לוח => התקן. 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 => פאר לה קמרה
- node-red-node-pisrf => חיישן אולטראסוניקו
- node-red-contrib-speakerpi => רמקולי פארה
- node-red-node-watson => בשביל ווטסון
- node-red-contrib-ibm-watson-iot => פאר ואטסון
- node-red-bluemix-nodes => שירותים בענן IBM
- node-red-contrib-python-function => Interprete de Pytho
שלב 5: תכנית El Sistema Cognitivo
Node-RED מתיר ייבוא לתוכנית המדיום של העתקות.
Deben ir a botón de menú arriba a la derecha => יבוא => לוח => pegar el código => import.
Configuración de bloques:
- 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.
- עבור "לצלם צומת פייתון", לחץ באמצעות כפתור והגדרות נכונות של פרמטרים. *חשוב asegurarse de que "שם הקובץ" le hemos puesto "image.jpg"*
- עבור שליחת דוא"ל, לחץ לחיצה כפולה על שם הדוגמאות Colocar nuestros datos, en אל: 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 סיסמה: La clave de esta última dirección de correo.
- El último paso es configar los services de Watson que haremos a continuación en el siguiente paso.
שלב 6: קונקטנדו ווטסון
Watson מספקת שירותים של IBM שיכולים להשתמש במתכונת API.
- ההתחלה וההתייחסות לאחת הענן של IBM. (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 => זיהוי חזותי => Pondremos un nombre único y le damos a crear. Como se muestra en las fotografías adjuntas.
- אם אתה יכול לראות את זה, אתה יכול לצפות במערכות 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 "ווטסון זיהוי חזותי", עיין במאמר זה יכול לתקן את זה ולתקן את כל הפרמטרים.
- Esto mismo debe hacerse para el 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 kice "mostrar" (Ver cuarta foto) y deben copiar las credenciales "שם משתמש" y "סיסמא". Vamos de vuelta al IDE de Node-RED y doble click al bloque "Hablar", עיין באתרים המתאימים ביותר וניתנים לעריכת פרמטרים אל igual que la foto. *Esto debe hacerse para los bloques que dicen hablar*
כמו כן, אנו יכולים לראות את המערכת הפונקציונלית שלך!:) שגיאה אפשרית:
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í
Nuestro sistema está configurado para guardar las fotos en la carpeta/home/pi/Pictures,. En caso de que no exista 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" ו- vamos a "ממשקים". Ahí debemos aseguranos que “Cámara” está en “Habilitada”.
שלב 7: Inteligencia מלאכותי
Procesar una imagen no es algo sencillo de hacer, requiere inteligencia 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 actualidad requiere un poco de tiempo para poder sentarse a construir la arquitectura and 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 humana visual. En estos algoritmos siempre se debe entrenar el system, 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 system a objetos, en este caso, los gatos y perro los reconoce por default.
המשך פעולה חד פעמי לא ניתן להסביר כיצד פונקציה של עצם מלאכותי עצבי אדום, עם קנס כספי מרשים, אין צורך בהגדרה. (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 lama perceptron o lo que equivaldría a una neurona en nuestro cerebro. הערכה של 3 חלקים עיקריים:
- אנטראדות
- Función de suma (Σ)
- Función de activación
Entradas:
Estas son las representadas en la imagen como x1, x2, x3, x…
Función de suma (Σ):
En este punto ocurre una suma de todas las entradas multiplicadas por su peso w respectivo, al finalizar la operación, envía el resultado a la función de activación.
פונקציה פעילה:
סף פונקציה של מטרייה, 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.
Ahora que conocemos la unidad básica de una red neuronal (perceptrón) estamos listos para ver cómo operan en una red. ניתן לצפות בתמונה הכוללת 3 עיקרים:
- קאפה דה אנטרדה
- קאפה אוקולטה
- קאפה דה סלידה
קאפה דה אנטרדה:
אנו יכולים לקבל את כל התרגילים, אשר קיימים מספר עצום של נוירונים.
קאפה אוקולטה:
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.
קאפה דה סלידה:
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.
האם אתה יכול ללמוד מה זה יכול להיות? Esto ocurre en cada perceptron por individual, el algoritmo resulta que en calcular correctione y ajustar los pesos w (Que inicialmente 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.
(Fin del Opcional Informativo)
Watson está creado usando muchos algoritmos como el que acabamos de ver, pero con una ראש העיר פרופונדדד ו complejidad por supuesto, ante esto usar el זיהוי חזותי API, או API של reconocimiento חזותי, otros algoritmos más), resulta muy sencillo de usar, esto porque cuando configuremos el bloque con nuestra credenciales y hagamos el processamiento de una image, Watson nos and devolver un archivo tipo JSON con un motón de posibilidades of objetos que puedan estar presentes ena. כך אנו יכולים להבחין בתהליכי צילום, ואטסון יכול לבוא לידי ביטוי ברשימת הסיכויים שאפשר לזהות אותו ולצלם אותו, ואחר כך ניתן להשתמש בוואטסון!
Luego solo usamos un script for a recorder todas esas posibleses opsiones y si en esa list encuentra conciencia con un perro o un gato le avisará al resto del system fora que dispense la comida correcta:)
Es necesario que se den cuenta que la inteligencia artificial no es algo tan complejo, especialmente cuando existen services como Watson que hacen el trabajo pesado por nosotros!:)
שלב 8: בניית חומרה
Este paso lo hemos realizado en la Inventoría LEAD (Ver laboratorio) el cual es un maker space in Costa Rica desarrollado por 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 רעיונות y proyectos de la mano con expertos en el área.
שלב 9: Imprimiendo El Mecanismo De Dispensado
Como comentábamos en Inventoría LEAD Tenemos and disposición de nosotros impresoras 3D, de las cuales hicimos uso en este proyecto para hacerlo realidad. 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 cosas por nosotros 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.
שלב 10: 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 קוד פתוח לתוכניות של diseño gráfico que nos permitt generar vectores. La maquina láser, al ser un robot cartesiano, funciona por gcode, sin embargo, este gcode debe ser generado for software, en este caso generamos for archivo.svg que son lineas de dibujo, con el cual, el software propio de la cortadora láser puede convertir in una trayectoria for los motores de la maquina.
חומר: 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 una razón, me gusta realizar los trabajos con mucho oficio y elegancia, y este material crea un efecto 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.
שלב 11: Ensamblando El Hardware
Una vez que tenemos todas piezas completeas, la electrónica y list 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 interesantes e intelectuales ante otra persona, podemo decir agradecen el tip;) jaja
-
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. המלצה אישית, אחי ותרגול. Cuidar los kabels es algo importante, un proyecto limpio y agradable a la vista tiene un impacto ראש העיר que uno con kabels desordenados, que se vea desordenado, complejo o sucio.
*Enable 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… fotos.-Ahora insertamos la pieza completea dentro del Tubo de PVC.) 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 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 nes por completeo, le sugiero algunos retos:
- Ajustar a sus mascotas (דרך הטיפו דה חיה)
- בנה מקרה עם מערכת ההפצה, כמה חיות, כמו גם תצורה של מערכת שיחזור לבעלי חיים
- מחבר עם IBM IoT לשליטה על מערכת ההפעלה של כל סוגי המשתתפים
- Agregar un dispensador de agua
- Hacerle cualquier cambio que sea oportuno para ti:)
*ההתחלה הניתנת להוראה מאת ברנאל רוג'אס עם סזאר רודריגס בראבו ביחד עם מחבר*