... vooooooooolaaaare uoh uoh ...
creo que va siendo hora de desvelar un poco más en que consiste el ardu-quad-rasbi-copter. Desde que vi por primera vez un cuatricóptero (cuadricóptero, quadcopter ...) he tenido ganas de hacerme con uno. Con el paso del tiempo fueron bajando de precio y yo me fui volviendo más exigente, así que mi cuatricóptero tiene que:- Cargar con al menos dos cámaras que graben todo el vuelo desde el cuatricóptero
- transmitir el vídeo hacia la emisora
- ser barato
- volar ininterrumpidamente durante un mínimo de 15 minutos
- ser controlado desde el móvil
- esquivar objetos
- no romperse durante el primer vuelo
- usar Arduino
veamos como solucionar esto y ¿dónde aparece por aquí un RaspberryPi?
Conectar dos cámaras y que transmitan en tiempo real, puede ser lo más complicado/caro que lleva el proyecto. Si a esto le unimos que tiene que ser controlado desde un Android, podemos ir despidiéndonos de 500€ solo en esta parte. Pero llegó SuperRaspberryPi para solucionar esto.
las cámaras
¿puede haber algo más fácil en esta vida que conectar dos webcams usb? Seguro que no, así que las cámaras irán conectadas al RaspberryPi (seguramente haya que usar alimentación a parte). Fáááácil fácil.
transmitir vídeo
esto aún lo tengo que limar un poco, pero con algún servidor de vídeo en el RaspberryPi, seguro que se soluciona en poco tiempo.
control desde Android
esta parte me ha costado horas y horas de estudio, hasta que llegó a mis manos mi primer RaspberryPi. La solución también es muy fácil:
- los móviles tienen wifi
- puedo ponerle un wifi usb al RaspberryPi
- son linuxes
- puedo hacer una conexión punto-a-punto
- puedo controlar el RaspberryPi vía web con JQuery por ejemplo
- no tengo ni idea de JQuery
¿y el Arduino?
Pues al Arduino le toca lo más duro:
- controlar los motores
- controlar los desplazamientos "involuntarios"
- controlar la batería
- disparar el láser mortal (aunque me estoy pensando ponerle esto también al RaspberryPi).
¿y todo esto para qué?
Bueno ... que clase de superheroe ... no vuela? ¿Aquaman?
Y para terminar un pequeño vídeo con la primera prueba:
El sonido se atrasa un poco, no se porque.
¿que os parece el proyecto?
ya estoy loco mirando, arducopters, podrías detallar los componentes, he estado mirando varias web pero no he tocado nunca un arduino y estoy algo perdido.
ResponderEliminarGracias y feliz año!!!
Estas gastando el Arduino en el proyecto mejor busca un sistema operativo para arduino que se llama DUINOS y resolvera todos tus problemas.
ResponderEliminarjurr no lo conocía, es todo un nuevo ecosistema, a ver si me informo. Gracias por la información.
Eliminarlo que puedes hacer es una aplicacion en PHP con varios botones o divisiones (DIV) alojada en la rsppi donde le pasas las variables por GET al pulsar el boton o DIV http://www.desarrolloweb.com/faq/511.php
ResponderEliminarCuando pulses el boton se llama asi mismo pasandole un parametro y te vuelve a mostrar la misma web.
Por ejemplo: ipRSPPI/demonio.php?accion=1 (esto que sea subir)
ipRSPPI/demonio.php?accion=2 (bajar)
ipRSPPI/demonio.php?accion=3 (girar a la derecha)
Para saber si le has pasado un variable en PHP por GET seria:
if (isset($_GET['velocidad'])) {
aqui llamas el .sh
}
Y cuando la web en PHP reciba el parametro desde PHP ejecutas un .sh que mande instrucciones a los motores.
Tambien puedes enviar un 2º parametros que sea la velocidad de la accion (subir a lento, girar rapido....)
Ejemplo:
ipRSPPI/demonio.php?accion=3&velocidad=50
Para recoger el valor de $_GET desde PHP seria:
$accionRSPPI= $_GET['accion'];
$velocidadRSPPI= $_GET['velocidad'];
Para ejecutar sh desde PHP
Para el path que tienes creado:
shell_exec(../../../root/scripts/script.sh);
aqui te dejo una demo de lo que te comentaba
ResponderEliminarwww.gsbrownsea.es/slideBar/
vaya ... eso es sin duda de mucha ayuda. Hazme un favor, cuando publique la primera versión de los controles de mi ardu-quad-raspbi-copter, échale un ojo a ver si se podría optimizar ;)
Eliminarok!
ResponderEliminaryo me he pedido mi rsppi.... cuando me llegué lo probaré en ella.
Si tienes alguna duda con PHP dimelo.
Un saludo, Javi.
Has visto esto??
ResponderEliminarhttp://www.gamepadjs.com/
aqui tienes otro ejemplo
Eliminarhttps://github.com/kallaspriit/HTML5-JavaScript-Gamepad-Controller-Library
acabo de leer que los nuevos navegadores tienen una API para GAMEPAD
Eliminarhttp://www.html5rocks.com/en/tutorials/doodles/gamepad/?redirect_from_locale=es
tambien una manera facil es con un teclado en pantalla y segun la tecla que pulsas hace una accion
Eliminarhttp://www.desarrolloweb.com/articulos/eventos-teclado-jquery.html
bueno me he picado con este tema y ya tenga otra posible solución
EliminarSegún la tecla que pulses del teclado puedes ejecutar un sh
http://gsbrownsea.es/slideBar/gamepad.html
y aqui v2 para forzar el teclado en pantalla en un movil
Eliminarhttp://gsbrownsea.es/slideBar/gamepad2.html
javi jaaaavi tranquilo que te vienes arriba ;) estan geniales esos enlaces. Gran parte de ellos me sirven pero que no se nos olvide que tiene que ejecutar continuamente scripts en el servidor sin refrescar la web en el navegador. Mañana pondre un post muy interesante sobre esto. Gracias por toda la informacion.
Eliminarentiendo que con jquery ejecuta cada vez que pulsas una tecla sin refrescar ;)
EliminarHe puesto tantos comentarios porque no puedo editar el primero para ampliar informacion.
ya ya, mi primera prueba es en jquery, pero necesito que éste le hable al servidor donde se aloja (el raspberry).
EliminarPor ahora no me cobran por los comentarios, así que siéntete libre de poner todos los que quieras ;)
Hola, soy experto en programacion, he pedido mi raspberry tambien, y investigando que puedo hacer con ella, me tope con tu blog, esta muy bien la verdad.
EliminarComo llevas la comunicacion jquery y tu servidor?
Aver, te comento un poco por encima como funciona el asunto, jquery es javascript, y javascript es un lenguaje del lado del cliente y php del lado del servidor, supongo que hasta ahi bien.
Teoricamente, no se pueden comunicar javascript y php, a no ser que uses ajax. Ademas de ser mucho mas rapido que un refresco de web, es mucho mas limpio y trabaja php como segundo plano. Os pongo un pedazo de codigo de ajax con jquery:
Y os voy esplicando linea a linea.
$.ajax({ //Iniciamos la comunicacion ajax
type: "POST", //metodo que usaremos para pasar datos
url: 'servidor.php', //lugar donde se aloja nuestro codigo php
data: "var=1", //variables que pasamos a nuestro php
success: function (msg) { //lo hara si termina de leer el php
}
}
});
Yo se que tarda muy poco en enviar esto ajax, es mucho mas rapido que el html, pero sera lo suficientemente rapido como para que responda bien?