Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-23 14:39
Ai es una de las aplicaciones más hermosas de las matemáticas. Es básicamente un montón de operaciones de matrices optimizadas para coincidir con el resultado que está buscando. Afortunadamente, existen toneladas de herramientas de código abierto que nos permiten hacer uso de ellas.
Originalmente tuve la idea hace mucho tiempo cuando estaba trabajando en una cascada desactivada por la gente que pasaba. Estaba usando sensores de ultrasonido y descubrí demasiado tarde que no funcionan mucho cuando están mojados… Esa no fue una experiencia divertida. Terminamos usando un botón grande que la gente presionaría si querían pasar. Resultó bien porque hacía calor y a la gente le encantaba mojarse, pero el problema se quedó en mi cabeza… Cómo detectar a la gente y activar una reacción.
¡Estoy contando esta historia porque quiero señalar que este principio se puede usar para muchas otras aplicaciones! Seguir tu cara con un juguete es solo uno de ellos. Para las instalaciones interactivas, puede hacer cualquier tipo de cosa. Podría utilizar un modelo para detectar si una cara está sonriendo. Podrías contar el número de perros en un parque. Puede cerrar las persianas cuando pase la gente. O… crea un controlador para tu base nintendo en la posición de tu cuerpo…. Puede descargar muchos otros modelos de Ai que hacen cualquier tipo de cosas.
Hay algunos tutoriales sobre cómo hacer que la inferencia de Ai funcione con raspberry pi. Estoy aquí para enseñarle cómo hacer la integración del agujero en una unidad de trabajo autónomo. Tan pronto como su robot arranque, iniciará los programas necesarios.
Suministros
- Robot Parallax: Elegí este robot porque lo tenía por ahí, pero cualquier robot que se pueda controlar con un arduino hará el trabajo.
- Raspberry pi: recomiendo al menos la frambuesa pi 3B +.
- Intel Neural Stick: la tasa de inferencia va de uno por segundo a 8. Realmente necesitas uno si quieres hacer Ai en una frambuesa pi.
- Power Bank: la forma más fácil de administrar la energía. Funciona con la raspberry pi 3B +, es posible que desee comprobar que funciona con una pi 4.
- Picamera: me gusta usar la picamera en lugar de un usb.
Paso 1: Montaje del Rover
El objetivo del tutorial es principalmente sobre el software, por lo que no quiero entrar demasiado en los detalles del rover. Funciona con este robot, pero podría funcionar realmente con cualquier otro hardware. Ni siquiera tiene que ser para un rover, podrías usar esto para una cámara con sensor de movimiento.
- Búscate un vehículo controlado por Arduino.
- Envuelve bien un banco de energía.
- Envuelve bien un pi de frambuesa.
- Pegue la picamera con un ligero ángulo hacia la parte superior.
- Conecta todo junto.
- ¡Voila!
Paso 2: Raspbian
Estoy usando una frambuesa pi, pero no hay razón para no usar otro linux… depende de usted. Podría lanzar una imagen plug and play para grabar una tarjeta sd, la usaré si hay suficientes personas interesadas.
Instale Raspbian: Puede instalar Raspbian Buster Lite. No vamos a utilizar el escritorio… Solo la conexión ssh Secure Shell.
Conéctese a su Pi: primero puede conectarse a su raspberry pi con una conexión Ethernet
Configura tu wifi: ahora puedes configurar tu conexión inalámbrica
Paso 3: OpenVino
OpenVino es una gran biblioteca compatible con Intel. Han hecho un gran trabajo compilando modelos de ejemplo y han hecho que la mayoría de los frameworks de IA sean compatibles. Necesita esta biblioteca para Intel Neural Stick.
Instalación de Python3: debe instalar Python 3.
Instalación de OpenVino: Una vez hecho esto, verá una línea "[setupvars.sh] Entorno OpenVINO inicializado" cada vez que se conecte a la raspberry pi.
OpenVino es una extensión de opencv. Para probarlo, puede iniciar python3 e importar cv2.
escriba en el caparazón:
python3
escriba en python:
- importar cv2
- cv2._ versión_
La última línea debería devolver '4.1.2-openvino' o cualquier versión de openvino. si dice opencv su instalación no funcionó …
Paso 4: descarga el código
Primero, instalamos git. Escriba en el caparazón:
sudo apt-get install git
Luego podemos movernos a la carpeta Documentos y descargar el código:
- cd ~ / Documentos /
- clon de git
Paso 5: Sígueme (Python)
Esta es la parte con la que quieres jugar. ¡Haz si te sigo! ¡Haz que te asuste! ¡Sigue a tu perro! ¡Haz que reconozca las expresiones faciales! ¡¡¡Harase a su gato !!! Todo lo que quieras.
Encontrará cuatro carpetas principales: Arduino, Deployment, Player y FollowMe:
Arduino: más sobre eso en la siguiente sección
Implementación: aquí es donde coloco la interfaz de usuario. En este momento, codifiqué un simple botón de inicio / parada y un pequeño visor de cámara con control simplemente divertido.
Reproductor: destinado a ser utilizado en su PC de escritorio. ¡Para revisar la salida del bot!
Sígueme: el módulo que se encarga de la diversión
Pondré más detalles en github, para tener solo un lugar para actualizar. Este es el lugar para el código
Paso 6: descargue los modelos
Los modelos de inferencia no están incluidos en el código porque son bastante grandes. Pero puede encontrar muchos ejemplos usando OpenVino model Zoo
Puede usar el descargador de modelos o lanzar directamente este enlace. En mi caso, no pude usar el descargador de modelos de mi instalación de raspberry pi …
Luego copie el modelo en una carpeta llamada Modelos con:
- cd ~ / Documentos / Sígueme
- Modelos mkdir
- modelos de cd
- wget
- wget
Siempre necesitas el.xml y el.bin.
Puedes descargar cualquier modelo que quieras… Pero tendrás que cambiar el código. ¡Divertirse!
Paso 7: Arduino
Tenemos que descargar el código del paso anterior. ¡El código para arduino está en él!
El código está destinado a impulsar dos servos continuos, si elige una configuración diferente, debe modificar el código.
Básicamente hace dos cosas. Se comunica con la computadora y activa los servos a la velocidad seleccionada.
Podría usar la salida del raspberry pi directamente para controlar los motores… pero los arduinos funcionan mejor (tienen un generador de frecuencia real). Además, quería descargar el raspberry pi tanto como fuera posible para hacer la inferencia más rápida.
Paso 8: GUI
Nada lujoso… todavía. Podría agregar algunas otras cosas como vista en vivo o controles de movimiento. Pero mientras tanto, un simple inicio y parada será suficiente.
Si desea probarlo, debe iniciarlo desde el directorio FollowMe Level y luego llamarlo desde python3:
- cd ~ / Documentos / Sígueme
- Implementación de python3 / FollowMe.py
Luego, puede acceder a la interfaz en su navegador escribiendo:
192.168.0.113:8000
con la dirección IP correcta, por supuesto.
También hay un visor de video con controles … pero no con inferencia de trabajo
Implementación de python3 / StreamVideo.py
Paso 9: ¡Servicio
Esto es lo que hace que el Rover funcione por sí solo. Un servicio es un programa que se ejecuta en segundo plano en la computadora sin un usuario. Asegúrese de que TODOS SUS CAMINOS sean absolutos y que tenga los derechos correctos si usa cualquier archivo y el servicio funcionará bien.
Para ejecutar una secuencia de comandos de Python como servicio, debe hacer referencia a la secuencia de comandos en un archivo de servicio. El archivo de servicio está en el código descargado de git en la carpeta Implementación. El nombre es FollowMe.service.
Para copiarlo, escriba lo siguiente en el shell:
sudo cp ~ / Documentos / Sígueme / Implementación / Sígueme.servicio / etc / systemd / system /
La primera vez que copia el archivo necesita actualizar systemctl … o reiniciar:
sudo systemctl daemon-reload
Y para empezar:
sudo systemctl start FollowMe
También puede utilizar los comandos detener, habilitar y deshabilitar. Los dos últimos son para un cambio de estado persistente.
Pequeña explicación….
Openvino necesita algunas rutas adicionales en las variables del sistema para que funcione. Desafortunadamente, la instalación normal no funcionará como servicio. Entonces necesitas este archivo para configurar las variables.
Tenga en cuenta que mi instalación es para python 3.7, por lo tanto, hay una variable que puede necesitar ajustar … ¡Buena suerte!
Este archivo hace referencia a la secuencia de comandos de Python en la ruta absoluta:
/home/pi/Documents/FollowMe/Deployment/FollowMe.py
Paso 10: ¡Eso es todo! Divertirse
Comentarios siempre bienvenido
Recomendado:
¡Hack-O-Lantern con luz LED que sigue la canción !: 6 pasos
¡Hack-O-Lantern con luces LED que siguen la canción!: Haga una linterna que suene y haga parpadear los LED multicolores con la canción favorita de Halloween de todos
Sigue siendo mi corazón palpitante de LittleBits: 5 pasos
Sigue siendo mi corazón palpitante de LittleBits: muéstrale a tu pareja cuando estás pensando en él enviándole un mensaje de texto, haciendo que su corazón de littlebits se agite. O simplemente expresa tu amor por la electrónica. Cosas que necesitas: Littlebits: alimentación USB, cable y enchufe de alimentación USB, cloudbit, leds, timeou
Interruptor de luz con control remoto Bluetooth - Actualización. El interruptor de luz sigue funcionando, sin escritura adicional: 9 pasos (con imágenes)
Interruptor de luz con control remoto Bluetooth - Actualización. El interruptor de luz sigue funcionando, sin escritura adicional: actualización del 25 de noviembre de 2017: para obtener una versión de alta potencia de este proyecto que puede controlar kilovatios de carga, consulte Adaptación del control BLE a cargas de alta potencia: no se requiere cableado adicional, actualizado el 15 de noviembre de 2017 - Algunas placas BLE / pilas de software deli
¡Sigue ese LED !: 3 pasos
¡Sigue ese LED !: Este es un juego que hice similar al juego Pythons Quick Reaction, pero en lugar de intentar presionar el botón primero, estás tratando de seguir la luz de los LED. La luz corre en orden aleatorio entre tres luces LED, el objetivo del juego es obtener tantos p
24 - Una bomba que hace tic-tac que te pide que dejes tu teléfono: 5 pasos
24: una bomba que hace tic-tac que le pide que deje su teléfono: 24 (antes conocido como llave) es un temporizador que anima a los usuarios a dejar el teléfono y concentrarse en otras tareas, en lugar de perder el tiempo en el teléfono. Fue diseñado para ser como una bomba para proporcionar un mejor resultado del cambio de comportamiento debido a su int