Advertisement
Guest User

Raspberry Pi 2 WiFi controlled toy car with 2xFS90R continuo

a guest
Oct 6th, 2015
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.05 KB | None | 0 0
  1. sudo $(which groovysh)
  2.  
  3. groovy.grape.Grape.grab(["groupId":"com.pi4j", "artifactId":"pi4j-core", "version":"1.0"]);
  4. com.pi4j.wiringpi.Gpio.wiringPiSetupGpio();
  5.  
  6. com.pi4j.wiringpi.Gpio.pinMode(18, com.pi4j.wiringpi.Gpio.PWM_OUTPUT);
  7. com.pi4j.wiringpi.Gpio.pinMode(19, com.pi4j.wiringpi.Gpio.PWM_OUTPUT);
  8. com.pi4j.wiringpi.Gpio.pwmSetClock(384);
  9. com.pi4j.wiringpi.Gpio.pwmSetRange(1000);
  10. com.pi4j.wiringpi.Gpio.pwmSetMode(com.pi4j.wiringpi.Gpio.PWM_MODE_MS);
  11.  
  12. set={l, r ->
  13. com.pi4j.wiringpi.Gpio.pwmWrite(18, l);
  14. com.pi4j.wiringpi.Gpio.pwmWrite(19, r);
  15. }
  16.  
  17. s={ set(0, 0); }
  18.  
  19. //set(90, 60); Thread.sleep(2100); s();
  20. //set(1, 1); Thread.sleep(2100); s();
  21. //set(60, 90); Thread.sleep(2100); s();
  22. //set(150, 150); Thread.sleep(2100); s();
  23.  
  24. groovy.grape.Grape.grab(["groupId":"org.eclipse.jetty", "artifactId":"jetty-server", "version":"9.2.0.M1"])
  25. groovy.grape.Grape.grab(["groupId":"org.eclipse.jetty", "artifactId":"jetty-servlet", "version":"9.2.0.M1"])
  26. groovy.grape.Grape.grab(["groupId":"javax.servlet", "artifactId":"javax.servlet-api", "version":"3.0.1"])
  27.  
  28.  
  29. public class ClosureHandler extends org.eclipse.jetty.server.handler.AbstractHandler {
  30. private final groovy.lang.Closure closure;
  31. public ClosureHandler(groovy.lang.Closure closure) { this.closure = closure; }
  32. public void handle(String target, org.eclipse.jetty.server.Request baseRequest, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
  33. throws java.io.IOException, javax.servlet.ServletException {
  34. baseRequest.setHandled(true);
  35. closure.call(request, response, baseRequest, target);
  36. }
  37. }
  38.  
  39.  
  40. public class PathMappingHandlerProxy extends org.eclipse.jetty.server.handler.AbstractHandler {
  41. private final java.util.concurrent.ConcurrentHashMap<String, org.eclipse.jetty.server.Handler> handlersByPaths = new java.util.concurrent.ConcurrentHashMap<String, org.eclipse.jetty.server.Handler>();
  42. public void setHandler(String path, org.eclipse.jetty.server.Handler handler) { handlersByPaths.put(path, handler); }
  43. public org.eclipse.jetty.server.Handler getHandler(String path) { return handlersByPaths.get(path); }
  44. public void handle(String target, org.eclipse.jetty.server.Request baseRequest, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
  45. throws java.io.IOException, javax.servlet.ServletException {
  46. String path = (request.getContextPath()!=null?request.getContextPath():"")+(request.getServletPath()!=null?request.getServletPath():"")+(request.getPathInfo()!=null?request.getPathInfo():"");
  47. org.eclipse.jetty.server.Handler handler = handlersByPaths.get(path);
  48. if(handler!=null) {
  49. handler.handle(target, baseRequest, request, response);
  50. }
  51. }
  52. }
  53.  
  54. hpx = new PathMappingHandlerProxy();
  55. server = new org.eclipse.jetty.server.Server(12345);
  56. server.setHandler(hpx); server.start();
  57.  
  58. hpx.setHandler("/set", new ClosureHandler({request, response, baseRequest, target ->
  59. response.setStatus(javax.servlet.http.HttpServletResponse.SC_OK);
  60. if(request.getParameter("l")!=null) { com.pi4j.wiringpi.Gpio.pwmWrite(18, Integer.parseInt(request.getParameter("l"))); }
  61. if(request.getParameter("r")!=null) { com.pi4j.wiringpi.Gpio.pwmWrite(19, Integer.parseInt(request.getParameter("r"))); }
  62. }));
  63.  
  64.  
  65. hpx.setHandler("/stop", new ClosureHandler({request, response, baseRequest, target ->
  66. response.setStatus(javax.servlet.http.HttpServletResponse.SC_OK);
  67. com.pi4j.wiringpi.Gpio.pwmWrite(18, 0);
  68. com.pi4j.wiringpi.Gpio.pwmWrite(19, 0);
  69. }));
  70.  
  71. hpx.setHandler("/", new ClosureHandler({ req, response, breq, t ->
  72. response.setStatus(javax.servlet.http.HttpServletResponse.SC_OK);
  73. response.writer.write("""
  74. <html><head><script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
  75. <script>
  76. function set(l,r) {
  77. p = {};
  78. if(l || l===0) { p.l = l; }
  79. if(r || r===0) { p.r = r; }
  80. \$.ajax({ url: "/set", data: p });
  81. }
  82. </script>
  83. <style>
  84. span {
  85. border: solid 1px black;
  86. min-width: 80px;
  87. padding: 10px;
  88. margin: 10px;
  89. display: inline-block;
  90. text-align: center;
  91. }
  92. </style>
  93. </head>
  94. <body>
  95. <div>
  96. L:
  97. <span onclick="set(1)">&lt;&lt;&lt;</span>
  98. <span onclick="set(65)">&lt;&lt;</span>
  99. <span onclick="set(70)">&lt;</span>
  100. <span onclick="set(0)">STOP</span>
  101. <span onclick="set(80)">&gt;</span>
  102. <span onclick="set(85)">&gt;&gt;</span>
  103. <span onclick="set(153)">&gt;&gt;&gt;</span>
  104. </div>
  105. <div>
  106. Both:
  107. <span onclick="set(1, 153)">&lt;&lt;&lt;</span>
  108. <span onclick="set(65, 85)">&lt;&lt;</span>
  109. <span onclick="set(70, 80)">&lt;</span>
  110. <span onclick="set(0, 0)">STOP</span>
  111. <span onclick="set(80, 70)">&gt;</span>
  112. <span onclick="set(85, 65)">&gt;&gt;</span>
  113. <span onclick="set(153, 1)">&gt;&gt;&gt;</span>
  114. </div>
  115. <div>
  116. R:
  117. <span onclick="set(null, 153)">&lt;&lt;&lt;</span>
  118. <span onclick="set(null, 85)">&lt;&lt;</span>
  119. <span onclick="set(null, 80)">&lt;</span>
  120. <span onclick="set(null, 0)">STOP</span>
  121. <span onclick="set(null, 70)">&gt;</span>
  122. <span onclick="set(null, 65)">&gt;&gt;</span>
  123. <span onclick="set(null, 1)">&gt;&gt;&gt;</span>
  124. </div>
  125. </body></html>""");
  126. }));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement