สารบัญ:
- ขั้นตอนที่ 1: วัสดุ Que Necesitamos
- ขั้นตอนที่ 2: Iniciando Con Raspberry Pi
- ขั้นตอนที่ 3: Conectando Sensores และ Actuadores Al Raspberry Pi
- ขั้นตอนที่ 4: Preparando Node-RED En El Raspberry Pi
- ขั้นตอนที่ 5: โปรแกรมและโปรแกรม El Sistema Cognitivo
- ขั้นตอนที่ 6: Conectando a Watson
- ขั้นตอนที่ 7: Inteligencia Artificial
- ขั้นตอนที่ 8: Construyendo Un Hardware
- ขั้นตอนที่ 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:58
En este คำแนะนำในการใช้งาน 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. สิ้นสุดวันที่
เขาขัดแย้งกับปัญหา, แยกจากกัน sistema cognitivo que hace uso 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.
ระบบโลจิกาเดล:
- La mascota se acerca y es detectada por un sensor de distancia
- El sistema toma una foto del animal
- La procesa y ตัดสินใจ qué animal es
- Saluda a la mascota (Con voz humana)
- การจ่ายผลตอบแทนตามเงื่อนไข
- Envía un correo al dueño indicando que ya le ha dispensado อาหาร
ขั้นตอนที่ 1: วัสดุ 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 วัสดุ:)
- 1 Raspberry Pi, les recomiendo el modelo 3, pero las anteriores tambien funcionan!
- 1 Cámara para raspberry pi
- 1 เซ็นเซอร์อัลตราโซนิโก HC-SR04
- 2 ตัวขับมอเตอร์ (Pueden utilizar cualquier otro, yo usé este porque era el que tenía a mano!)
- สเต็ปเปอร์มอเตอร์ 2 ตัว
- ผู้พูด 1 คน (Parlantes)
- 2 หลอด T de PVC de pulgada และ 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, MDF como
- Una impresora 3D และ cortadora láser que en Costa Rica, pueden encontrar en Inventoría LEAD.
ขั้นตอนที่ 2: Iniciando Con Raspberry Pi
Raspberri Pi es un microprocesador muy poderoso que nos permite desarrollar proyectos que requieran un alto poder computacional. คล้ายกับ 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, ยกเลิกการใช้งานเฉพาะสำหรับ Raspberry Pi
-
Primeros pasos กับ Raspbery Pi
- El primer paso es descargar el raspbian โคโม zip
-
Ahora debemos quemarlo en una micro SD สำหรับ ello:Usuarios MAC / Linux:
- Abrimos la terminal หรือ consola del sistema, como se muestra en la foto.
-
Usaremos ciertos comando que expplicaré สำหรับความคุ้นเคย 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 ทั่วไป puede para ser " disk1", efectos de este turorial le llamaremos "TuDisco" diskutil eraseDisk JHFS+ UntitledUFS < TuDisco > => อนุญาต borrar y formatear el disco escogido (TuDisco)
diskutil unmountDisk /dev/< TuDisco > => Desmonta el disco para ไม่มี poder utilizarlo.
sudo dd if= of=/dev/< TuDisco> bs=1m => Quema el sistema operativo dentro de la SD, podría durar hasta 1 หรือมากกว่านั้น
ดีดดิสก์ออก /dev/< TuDisco> => Expulsa el Disco
Un ejemplo de uso de este, en encuentra adjunto en las fotos, la sintáxis del ejemplo sería así
รายการดิสก์
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 ดีดดิสก์ออก /dev/disk1
การใช้งาน Windows: ใช้ Win32Disk, que es una herramienta sencilla o cualquier otra de su elección
-
Ver sistemaoperativo
- Debes conseguir una pantalla, un สายเคเบิล HDMI, เมาส์และ teclado
- 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 (บันทึก que es una computadora)
- Ahora puedes ต่อเนื่อง trabajando como una computadora ปกติหรือ accesar remotamente, así que lo haremos de esta ultima form, para no depender de una pantalla para poder trabajar.
- มีตัวเลือกมากมายสำหรับตัวเลือก 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 porremoques porremosques) Ahora pueden desconectar ลา pantalla.
- Vamos 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.. เวอร์ชันก่อนหน้า 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á ลา terminal inmediatamente.
ขั้นตอนที่ 3: Conectando Sensores และ Actuadores Al Raspberry Pi
ราสเบอร์รี่ Pi es un una tarjeta de desarrollo que posee pines GPIO que podemos กำหนดค่า como entradas และ salidas para nuestros sensores และ actuadores. Nuestros sensores son:
- Para el sensor de distancia usaremos un เซ็นเซอร์ ultrasónico. Este sensor funciona por ultrasonidos, como un murcielago… Funciona emitiendo una honda (Trigger pin) que rebotará en un objeto, el sensor la recibirá de vuelta (Echo pin) และ estimará el tiempo que duró en regresar. เวอร์ชันที่ใช้งานจริง adjunta que tomé de Zona Maker donde tienen un excelente tutorial para entender a fondo como funciona este sensor
- Para la visión ประดิษฐ์ el sistema usará una cámara.
- Como motor usaremos un Stepper Motor. ¿Qué es un Stepper Motor?
- 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อนุญาตให้ใช้ manejar una corriente นายกเทศมนตรี)*หมายเหตุ:* El Diagrama adjunto se muestra otro คนขับรถ (El una corriente นายกเทศมนตรี) ขับง่าย) แยกแยะ 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 โดย "CW+" y "CLK+" เคารพ Y แพ้ 2 GND ลอส reemplazamos โดย CLK- y CW-
ขั้นตอนที่ 4: Preparando Node-RED En El Raspberry Pi
Ahora กับสิ่งที่ต้องเตรียมเพื่อเตรียมการสำหรับสิ่งที่จำเป็นสำหรับผู้ใช้งานที่ต้องการใช้งานกับ Node-RED
Antes de comenzar การเตรียมการที่ต้องทำ es necesario tener nuestro equipo actualizado, สำหรับ 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 nuestroequipo. อื่น ๆ ที่ไม่มีเงื่อนไข, อนุญาตให้ใช้หมายเลข nuestro entorno Node-RED จริง สำหรับ poder ที่ติดตั้งบน las Dependencias que vamos a necesitar en 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 debesador แยกเป็น esté conectada a la misma เรด o wifi que las raspberry pi
- เป็นบรรทัดเดียวกับ que dice algo ที่คล้ายกัน a "เมื่อ Node-RED เริ่มต้นแล้ว ให้ชี้เบราว์เซอร์ที่ 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á ที่แตกต่างกัน a la mía.
- Entraremos a nuestro navegador web y copiamos la dirección, esto nos va abrir el IDE ของ 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, มากกว่า que librerias en codigo.
-
Ahora vamos ติดตั้งหลากหลาย 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 เซ็นเซอร์ ultrasónico
- node-red-contrib-speakerpi => ลำโพงคู่
- node-red-node-watson => พาราวัตสัน
- node-red-contrib-ibm-watson-iot => Para watson
- node-red-bluemix-nodes => บริการของ IBM cloud
- node-red-contrib-python-function => Interprete de Pytho
ขั้นตอนที่ 5: โปรแกรมและโปรแกรม El Sistema Cognitivo
Node-RED อนุญาตให้นำเข้าโปรแกรม por 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 ทั่วไป los bloques del programa, algunos bloques deben กำหนดค่า
การกำหนดค่า bloques:
- Para el ไพรเมอร์ bloque, que dice "Distancia", le daremos doble click y nos aseguraremos que los parametros sean los mismos de la fotografía adjunta
- สำหรับ "ถ่ายภาพโหนดหลาม", ดับเบิลคลิก y e igual verificamos los parametros al adjunto *สำคัญ asegurarse de que "ชื่อไฟล์" le hemos puesto "image.jpg"*
- Para Email send, doble click y aquí debemos colocar nuestros datos, en To: 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 estacic últ.
- El último paso es การกำหนดค่า los servicios de Watson que haremos a Continuación en el siguiente paso
ขั้นตอนที่ 6: Conectando a Watson
Watson กับบริการของ IBM muy sencillo de utilizar que funciona por medio de API
- ก่อนเริ่มใช้งาน 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 dice "mostrar" (รูปภาพจากรูปภาพ) และ deben copiar las credenciales, donde dice "api_key"
- Van de vuelta al IDE ของ Node-RED และ double click al bloque "Watson Visual Recognition", se aseguran de pegar sus credenciales en el espacio Correcto และ 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.
- ข้อมูลทั่วไปเกี่ยวกับ API ใหม่, ahora le dan al botón que dice "mostrar" (รูปภาพจากรูปภาพ) และ deben copiar las credenciales "username" y "password" Vamos de vuelta al IDE ของ Node-RED และ double click al bloque "Hablar", se aseguran de pegar sus credenciales en el espacio Correcto และ ajustar los parametros al igual que la foto. *Esto debe hacerse para los bloques que dicen hablar*
รายการ, así de sencillo ya tienen su sistema funcionando!:) ข้อผิดพลาดที่เป็นไปได้:
Si cuando se debe tomar la foto nos retorna un error y la luz (roja) de la cámara no enciende, debemos ทบทวน 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” และ “Interfaces” Ahí debemos aseguranos que “Cámara” está en “Habilitada”.
ขั้นตอนที่ 7: Inteligencia Artificial
การประมวลผลภาพโดยไม่จำเป็น ต้องใช้ inteligencia เทียมสำหรับการตรวจจับผู้อุปถัมภ์และรูปภาพอื่นๆ ทั่วไป รูปภาพส่วนใหญ่ เอสเต ติโป เดอ อัลกอริตโมส ใช้งานได้หลากหลาย มากกว่า หลายตัวเลือก, una de ellas es usando redes neuronales profundas que en la actualidad requiere un poco de tiempo para poder sentarse la arquitectura y programar esta uta red, el el speca para poder sentarse a construir la arquitectura y programar esta uta แดง es Redes Neuronales Convolucionales, que es el algoritmo que más se asemeja a las neuronas และลาคอร์เตซา 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, บาป
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 oamientos du entrenes ที่เข้าร่วม, en este caso, los gatos y perro los reconoce กับ default.
ความต่อเนื่อง haré un paréntesis donde explicé como funciona una red neuronal artificial, con fines meramente didacticos, No es necesario para la realización del Instrucable. (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 เซเรโบร Está compuesta de 3 ส่วนสำคัญ:
- เอนทราดาส
- ฟุงซิออน เดอ ซูมา (Σ)
- Función de activación
เอนทราดา:
Estas son las agentadas en la imagen como x1, x2, x3, x…Serán multiplicadas por un peso w (con un valor random al inicio)
Función de suma (Σ):
En este punto ocurre una suma de todas las entradas multiplicadas por su peso w friendshipivo, al finalizar la operación, envía el resultado a la función de activación.
Función de activación:
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 เอล ปาโซ เดล อากัว Solo que en este caso, hablamos de la salida de una neurona.
Ahora que conocemos la unidad básica de una เซลล์ประสาทสีแดง (perceptrón) estamos listos para ver cómo operan en una red. Como observan en la segunda imagen, está compuesta de 3 capas principales:
- Capa de entrada
- Capa oculta
- คาปาเดซาลิดา
คาปา เดอ เอนทราดา:
Aquí es donde recibe todas la entradas, pueden Existir un número indefinido de neuronas.
คาปาโอคัลตา:
Recibe la salida de cada neurona que มีอยู่ 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íมีอยู่ 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íros 2 neuronas, unay para o o
สิ่งที่ต้องทำ esto es muy lindo, pero ¿Dónde ocurre realmente el aprendizaje? เกิดขึ้นจากความเข้าใจของแต่ละคน, algoritmo ผลลัพธ์ que en calcular การแก้ไขและ 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.
(ข้อมูล Fin del Opcional)
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 ของ reconocimiento visual, (Que ahora que ional estra esra es nabemos na otros algoritmos más), resulta muy sencillo de usar, esto porque cuando configurationmos el bloque con nuestra credenciales y hagamos el procesamiento de una imagen, Watson nos va devolver un archivo tipo JSON con un motónpu esjet en posibilidades ที่เดิม. เริ่มต้น, ขั้นตอนการทำงาน la foto, วัตสัน อยู่ใน การวิเคราะห์ และ พัฒนาแล้ว รายการที่มีแนวโน้ม เป็นไปได้ วัตถุที่ตรวจพบ en esa foto, ตามภาพ ที่ใช้ Watson!
Luego solo ใช้งาน 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:)
จำเป็น que se den cuenta que la inteligencia ประดิษฐ์ ไม่มี es algo tan complejo, เฉพาะ cuando มีอยู่ servicios como Watson que hacen el trabajo pesado por nosotros!:)
ขั้นตอนที่ 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 โดย Fundación Costa Rica para la Innovación.
ที่ห้องปฏิบัติการ contamos 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 ideas y proyectos de la mano con Expertos.
ขั้นตอนที่ 9: Imprimiendo El Mecanismo De Dispensado
Como comentábamos en en Inventoría LEAD tenemos a disposición de nosotros impresoras 3D, de las cuales hicimos uso en este proyecto para hacerlo realidad. แสดงความคิดเห็น เพิ่มเติม encontrarán los archivos listos para imprimir, les recomiendo seguir Este Instrucable el cuál explica paso a paso como hacer uso de las impresoras 3D de Inventoría, ya que en estos espacios buscan que todosporlas nosotros ที่มากกว่า más nos las haga, por ello con este Instrucable aprenderán a utilizar estas maquinas y poner a imprimir las piezas por ustedes mismos. เพิ่มเติม
ขั้นตอนที่ 10: Cortando En Láser El Case
รูปแบบ, 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, alian ser un robot cartes, การคว่ำบาตรจากบาป, este gcode debe ser generado por un software, en este caso generamos un archivo.svg que son lineas de dibujo, con el cual, el software propio de la cortadora láser puede convertir en una trayectoria para ma los motores de la …
วัสดุ El: 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 raze es por una me por una luna trabajos con mucho oficio y elegancia, y este วัสดุ crea un efecto visual muy interesante, de lejos puede confudirse con aluminio negro, lo cual le da mucha elegancia al proyecto
ใช้งานได้จริงกับวัสดุ 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 completas, la electrónica และ software listo, podemos comenzar a ensamblar.
En las fotos adjuntas verán el proceso!:)
-
Pasos สำหรับอาร์มาโด:
- 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 interesualrosantes e intto … agradecen el tip;) jaja
-
Aplicar el cloruro de metileno:-Este pegamento es un ácido que es muy peligroso, ขอแนะนำ 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 และ detalle. Cuidar los cables es algo importante, un proyecto limpio และ agradable a la vista tiene un impacto นายกเทศมนตรี que uno con cables desordenados, que se vea desordenado, complejo o sucio
*เปิดใช้งาน 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 ใช้ 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 no las com quedar o es 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 un Diagrama de como funcionan estas sacemosca de la ลา) รูปแบบ 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 en sensor ultrasónico los orificios. 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 Retos ที่เก่ากว่า พอแล้ว, le sugiero algunos retos:
- Ajustar a sus mascotas (por tipo de สัตว์)
- Construir un case con más sistemas de dispensado, para más animales, así como กำหนดค่า el sistema para reconocer más animales
- Conectar กับ 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 สอนได้ fue realizado por Bernal Rojas con Cesar Rodriguez Bravo como co-autor*