树莓派就相当于一个简单的带GPIO口的Linux电脑,他的拓展性非常的强。我们可以用它来实现很多功能,特别是将树莓派当做是一个服务器,通过网页与树莓派进行交互。这个是一个用网页控制树莓派小车的程序。
今天的内容非常的少,所以很快就可以看完。
网页内容
我们首先要在网页上绘制一些按键,通过按键来控制树莓派。绘制方法比较简单,建议自学。将一下代码保存并命名为index.html
index.html1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>遥控树莓派智能小车</title> <link href="http://cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" media="screen"> <script src="http://code.jquery.com/jquery.js"></script> <style type="text/css"> #front { margin-left: 55px; margin-bottom: 3px; } #w{ margin-bottom: 3px; margin-left: 55px; } #s{ margin-top: 3px; margin-left: 55px; } .btn{ background: #62559f; } </style> <script> $(function(){ $("button").click(function(){ $.post("/cmd",this.id,function(data,status){}); }); }); </script> </head> <body> <div id="container" class="container">
<div> <button id='w' class="btn btn-lg btn-primary glyphicon glyphicon-circle-arrow-up"></button> <div> <button id='a' class="btn btn-lg btn-primary glyphicon glyphicon-circle-arrow-left"></button> <button id='z' class="btn btn-lg btn-primary glyphicon glyphicon-stop"></button> <button id='d' class="btn btn-lg btn-primary glyphicon glyphicon-circle-arrow-right"></button> </div> <div> <button id='s' class="btn btn-lg btn-primary glyphicon glyphicon-circle-arrow-down"></button> </div> <div> <button id='q' class="btn btn-lg btn-primary glyphicon"> 加速 </button> <button id='e' class="btn btn-lg btn-primary glyphicon"> 减速 </button> <button id='z' class="btn btn-lg btn-primary glyphicon"> 退出 </button> <div> </div> <script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> </body> </html>
|
效果如图所示:
然后就是写一个python程序来驱动这个网页,并且监控按键的状态。
Python代码
Bottle框架介绍
Bottle是一个快速小巧,轻量级的 WSGI 微型 web 框架。同时Bottle也是一个简单高效的遵循WSGI的微型python Web框架。
说微型,是因为它只有一个文件,除Python标准库外,它不依赖于任何第三方模块。
URL映射(Routing):将 URL 请求映射到 Python 函数,使 URL 更简洁。
模板(Templates):快速且 pythonic 的内置模板引擎 ,同时支持 mako, jinja2 和 cheetah 等模板。
基础功能(Utilities):方便地访问表单数据,上传文件,使用 cookie,查看 HTTP 元数据。
开发服务器(Server):内置了开发服务器,且支持 paste, fapws3 , bjoern, Google App Engine,cherrypy 等符合 WSGI 标准的 HTTP 服务器。
官网地址为: http://www.bottlepy.org/docs/dev/index.html
官网教程: http://www.bottlepy.org/docs/dev/tutorial.html
代码
1 2 3 4 5 6 7 8 9 10 11
| from bottle import get,post,run,request,template
@get("/") def index(): return template("index") @post("/cmd") def cmd(): adss=request.body.read().decode() print("按下了按钮:"+adss) return "OK" run(host="0.0.0.0",port=8080)
|
要实现具体的控制方法,只需要读取按键的ID,然后判断就行了,使用Python加Bottle可以实现非常多的功能。
就是这样了,具体的使用方法查询bottle的教程。例如:http://www.cppcns.com/jiaoben/python/319364.html等等。
如果有其他疑问请百度。