Generic Step Motor WebInterface - control a step motor using a Pololu A4983 driver from a webinterface (EXPERIMENTAL PROTOTYPE - just to be used as a proof-of-concept for a IoT talk, will not be updating this code so often)
Dependencies: EthernetNetIf RPCInterface mbed HTTPServer
Diff: index.html.cpp
- Revision:
- 0:8b3857d4ce02
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/index.html.cpp Mon Apr 16 09:41:53 2012 +0000 @@ -0,0 +1,112 @@ +/* +<html> +<head> +<script type="text/javascript"> +function sendrequest(request_uri) +{ + var xmlhttp; + if(window.XMLHttpRequest) + {// code for IE7+, Firefox, Chrome, Opera, Safari + xmlhttp=new XMLHttpRequest(); + } + else + {// code for IE6, IE5 + xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); + } + xmlhttp.onreadystatechange=function() + { + if (xmlhttp.readyState==4 && xmlhttp.status==200) + { + <!-- document.getElementById("myDiv").innerHTML=xmlhttp.responseText; --> + } + } + console.log(request_uri); + xmlhttp.open("GET",request_uri,true); + xmlhttp.send(); +} + +function adjustvalues1(){ + var dataval = document.getElementById("timevalue1").value; + + document.getElementById("timevalue2").value = dataval*1000; + + document.getElementById("timevalue3").value = dataval*1000*1000; +} + +function adjustvalues2(){ + var dataval = document.getElementById("timevalue2").value; + + document.getElementById("timevalue1").value = dataval/1000; + + document.getElementById("timevalue3").value = dataval*1000; +} + +function adjustvalues3(){ + var dataval = document.getElementById("timevalue3").value; + + document.getElementById("timevalue1").value = dataval/1000/1000; + + document.getElementById("timevalue2").value = dataval/1000; +} + +function demo(){ + // set timer to 100ms + sendrequest('./rpc/delay/write%20'+(100/1000000)); + + // set direction 0 + sendrequest('./rpc/direction/write%200'); + + // 360 º + sendrequest('./rpc/nsteps/run%20'+(1*64*50)); + + // set direction 1 + sendrequest('./rpc/direction/write%201'); + + // set timer to 200ms + sendrequest('./rpc/delay/write%20'+(200/1000000)); + + // 360 º + sendrequest('./rpc/nsteps/run%20'+(1*64*50)); +} +</script> +</head> +<body> + +<div id="myDiv"><h2>Step Motor HTTP REST (RPC) interface.</h2></div> +<button type="button" onclick="sendrequest('./rpc/enable/write%201')">Start Autorun</button> +<button type="button" onclick="sendrequest('./rpc/enable/write%200')">Stop Autorun</button> +<!--<button type="button" onclick="sendrequest('./rpc/releasecmd')">Release Motor CMD</button>--> +<br> +<button type="button" onclick="sendrequest('./rpc/sleepmode/run%2001')">Sleep</button> +<button type="button" onclick="sendrequest('./rpc/sleepmode/run%2000')">Wake up</button> +<br> +<button type="button" onclick="sendrequest('./rpc/stepmode/run%201')">MicroStep Mode</button> +<button type="button" onclick="sendrequest('./rpc/stepmode/run%200')">FullStep Mode</button> +<br> +<button type="button" onclick="sendrequest('./rpc/direction/write%200')">Normal Direction</button> +<button type="button" onclick="sendrequest('./rpc/direction/write%201')">Inverse Direction</button> +<br> +<input type="text" id="timevalue1" name="timevalue1" onKeyUp="adjustvalues1();" maxlength="10" size="10" value="0.001" /> +<button type="button" onclick="sendrequest('./rpc/delay/write%20'+timevalue.value)">Time value (Seconds)</button> +<br> +<input type="text" id="timevalue2" name="timevalue2" onKeyUp="adjustvalues2()" maxlength="10" size="10" value="1" /> +<button type="button" onclick="sendrequest('./rpc/delay/write%20'+(timevalue2.value/1000))">Time value (mili-Seconds)</button> +<br> +<input type="text" id="timevalue3" name="timevalue3" onKeyUp="adjustvalues3()" maxlength="10" size="10" value="1000" /> +<button type="button" onclick="sendrequest('./rpc/delay/write%20'+(timevalue3.value/1000000))">Time value (micro-Seconds)</button> +<br> +<br> +<input type="text" id="nmicrosteps" name="nmicrosteps" maxlength="10" size="10" value="1" /> +<button type="button" onclick="sendrequest('./rpc/nsteps/run%20'+nmicrosteps.value)">Manual MicroSteps</button> +<br> +<input type="text" id="nsteps" name="nsteps" maxlength="10" size="10" value="1" /> +<button type="button" onclick="sendrequest('./rpc/nsteps/run%20'+(nsteps.value*16))">Manual Steps</button> +<br> +<input type="text" id="nsteps360" name="nsteps360" maxlength="10" size="10" value="1" /> +<button type="button" onclick="sendrequest('./rpc/nsteps/run%20'+(nsteps360.value*16*200))">Manual Step 360º</button> +<br> +<br> +<!-- <button type="button" onclick="demo()">Demo</button> --> +</body> +</html> +*/ \ No newline at end of file