Se connecter / S'enregistrer

Résolu Contrôler Raspberry depuis une page Web

Solutions (2)
|
Bonjour,

Je suis confronté à un petit souci. Peut-être que quelqu'un sur ce forum pourra m'aider :) 

Je souhaite construire un petit robot sur 4 roues avec mon Raspberry Pi comme cerveau.
J'ai donc mis en place une petite page web pour pouvoir le contrôler depuis mon smartphone par exemple. Cette page web possède des flèches directionnelles créer en HTML/CSS pour indiquer à mon robot la direction dans laquelle il va devoir se diriger.

Le problème, c'est que lorsque je clique sur une des flèches, la page se rafraichit et je suis obligé de recliquer sur la flèche pour relancer l'action. Ce qui n'est pas du tout ergonomique ni pratique pour faire avancer mon robot, en plus de cela, les mouvements sont saccadés..

Ce que je voudrais faire, c'est cliquer et rester appuyer sur la flèche pour dire au script Python (présent sur le Raspberry) qu'il doit s'exécuter tant que c'est vrai (tant que je reste cliqué), SANS QUE LA PAGE SE RECHARCHE.

Je suis resté bloqué pendant quelques heures hier sur ça et je n'ai toujours pas trouvé la solution.

Est-ce que quelqu'un aurait une petite idée par le plus grand des hasards ? :) 

Merci d'avance !

Cordialement.
Contenus similaires
Meilleure solution
partage
, Vieux c*n psychorigide |
Citation :
Justement c'est l’interaction entre le bouton "avancer tout droit" et le script que je n'arrive pas bien à comprendre. Je ne vois pas comment dire au script qu'il doit s'exécuter à partir de Javascript..


Il faut que ton script python ait un rôle de serveur en écoutant sur un port (on va dire le 5555). Ton script javascript enverra un message sur le port 5555 de sur le port 5555 .

Javascript :
  1. if(window.WebSocket) {
  2. var socket = new WebSocket("ws://127.0.0.1:5555");
  3. var data = "move front";
  4. socket.send(data);
  5. socket.close();
  6.  
  7. } else {
  8. alert('WS non supportés par le navigateur');
  9. }


Serveur python ::
#Debut du script
import socket
import sys

serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

serversocket.bind(("127.0.0.1", 5555))
serversocket.listen(5)

conn, addr = serversocket.accept()
msg = conn.recv(1024)
print(msg)
#Fin du script

Par contre le serveur reçoit bien les entêtes envoyées par le client mais pas le message, sii quelqu'un passe par là et voit le problème ...

  • Dreamcaster a sélectionné cette solution comme la meilleure réponse
  • archipeldufond a édité ce message
  • archipeldufond a édité ce message
  • archipeldufond a édité ce message
  • Commenter cette solution |
Score
0
òh
òi
, Vieux c*n psychorigide |
Salut,

Tu as mis tes boutons dans un form ? c'est sûrement pour ça que la page se rafraichit

Sinon, tu peux utiliser les websockets :

Lors de l'évenement mouseDown(clic maintenu sur le bouton) sur le bouton "avancer tout droit" ta page enverra un socket qui contient "droit" et le script python receptionne ce socket pour faire avancer le robot (jusqu'à la prochaine instruction). Ensuite quand l'évenement mouseUp(on releve le doigt de la souris) ta page envoie "stop" au script python pour le faire s'arrêter
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS