Inhaltsverzeichnis:

Dispensador De Alimento Para Múltiple Mascotas Usando Inteligencia Artificial Con Watson - Gunook
Dispensador De Alimento Para Múltiple Mascotas Usando Inteligencia Artificial Con Watson - Gunook

Video: Dispensador De Alimento Para Múltiple Mascotas Usando Inteligencia Artificial Con Watson - Gunook

Video: Dispensador De Alimento Para Múltiple Mascotas Usando Inteligencia Artificial Con Watson - Gunook
Video: Accidente con AK47. Uso Indebido de Armas de Fuego. 2024, November
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 ein Dispensador de Alimento für sus mascotas, por lo general, o al menos en mi caso siempre er querido hacer un dispensador automático, Sündenembargo, Tengo un perro y un gato. Por ende no tengo una forma de saber cuál animal es para dispensar el alimento adecuado.

Er encontrado la solución, se trata de a sistema cognitivo que hace uso de la Inteligencia Künstliche para que, por medio una cámara haga a procesamiento de imagen para reconocer, de cuál animal set trata y dispensar el alimento adecuado.

Lógica del sistema:

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

Schritt 1: Materiales Que Necesitamos

Materialien Que Necesitamos
Materialien Que Necesitamos
Materialien Que Necesitamos
Materialien Que Necesitamos
Materialien Que Necesitamos
Materialien 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. 1 Raspberry Pi, les recomiendo el modelo 3, pero las anteriores tambien funcionan!
  2. 1 Cámara para himbeer pi
  3. 1 Sensor ultrasónico HC-SR04
  4. 2 Fahrermotor (Pueden utilizar cualquier otro, yo usé este porque era el que tenía a mano!)
  5. 2 Schrittmotoren
  6. 1 Lautsprecher (Palantes)
  7. 2 tubos T de PVC de pulgada y media (Las encuentran en cualquier ferretería por menos de 2000 Colones cada una.)
  8. Eine 3mm-Acrílico-Länge für den Kortar, Sie verwenden acrílico, verwenden pueden usar cualquier otro-Material, como MDF.
  9. Una impresora 3D und cortadora láser que in Costa Rica, pueden encontrar und Inventoría LEAD.

Schritt 2: Iniciando Con Raspberry Pi

Iniciando Con Raspberry Pi
Iniciando Con Raspberry Pi
Iniciando Con Raspberry Pi
Iniciando Con Raspberry Pi
Iniciando Con Raspberry Pi
Iniciando Con Raspberry Pi

Raspberri Pi es un microprocesador muy poderoso que nos allowe desarrollar proyectos que requieran un alto poder computacional. Es ist ähnlich wie ein Arduino mit einer Differenz von Raspberry Pi, wenn es eine Sistema Operativo dentro de la tarjeta de desarrollo erlaubt.

En este caso yo usaré raspbian que es una distribución de linux, Open Source, speziell für den Raspberry Pi.

  • Primeros pasos con Raspbery Mehr

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

      1. Abrimos la terminal oder consola del sistema, como se muestra en la foto.
      2. 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 es el nombre asignado a las SD, por lo general puede ser " disk1", para efectos de este turorial le llamaremos "TuDisco". diskutil deleteDisk JHFS+ UntitledUFS < TuDisco > => Erlaube das 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 system operativ 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-Liste

diskutil deleteDisk 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

Übliche Windows: Pueden usar Win32Disk, que es una herramienta sencilla o cualquier otra de su elección

  • Ver sistema operativ

    1. Debes conseguir una pantalla, un-Kabel HDMI, Maus und 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 oder 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 necesitareuturo). 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 une 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 que por default es "Himbeere". Esto nos abrirá la terminal inmediatamente.

Schritt 3: Conectando Sensores Y Actuadores Al Raspberry Pi

Conectando Sensores Y Actuadores Al Raspberry Pi
Conectando Sensores Y Actuadores Al Raspberry Pi
Conectando Sensores Y Actuadores Al Raspberry Pi
Conectando Sensores Y Actuadores Al Raspberry Pi
Conectando Sensores Y Actuadores Al Raspberry Pi
Conectando Sensores Y Actuadores Al Raspberry Pi

Cómo sabemos Raspberry Pi es un una tarjeta de desarrollo que posee pines GPIO que podemos configurar como entradas y salidas para nuestros sensores y actuadores. Nuestros sensores son:

  1. Para el sensor de usaremos un sensor ultrasónico. Este sensor funciona por ultrasonidos, como un murcielago… Funciona emitiendo una honda (Trigger pin) que rebotará en a objeto, el sensor la recibirá de vuelta (Echo pin) und 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 como funciona este sensor
  2. Para la visión künstliche el sistema usará una cámara.
  3. Como motor usaremos un Stepper Motor.¿Qué es un Stepper Motor?
  4. Para Mover el motor usaremos Treibermotor. 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 allowen 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 driver tienen esa nomenclatura (dir y step). Con el que yo estoy utlizando (el TB6560) los pines "dir" y "step" los reemplazamos von "CW+" und "CLK+". Y los 2 GND los reemplazamos von CLK- und CW-.

