Rumah > hujung hadapan web > tutorial js > Mengawal motosikal menggunakan arduino dan node.js

Mengawal motosikal menggunakan arduino dan node.js

Lisa Kudrow
Lepaskan: 2025-02-19 11:43:12
asal
954 orang telah melayarinya

Tutorial ini menunjukkan membina nodebot -robot yang dikawal oleh node.js -menggunakan Arduino. Kami akan membuat motosikal mudah dikawal dari pelayar web. Projek ini memanfaatkan populariti JavaScript yang semakin meningkat dalam robotik dan IoT.

Konsep Utama:

  • NodeBots & Arduino Integration: NodeBots, yang dikuasakan oleh Node.js, menawarkan kombinasi yang kuat dengan Arduino untuk pelbagai aplikasi, termasuk pembangunan permainan, robotik, dan IoT.
  • Persediaan Perkakasan: Perkakasan terdiri daripada arduino, dua motor, pengawal motor L298, dan kabel sambungan. Secara kritis, standardfirmata mesti dipasang di Arduino.
  • pelayan-sisi (node.js): kami menggunakan node.js, express.js, socket.io (untuk komunikasi masa nyata), dan Johnny-Five (rangka kerja robotik berasaskan firma. ).
  • klien-sisi (penyemak imbas): Antara muka web yang mudah membolehkan pengguna mengawal pergerakan motor. Socket.io mengendalikan komunikasi masa nyata antara penyemak imbas dan pelayan.

Perkakasan:

    Microcontroller Arduino
  • dua motor
  • L298 Motor Controller
  • kabel USB menghubungkan arduino ke komputer

Controlling a Motorbot Using Arduino and Node.js

Pemilihan motor: Controlling a Motorbot Using Arduino and Node.js Pilih motor yang sesuai untuk beban yang dimaksudkan. Motor voltan yang lebih tinggi mungkin memerlukan bekalan kuasa luaran.

Pemasangan StandardFirmata:

Muat turun Arduino Ide.

Sambungkan Arduino melalui USB.
  1. Dalam IDE, navigasi ke
  2. .
  3. Muat naik kod standardfirmata ke Arduino.
  4. File > Examples > Firmata > StandardFirmata
  5. Persediaan Perisian:

Buat fail :

run package.json untuk memasang kebergantungan.

{
  "name": "nodebot-sample",
  "dependencies": {
    "express": "^4.11.2",
    "johnny-five": "^0.8.53",
    "socket.io": "^1.3.3"
  }
}
Salin selepas log masuk

kod pelayan-pelayan (): npm install

kod sisi klien (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); });
    });
});
Salin selepas log masuk

: app/index.html app.js

:

index.html

RUN Untuk memulakan pelayan. Akses antara muka kawalan di
<!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>
Salin selepas log masuk
. Ingatlah untuk menyelesaikan masalah sambungan jika lembaga tidak diiktiraf. Contoh ini menunjukkan prinsip asas; Interaksi yang lebih kompleks dapat dicapai dengan asas ini. Kod sumber penuh boleh didapati di GitHub (pautan akan dimasukkan di sini jika disediakan).

Atas ialah kandungan terperinci Mengawal motosikal menggunakan arduino dan node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan