麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

python3實現網頁版raspberry pi(樹莓派)小車控制

2020-02-15 21:15:02
字體:
來源:轉載
供稿:網友

關于樹莓派四驅小車的運動方向控制、攝像頭方向控制已經在前面的兩篇博文中介紹過。有需要的可以參考。本文也是基于上述兩個python文件就緒的情況進行的。

本文主要講述我是如何實現通過網頁實現小車控制的。當前的實現方式比較簡陋,只能支持控制網頁和樹莓派在同一個局域網中的場景。如果以后還有精力,可能會進行一些改進。

1. 基本思路

2. 服務端控制程序server.py

# --coding:utf-8--from http.server import BaseHTTPRequestHandler, HTTPServerimport timeimport socketimport urllibfrom car_controler import FourWheelDriveCarfrom camera_controler import Camera  class CarServer(BaseHTTPRequestHandler):    carControler = FourWheelDriveCar()  cameraControler = Camera()   def get_host_ip(self):    '''    This method is used for getting local ip address    The car server will deploy on this ip    '''    try:      serverSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)      serverSocket.connect(("8.8.8.8", 80))      localIP = serverSocket.getsockname()[0]    finally:      return localIP   def do_GET(self):    '''    Define the car control GUI for client    For the first edition, it will only return direction contol GUI    '''    localIP = CarServer.get_host_ip(self)     # When this GET method is called, then should init the car    self.carControler.reset()     # Read control page html file from control.html    controlPageFile = open("control.html")    controlPageGUI = controlPageFile.read()    controlPageFile.close()    controlPageGUI = controlPageGUI.replace(      "requestAddress", "http://" + localIP + ":9090/")    controlPageGUI = controlPageGUI.replace(      "cameraAddress", "http://" + localIP + ":8080/")     self.send_response(200)    self.send_header("Content-type", "text/html")    self.end_headers()    self.wfile.write(controlPageGUI.encode())   def do_POST(self):    length = int(self.headers['Content-Length'])    qs = self.rfile.read(length)    direction = qs.decode()    print(direction)     cameraDirection = ['HR', 'HL', 'VU', 'VD', 'RESET']    if direction in cameraDirection:      # This is used to control the camera      self.cameraControler.cameraRotate(direction)    else:      # This is used to control the car      self.carControler.carMove(direction)     self.send_response(200)  if __name__ == "__main__":  raspCarServer = CarServer  hostIP = raspCarServer.get_host_ip(raspCarServer)  hostPort = 9090  myServer = HTTPServer((hostIP, hostPort), raspCarServer)   print(time.asctime(), "Server Starts - %s:%s" % (hostIP, hostPort))   try:    myServer.serve_forever()  except KeyboardInterrupt:    pass

3. 服務端返回的頁面control.html 

幾點說明:

html文件中有兩個地址,我是在server.py中做了替換的,所以client請求之后會有實際的地址給到瀏覽器,最終都是使用的樹莓派的ip 有個顯示監控視頻的區域,可以直接用我給出的示例使用即可,前提是你也用的MJPG-Streamer來獲取攝像頭監控 小車控制我只給來前后左右運動,沒有給后退的轉向控制,有需要可以自己添加 比較重要的是點擊按鈕之后發送請求到服務端,參考文件<script>中的代碼
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊人一二三四区 | 国产精品99久久久久久久女警 | 免费三级大片 | 久久新地址 | 免费看欧美一级特黄a大片 久久免费视频一区二区三区 | 国产精品自拍99 | 91麻豆精品国产91久久久无需广告 | 久久精品二区 | 欧美一级电影网站 | 精品一区二区在线播放 | 成人视屏在线观看 | 被啪羞羞视频在线观看 | 亚洲激情91 | 一区二区三区在线视频观看58 | 在线成人毛片 | 黄色特级片黄色特级片 | 欧美一级棒 | 国产精品成人免费一区久久羞羞 | 超久久| 中文字幕h | 国产噜噜噜 | 91美女视频在线观看 | 国产精品欧美久久久久一区二区 | 国产在线精品一区二区三区 | 高潮激情aaaaa免费看 | 精品国产高清一区二区三区 | 成人做爰高潮片免费视频美国 | 偿还电影免费看 | 久久99精品久久久久久秒播蜜臀 | 亚洲精品久久久久久久久久久 | 国产成人精品一区二区三区电影 | 久久精品视频免费观看 | 牛牛a级毛片在线播放 | 国内毛片视频 | 免费国产网站 | 爱操av | 九九热免费精品视频 | 亚洲综合一区在线观看 | 欧美视频一区二区三区在线观看 | 99精品热视频 | 日韩视频一二区 |