Schritt 4: 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
Preparando Node-RED En El Raspberry Pi

Ahora vamos ist ein Comenzar zur Vorbereitung von Todos Loss Paquetes, die für Hacer benötigt werden, um eine neue Systemfunktion mit Node-RED zu erhalten, die eine IDE-Programmación gráfico muy sencillo de utilizar enthält.

Antes de comenzar a preparar todo es necesario tener nuestro equipo currentizado, 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 currentizaran nuestro equipo. El último comando, nos allowe tener nuestro entorno Node-RED-Aktualisierung für die Installation der Abhängigkeiten, die in einem Schritt erforderlich sind, ist es wichtig, dass die Aktualisierung erfolgt.

  • Node-RED viene precargado en raspbian por default, así que solo debemos iniciarlo, para esto vamos a ir a la terminal und escribimos "node-red-start" esto nos va ejecutar un servidor bajo la misma red, ahora debes aseguradorarte que tu comput esté conectada a la misma red oder wifi que las raspberry pi.
  • Vas a ver una linea que dice algo ähnlich einem "Once Node-RED has started, 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 => Palette verwalten => Install 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

    1. node-red-contrib-camerapi => Para la camara
    2. node-red-node-pisrf => Para sensor ultrasónico
    3. node-red-contrib-speakerpi => Para-Lautsprecher
    4. node-red-node-watson => Para watson
    5. node-red-contrib-ibm-watson-iot => Para watson
    6. node-red-bluemix-nodes => Dienste der IBM Cloud
    7. node-red-contrib-python-function => Interprete de Pytho

Schritt 5: Programando El Sistema Cognitivo

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

Node-RED erlaubt den Import eines Programms von mittleren Kopien und Código que les dejo adjunto.

Deben ir a botón de menú arriba a la derecha => import => Zwischenablage => pegar el código => import.

Configuración de bloques:

  1. Para el Prime Block, que dice "Distancia", doble click und nos aseguraremos que los parametros sean los mismos de la fotografía adjunta.
  2. Para "Foto-Python-Knoten aufnehmen", Doppelklick und igual verificamos los parametros al adjunto. *Wichtige asegurarse de que "Dateiname" le hemos puesto "image.jpg"*
  3. Para E-Mail senden, Doppelklick y aquí debemos colocar nuestros datos, de An: sería a qué dirección de correo quiero enviar el mailUserid: Sería la dirección de correo de la persona que envíaPasswort: La clave de esta última de corrección
  4. El último paso es configurar los servicios de Watson que haremos a continuación en el siguiente paso.

Schritt 6: Conectando ein Watson

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

Watson ist ein IBM-Dienst, der für die Verwendung von API-Mitteln verwendet wird.

  1. En Prime Paso es Crearse una Cuenta in el IBM Cloud. (IBM les dará un mes de prueba, para tener en cuenta)
  2. Una vez dentro verán algo como en la foto, aquí buscaremos abajo a la izquierda Watson => Visuelle Erkennung => Pondremos un nombre único y le damos a crear. Como se muestra en las fotografías adjuntas.
  3. Una vez que estén dentro, pueden observar que han geneado un API, ahora le dan al botón que dice "mostrar" (Ver cuarta foto) und deben copiar las credenciales, donde dice "api_key".
  4. Van de vuelta IDE de Node-RED und Doppelklick auf den Block "Watson Visual Recognition", siehe Pegar-Sus-Credenciales und Korrektur- und Anpassungsparameter für alle Fotos.
  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. Hemos generado a API nuevamente, ahora le dan al botón que dice "mostrar" (Ver cuarta foto) und deben copiar las credenciales "username" y "password". Vuelta IDE von Node-RED und Doppelklick auf den Block "Hablar", siehe Pegar sus Credenciales en El Espacio Correcto y Justar Loss Parameteros Al igual que la foto. *Esto debe hacerse para los bloques que dicen hablar*

Y listo, así de sencillo ya tienen su sistema funcionando!:)Möglicher Fehler:

Si cuando se debe tomar la foto nos retorna a 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 or la photo no se pueda abrir (0KB), es ist möglich, dass die Kamera este mal conectada oder que no esté habilitada. Habilitar la cámara nos vamos al botón de inicio del Raspbian “/Preferencias/Raspberry Pi/Configuración” und vamos a “Interfaces”. Ahí debemos aseguranos que „Cámara“está en „Habilitada“.

Schritt 7: Künstliche Intelligenz

Künstliche Intelligenz
Künstliche Intelligenz
Künstliche Intelligenz
Künstliche Intelligenz

