1
50
10N
10.2
m12.1
Phụ lục 10 V File gamepad.js var socket = io.connect(); aIsDown = false; var gamepad_detected = false; var gamepadSupportAvailable = navigator.getGamepads || !!navigator.webkitGetGamepads || !!navigator.webkitGamepads; var button_pressed = new Array(16); var button_value = new Array(16); var axis_value = new Array(16); var level=0; function zero_depth_window() { socket.emit("button","zero_depth"); } function zeroPad(num, places) { var zero = places - num.toString().length + 1; return Array(+(zero > && zero)).join("0") + num; } function readgamepad() { var value; var pressed; var gamepad = navigator.getGamepads()[0]; var axes = gamepad.axes.length; var buttons = gamepad.buttons.length; if (gamepad) { // socket.emit("gamepad","gamepad loop"); // Init if (!gamepad_detected) { Phụ lục 11 socket.emit('led', { value: "axis", flag: axes }); socket.emit("gamepad",gamepad.id); socket.emit("gamepad","index "+gamepad.index); // // // // socket.emit("gamepad",axes+" Axes" ); socket.emit("gamepad",buttons+" Buttons" ); for (i=0 ; i < axes ; i++) { axis_value[i] = 0.0; } for (i=0 ; i < buttons ; i++) { button_value[i] = 0.0; } gamepad_detected = true; } // Check button for (i=0 ; i (button_value[i]+0.1)) { button_value[i] = value; level ; if (level < 0) level = 0; //document.getElementById("kq").innerHTML = "SetTocdo"+ level; document.getElementById("so").innerHTML =level; } if (value < (button_value[i]-0.1)) { button_value[i] = value; } } else { if (pressed) { if (!button_pressed[i]) { if ( i == 4){ level++; Phụ lục 12 if (level > 5) level =5; socket.emit('led', { value: "SetTocDo", flag: level }); } if (i == 3) {level=0; socket.emit('led', { value: "setTocdo", flag: level }); //document.getElementById("kq").innerHTML = "SetTocdo"+ level; document.getElementById("so").innerHTML =level; } if (i == 0) { socket.emit('led', { value: "Lan", flag: level*50 }); } if (i == 2) { socket.emit('led', { value: "Noi", flag: level*50 }); } if (i == 1) {level=0; socket.emit('led', { value: "Huy", flag: }); } if (i == 8) { socket.emit('led', { value: "BAT", flag: }); } if (i == 9) { socket.emit('led', { value: "TAT", flag: }); } button_pressed[i] = true; } } else { if (button_pressed[i]) { if ((i == 0)||(i==2)) { socket.emit('led', { value: "Lan", flag: }); } button_pressed[i] = false; } } } } } for (i=0 ; i < axes ; i++) { value = gamepad.axes[i]; Phụ lục 13 if (gamepad.axes[i]>0){ if ((gamepad.axes[i] < axis_value[i]-0.1)||(gamepad.axes[i] > axis_value[i]+0.1)) { axis_value[i] = gamepad.axes[i]; // document.getElementById("kq").innerHTML = i + ""+ Math.floor(gamepad.axes[i]*100) if (i == 9){ if (( gamepad.axes[i]> 0.4)&&(gamepad.axes[i] < 2)){ socket.emit('led', { value: "Trai", flag: 50*level });} else if (gamepad.axes[i] < 0.4) { socket.emit('led', { value: "Lui", flag: 50*level }); } else if (gamepad.axes[i] > 2) { socket.emit('led', { value: "Stop", flag: }); } }else if (i == 1) socket.emit('led', { value: Math.floor(gamepad.axes[i]*100*level) }); else if (i == 0) socket.emit('led', { value: Math.floor(gamepad.axes[i]*100*level) }); else if (i == 5) Math.floor(gamepad.axes[i]*100*level) }); } } if (gamepad.axes[i] axis_value[i]+0.1)) { axis_value[i] = gamepad.axes[i]; if (i == 9){ if (( gamepad.axes[i]> -0.7)){ socket.emit('led', { value: "Phai", flag: 50*level });} else if (gamepad.axes[i] < -0.7) { socket.emit('led', { value: "Tien", flag: 50*level }); } }else if (i == 1) socket.emit('led', { value: "Tien", flag: Math.floor(gamepad.axes[i]*100*-level) }); else if (i == 0) socket.emit('led', { value: "Trai", flag: Math.floor(gamepad.axes[i]*100*-level) }); else if (i == 5) Math.floor(gamepad.axes[i]*100*-level) }); } } socket.emit('led', { value: "Lan", flag: } } Phụ lục 14 } function mainloop() { readgamepad(); } function init() { setInterval(mainloop, 20); } init(); Phụ lục 15 ... Lê Hoài Nam Thiết bị lặn điều khiển từ xa (ROV) 1.3 Giới thiệu thiết bị lặn điều khiển từ xa ROV 1.3.1 Lịch sử phát triển ROV Năm 1953, Sau gặp khó khăn mà thợ lặn khơng thể thăm dị điều tra tàu... thiệu thiết bị lặn điều khiển từ xa 1.3 Giới thiệu thiết bị lặn điều khiển từ xa ROV 1.3.1 Lịch sử phát triển ROV 1.3.2 Hệ thống ROV 1.3.3 Ứng dụng ROV ... Nam Thiết bị lặn điều khiển từ xa (ROV) Hình 1.10 Bộ điều khiển Deep Trekker ROV b) Dây cáp Dây cáp công cụ để truyền tín hiệu (camera, sensor) từ robot lên điều khiển hay ngược lại từ điều khiển