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 ... sử dụng rộng rãi robot tự hành AUV robot điều khiển từ xa ROV Robot nước Thiết bị lặn không người lái (AUV) Tàu lượn nước Thiết bị lặn điều khiển từ xa (ROV) AUV Hình 1.2 Phân loại loại robot... Thiết bị lặn điều khiển từ xa (ROV) Hình 2.29 Hình ảnh mơ hình sau hoàn thiện Sinh viên thực hiện: Nguyễn Trung Anh – Nguyễn Văn Thái Hướng dẫn: TS Lê Hoài Nam 33 Thiết bị lặn điều khiển từ xa. .. lặn, cách linh động Hình 1.4 ROV ROVOP Sinh viên thực hiện: Nguyễn Trung Anh – Nguyễn Văn Thái Hướng dẫn: TS 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