<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣創建樹莓派上的Web應用程序 并使用Flask Web Framework控制伺服電機

454398 ? 來源:工程師吳畏 ? 2019-07-26 15:27 ? 次閱讀

在這篇文章中,您將學習如何創建Raspberry Pi上的Web應用程序,使用Flask Web Framework控制伺服電機,以創建Web應用程序。我們將在Web應用程序上創建兩個滑塊,它們將發送相應的值,導致伺服電機在按下按鈕時移動。

Flask是一個用Python編寫并由Armin Ronacher開發的Web應用程序框架。領導一個名為Pocco的國際Python愛好者群體。 Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。兩者都是Pocco項目。

先決條件

確保您的Raspberry Pi是最新的。要更新Raspberry Pi,請鍵入以下命令: sudo apt-get update

要安裝Flask,我們需要有pip,因此請鍵入以下命令來安裝pip: sudo apt-get install python-pip

然后輸入以下命令來安裝Flask: sudo pip install flask

必需組件

Raspberry Pi

SG90伺服電機

跳線電纜

電路圖和說明

這個項目的電路圖很簡單 - 你只需要連接你的兩個伺服電機。進行以下連接:

伺服電機1伺服電機2Raspberry Pi

黃色或橙色線

GPIO 26

Red Wire

5V

黑色或棕色線

GND

黃色或橙色線GPIO 19

紅線5V

黑色或棕色線GND

代碼演練

讓我們分析一下這個項目中使用的代碼。完整的代碼可以在文章的最后找到。

首先,我們導入了這個項目所需的燒瓶模塊。 render_template_string 模塊允許我們在項目中使用HTML。 請求模塊允許我們從HTML獲取數據。 RPi.GPIO 庫允許我們控制Raspberry Pi的GPIO引腳。

from flask import Flask, render_template_string, request

import RPi.GPIO as GPIO

from time import sleep

現在,我們啟用調試模式我們的項目。啟用調試模式的優點是它可以在更改代碼時自動重新加載服務器。它還提供了一個有用的調試器來跟蹤應用程序中的錯誤。

app.config[‘DEBUG’] = True

伺服電機在不動時會抖動一下。為了阻止它,我們使用以下行:

p.ChangeDutyCycle(0)

p1.ChangeDutyCycle(0)

如何運行程序

創建Python文件并上傳代碼。接下來,使用sudo命令運行此文件以在端口5000 上的localhost啟動服務器。

打開瀏覽器并輸入在https://127.0.0.1:5000中,打開一個網頁,如下所示。

現在,按提交按鈕將發送值根據我們控制的伺服電機的滑塊。

完全代碼

from flask import Flask, render_template_string, request # Importing the Flask modules required for this project

import RPi.GPIO as GPIO # Importing the GPIO library to control GPIO pins of Raspberry Pi

from time import sleep # Import sleep module from time library to add delays

# Pins where we have connected servos

servo_pin = 26

servo_pin1 = 19

GPIO.setmode(GPIO.BCM) # We are using the BCM pin numbering

# Declaring Servo Pins as output pins

GPIO.setup(servo_pin, GPIO.OUT)

GPIO.setup(servo_pin1, GPIO.OUT)

# Created PWM channels at 50Hz frequency

p = GPIO.PWM(servo_pin, 50)

p1 = GPIO.PWM(servo_pin1, 50)

# Initial duty cycle

p.start(0)

p1.start(0)

# Flask constructor takes the name of current module (__name__) as argument.

app = Flask(__name__)

# Enable debug mode

app.config[‘DEBUG’] = True

# Store HTML code

TPL = ‘’‘

Web Application to Control Servos

Slider 1

Slider 2

’‘’

# which URL should call the associated function.

@app.route(“/”)

def home():

return render_template_string(TPL)

@app.route(“/test”, methods=[“POST”])

def test():

# Get slider Values

slider1 = request.form[“slider1”]

slider2 = request.form[“slider2”]

# Change duty cycle

p.ChangeDutyCycle(float(slider1))

p1.ChangeDutyCycle(float(slider2))

# Give servo some time to move

sleep(1)

# Pause the servo

p.ChangeDutyCycle(0)

p1.ChangeDutyCycle(0)

return render_template_string(TPL)

# Run the app on the local development server

if __name__ == “__main__”:

app.run()

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Web
    Web
    +關注

    關注

    2

    文章

    1241

    瀏覽量

    68668
  • 伺服電機
    +關注

    關注

    83

    文章

    1878

    瀏覽量

    56660
  • 樹莓派
    +關注

    關注

    114

    文章

    1654

    瀏覽量

    104871
  • flask
    +關注

    關注

    0

    文章

    16

    瀏覽量

    3589
收藏 人收藏

    評論

    相關推薦

    鴻蒙原生應用元服務開發-Web相關說明

    Web組件用于在應用程序中顯示Web頁面內容,為開發者提供頁面加載、頁面交互、頁面調試等能力。 頁面加載:Web組件提供基礎的前端頁面加載的能力,包括加載網絡頁面、本地頁面、Html格
    發表于 05-10 15:03

    使用Docker部署Go Web應用程序步驟

    大多數情況下Go應用程序被編譯成單個二進制文件,web應用程序則會包括模版和配置文件。而當一個項目中有很多文件的時候,由于很多文件沒有同步就會導致錯誤的發生并且產生很多的問題。
    發表于 04-20 09:33 ?278次閱讀
    使用Docker部署Go <b class='flag-5'>Web</b><b class='flag-5'>應用程序</b>步驟

    鑒源實驗室 | Web應用程序常見漏洞淺析

    在如今的數字化時代,Web應用程序已經滲透到我們生活的每個角落。從購物平臺、社交媒體到企業級系統,無論是用戶還是組織,都依賴于這些應用程序來滿足各自的業務需求。
    的頭像 發表于 01-26 11:33 ?651次閱讀
    鑒源實驗室 | <b class='flag-5'>Web</b><b class='flag-5'>應用程序</b>常見漏洞淺析

    web前端開發和前端開發的區別

    Web前端開發和前端開發是兩個相似但略有不同的概念。本文將詳細討論這兩者之間的區別。 定義和范圍: Web前端開發是指開發和維護Web應用程序前端部分的過程。
    的頭像 發表于 01-18 09:54 ?1192次閱讀

    怎么用eclipse創建web項目

    使用Eclipse創建Web項目是一種常見的方式,下面將分步驟詳解如何使用Eclipse創建Web項目。在開始之前,請確保已經安裝了Java開發工具包(JDK)和Eclipse集成開發
    的頭像 發表于 12-06 13:40 ?1009次閱讀

    Python Web框架Django 5.0新特性

    根據 JetBrains 公布的 2022 Python 開發者調查結果,Python Web 框架的三巨頭依舊是 Flask、Django 和 FastAPI。Django 和 Flask 的使用率排名并列第一。
    的頭像 發表于 12-06 13:37 ?686次閱讀

    Flask如何升級到 Quart 應用程序

    本文詳細介紹了典型的生產環境的 CRUD 應用程序Flask 到 Quart 的轉換,并展示相關的性能改進優勢。 將這個 Flask-pyscopg2 應用程序升級到 Quart-
    的頭像 發表于 11-01 16:23 ?362次閱讀
    <b class='flag-5'>Flask</b>如何升級到 Quart <b class='flag-5'>應用程序</b>

    如何部署Python Web應用

    = '0.0.0.0' , port= 8080 ) 以上代碼會創建一個基本的 Web 服務器,并監聽** 8080 ** 端口。 2. 將應用容器化 在項目根目錄下,創建一個名為 ** Dockerfile ** 的文件,內容
    的頭像 發表于 11-01 09:32 ?297次閱讀
    如何部署Python <b class='flag-5'>Web</b>應用

    如何部署Python Web應用

    hello-cloud-develop cd hello-cloud-develop 創建名為 ** main.py ** 的文件,并將以下代碼粘貼到其中: import os from flask import
    的頭像 發表于 10-16 11:48 ?438次閱讀
    如何部署Python <b class='flag-5'>Web</b>應用

    HarmonyOS—使用Web組件加載頁面

    ??ohos.permission.INTERNET??網絡訪問權限。 加載網絡頁面 開發者可以在Web組件創建的時候指定默認加載的網絡頁面 。在默認頁面加載完成后,如果開發者需要變更此Web組件顯示的網絡頁面,可以
    發表于 08-31 17:51

    什么是Web應用程序防火墻 (WAF) ,它和其他網絡防護工具有哪些差異?

    一、什么是Web應用程序防火墻(WAF)軟件?WAF軟件產品被廣泛應用于保護Web應用程序和網站免受威脅或攻擊,它通過監控用戶、應用程序和其
    的頭像 發表于 08-17 09:30 ?729次閱讀
    什么是<b class='flag-5'>Web</b><b class='flag-5'>應用程序</b>防火墻 (WAF) ,它和其他網絡防護工具有哪些差異?

    什么是Web應用程序防火墻,WAF與其他網絡安全工具差異在哪?

    類型的攻擊。這些軟件解決方案提供自動防御,并允許對規則集進行自定義管理控制,因為某些應用程序可能具有獨特的流量趨勢、零日威脅或 Web 應用程序漏洞,WAF一般還提供日志記錄功能來記錄
    的頭像 發表于 08-14 14:20 ?1160次閱讀

    Web 應用程序和網絡防火墻之間的異同

    在復雜的網絡攻擊和數字創新的現時代,企業了解他們面臨的威脅以及他們的安全防御措施可以保護他們免受哪些威脅至關重要。防火墻尤其如此,因為Web應用程序防火墻和網絡防火墻可以保護組織免受不同類型的攻擊
    的頭像 發表于 08-01 00:26 ?635次閱讀
    <b class='flag-5'>Web</b> <b class='flag-5'>應用程序</b>和網絡防火墻之間的異同

    Web 應用程序防火墻 (WAF) 相關知識介紹

    Web應用程序防火墻(WAF)如何工作?Web應用防護系統(也稱為:網站應用級入侵防御系統。英文:WebApplicationFirewall,簡稱:WAF)。利用國際上公認的一種說法:Web
    的頭像 發表于 07-31 17:37 ?920次閱讀
    <b class='flag-5'>Web</b> <b class='flag-5'>應用程序</b>防火墻 (WAF) 相關知識介紹

    Ultra96 SDR第一部分:簡單的射頻頻譜圖Web應用程序

    電子發燒友網站提供《Ultra96 SDR第一部分:簡單的射頻頻譜圖Web應用程序.zip》資料免費下載
    發表于 07-05 09:32 ?6次下載
    Ultra96 SDR第一部分:簡單的射頻頻譜圖<b class='flag-5'>Web</b><b class='flag-5'>應用程序</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>