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
index.html.cpp
00001 /* 00002 <html> 00003 <head> 00004 <script type="text/javascript"> 00005 function sendrequest(request_uri) 00006 { 00007 var xmlhttp; 00008 if(window.XMLHttpRequest) 00009 {// code for IE7+, Firefox, Chrome, Opera, Safari 00010 xmlhttp=new XMLHttpRequest(); 00011 } 00012 else 00013 {// code for IE6, IE5 00014 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 00015 } 00016 xmlhttp.onreadystatechange=function() 00017 { 00018 if (xmlhttp.readyState==4 && xmlhttp.status==200) 00019 { 00020 <!-- document.getElementById("myDiv").innerHTML=xmlhttp.responseText; --> 00021 } 00022 } 00023 console.log(request_uri); 00024 xmlhttp.open("GET",request_uri,true); 00025 xmlhttp.send(); 00026 } 00027 00028 function adjustvalues1(){ 00029 var dataval = document.getElementById("timevalue1").value; 00030 00031 document.getElementById("timevalue2").value = dataval*1000; 00032 00033 document.getElementById("timevalue3").value = dataval*1000*1000; 00034 } 00035 00036 function adjustvalues2(){ 00037 var dataval = document.getElementById("timevalue2").value; 00038 00039 document.getElementById("timevalue1").value = dataval/1000; 00040 00041 document.getElementById("timevalue3").value = dataval*1000; 00042 } 00043 00044 function adjustvalues3(){ 00045 var dataval = document.getElementById("timevalue3").value; 00046 00047 document.getElementById("timevalue1").value = dataval/1000/1000; 00048 00049 document.getElementById("timevalue2").value = dataval/1000; 00050 } 00051 00052 function demo(){ 00053 // set timer to 100ms 00054 sendrequest('./rpc/delay/write%20'+(100/1000000)); 00055 00056 // set direction 0 00057 sendrequest('./rpc/direction/write%200'); 00058 00059 // 360 º 00060 sendrequest('./rpc/nsteps/run%20'+(1*64*50)); 00061 00062 // set direction 1 00063 sendrequest('./rpc/direction/write%201'); 00064 00065 // set timer to 200ms 00066 sendrequest('./rpc/delay/write%20'+(200/1000000)); 00067 00068 // 360 º 00069 sendrequest('./rpc/nsteps/run%20'+(1*64*50)); 00070 } 00071 </script> 00072 </head> 00073 <body> 00074 00075 <div id="myDiv"><h2>Step Motor HTTP REST (RPC) interface.</h2></div> 00076 <button type="button" onclick="sendrequest('./rpc/enable/write%201')">Start Autorun</button> 00077 <button type="button" onclick="sendrequest('./rpc/enable/write%200')">Stop Autorun</button> 00078 <!--<button type="button" onclick="sendrequest('./rpc/releasecmd')">Release Motor CMD</button>--> 00079 <br> 00080 <button type="button" onclick="sendrequest('./rpc/sleepmode/run%2001')">Sleep</button> 00081 <button type="button" onclick="sendrequest('./rpc/sleepmode/run%2000')">Wake up</button> 00082 <br> 00083 <button type="button" onclick="sendrequest('./rpc/stepmode/run%201')">MicroStep Mode</button> 00084 <button type="button" onclick="sendrequest('./rpc/stepmode/run%200')">FullStep Mode</button> 00085 <br> 00086 <button type="button" onclick="sendrequest('./rpc/direction/write%200')">Normal Direction</button> 00087 <button type="button" onclick="sendrequest('./rpc/direction/write%201')">Inverse Direction</button> 00088 <br> 00089 <input type="text" id="timevalue1" name="timevalue1" onKeyUp="adjustvalues1();" maxlength="10" size="10" value="0.001" /> 00090 <button type="button" onclick="sendrequest('./rpc/delay/write%20'+timevalue.value)">Time value (Seconds)</button> 00091 <br> 00092 <input type="text" id="timevalue2" name="timevalue2" onKeyUp="adjustvalues2()" maxlength="10" size="10" value="1" /> 00093 <button type="button" onclick="sendrequest('./rpc/delay/write%20'+(timevalue2.value/1000))">Time value (mili-Seconds)</button> 00094 <br> 00095 <input type="text" id="timevalue3" name="timevalue3" onKeyUp="adjustvalues3()" maxlength="10" size="10" value="1000" /> 00096 <button type="button" onclick="sendrequest('./rpc/delay/write%20'+(timevalue3.value/1000000))">Time value (micro-Seconds)</button> 00097 <br> 00098 <br> 00099 <input type="text" id="nmicrosteps" name="nmicrosteps" maxlength="10" size="10" value="1" /> 00100 <button type="button" onclick="sendrequest('./rpc/nsteps/run%20'+nmicrosteps.value)">Manual MicroSteps</button> 00101 <br> 00102 <input type="text" id="nsteps" name="nsteps" maxlength="10" size="10" value="1" /> 00103 <button type="button" onclick="sendrequest('./rpc/nsteps/run%20'+(nsteps.value*16))">Manual Steps</button> 00104 <br> 00105 <input type="text" id="nsteps360" name="nsteps360" maxlength="10" size="10" value="1" /> 00106 <button type="button" onclick="sendrequest('./rpc/nsteps/run%20'+(nsteps360.value*16*200))">Manual Step 360º</button> 00107 <br> 00108 <br> 00109 <!-- <button type="button" onclick="demo()">Demo</button> --> 00110 </body> 00111 </html> 00112 */
Generated on Wed Jul 13 2022 06:36:07 by 1.7.2