Ce tutoriel montre la construction d'un Nodebot - un robot contrôlé par Node.js - en utilisant Arduino. Nous allons créer une moto simple contrôlable à partir d'un navigateur Web. Le projet tire parti de la popularité croissante de JavaScript en robotique et IoT.
Concepts clés:
matériel:
Sélection du moteur: Choisissez des moteurs appropriés pour la charge prévue. Les moteurs à tension plus élevée peuvent nécessiter une alimentation externe.
Installation de standardfirmata:
File > Examples > Firmata > StandardFirmata
. Configuration du logiciel:
Créer un fichier package.json
:
{ "name": "nodebot-sample", "dependencies": { "express": "^4.11.2", "johnny-five": "^0.8.53", "socket.io": "^1.3.3" } }
Exécutez npm install
pour installer les dépendances.
Code côté serveur (index.js
):
var express = require('express'); var app = express(); var io = require('socket.io')(app.listen(8081)); var five = require('johnny-five'); app.use(express.static(__dirname + '/app')); app.get('/', function (res) { res.sendfile('/index.html'); }); var board = new five.Board({ repl: false }); board.on('ready', function () { var speed, commands, motors; motors = { a: new five.Motor([3, 12]), b: new five.Motor([11, 13]) }; io.on('connection', function (socket) { socket.on('stop', function () { motors.a.stop(); motors.b.stop(); }); socket.on('start', function () { speed = 255; motors.a.fwd(speed); motors.b.fwd(speed); }); socket.on('reverse', function () { speed = 120; motors.a.rev(speed); motors.b.rev(speed); }); socket.on('left', function () { motors.a.fwd(220); motors.b.rev(50); }); socket.on('right', function () { motors.a.rev(50); motors.b.fwd(220); }); }); });
Code côté client (app/index.html
& app.js
):
index.html
:
<!DOCTYPE html> <html> <head> <title>NodeBot Control</title> <🎜> <🎜> </head> <body> <div class="container"> <i class="fa fa-angle-up" id="forward"></i> <i class="fa fa-angle-left" id="left"></i> <i class="fa fa-angle-down" id="reverse"></i> <i class="fa fa-angle-right" id="right"></i> <i class="fa stop" id="stop"></i>STOP </div> </body> </html>
app.js
:
var socket = io(); document.getElementById('forward').onclick = () => socket.emit('start'); document.getElementById('right').onclick = () => socket.emit('right'); document.getElementById('left').onclick = () => socket.emit('left'); document.getElementById('reverse').onclick = () => socket.emit('reverse'); document.getElementById('stop').onclick = () => socket.emit('stop');
Exécutez node index.js
pour démarrer le serveur. Accéder à l'interface de contrôle à 127.0.0.1:8081
. N'oubliez pas de résoudre les problèmes de connexion si le conseil n'est pas reconnu. Cet exemple démontre les principes de base; Les interactions plus complexes sont réalisables avec cette fondation. Le code source complet est disponible sur github (le lien serait inséré ici si fourni).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!