Husky jag: fyrfotingen Live Streaming Bot med Raspberry pi (14 / 17 steg)
Steg 14: Programvara: App.js
App.js är en lokal server skriven i javascript och det används websocket för att kommunicera med andra enheter via wifi.
Följande kod skapar ett objekt att använda funktionen från i socket.io bibliotek och sedan berätta app att lyssna på port 5000.
var app = require('http');
createServer(handler);
IO = require('socket.io').listen(app);
URL = require('url');
FS = require('fs');
app.listen(5000);
Nästa del av koden är bara vidarebefordra innehållet i allmänheten via wifi så att du kan kommunicera med det via IP-adress.
Http-hanterarfunktion
funktionen handler (req, res) {
Med hjälp av URL för att parsa den begärda URL:
var path = url.parse (req.url) .pathname;
Hantera root rutten
om (sökvägen == '/') {
index = fs.readFile (__dirname +'/ public/index.html ",
function(Error,data) {
om (fel) {
res.writeHead(500);
återgå res.end ("fel: kunde inte ladda index.html");
}
res.writeHead (200, {"Content-Type": "text/html"});
Res.End(data);
});
Hantera rutten för JavaScriptfiler
} else om (/ \. () JS)$/.test(path)) {
index = fs.readFile (__dirname + '/ offentliga' + sökvägen,
function(Error,data) {
om (fel) {
res.writeHead(500);
återgå res.end ("fel: kunde inte ladda" + sökvägen);
}
res.writeHead (200, {"Content-Type": "text/plain"});
Res.End(data);
});
} annat {
res.writeHead(404);
Res.End ("fel: 404 - filen hittades inte.");
}
}
Dessutom har vi också lagt koden för att kontrollera servo inuti app.js. Först måste du skapa ett objekt för mini maestro biblioteket som socket.io.
var PololuMaestro = require("pololu-maestro");
var maestro = nya PololuMaestro("/dev/ttyACM0");
Sedan kan du använda funktionen inuti mini maestro biblioteket som följer.
Initiera kommunikation med servo controller
Maestro.on ("ready", function() {
Console.log ("anslutningen skapade");}
Ställa in hastigheten på servo på pin 0 till 60
maestro.setSpeed (0, 60);
Ställa in vinkeln (du skriver i PWM-värde) på pin 0
maestro.setTarget (0, 1200);
Exempel funktion
funktion CameraRight() {
Yaw = yaw + 100.
maestro.setTarget (12, gir);
}
Nästa måste vi inkludera en del av kod att kalla dessa fungerar när vi får data från kommunikation sida där de vill att en viss funktion.
Kontrollera signal som skickas
IO.Sockets.on ("anslutning", funktion (socket) {
Om signalen är CR, kör sedan CameraRight();
socket.on ('SP', function(data) {
Console.log("CameraRight");
CameraRight();
});
}