23.05.2012, 09:51
|
Интересующийся
|
|
Регистрация: 11.05.2012
Сообщений: 28
|
|
веб морда машинки
Делаю машинку с управлением через веб интерфейс. Так вот ребята сделали скрипт но в этом скрипте один только ползунок для управления одной сервой. Хочу добавить еще один ползунок чтобы управлять другой сервой. Я выделил жирно ползунок и номер сервы которой управляет ползунок... как переписать код, чтобы управлять двумя сервами с разных ползунков.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ROBOT</title>
<link rel="stylesheet" type="text/css" href="res/main.css"/>
<script type="text/javascript">
var lastTurn = -1;
var lastPress = -1;
var lastPos = -1;
function submitUART(uartString)
{
document.getElementById('serialData').value=uartSt ring+"\n";
document.getElementById('serialForm').submit()
};
function scrollCam(val)
{
document.getElementById("scr").parentNode.scrollLe ft=val;
};
window.setInterval(
function(){
var pos = document.getElementById("scr").parentNode.scrollLe ft;
if(lastPos!=pos){
submitUART("#9 P" +(pos + 700));
lastPos=pos;
};
},100
);
</pre>
<table>
<tr>
<td>
<br/>
Camera control:<br>
<div style="width:320px;height: 20px;margin-top: 15px;overflow-x: scroll;display: inline-block;"onscroll="scrollCam(this.scrollLeft)">
<div id="scr" style="width:1920px;height: 1px;display: block;" ></div>
</div>
</td>
</tr>
<tr>
<td>
</body>
</html>
|
|
23.05.2012, 19:14
|
|
Студент
|
|
Регистрация: 30.04.2012
Сообщений: 1,113
|
|
А подробней можешь рассказать?
в том виде как написана программа не может работать
вместо </pre> должен быть </script>
где второй ползунок рядом или внизу?
|
|
25.05.2012, 08:44
|
Интересующийся
|
|
Регистрация: 11.05.2012
Сообщений: 28
|
|
Я накосячил код такой:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ROBOT</title>
<link rel="stylesheet" type="text/css" href="res/main.css"/>
<script type="text/javascript">
var lastTurn = -1;
var lastPress = -1;
var lastPos = -1;
function submitUART(uartString)
{
document.getElementById('serialData').value=uartSt ring+"\n";
document.getElementById('serialForm').submit()
};
function scrollCam(val)
{
document.getElementById("scr").parentNode.scrollLe ft=val;
};
window.setInterval(
function(){
var pos = document.getElementById("scr").parentNode.scrollLe ft;
if(lastPos!=pos){
submitUART("#9 P" +(pos + 700));
lastPos=pos;
};
},100
);
</script>
</head>
<tr>
<td>
<br/>
Camera control:<br>
<div style="width:320px;height: 20px;margin-top: 15px;overflow-x: scroll;display: inline-block;"onscroll="scrollCam(this.scrollLeft)">
<div id="scr" style="width:1920px;height: 1px;display: block;" ></div>
</div>
</td>
</tr>
<tr>
<td>
</body>
</html>
второго ползунка нет в скрипте, его хоть куда можно воткнуть, смысл в том , чтобы второй ползунок отправлял данные не на #9 серву (9-ая серва) а дапустим на 2-ю серву т.е (#2)
|
|
25.05.2012, 10:12
|
Интересующийся
|
|
Регистрация: 11.05.2012
Сообщений: 28
|
|
Есть машинка, управляется она с веб страницы через UART, ког который я привел пиал не я а ребята с форума, я хочу его доработать а именно добавить еже ползунок или несколько ползунков для управления сервоприводами. Я пробывал сам код править но не получается.
Значит Двигая этим ползунком:
<div style="width:320px;height: 20px;margin-top: 15px;overflow-x: scroll;display: inline-block;"onscroll="scrollCam(this.scrollLeft)">
<div id="scr" style="width:1920px;height: 1px;display: block;" ></div>
Я отправляю команды на девятую серву т.е. сюда:
window.setInterval(
function(){
var pos = document.getElementById("scr").parentNode.scrollLe ft;
if(lastPos!=pos){
submitUART("#9 P" +(pos + 700));
lastPos=pos;
Вооот.... я хочу добавить еще одни ползунок: но чтобы управлять не девятой сервой а дапустим второй......??? как??? я не знаю...
|
|
25.05.2012, 11:03
|
|
Студент
|
|
Регистрация: 30.04.2012
Сообщений: 1,113
|
|
Мне сама идея нравится-хотел себе что то подобное сделать
Подробности интересуют как сделана сама связь с серваками-на блютуз или вайфай или еще как
со скриптом помогу-он простой
но нужен еще один файл
там есть ссылка на таблицу стилей
res/main.css
вот это файл если он есть тоже выложи
кроме того там в скрипте есть ссылки на несуществующие элементы
с id 'serialData' и 'serialForm'-это что то связанное непосредственно сервоприводами
где эти элементы?
Последний раз редактировалось vadim5june, 25.05.2012 в 11:08.
|
|
25.05.2012, 12:17
|
|
Студент
|
|
Регистрация: 30.04.2012
Сообщений: 1,113
|
|
Пока вот в таком состоянии-можно лобавить любое кол-во ползунков
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ROBOT</title>
<link rel="stylesheet" type="text/css" href="res/main.css"/>
</head>
<table>
<tr>
<td>
Camera control:9<br>
<div style="width:320px;height: 20px;margin-top: 15px;overflow-x:
scroll;display: inline-block;" onscroll="scrollCam(this)">
<div id="9" style="width:1920px;height:1px;display: block;" ></div>
</div>
</td></tr><tr><td>
Camera control:2<br>
<div style="width:320px;height: 20px;margin-top: 15px;overflow-x:
scroll;display: inline-block;" onscroll="scrollCam(this)">
<div id="2" style="width:1920px;height: 1px;display: block;" ></div>
</div>
</td>
</tr>
</tab>
<div id='vv'></div>
<script type="text/javascript">
var lastTurn = -1;
var lastPress = -1;
var lastPos = {};
lastPos[9]=-1;
var teks=9;//текущий сервопривод
function submitUART(uartString)
{document.getElementById('vv').innerHTML=
uartString;
};
function scrollCam(el)
{ var el1=el.getElementsByTagName('div')[0];
teks=el1.id;
el.parentNode.scrollLeft=
el.scrollLeft;
};
window.setInterval(
function(){
var pos = document.getElementById(teks).parentNode.scrollLeft;
if(lastPos[teks]!=pos){
submitUART("#"+teks+" P" +(pos + 700));
lastPos[teks]=pos;
};
},100
);
</script>
</body>
</html>
|
|
25.05.2012, 12:36
|
Интересующийся
|
|
Регистрация: 11.05.2012
Сообщений: 28
|
|
http://roboforum.ru/forum69/topic10929.html - обсуждение проекта, там есть все что нужно.
Идея в том, что прошивается роутер прошивкой OR далеее роутер подключается к платам OpenRobotic и к ним уже моторы сервы и датчики... Сам роутер конектится по вафле к домашней точке доступа там ip маршрут прописываеш и зная ip заходиш через инет на роутер робота и рулиш... Как то так)))
serialData' и 'serialForm я не знаю что это такое))) они с сервами не связаны..
Я по простому скажу когда ползунок передвигаеш, значение ползунка получается разное дапустим как пример 1000. Эта тысяча подставляется в этот код submitUART("#9 P" +(pos + 700)); и что получается 1700!?
А дальше формируется пасылка в порт UART (#9 1700) - означает что серва №9 перейдет в это (1700) положение.
|
|
25.05.2012, 13:08
|
|
Студент
|
|
Регистрация: 30.04.2012
Сообщений: 1,113
|
|
Сообщение от berkut
|
serialData' и 'serialForm я не знаю что это такое))) они с сервами не связаны..
|
Именно через них связь осуществляется как то
Код в таком виде неработоспособный потому что не хватает элементов связи с серверами
а функция submitUART пока что ничего не делает хотя должна передавать данные в какую то форму-которой здесь нет-а из этой формы уже на сервоприводы
zip что то не распаковывается
|
|
25.05.2012, 13:13
|
Интересующийся
|
|
Регистрация: 11.05.2012
Сообщений: 28
|
|
вот веб морда целиком
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>OR-WIFI-ROBOT</title>
<link rel="stylesheet" type="text/css" href="res/main.css"/>
<script type="text/javascript">
var lastTurn = -1;
var lastPress = -1;
var lastPos = -1;
function submitUART(uartString)
{
document.getElementById('serialData').value=uartSt ring+"\n";
document.getElementById('serialForm').submit()
};
function scrollCam(val)
{
document.getElementById("scr").parentNode.scrollLe ft=val;
};
function keyPressed(e)
{
var keynum
var keychar
var numcheck
if(window.event) // IE
{
keynum = e.keyCode
}
else if(e.which) // Netscape/Firefox/Opera
{
keynum = e.which
}
keychar = String.fromCharCode(keynum);
if(keychar == "w" || keychar == "ц" || keychar == "W" || keychar == "Ц") submitUART("DrvLR=100,100");
if(keychar == "a" || keychar == "ф" || keychar == "A" || keychar == "Ф") submitUART("DrvLR=-100,100");
if(keychar == "s" || keychar == "ы" || keychar == "S" || keychar == "Ы") submitUART("DrvLR=-100,-100");
if(keychar == "d" || keychar == "в" || keychar == "D" || keychar == "В") submitUART("DrvLR=100,-100");
return true;
};
function keyUp(e)
{
var keynum
var keychar
var numcheck
if(window.event) // IE
{
keynum = e.keyCode
}
else if(e.which) // Netscape/Firefox/Opera
{
keynum = e.which
}
keychar = String.fromCharCode(keynum);
if(keychar == "w" || keychar == "ц" || keychar == "W" || keychar == "Ц") submitUART("DrvLR=0,0");
if(keychar == "a" || keychar == "ф" || keychar == "A" || keychar == "Ф") submitUART("DrvLR=0,0");
if(keychar == "s" || keychar == "ы" || keychar == "S" || keychar == "Ы") submitUART("DrvLR=0,0");
if(keychar == "d" || keychar == "в" || keychar == "D" || keychar == "В") submitUART("DrvLR=0,0");
return true;
};
window.setInterval(
function(){
var pos = document.getElementById("scr").parentNode.scrollLe ft;
if(lastPos!=pos){
submitUART("#9 P" +(pos + 700));
lastPos=pos;
};
},100
);
</script>
</head>
<body onKeyPress="return keyPressed(event)" onKeyUp="keyUp(event)">
<pre class="banner">
************************************************** ******************************************
* ____ ____ __ __ _ *
* / __ \____ ___ ____ / __ \____ / /_ ____ / /_(_)__________ _______ __ *
* / / / / __ \/ _ \/ __ \______/ /_/ / __ \/ __ \/ __ \/ __/ // ___/ ___/ / ___/ / / / *
* / /_/ / /_/ / __/ / / /_____/ _, _/ /_/ / /_/ / /_/ / /_/ // /__(__ )_ / / / /_/ / *
* \____/ .___/\___/_/ /_/ /_/ |_|\____/_.___/\____/\__/_/ \___/____/(_)_/ \__,_/ *
* /_/ *
* *
************************************************** ******************************************
</pre>
<table>
<tr>
<td>
<script type="text/javascript">
document.write("<img alt='Robot Eye' class='bot-eye' src='http://" + document.location.host + ":8080/?action=stream'/>")
</script>
<br/>
Camera control:<br>
<button type="button" onclick="scrollCam(0)">Left</button>
<button type="button" onclick="scrollCam(800)">Center</button>
<button type="button" onclick="scrollCam(1600)">Right</button>
<br/>
<div style="width:320px;height: 20px;margin-top: 15px;overflow-x: scroll;display: inline-block;"
onscroll="scrollCam(this.scrollLeft)">
<div id="scr" style="width:1920px;height: 1px;display: block;" ></div>
</div>
</td>
</tr>
<tr>
<td>
<hr style="width: 240px;margin-top: 15px">
Chassis control:<br>
<button type="button" onclick="submitUART('DrvLR=100,100')">Forward</button><br>
<button type="button" onclick="submitUART('DrvLR=-100,100')">Left</button>
<button type="button" onclick="submitUART('DrvLR=0,0')">STOP</button>
<button type="button" onclick="submitUART('DrvLR=100,-100')">Right</button><br>
<button type="button" onclick="submitUART('DrvLR=-100,-100')">Backward</button>
</td>
</tr>
<tr>
<td>
<hr style="width: 240px;margin-top: 15px">
<form id="serialForm" action="/cgi-bin/serial.cgi" method="POST" target="hidden">
<label>Serial data:<br/>
<textarea id="serialData" name="SERIAL_DATA" rows="2" cols="40">TEST SERIAL</textarea>
</label><br/>
<input type="submit" value="Send">
</form>
</td>
</tr>
</table>
<hr/>
<iframe name="hidden" src="/nothing.html" style="width: 1px;height: 1px;visibility: hidden"></iframe>
<a href="admin/index.html">Robot administration</a>
</body>
</html>
|
|
25.05.2012, 13:20
|
Интересующийся
|
|
Регистрация: 11.05.2012
Сообщений: 28
|
|
вот что в файле main:
.bot-eye {
background-color: yellow;
width: 320px;
height: 240px;
border: black dashed 10px;
margin-bottom: 15px
}
.banner {
background-color: #A0a0a0;
text-align: center;
}
td {
text-align: center;
}
table{width: 100%}
.admin-title {
font-size: 150%;
font-weight: bold;
background-color: #600000;
color: #d0d0d0
}
.form-title {
text-align: right;
width: 40%
}
.form-value {
text-align: left;
}
.controlRow TD {
border-bottom: 1px solid #a9a9a9
}
|
|
|
|