Skip to content

Commit 25060e5

Browse files
authored
Merge pull request #2 from orionrobots/web_arm_2021
Add web control code for youtube tutorial
2 parents 5c764d0 + bbb7606 commit 25060e5

File tree

4 files changed

+103
-0
lines changed

4 files changed

+103
-0
lines changed

demos/web_arm/arm_hello.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import usb_arm
2+
from flask import Flask, Response
3+
4+
5+
arm = usb_arm.Arm()
6+
app = Flask(__name__)
7+
8+
@app.route('/')
9+
def flash():
10+
def inner():
11+
yield "starting</br>\n"
12+
arm.move(usb_arm.LedOn)
13+
yield "completed\n"
14+
return Response(inner())
15+
16+
app.run(host="0.0.0.0")

demos/web_arm/arm_server.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import usb_arm
2+
from flask import Flask, Response, request
3+
4+
5+
arm = usb_arm.Arm()
6+
app = Flask(__name__)
7+
8+
movemap = {
9+
"GripsClose": usb_arm.GripsClose,
10+
"CloseGrips": usb_arm.CloseGrips,
11+
"GripsOpen": usb_arm.GripsOpen,
12+
"OpenGrips": usb_arm.OpenGrips,
13+
"Stop": usb_arm.Stop,
14+
"WristUp": usb_arm.WristUp,
15+
"WristDown": usb_arm.WristDown,
16+
"ElbowUp": usb_arm.ElbowUp,
17+
"ElbowDown": usb_arm.ElbowDown,
18+
"ShoulderUp": usb_arm.ShoulderUp,
19+
"ShoulderDown": usb_arm.ShoulderDown,
20+
"BaseClockWise": usb_arm.BaseClockWise,
21+
"BaseCtrClockWise": usb_arm.BaseCtrClockWise,
22+
"LedOn": usb_arm.LedOn
23+
}
24+
25+
@app.route('/move', methods=['POST'])
26+
def move():
27+
pattern = movemap[request.form['pattern']]
28+
29+
def inner():
30+
yield "starting<br>\n"
31+
arm.move(pattern)
32+
yield "completed\n"
33+
return Response(inner())
34+
35+
app.run(host="0.0.0.0")

demos/web_arm/arm_server2.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import usb_arm
2+
from flask import Flask, Response, request, render_template
3+
4+
5+
arm = usb_arm.Arm()
6+
app = Flask(__name__)
7+
8+
movemap = {
9+
"GripsClose": usb_arm.GripsClose,
10+
"CloseGrips": usb_arm.CloseGrips,
11+
"GripsOpen": usb_arm.GripsOpen,
12+
"OpenGrips": usb_arm.OpenGrips,
13+
"Stop": usb_arm.Stop,
14+
"WristUp": usb_arm.WristUp,
15+
"WristDown": usb_arm.WristDown,
16+
"ElbowUp": usb_arm.ElbowUp,
17+
"ElbowDown": usb_arm.ElbowDown,
18+
"ShoulderUp": usb_arm.ShoulderUp,
19+
"ShoulderDown": usb_arm.ShoulderDown,
20+
"BaseClockWise": usb_arm.BaseClockWise,
21+
"BaseCtrClockWise": usb_arm.BaseCtrClockWise,
22+
"LedOn": usb_arm.LedOn
23+
}
24+
25+
@app.route('/')
26+
def index():
27+
return render_template('index.html', patterns=movemap)
28+
29+
@app.route('/move', methods=['POST'])
30+
def move():
31+
pattern = movemap[request.form['pattern']]
32+
33+
def inner():
34+
yield "starting<br>\n"
35+
arm.move(pattern)
36+
yield "completed\n"
37+
return Response(inner())
38+
39+
app.run(host="0.0.0.0")

demos/web_arm/templates/index.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<html>
2+
<head>
3+
<title>Robot Arm</title>
4+
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
5+
</head>
6+
<body>
7+
<ul>
8+
{% for name in patterns %}
9+
<li><a href="#" onclick="$.post('/move', {'pattern': '{{ name }}'});">{{ name }}</a></li>
10+
{% endfor %}
11+
</ul>
12+
</body>
13+
</html>

0 commit comments

Comments
 (0)