1601
RoboTank acumulación controlada Wifi, cámara, cañón, etc.
Hola a todos. Hice un abrumador deseo de compartir con el mundo sus logros. Logro es un tanque que rulitsya a través de WiFi con un gamepad, transmitido por el vídeo en tiempo real a distancia enviada desde el mando a distancia y el sonido, y tiene una pistola con mira láser, de los cuales es posible matar a alguien.
Este post será la primera prueba con el fin de entender si esto es interesante para alguien que no sea yo. Se describirá la estructura general, las tecnologías y los dispositivos utilizados.
UPD: de vídeo añadido
.
Para iniciar un pequeño video para atraer la atención. El sonido proviene de los altavoces del tanque.
¿Cómo empezó todo
Hace mucho tiempo tuve un sueño de hacer un crawler robot, que se podría dirigir a distancia. El principal problema era la falta de directamente sobre orugas. Al final me decidí a comprar un tanque radio control para la demolición, pero tuve suerte, la tienda se encontró entre el Snow Leopard tanque de basura (Pershing) - EE.UU. M26 Pogorevshikh con la electrónica, sino que forma parte mecánica completamente utilizable. Era exactamente lo que necesita.
Persecución al chasis eran dokupleny dos regulador de voltaje para los motores colectores, trípode para la cámara de los dos servos de la cámara web con mjpeg hardware y tarjeta WiFi externa TP-LINK TL-WN7200ND. Un poco más tarde añadió a la lista de dispositivos, altavoces portátiles, zvukovuha USB Juego Creative SoundBlaster y un simple micrófono y un par de concentradores USB para hacer que todo conectado a una unidad de control que se convirtió en el Raspberry Pi. Tanque de la torre fue desmontada, dirigir era muy incómodo, ya que todos a tiempo completo mecánico fue construido en los motores convencionales sin realimentación.
Sólo se especifica que se hicieron las fotos cuando el tanque estaba casi listo, pero no en el proceso de fabricación.
Nutrición y cableado
En el compartimiento de la batería, me metí la mayor batería de Li-Po que se ha conseguido. Ella era dvuhbanochnaya 3300 mAh de la batería en el cuerpo sólido, que se utiliza comúnmente en modelos de coches. Yo era demasiado perezoso para soldadura, por lo que la conmutación se utiliza en todo el tablero del desarrollo del estándar con 2,54. Más tarde, un segundo en la cubierta superior y el cable que los conecta. En cada uno de los dos motores que tenía mi regulador de voltaje, que está en la forma de una ampliación de capital liberada estabilizado poder sobre 5,6 voltios. Con un controlador fue accionado Frambuesa y tarjeta WiFi, de alimentación de la segunda fue a los servos y un concentrador USB a la periferia.
Tenemos que hacer este movimiento
Tuvimos que de alguna manera hacerlo. Frambuesa no fue elegido por casualidad. En primer lugar, le permite poner una linuh total normal, y en segundo lugar tiene un montón de piernas GPIO que incluye es capaz de generar una señal de impulso al controlador servo y accidente cerebrovascular. Generar una señal de este tipo puede ser monitoreado ServoBlaster . Después de arrancar, se crea el archivo / dev / servoblaster, en el que se puede escribir algo así como 150 = 0, donde 0 - número del canal, y 150 - duración del pulso de decenas de microsegundos, es decir 150 - es de 1,5 milisegundos (más gama servos de valores 700-2300 ms).
Así, conectar los controladores 7 y 11 pines GPIO y ejecutar equipo servoblaster:
& lt; code class = & quot; fiesta de & quot; & gt; # servod --min = 70 --max = 230 --p1pins = 7, 11 & lt; / código de & gt; pre> Ahora, si escribimos en / dev / línea servoblaster 0 = 1 = 230 y 230, el tanque de explotar hacia adelante.
Conexión de la cámara
Ride arriba y abajo era genial, pero me gustaría hacerlo por lo menos en la habitación de al lado, y lo ideal en todo el Internet, por lo que fue necesario establecer un video en tiempo real. En Internet se encuentra un proyecto simple tinycamd . proyecto es un servicio que está gestionado por http, pueden tomar capturas de pantalla y cambiar la configuración de la cámara. No mucho, pero mejor que nada que no he encontrado, así que tuve que recordar con y construir sobre lo que el autor no se dio cuenta, a saber, la corriente de difusión MJPEG para HTTP (por cierto, ya que la cuota de código fuente modificado con el mundo?). Aquí es fundamental que JPEG acompaña a la cámara, Frambuesa procesador en esto no es suficiente. Como resultado, estaba conectado al tanque por ssh, abierto el flujo de vídeo a través del navegador, ir a la casa y estaba feliz con tal de que se hundió canal. Fue muy divertido a primera mirada al fotograma congelado, y luego conseguir todo ha quedado atascado en un modo acelerado. La transmisión de vídeo en tiempo real a través de TCP - es malo
.
Las actualizaciones, mejoras, etc.
Luego vino el largo proceso de escribir la biblioteca Python servidor y del lado del cliente utilizando c pygame para recibir eventos de la gamepad, tinycamd dopilivanie, por lo que envió video streaming a través de UDP y ajuste de la cámara en un trípode de servos para poder mirar a su alrededor. Luego fuimos al tanque primer viaje a la oficina más allá de la línea de visión. En este punto, se entiende que no sólo quiere ver, pero también para tener de dos vías canal de audio, por ejemplo, para pedir a los colegas para abrir la puerta o llamar al ascensor.
Sonido
Para reproducir un sonido era utilizar altavoces USB de bolsillo barato, comprado en el supermercado Stock. Se conectan entre sí con un simple micrófono a través zvukovuhu USB. Para trabajar con sonido en práctico biblioteca pyalsaaudio . Después servidor dopilivaniya y el cliente tendrá la oportunidad durante rassekaniya el tanque para hablar y escuchar.
Luz Siguiente fichey fue la luz. En algún momento se hizo evidente que la sensibilidad de la cámara fácilmente se puede perder, y hay una oportunidad de llamar en la oscuridad y no lo deje. La primera idea era la luz infrarroja. Se ensambló línea de LEDs infrarrojos, pero la experiencia ha demostrado que el uso de ellos a cero. La luz es muy mala y pequeña. A iluminadores infrarrojos listos requerir alimentación de 12V (y tengo sólo 2 bancos, es decir, el 8c máximo), engullen mucha corriente, engorroso y son caros. Como resultado, se decidió a entrar en el rango visible, se compraron dos potentes LEDs SMD blancos y lentes a ellos. Para encender las luces compañeros de trabajo fue creado por el conductor de la normativa vigente, que se habilita a través de la unidad de suministro de FET en GPIO pierna frambuesa. A partir de ahora, los cuartos oscuros ya no son un obstáculo.
Batería, el nivel exacto de su cargo
En todas las etapas, no estaba claro cuánto tiempo se puede ir sin matar a la batería (Li-Po no se puede descargar por debajo de 3,3 V que el banco). No he encontrado una manera de medir el voltaje a través de GPIO pies Frambuesa, por lo tanto, como medida puso Arduino Nano, que en el futuro la pantalla LCD adaptador c I2C directamente conectado. La batería está conectada a través de un divisor de medio pie analógica Arduino, dejando sólo calibrar las lecturas. Arduino se comunica tradicionalmente con la unidad principal a través de un puerto COM que también se muestra en los pies Frambuesa GPIO.
Lo que un tanque sin
pistola Una de las últimas partes del tanque era el arma. El arma fue comprada allí mismo en la tienda en forma de modelos de radio control de partes. Ella, sin embargo, estaba destinado a otro modelo del tanque, pero el quid de la cuestión no cambió. Pistola neumática, tiene un motor, ladeando pistón primavera, y el contacto que se cierra cuando disparó. La pistola de giro horizontal y aún tengo que renunciar a fin de no llevar todo el kit, que prendió en la cubierta superior, y para uso vertical, potente servo. Para que sea más fácil de dirigir, lo hice girar el arma sobre sincrónica con la rotación de la cámara. Ahí es donde buscamos (vertical), allí y disparar. Para el objetivo de el cañón de la pistola fue sujetar puntero láser LED. Así, una vez más no perder la batería o de la luz láser que no es necesario, fue necesario para hacer que el arma está apagado. El proceso de disparo no es tan simple. Es necesario activar la potencia del motor y esperar a que el cierre de contacto, después de lo cual el motor se apaga. Como resultado, el láser de control y potencia tiro y servo fue colgado en Arduino, y genera una señal de servo frambuesa. Arma Engine también tuvo que llevar a cabo un cable de alimentación independiente y convertirlo usando gradualmente PWM, porque de lo contrario la interferencia llega en la nutrición y Arduino va a reiniciar. Para enviar conchas, es decir, bolas, fue caja de pastillas TicTac utilizado con un agujero en la parte inferior.
Probablemente será suficiente para la primera vez. Si te gustó el artículo, voy a escribir en silencio los detalles en los siguientes puestos. Y, por último, algunas fotos y svezhesnyatoe video. Sin embargo, la calidad no era muy, por lo que pido disculpas en estetas anticipadas.
Fuente: habrahabr.ru/post/244407/
No es que la vida es injusta - que usted tiene la equivocada concepción de la justicia
La energía renovable - la mayor parte de la electricidad de Escocia