Uniendo múltiples disciplinas con un único propósito
Hola, no sabia exactamente qué título ponerle a esta entrada. Resumiendo un poco, esto es un ejemplo de como podemos ejecutar scripts en el RaspberryPi, llamándolos desde la web. No es nada nuevo, llevamos siglos usándolo, pero lo que vamos a ver es muy interesante porque vamos a hacerlo con JQUERY, que en principio, no esta pensado para este propósito.Como seguro que sabrás, JQUERY se ejecuta en el navegador, por lo que al servidor donde se aloja, ni se entera. Necesitamos por tanto crear un evento vía AJAX, que llame ejecute un post PHP y otra web lo recoja, ejecutando un script. Seguramente ni lo habré escrito bien, así que vamos al lío.
Lo primero será instalar algunas dependencias:
apt-get install apache2 php5creo que esas son todas. Como son necesarios varios archivos, los he comprimido todos para que los podáis descargar desde Dropbox.
- cd /var/www/
- aqui se supone que tenemos el archivo prueba.tar.gz
- tar -xvzf prueba.tar.gz
- chown -R www-data:www-data prueba
- touch /tmp/resultado.log
- chmod 777 /tmp/resultado.log
Tiene que aparecer de la siguiente forma:
/var/www/
/var/www/prueba
/var/www/prueba/js
/var/www/prueba/js/jquery-1.8.3.js
/var/www/prueba/js/script.sh
/var/www/prueba/js/my-script-molon.js
/var/www/prueba/js/jquery-ui.js
/var/www/prueba/index.html
/var/www/prueba/test.php
/var/www/prueba/css
/var/www/prueba/css/jquery-ui.css
Y ya está. Ahora navegáis a http://ip_del_raspberrypi/prueba/ y podemos hacer lo siguiente:
A lo mejor no resulta "impresionante" pero desde luego si que es muy interesante. Si se tratase de un simple formulario PHP, cada vez que se envía, se refrescaría la web. En el archivo /var/www/prueba/js/my-script-molon.js he dejado varios comentarios y varios ejemplos ... comentados. La idea es tener en cada momento el valor del slider. Lo que tenemos aquí, viene a ser más o menos esto:
Una de las grandes ventajas de la simplicidad de este ejemplo, es que usa JQUERY, que es compatible con cualquier navegador (paso de probarlo en IExplorer).
si pones dos slideBar ya tienes el control remoto del ardu-quad-raspby-copter!....
ResponderEliminarUno en horizontal y otro en vertical.
yeees :) junto con los botones de subir, bajar, luces, activar el "laser", buscar zombis ...
ResponderEliminary que cuando sueltes, vuelva al centro.... estoy haciendo una prueba desde mi movil ya que se supone que es multitactil no??
Eliminarentonces le puede estar diciendo.... sube y gira a la derecha pulsando con dos dedos....
sino digo nada es que desde el movil se puede hacer pulsando con varios dedos.
Dolphin beta para Android (recomendado) tiene un modo "juegos" que se supone que tiene que hacer esto que buscamos.
Eliminaryo lo que vi una vez y no me lo guardé.... fue un circulo con un punto en medio que era el joystic... y tu podias ir moviendo el punto por dentro del circulo.... sabiendo las coordenadas del punto en el circulo puedes saber lo que quieres....
Eliminarera esto....
ResponderEliminarhttps://github.com/tiefenb/ardrone-webcontroller
pero no consigo que funcione
te dejo algo de cosecha propia
Eliminarhttp://www.gsbrownsea.es/slideBar/circulo.html
(falta delimitar que no se salga del circulo)
perfecto perfecto perfecto. Te mencionaré en mis memorias ;)
Eliminarjavi he borrado los comentarios que habias borrado. Se que cada uno es celoso de su código pero ... ¿lo compartes? prometo que no habrá represalias si no quieres compartirlo, al fin y al cabo es tuyo.
Eliminarclaro que si... utiliza el código que necesites....
EliminarMirate lo de https://github.com/tiefenb/ardrone-webcontroller porque hay archivos .js con funciones implementadas para saber donde esta pulsando dentro del circulo.
He actualizado http://www.gsbrownsea.es/slideBar/circulo.html con un jQuery modificado para moviles.... porque a mi no me iba el joistic en el movil.... ahora si que me va ;)
ahora mismo lo miro. Estaría aun mejor que si pulsas dentro de la "zona blanca" el circulo rojo se posicionara ahí, que no haga falta arrastrarlo desde primeras desde el centro. Con el slider del ejemplo que puse, se puede, así no habría que prestar tanta atención al mando y no perdemos de vista al ardu-quad-raspbi-copter.
Eliminarhabia pensado igual... buscaré solución
Eliminaresto te puede servir http://www.lewebmonster.com/ejemplos/eventos-del-raton-jquery/
EliminarY esto tambien http://jsbin.com/akiwo
ResponderEliminarFantástica web, la verdad es un lujo poder leer artículos de esta calidad en castellano
ResponderEliminarTengo una duda, que usuario es el que ejecuta los scripts? www-data?
gracias y saludos!
yes, www-data
EliminarAhora si pulsas te lleva el joistic donde has pulsado y si sueltas vuelve al centro.
ResponderEliminarHay una primera prueba para no salirse del circulo
http://www.gsbrownsea.es/slideBar/circulo.html
no es por ser quisquilloso pero ... la primera version iba mejor. Esta, desde movil, es algo regulera. Me quedo con la primera ;)
Eliminarvenga para compensar te he creado unos botones para activar el laser y hacer fotos...
Eliminarcuando los pulsas el jquery llama al PHP
http://www.gsbrownsea.es/slideBar/circulo.html
buaaaa como molaaaaaaa!! pásate los archivos y lo pruebo en mi Raspberry ¿no?
Eliminareste finde te los paso...
Eliminarotra cosa que se me ha ocurrido es que cuando pulses el boton de "FOTO", aparezca abajo de la pantalla la foto que acabas de hacer. Por lo que he visto en el blog esta parte tu la tienes controlada y sabes hacerlo con un .sh
Aqui entra la magia de Jquery.... tendriamos que tener un txt un contador para que las fotos se llamasen : 1.jpg, 2.jpg, 3.jpg, 4.jpg
Cuando pulses el boton, se incrementa el contador, se hace la foto y desde jquery leemos el txt para saber la ultima foto tomada y se carga en la web con CSS desde donde se controla el raspiCopter sin refrescar.
Si consigues la retransmision de video.... es solamente incluir en la web el joistic y ha volaaar!
Aquí lo tienes !!
Eliminarel ejemplo empieza el contador 2 y carga las fotos 2.jpg, 3.jpg y 4.jpg cuando pulsas el botón de FOTO
Faltaría solo hacer el .sh que capture la foto y la guarde con esos nombres ;)
http://www.gsbrownsea.es/slideBar/circulo.rar
Ya me dices si te gusta o que.
Ola ke ase!! xD eres un crá. Te importa que publique y modifique el código siempre y cuando te mencione en el código y los comentarios?
Eliminareres libre de publicar y modificar lo que quieras ;)
EliminarPodrías publicar o enviarme por mensaje privado la lista de la compre de ebay para las piezas del arduCopter ;)
ResponderEliminarYo lo pedí a mama noel... Estaria bien saber las piezas. :)
Eliminaryo me la pedí el 1 de enero y ya he recibido hoy!!! La compre en RS
EliminarUi comente en el anterior sin haber leido este, que tal es la latencia por ajax? responde bien?
ResponderEliminarmuy buewn trabajo tamto juanmol como javi la verdad curradisimo, no me queda claro una cosa... como usais los datos de el joystick por que intento ver como esta montado pero no lo logro encontrar, yo estoy con un coche teledirigido que tiene 2 motores, uno de direccion y otro de propulsión y claro intento adaptarlo para usarlo con el ejemplo del circulo pero no encuentro la forma, si me podeis ayudar....
ResponderEliminarmil gracias
Muy buenas, estoy muy interesado en realizar este proyecto, pero al parecer los enlaces de dropbox han caducado.. Podría alguien volver a facilitar los archivos..? :(
ResponderEliminar