Skip to content

Commit 97d3149

Browse files
committed
Web interface for controlling Tank class robots
1 parent b5af3f2 commit 97d3149

24 files changed

+2585
-11
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#!/usr/bin/env python
2+
3+
import logging
4+
import sys
5+
from ev3dev.auto import OUTPUT_A, OUTPUT_B, OUTPUT_C, OUTPUT_D
6+
from ev3dev.helper import RemoteControlledTank, WebControlledTank, MediumMotor
7+
8+
9+
log = logging.getLogger(__name__)
10+
11+
12+
class EV3D4RemoteControlled(RemoteControlledTank):
13+
14+
def __init__(self, medium_motor=OUTPUT_A, left_motor=OUTPUT_C, right_motor=OUTPUT_B):
15+
RemoteControlledTank.__init__(self, left_motor, right_motor)
16+
self.medium_motor = MediumMotor(medium_motor)
17+
18+
if not self.medium_motor.connected:
19+
log.error("%s is not connected" % self.medium_motor)
20+
sys.exit(1)
21+
22+
self.medium_motor.reset()
23+
24+
25+
class EV3D4WebControlled(WebControlledTank):
26+
27+
def __init__(self, medium_motor=OUTPUT_A, left_motor=OUTPUT_C, right_motor=OUTPUT_B):
28+
WebControlledTank.__init__(self, left_motor, right_motor)
29+
self.medium_motor = MediumMotor(medium_motor)
30+
31+
if not self.medium_motor.connected:
32+
log.error("%s is not connected" % self.medium_motor)
33+
sys.exit(1)
34+
35+
self.medium_motor.reset()
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/usr/bin/env python
2+
3+
from EV3D4 import EV3D4RemoteControlled
4+
import logging
5+
6+
logging.basicConfig(level=logging.DEBUG,
7+
format='%(asctime)s %(levelname)5s: %(message)s')
8+
log = logging.getLogger(__name__)
9+
10+
log.info("Starting EV3D4")
11+
ev3d4 = EV3D4RemoteControlled()
12+
ev3d4.main()
13+
log.info("Exiting EV3D4")
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/usr/bin/env python
2+
3+
from EV3D4 import EV3D4WebControlled
4+
import logging
5+
6+
logging.basicConfig(level=logging.DEBUG,
7+
format='%(asctime)s %(levelname)5s: %(message)s')
8+
log = logging.getLogger(__name__)
9+
10+
log.info("Starting EV3D4")
11+
ev3d4 = EV3D4WebControlled()
12+
ev3d4.main() # start the web server
13+
log.info("Exiting EV3D4")
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<!DOCTYPE>
2+
<html xmlns="http://www.w3.org/1999/xhtml">
3+
<head>
4+
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
5+
<link rel="shortcut icon" href="favicon.ico">
6+
<link rel="stylesheet" type="text/css" href="/include/tank.css" media="screen" />
7+
<link rel="stylesheet" href="/include/jquery-ui-1.12.0.css">
8+
<script src="/include/jquery-1.12.4.min.js"></script>
9+
<script src="/include/jquery-ui-1.12.0.min.js"></script>
10+
<script src="/include/jquery.ui.touch-punch.min.js"></script>
11+
<script src="/include/tank-desktop.js"></script>
12+
<title>Lego Tank</title>
13+
</head>
14+
<body>
15+
<div class='alignCenter'>
16+
<div id='header'>
17+
</div>
18+
19+
<div id='controls'>
20+
<img class='button nav' id='ArrowUp' src='/include/ArrowUp.png' />
21+
<div class='clear'></div>
22+
23+
<img class='button nav' id='ArrowLeft' src='/include/ArrowLeft.png' />
24+
<img id='body' src='/include/tank.png' />
25+
<img class='button nav' id='ArrowRight' src='/include/ArrowRight.png' />
26+
<div class='clear'></div>
27+
28+
<img class='button nav' id='ArrowDown' src='/include/ArrowDown.png' />
29+
<div class='clear'></div>
30+
</div>
31+
32+
<div id='desktop-medium-motor-spin'>
33+
<img class='button medium CounterClockwise' src='/include/ArrowClockwise.png' />
34+
<img class='button medium Clockwise' src='/include/ArrowClockwise.png' />
35+
<br>
36+
<div id="medium-motor-speed"></div>
37+
<label for="medium-motor-speed">Medium Motor Speed</label>
38+
<br>
39+
<div id="tank-speed"></div>
40+
<label for="tank-speed">Tank Speed</label>
41+
</div>
42+
43+
<div class='clear'></div>
44+
45+
</div> <!-- alignCenter -->
46+
</body>
47+
</html>
1.06 KB
Binary file not shown.
2.33 KB
Loading
7.05 KB
Loading
7.01 KB
Loading
7.2 KB
Loading
6.64 KB
Loading

0 commit comments

Comments
 (0)