真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python3怎么實現(xiàn)網(wǎng)頁版樹莓派小車控制-創(chuàng)新互聯(lián)

這篇文章主要介紹了python3怎么實現(xiàn)網(wǎng)頁版樹莓派小車控制,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)宣州免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。python是什么意思

Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向?qū)ο蟮哪_本語言,其最初的設(shè)計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發(fā)獨立的項目和大型項目。

如何實現(xiàn)通過網(wǎng)頁實現(xiàn)小車控制的。當前的實現(xiàn)方式比較簡陋,只能支持控制網(wǎng)頁和樹莓派在同一個局域網(wǎng)中的場景。如果以后還有精力,可能會進行一些改進。

1. 基本思路

python3怎么實現(xiàn)網(wǎng)頁版樹莓派小車控制

2. 服務(wù)端控制程序server.py

# --coding:utf-8--
from http.server import BaseHTTPRequestHandler, HTTPServer
import time
import socket
import urllib
from car_controler import FourWheelDriveCar
from 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. 服務(wù)端返回的頁面control.html 

幾點說明:

  • html文件中有兩個地址,我是在server.py中做了替換的,所以client請求之后會有實際的地址給到瀏覽器,最終都是使用的樹莓派的ip

  • 有個顯示監(jiān)控視頻的區(qū)域,可以直接用我給出的示例使用即可,前提是你也用的MJPG-Streamer來獲取攝像頭監(jiān)控

  • 小車控制我只給來前后左右運動,沒有給后退的轉(zhuǎn)向控制,有需要可以自己添加

  • 比較重要的是點擊按鈕之后發(fā)送請求到服務(wù)端,參考文件   span.car {     position: absolute;     margin-top: 30%;     height: 480px;     }     span.camera {     position: absolute;     margin-top: 5%;     margin-left: 290px;     height: 480px;     width: 640px;     background-color: blue   }     span.camera_control {     position: absolute;     margin-top: 30%;     margin-left: 950px;     height: 480px;     background-color: blue   }       button.top {     position: absolute;     height: 50px;     width: 90px;     margin-left: 90px   }     button.left {     position: absolute;     height: 50px;     width: 90px;     margin-top: 50px;   }     button.right {     position: absolute;     height: 50px;     width: 90px;     margin-top: 50px;     margin-left: 180px   }     button.bottom {     position: absolute;     height: 50px;     width: 90px;     margin-top: 100px;     margin-left: 90px   }     control page          F     L     R     B                      Up     Left     Right     Down       

    4. 使用方式簡介

    • 在樹莓派上運行MJPG-Streamer

    • 在樹莓派上運行服務(wù)端控制程序server.py

    • 在相同局域網(wǎng)的pc上打開瀏覽器,訪問server地址,如 http://192.168.1.101:9090。其中,ip地址是樹莓派的ip,端口9090是server中設(shè)定的端口,可以自己修改

    感謝你能夠認真閱讀完這篇文章,希望小編分享的“python3怎么實現(xiàn)網(wǎng)頁版樹莓派小車控制”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!


    當前題目:python3怎么實現(xiàn)網(wǎng)頁版樹莓派小車控制-創(chuàng)新互聯(lián)
    本文URL:http://weahome.cn/article/dihdph.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部