Tabla de contenido:
- Paso 1: Información sobre App.remoteme.org
- Paso 2: Qué se necesita:
- Paso 3: conexiones
- Paso 4: PCB
- Paso 5: salidas de PCB
- Paso 6: cómo va a funcionar
- Paso 7: Montaje del coche - Ruedas
- Paso 8: Opción 1/2 de alimentación (baterías de recarga AA)
- Paso 9: Energía (baterías Li-Po 7.2V) Opción 2/2
- Paso 10: soldadura
- Paso 11: Cámara
- Paso 12: Montaje de piezas de automóviles
- Paso 13: Configuración de App.remoteme.org
- Paso 14: Configuración de RasbperryPi
- Paso 15: Verificación de conexiones
- Paso 16: Agregar secuencia de comandos de Python
- Paso 17: Verificación de si la secuencia de comandos de Python se agregó correctamente
- Paso 18: Adición de una página web para controlar el automóvil
- Paso 19: Configurar el dispositivo de página web para controlar el coche 1/2
- Paso 20: Configurar el dispositivo de página web para controlar el coche 2/2
- Paso 21: Abra el Centro de control del automóvil
- Paso 22: Configuración de la cámara 1/2
- Paso 23: Configuración de la cámara 2/2
- Paso 24: Conducir 1/2
- Paso 25: Conducir 2/2
- Paso 26: ¿Cómo está funcionando?
- Paso 27: tableta, dirección móvil
- Paso 28: página abierta en el teléfono móvil
- Paso 29: Agregar Turn Server
- Paso 30: Dirección móvil
- Paso 31: Resumen
Video: Coche RasbperryPi con cámara FPV. Control por navegador web: 31 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Construiremos un automóvil 4x4, la dirección será similar a la de un tanque, para girar un lado de las ruedas girará con diferente velocidad que el otro. En el coche se colocará la cámara en un soporte especial donde podremos cambiar la posición de la cámara. El robot será controlado por el navegador web (chrome o firefox en el escritorio, o firefox en el teléfono móvil), en el navegador, obtendremos el video de la cámara (con solo 200ms de latencia), y desde el navegador, podremos controlar los movimientos del automóvil y posición de la cámara. Para facilitar la comunicación, utilicé el sistema app.remoteme.org, también funciona desde el primer momento para controlar este tipo de automóvil, por lo que no tiene que escribir su propio código, pero por supuesto puede modificar los scripts agregar nuevas posibilidades, etc.
Antes de conectar la alimentación a su PCB, compruebe todas las conexiones
Paso 1: Información sobre App.remoteme.org
El sistema tiene tres partes
- aplicación web: cuando aloja sus páginas web de control y enlaza todas las comunicaciones
- Programa rasbperryPi: programa que envía video, administra sus scripts de Python
- bibliotecas donde encuentras clases, definiciones de funciones
Remoteme.org es un sistema rápido. Vincula todos sus dispositivos, puede alojar allí sus páginas web, ver sus dispositivos conectados. El sistema Remoteme.org fue creado para ayudarte a comenzar a hacer tus proyectos, sin preocuparte por las comunicaciones de protocolo, la idea principal es enviar mensajes binarios entre varios dispositivos como páginas web, RasbeprryPI, arduino y scripts.
Por otro lado, Remoteme.org te da el control total de tus archivos, puedes modificarlo fácilmente escribiendo tu propia funcionalidad
En este tutorial, te mostraré cómo hacer un proyecto increíble casi sin escribir ningún código.
Al final de este tutorial, he puesto enlaces útiles que le ayudarán a entender el sistema de remoteme.org.
Paso 2: Qué se necesita:
- Frambuesa PI Zero W
- Cámara dedicada
- Adafruit 16-Channel 12-bit PWM / Servo Driver - Interfaz I2C - PCA9685 o su clon
- Dos servo mecanismos compatibles con el soporte de la cámara
- Soporte para cámara
- Baterías - En tutorial dos posibilidades de conexión
- Puente H TB6612FNG, para controlar la velocidad de la rueda
- Archivos de PCB eagle Es fácil convertirlo en método de transferencia térmica DC-DC
- Módulo convertidor reductor DC
- Caja de robot
Paso 3: conexiones
Servo mecanismo de control de frambuesa pi a través del módulo PWM y la velocidad del motor mediante el puente H que está conectado a los pines RasbperryPi, la entrada PWM al puente H se genera mediante el mismo módulo que utilicé para los servos (las partes que menciono anteriormente no se necesitan convertidores lógicos)
Paso 4: PCB
Puede descargar archivos de PCB eagle desde aquí. Las rutas son gruesas, por lo que es fácil hacerlo mediante el método de transferencia térmica.
Paso 5: salidas de PCB
- Entrada PWM para motores de accionamiento Debe conectarse a los pines 15 y 16 del módulo PWM (marque el rectángulo verde en la imagen del módulo PWM)
- Entrada de energía para motores de accionamiento (verifique con qué voltaje máximo pueden trabajar sus motores)
- Potencia para RasbperryPi y módulo PWM: tiene que ser exactamente
- Salidas del motor de accionamiento (hay dos salidas porque emparejaremos motores de accionamiento)
- Potencia de los servomecanismos - también tienes que comprobar qué voltaje es bueno para ellos
- Poner en puente su potencia actual de la quinta entrada también alimentará los motores de accionamiento, por lo que no es necesario conectar nada a la entrada 2
- Puente, si está presente, RasbperryPi se alimentará desde la tercera entrada; antes de poner el puente aquí, compruebe si las conexiones están bien. No desea quemar su RPi.
- Vamos a soldar aquí los cables ya que no necesitamos convertidores lógicos
Paso 6: cómo va a funcionar
En RasbperryPi hay un script de Python que usa dos bibliotecas
- importar RPi. GPIO como GPIO - para los pines 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (notación BCM) que están conectados al puente H
- importar Adafruit_PCA9685 para el módulo PWM
Los pines Rpi se conectan de la siguiente manera 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) y el modo de control del puente H (avance, retroceso, parada, pausa corta). El puente H también necesita dos señales PWM para que podamos controlar la velocidad o la rotación del motor. Debido a que en el proyecto ya tenemos controlador PWM (usado para servo) lo usaremos también para generar PWM para puente H.
El módulo PWM utiliza el protocolo de comunicación I2C. He utilizado trabajar fuera de la caja Adafruit_PCA9685. Biblioteca
Paso 7: Montaje del coche - Ruedas
Comenzaremos conectando los motores de accionamiento a la carcasa del automóvil. Los motores del lado izquierdo / lateral se conectan entre sí, y ambos se emparejan, se conectan a algún cable de alimentación que luego se conectará a la PCB. Nota importante al conectar los motores, las ruedas de cada lado deben girar en la misma dirección.
Paso 8: Opción 1/2 de alimentación (baterías de recarga AA)
Voy a escribir dos posibilidades de potencia del coche, la primera es de recarga de baterías 10xAA. En la última imagen he dibujado unos jumpers de colores rojos que hay que poner.
Paso 9: Energía (baterías Li-Po 7.2V) Opción 2/2
Y la segunda opción es la batería 7.2 LI-PO. En este caso obtuvimos 3 voltajes - 5v para Rpi y módulo, 6V para servos y directamente de baterías 7.2 voltios para motores de accionamiento. Tuve que usar dos módulos reductores
La opción 2 con LI-PO es mejor:
- Las baterías tienen mayor capacidad: el automóvil durará más tiempo
- Mayor voltaje para los motores de accionamiento: el automóvil conducirá más rápido
- Menos probabilidad de que después de que los motores de accionamiento comiencen a ubicarse, tengamos una gran caída de voltaje y se reinicie el RPI.
Paso 10: soldadura
He puesto en PCB algunos espaciadores para el módulo PWM. No hay nada que escribir, solo mira las imágenes de cómo soldar todo junto
Paso 11: Cámara
Conectamos la cámara, aquí está escrito cómo centrar los mecanismos de los servos antes de montarlos en el soporte de la cámara, pero la forma más corta es verificar manualmente la posición de rotación máxima y configurar los servos en la posición central. Estos servo mecanismos centrados los colocamos en el soporte de la cámara en la posición central (la cámara apunta hacia adelante como en la foto)
Paso 12: Montaje de piezas de automóviles
Para PCB he hecho una pequeña mesa de plexiglás.
Paso 13: Configuración de App.remoteme.org
He usado el sistema gratuito app.remoteme.org, te ayuda a hacer conexiones y ya tiene los scripts que necesitamos.
En este instructivo, solo mostraré paso a paso lo que se debe hacer para que la conducción de automóviles (aquí encontrará más detalles)
- Regístrese en https://app.remoteme.org después de registrarse Se iniciará sesión automáticamente
- abra la pestaña Token a la izquierda, luego haga clic en "nuevo token" proporcione un nombre y haga clic en Aceptar, acabamos de crear un nuevo token (imagen en la pantalla)
- en este ejemplo, el valor del token es: ~ 1_ & p @ + BNnZ @ A + x8 (el tuyo será diferente;))
Paso 14: Configuración de RasbperryPi
en la consola de masilla (aquí se explica cómo configurar nuestro RPi, activar la comunicación I2c de la cámara)
git clone git: //github.com/remoteme/remoteme.git
cd remoto
python3.5 install.py
- El instalador nos hará algunas preguntas para todo lo que respondamos [S] y confirmemos con [enter]
- cuando la instalación solicita el token, pegamos (shift + insert) el token copiado de la aplicación y Enter
- el nombre, por ejemplo, Rpi
- deviceId 1 Ingrese
- después de la instalación - ejecutar el programa
./runme.sh
Paso 15: Verificación de conexiones
Volvamos a
En la pestaña de dispositivos veremos nuestro RPi conectado (el icono de enlace verde significa que RPi está conectado en este momento)
Paso 16: Agregar secuencia de comandos de Python
Ahora agregaremos el script Python, ya está en las plantillas, por lo que no tenemos que programar nada.
En la pestaña de dispositivos, abra el menú RasbperryPi y elija "Agregar script externo".
Cuando aparezca una nueva ventana, proporcione información como en la imagen de arriba
No olvide elegir la plantilla "car4wd". Después de estos pasos, remoteme.org agregará un script de Python a nuestro RasbperryPi y lo reiniciará
Paso 17: Verificación de si la secuencia de comandos de Python se agregó correctamente
En la pestaña de dispositivos, se debe agregar un nuevo dispositivo de script de Python, y su deviceId es 2. En esta página web de ID de dispositivo se enviarán mensajes para controlar el automóvil.
Paso 18: Adición de una página web para controlar el automóvil
en la pestaña de dispositivos, haga clic en "Nuevo" y luego en "Página web". Simplemente agregamos otro dispositivo: webPage, lo usaremos para controlar nuestro automóvil. Y debido a que usamos la plantilla "car4wdDesktop" en la página web, los archivos ya están casi listos para usarse.
Paso 19: Configurar el dispositivo de página web para controlar el coche 1/2
Expanda la página Web en la pestaña del dispositivo y haga clic en index.html y luego en Abrir
Paso 20: Configurar el dispositivo de página web para controlar el coche 2/2
Aparece la ventana, entonces necesitamos proporcionar deviceId de nuestro script de Python en nuestro caso deviceId es 2. Cambiemos el lugar que se muestra en la imagen.
Paso 21: Abra el Centro de control del automóvil
Ahora es el momento de abrir nuestra página y ver cómo funciona. En la pestaña del dispositivo, haga clic en index.html y luego en "Abrir en una nueva pestaña". Para obtener una vista previa del video, debe usar el navegador Chrome o Firefox. Otros navegadores no son totalmente compatibles con webRTC.
Paso 22: Configuración de la cámara 1/2
Cuando movemos el mouse en el área de video, la cámara debería cambiar de posición, y debería funcionar exactamente como en los juegos FPS. Probablemente no se moverá correctamente
Paso 23: Configuración de la cámara 2/2
Abra script.js (la pestaña de dispositivos expande la página web, luego haga clic en script.js y luego abra) y busque el lugar que mostré en la pantalla
en mi caso la posición central es 560 y 430 y el rango de movimientos es para ambos ejes 200
Tienes que experimentar con estos números para obtener el centro de posición de la cámara y movimientos suaves. Si usaste este tutorial, simplemente copia los valores dados pegados.
Paso 24: Conducir 1/2
Si u presiona la flecha hacia arriba en el teclado, los indicadores deben cambiar de posición y el automóvil debe conducir. Si presiona la flecha "hacia arriba" y el automóvil está girando, debe agregar / eliminar menos en los lugares de la pantalla.
Después de esta operación, después de presionar la flecha "arriba", el automóvil debe conducir hacia adelante y la flecha hacia abajo debe conducir hacia atrás.
Paso 25: Conducir 2/2
Ahora girando: presione la flecha izquierda si el automóvil gira a la derecha Tiene que voltear los cables (verifique la imagen de arriba)
Si suelda estos cables, puede cambiarlo en script, simplemente cambie el orden de envío de la velocidad de los motores, antes de:
pos = putByte (ret, pos, carController.getMotorMode (carController.getRightSideSpeed ())); pos = putByte (ret, pos, Math.abs (carController.getRightSideSpeed () * 255));
pos = putByte (ret, pos, carController.getMotorMode (-carController.getLeftSideSpeed ()));
pos = putByte (ret, pos, Math.abs (carController.getLeftSideSpeed () * 255));
después:
pos = putByte (ret, pos, carController.getMotorMode (-carController.getLeftSideSpeed ()));
pos = putByte (ret, pos, Math.abs (carController.getLeftSideSpeed () * 255));
pos = putByte (ret, pos, carController.getMotorMode (carController.getRightSideSpeed ()));
pos = putByte (ret, pos, Math.abs (carController.getRightSideSpeed () * 255));
y ahora tienes que jugar con las desventajas como un paso antes para que funcione correctamente;). Como probablemente hayas notado después de presionar la flecha hacia arriba, el automóvil no está conduciendo a toda velocidad para que el automóvil se mueva más rápido, solo suelta la flecha hacia arriba cuando esté en la posición máxima y mantén presionado de nuevo
Paso 26: ¿Cómo está funcionando?
La página web envía mensajes de mensajes de 9 bytes a la secuencia de comandos de Python en formato:
- 1 byte un byte valor entero 1
- 2 bytes de posición de cámara X entera
- Posición de cámara Y de 2 bytes entero
- Modo de motor izquierdo entero de 1 byte (3 = hacia atrás, 1 = hacia adelante, 2 = parada)
- Número entero de 1 byte velocidad del motor izquierdo
- Modo de motor derecho entero de 1 byte (3 = hacia atrás, 1 = hacia adelante, 2 = parada)
- Número entero de 1 byte velocidad del motor derecho
el envío del mensaje se realiza en el archivo script.js en la función "sendNow ()"
en RasbperryPi python.py recibe este mensaje en la función "onUserMessage"
Puedes echarle un vistazo y jugar un poco para que sepas lo que está pasando.
descripción de las funciones de clase aquí
Paso 27: tableta, dirección móvil
Agregamos una nueva página web exactamente como lo hicimos la vez anterior, pero ahora elegimos la plantilla "car4wdMobile"
A continuación, configuramos todo en script.js como hicimos para la página web de control de escritorio. El formato del mensaje es exactamente el mismo, por lo que no tenemos que cambiar el script python.py.
Paso 28: página abierta en el teléfono móvil
En lugar de iniciar sesión en su cuenta desde el móvil, simplemente escanee la URL de cualquier nombre QR.
detalles de QR aquí
Si el control de su dispositivo móvil funciona cuando RPi y el dispositivo móvil están en el mismo wifi, pero no lo hace si usa Internet móvil, entonces debe agregar un servidor de turno, cómo hacerlo, he escrito aquí
Paso 29: Agregar Turn Server
A veces (cuando está detrás de NAT o alguna configuración de firewall) no puede conectar su robot desde otra red, entonces su robot está conectado. No es un gran problema y luego debe agregar un servidor de turno.
Probé el servidor de la empresa XIRSYS (es gratis para el uso de los desarrolladores) y mostraré cómo configurar el servidor de turno usando el sistema XIRSYS
Registrarse:
global.xirsys.net/dashboard/signup
luego haga clic en "más" para agregar la aplicación
a la derecha, debajo de "créditos de giro estático". Tiene todos los datos que necesita. Cópielo en el archivo webrtc_streamer.conf para hacerlo, vaya a
expandir los dispositivos RaspberryPi
haga clic en el archivo webrtc_streamer.conf
haga clic en abrir
y agrega información
turn_server = turn_username =
turn_credential =
después de terminar de editar, debería tener algo como en la pantalla.
luego haga clic en Guardar y reinicie You Rpi, haciendo clic en el menú en el dispositivo RasbperryPi y elija reiniciar
Después de reiniciar el programa RPi, puede ver la vista previa del video en su teléfono móvil incluso si está utilizando Internet móvil.
Paso 30: Dirección móvil
en el círculo 1 colocamos el pulgar izquierdo, en el 2 derecho; no es necesario que esté exactamente en estos puntos; la página web establecerá la posición cero justo después de que toque la pantalla, y moviendo los pulgares (conducción a la izquierda, posición de la cámara derecha) puede controlar tu carro
Paso 31: Resumen
Espero que les haya gustado este tutorial, como escribí antes en este tutorial hay más detalles sobre cómo funciona bajo el capó.
algunos enlaces:
remoteme.org - página de inicio de remoteme.org allí encontrará documentación y tutoriales
Fanpage de FB: la información más reciente de la fanpage de Facebook sobre remoteme.org
Youtube - algunos videos del proyecto, tutoriales
Salud, Maciek
Recomendado:
La cámara web más sencilla como cámara de seguridad: detección de movimiento e imágenes enviadas por correo electrónico: 4 pasos
Cámara web más sencilla como cámara de seguridad: detección de movimiento e imágenes enviadas por correo electrónico: ya no es necesario descargar o configurar el software para obtener imágenes de detección de movimiento desde su cámara web a su correo electrónico; simplemente use su navegador. Utilice un navegador Firefox, Chrome, Edge u Opera actualizado en Windows, Mac o Android para capturar la imagen
Coche robot con Bluetooth, cámara y aplicación MIT Inventor2: 12 pasos (con imágenes)
Coche robot con Bluetooth, cámara y aplicación MIT Inventor2: ¿Alguna vez quisiste construir tu propio coche robot? ¡¡Bueno, esta es tu oportunidad!! En este Instructable, lo guiaré en cómo hacer un Robot Car controlado a través de Bluetooth y la aplicación MIT Inventor2. Tenga en cuenta que soy un novato y que esta es mi primera instrucción
Reutilice un módulo de cámara web HP WebCam 101 Aka 679257-330 como una cámara web USB genérica: 5 pasos
Reutilice un módulo de cámara web HP WebCam 101 Aka 679257-330 como una cámara web USB genérica: quiero darle vida a mi Panasonic CF-18 de 14 años con una cámara web nueva, pero Panasonic ya no es compatible con esa maravillosa máquina, así que tengo que usa la materia gris para algo más fácil que b & b (cervezas y hamburguesas) .Esta es la primera parte
Robot Roomba controlado por navegador con Raspberry Pi Model 3 A +: 6 pasos (con imágenes)
Robot Roomba controlado por navegador con Raspberry Pi Model 3 A +: descripción general Este Instructable se centrará en cómo darle a un Roomba muerto un nuevo cerebro (Raspberry Pi), ojos (cámara web) y una forma de controlar todo desde un navegador web. Hay muchos trucos de Roomba que permiten el control a través de la interfaz en serie. Yo no tengo
Coche de control remoto HPI Q32 con actualización FPV: 10 pasos (con imágenes)
Coche de control remoto HPI Q32 con actualización FPV: aquí mostraremos la flexibilidad del HPI Racing Q32 para aceptar modificaciones. Experimentaremos con la instalación de un sistema de baterías intercambiables y también una cámara FPV y un transmisor