То, что вам нужно, - это способ заставить браузер (на устройстве с удаленным контроллером) отправлять сообщение обратно в raspberry pi (двигаться вперед, повернуть влево и т. Д.) И способ, которым Pi получает это сообщение и действуетна нем.
Я бы начал с рассмотрения https://socket.io/ - Socket.io предоставляет хорошую библиотеку для использования WebSockets, которая позволяет в режиме реального времени общаться между клиентом (веб-браузером на управляющем устройстве) исервер (малиновый пи)
Затем вы можете написать некоторый код Javascript на пи, который будет обрабатывать движения.
В пределах вашей HTML-страницы
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
document.getElementById('btn-forward').addEventListener('click', function() {
socket.emit('forward');
});
document.getElementById('btn-backward').addEventListener('click', function() {
socket.emit('backward');
});
document.getElementById('btn-left').addEventListener('click', function() {
socket.emit('left');
});
document.getElementById('btn-right').addEventListener('click', function() {
socket.emit('right');
});
</script>
В пределах вашего узла.js сервер
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
socket.on('forward', function(){
console.log('Moving forward!');
// code to make the robot move
});
socket.on('backward', function(){
console.log('Moving backward!');
// code to make the robot move
});
socket.on('left', function(){
console.log('Turning left!');
// code to make the robot move
});
socket.on('right', function(){
console.log('Turning right!');
// code to make the robot move
});
});
http.listen(3000, function(){
console.log('listening on *:3000');
});