Procesar una imagen no es algo sencillo de hacer, requiere inteligencia künstlicher para poder Detectar Patrones und esa imagen de los cuales pueda generar una oder 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 de nombre para específiutil red 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 photos con el objeto que queremos reconocer y otro montón de fotos agrupadas, sin el objeto reconocer queremos.

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 suuesto dispone de una herramienta o "campo de entrenamiento a" para entrenco com, en este caso, los gatos und perro los reconoce por default.

Eine fortwährende haré un paréntesis donde explicaré como funciona una rote neuronale künstliche, con fines meramente didacticos, keine Notwendigkeit für die realización del instructable. (Si tu interés es replikar el proyecto rápidamente, puedes saltarte hasta el fin del paréntesis).

Como 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. Está compuesta de 3 partes Principales:

  1. Entradas
  2. Suma-Funktion (Σ)
  3. Función de activación

Eintraden:

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

Suma-Funktion (Σ):

En este punto ocurre una suma de todas las entradas multiplicadas por su peso w resivo, al finalizar la operación, envía el resultado a la función de activación.

Aktivierungsfunktion:

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 oder 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 observan en la segunda imagen, está compuesta de 3 capas Principales:

  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 prime 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 sabre si es un gato oder perro necesitarías 2 neuronas, una para gatos.y otra

Todo esto es muy lindo, pero ¿Dónde ocurre realmente el aprendizaje? Esto en cada perceptron por individual, el algoritmo resulta que en calcular correctamente 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 mayor profundidad y complejidad por supuesto, ante esto usar el Visual Recognition API, o API de reconocimiento visual, (Que ahora sabemos que senal.traty convoluta 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 con a motón de posibilidades pu obanostarquedaes. Es entscheide, das Foto zu bearbeiten, Watson hat eine Analyse und keine Neuentwicklung einer Liste mit wahrscheinlichen Objekten, die ein Foto erkennen, und ein Sencillo von Usar 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 dispens la comida correcta:)

Es ist notwendig, dass Sie die Künstliche Intelligenz erhalten, ohne dass Sie alles tun müssen, um besondere Dienstleistungen zu erhalten, die mit Watson que hacen el trabajo pesado por nosotros sind!:)

Schritt 8: Construyendo Un Hardware

Construyendo Un Hardware
Construyendo Un Hardware
Construyendo Un Hardware
Construyendo Un Hardware
Construyendo Un Hardware
Construyendo Un Hardware

Este paso lo hemos realizado in la Inventoría LEAD (Ver laboratorio)el cual es a maker space in Costa Rica desarrollado von 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 ideas y proyectos de la mano conáosrea.

Schritt 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

Como Kommentare und Inventoría LEAD Tenemos eine 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 noso cosques a hacer 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.

Schritt 10: Cortando En Láser El Case

Cortando En Laser El Case
Cortando En Laser El Case
Cortando En Laser El Case
Cortando En Laser El Case
Cortando En Laser El Case
Cortando En Laser El Case
Cortando En Laser El Case
Cortando En Laser 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 version Open Source de programas de diseño gráfico que nos allowe genear vectores. La maquina láser, al ser un robot portesiano, funciona, Sündenembargo, este gcode debe ser generiert von einer Software, und este caso geneamos a archivo.

El material:Para este diseño es Importante sabre que debemos usar material de 3mm, uno Bürgermeister puede hacer que las piezas no calcen adecuadamente. Yo he utilizado acrílico negro mate (que compré en panaplast), esto es por una razizón, me.gusta real trabajos con mucho oficio y elegancia, y este material crea un efecto visual muy interesante, de lejos puede confudirse con aluminio negro, locual 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 elcual es un material muy económico und da acabados muy bonitos también.

Schritt 11: Ensamblado El Hardware

Ensamblado El Hardware
Ensamblado El Hardware
Ensamblado El Hardware
Ensamblado El Hardware
Ensamblado El Hardware
Ensamblado El Hardware

Una vez que tenemos todas piezas completas, la electronic y software listo, podemos comenzar a ensamblar.

En las fotos adjuntas verán el proceso!:)

  • Pasos para armado:

    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 intetrauales ante lude ludec… 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 cablees ist wichtig, ein proyecto limpiio y agradable a la vista tiene a 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á o quedarnos mustra y 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 maquinas) 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 oder cobertor cobertor.*Ensamble de la caja 2, la de la electric.-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 por completo, le sugiero algunos retos:

  1. Ajustar a sus mascotas (por tipo de animal)
  2. Construir un case con más sistemas de dispensado, para más animales, así como configurar el sistema para reconocer más animales
  3. Conectar con IBM IoT para controlar el sistema desde cualquier parte del mundo
  4. Agregar un dispensador de agua
  5. Hacerle cualquier cambio que sea oportuno para ti:)

* Este anweisbare fue realizado von Bernal Rojas mit Cesar Rodriguez Bravo como Co-Autor *

Empfohlen: