91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內不再提示

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

454398 ? 來源:工程師吳畏 ? 2019-07-26 15:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

Flask是一個用Python編寫并由Armin Ronacher開發(fā)的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

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

app.config[‘DEBUG’] = True

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

p.ChangeDutyCycle(0)

p1.ChangeDutyCycle(0)

如何運行程序

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

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

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

完全代碼

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()

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

    關注

    2

    文章

    1304

    瀏覽量

    74429
  • 伺服電機
    +關注

    關注

    88

    文章

    2183

    瀏覽量

    61264
  • 樹莓派
    +關注

    關注

    122

    文章

    2076

    瀏覽量

    110442
  • flask
    +關注

    關注

    0

    文章

    16

    瀏覽量

    3880
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Python運行本地Web服務實現遠程訪問

    本文介紹使用Python搭建本地Web服務結合 ZeroNews 實現公網訪問。
    的頭像 發(fā)表于 02-06 11:39 ?144次閱讀
    Python運行本地<b class='flag-5'>Web</b>服務<b class='flag-5'>并</b>實現遠程訪問

    伺服電機控制方式簡述

    伺服電機作為自動化控制系統(tǒng)的核心執(zhí)行元件,其控制方式直接決定了設備的動態(tài)響應、定位精度和運行效率。隨著工業(yè)4.0和智能制造的發(fā)展,伺服
    的頭像 發(fā)表于 12-01 07:37 ?741次閱讀
    <b class='flag-5'>伺服</b><b class='flag-5'>電機</b>的<b class='flag-5'>控制</b>方式簡述

    如何快速在云服務器上部署Web環(huán)境?

    如何快速在云服務器上部署Web環(huán)境
    的頭像 發(fā)表于 10-14 14:16 ?654次閱讀

    如何在樹莓派上安裝Ubuntu MATE ?

    ,而非GNOME。在本文中,我將介紹如何輕松地在樹莓派上安裝它。UbuntuMATE官方支持樹莓派,因此每發(fā)布一個新版本,都會為樹莓派發(fā)布一個鏡像。該鏡像可刷入S
    的頭像 發(fā)表于 08-12 18:56 ?3257次閱讀
    如何在<b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>安裝Ubuntu MATE ?

    技能+1!如何在樹莓派上使用C++控制GPIO?

    和PiGPIO等庫,C++可用于編程控制樹莓派的GPIO引腳。它提供了更好的性能和控制能力,非常適合對速度和精度要求較高的硬件項目。在樹莓派社區(qū)中,關于“Python
    的頭像 發(fā)表于 08-06 15:33 ?4128次閱讀
    技能+1!如何在<b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>使用C++<b class='flag-5'>控制</b>GPIO?

    初學者指南:樹莓派上搭建虛擬環(huán)境!

    在這篇簡明扼要的指南中,我們將探討如何在樹莓派上設置和使用虛擬環(huán)境(或稱為Venv)——包括在終端和Thonny集成開發(fā)環(huán)境中。使用Bookworm操作系統(tǒng)或更高版本時,或在嘗試安裝Python
    的頭像 發(fā)表于 07-27 13:24 ?937次閱讀
    初學者指南:<b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>搭建虛擬環(huán)境!

    如何在樹莓派上設置使用VNC?遠程訪問完整指南!

    為什么要在樹莓派上使用VNC?使用VNC與樹莓派的主要優(yōu)勢在于其提供的靈活性。我們可以在“無頭模式”(無物理顯示器)下運行樹莓派,同時仍能完全訪問其圖形用戶界面(GUI)。這減少了對額
    的頭像 發(fā)表于 07-26 20:42 ?5707次閱讀
    如何在<b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>設置<b class='flag-5'>并</b>使用VNC?遠程訪問完整指南!

    C++ 與 Python:樹莓派上哪種語言更優(yōu)?

    Python是樹莓派上的首選編程語言,我們的大部分教程都使用它。然而,C++在物聯網項目中同樣廣受歡迎且功能強大。那么,在樹莓派項目中選擇哪種語言更合適呢?Python因其簡潔性、豐富的庫和資源而被
    的頭像 發(fā)表于 07-24 15:32 ?938次閱讀
    C++ 與 Python:<b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>哪種語言更優(yōu)?

    如何在樹莓派上安裝運行 Arduino 集成開發(fā)環(huán)境!

    使用樹莓派單板計算機,你可以運行各種應用程序,包括廣受歡迎的Arduino集成開發(fā)環(huán)境(IDE)。這意味著你可以用它輕松地為通過USB連接到樹莓派計算機的微控制器編程,以
    的頭像 發(fā)表于 07-01 17:41 ?4348次閱讀
    如何在<b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>安裝<b class='flag-5'>并</b>運行 Arduino 集成開發(fā)環(huán)境!

    labview如何調用web api

    同事給了一個web api 的接口地址,方法名等等。但是我不會用labview去調用。求高手指點!
    發(fā)表于 06-26 17:24

    WEB組態(tài)物聯網平臺是什么?有什么功能?

    、流程控制等操作,無需安裝本地客戶端。 核心特點 : Web化部署 :基于B/S架構,用戶通過瀏覽器即可訪問,降低部署和維護成本。 組態(tài)化配置 :提供拖拽式界面設計工具,用戶可快速搭建監(jiān)控畫面(如工業(yè)流程圖、設備狀態(tài)看板等)。 物聯網集成 :
    的頭像 發(fā)表于 06-17 15:25 ?946次閱讀

    從初學到進階:樹莓派上最適合你的代碼編輯器推薦!

    安裝樹莓派操作系統(tǒng)后,你就可以使用Python、Scratch、Java、C/C++等受Linux支持的多種編程語言進行編程了。其中,Python是樹莓派上最受歡迎的編程語言。在樹莓
    的頭像 發(fā)表于 05-15 16:20 ?1168次閱讀
    從初學到進階:<b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>最適合你的代碼編輯器推薦!

    Web Components實踐:如何搭建一個框架無關的AI組件庫

    不同的Web應用程序中重復使用,并且具有自己的樣式、行為和功能。 Web Components并非一項新技術,而是一組持續(xù)演進的、由W3C標準化的組件化API。最早可以追溯到2011年左右,大約在2016
    的頭像 發(fā)表于 04-08 11:27 ?589次閱讀
    <b class='flag-5'>Web</b> Components實踐:如何搭建一個框架無關的AI組件庫

    人臉識別指南:如何在樹莓派上安裝和設置 Dlib

    學習如何在樹莓派上安裝Dlib配置人臉識別功能,為您的AI項目奠定基礎。在樹莓派上安裝Dlib的詳細步驟要為
    的頭像 發(fā)表于 03-24 17:31 ?1535次閱讀
    人臉識別指南:如何在<b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>安裝和設置 Dlib

    「極速探索HarmonyOS NEXT 」閱讀體驗】+Web組件

    \'@ohos.web.webview\'進行導入,效果一樣 @Entry@Component struct WebComponent{ //創(chuàng)建一個新的控制器 webviewController
    發(fā)表于 03-10 10:39