精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

454398 ? 來(lái)源:工程師吳畏 ? 2019-07-26 15:27 ? 次閱讀

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

Flask是一個(gè)用Python編寫(xiě)并由Armin Ronacher開(kāi)發(fā)的Web應(yīng)用程序框架。領(lǐng)導(dǎo)一個(gè)名為Pocco的國(guó)際Python愛(ài)好者群體。 Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。兩者都是Pocco項(xiàng)目。

先決條件

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

要安裝Flask,我們需要有pip,因此請(qǐng)鍵入以下命令來(lái)安裝pip: sudo apt-get install python-pip

然后輸入以下命令來(lái)安裝Flask: sudo pip install flask

必需組件

Raspberry Pi

SG90伺服電機(jī)

跳線電纜

電路圖和說(shuō)明

這個(gè)項(xiàng)目的電路圖很簡(jiǎn)單 - 你只需要連接你的兩個(gè)伺服電機(jī)。進(jìn)行以下連接:

伺服電機(jī)1伺服電機(jī)2Raspberry Pi

黃色或橙色線

GPIO 26

Red Wire

5V

黑色或棕色線

GND

黃色或橙色線GPIO 19

紅線5V

黑色或棕色線GND

代碼演練

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

首先,我們導(dǎo)入了這個(gè)項(xiàng)目所需的燒瓶模塊。 render_template_string 模塊允許我們?cè)陧?xiàng)目中使用HTML。 請(qǐng)求模塊允許我們從HTML獲取數(shù)據(jù)。 RPi.GPIO 庫(kù)允許我們控制Raspberry Pi的GPIO引腳。

from flask import Flask, render_template_string, request

import RPi.GPIO as GPIO

from time import sleep

現(xiàn)在,我們啟用調(diào)試模式我們的項(xiàng)目。啟用調(diào)試模式的優(yōu)點(diǎn)是它可以在更改代碼時(shí)自動(dòng)重新加載服務(wù)器。它還提供了一個(gè)有用的調(diào)試器來(lái)跟蹤應(yīng)用程序中的錯(cuò)誤。

app.config[‘DEBUG’] = True

伺服電機(jī)在不動(dòng)時(shí)會(huì)抖動(dòng)一下。為了阻止它,我們使用以下行:

p.ChangeDutyCycle(0)

p1.ChangeDutyCycle(0)

如何運(yùn)行程序

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

打開(kāi)瀏覽器并輸入在https://127.0.0.1:5000中,打開(kāi)一個(gè)網(wǎng)頁(yè),如下所示。

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

完全代碼

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Web
    Web
    +關(guān)注

    關(guān)注

    2

    文章

    1257

    瀏覽量

    69368
  • 伺服電機(jī)
    +關(guān)注

    關(guān)注

    85

    文章

    2030

    瀏覽量

    57723
  • 樹(shù)莓派
    +關(guān)注

    關(guān)注

    116

    文章

    1699

    瀏覽量

    105537
  • flask
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    3611
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AWTK-WEB 快速入門(mén)(1) - C 語(yǔ)言應(yīng)用程序

    導(dǎo)讀AWTK可以使用相同的技術(shù)棧開(kāi)發(fā)各種平臺(tái)的應(yīng)用程序。有時(shí)我們需要使用Web界面與設(shè)備進(jìn)行交互,本文介紹一下如何使用C語(yǔ)言開(kāi)發(fā)AWTK-WEB應(yīng)用程序。用AWTKDesigner新建
    的頭像 發(fā)表于 11-27 11:46 ?61次閱讀
    AWTK-<b class='flag-5'>WEB</b> 快速入門(mén)(1) - C 語(yǔ)言<b class='flag-5'>應(yīng)用程序</b>

    伺服電機(jī)原理及控制應(yīng)用

    伺服電機(jī)(Servo Motor)是一種高精度、高性能的電動(dòng)機(jī)系統(tǒng),廣泛應(yīng)用于需要精確控制位置、速度和加速度的場(chǎng)合。 一、伺服電機(jī)的工作原理
    的頭像 發(fā)表于 10-22 16:58 ?262次閱讀

    華納云:java web和java有什么區(qū)別java web和java有什么區(qū)別

    Java Web和Java是兩個(gè)不同的概念,它們?cè)诠δ堋⒂猛竞蛯?shí)現(xiàn)方式上存在一些區(qū)別,下面將詳細(xì)介紹它們之間的區(qū)別。 1. 功能和用途: – Java是一種編程語(yǔ)言,它提供了一種用于開(kāi)發(fā)各種應(yīng)用程序
    的頭像 發(fā)表于 07-16 13:35 ?710次閱讀
    華納云:java <b class='flag-5'>web</b>和java有什么區(qū)別java <b class='flag-5'>web</b>和java有什么區(qū)別

    鴻蒙ArkTS聲明式組件:Web

    提供具有網(wǎng)頁(yè)顯示能力的Web組件,[@ohos.web.webview]提供web控制能力。
    的頭像 發(fā)表于 07-04 15:35 ?603次閱讀
    鴻蒙ArkTS聲明式組件:<b class='flag-5'>Web</b>

    鴻蒙原生應(yīng)用元服務(wù)開(kāi)發(fā)-Web相關(guān)說(shuō)明

    Web組件用于在應(yīng)用程序中顯示Web頁(yè)面內(nèi)容,為開(kāi)發(fā)者提供頁(yè)面加載、頁(yè)面交互、頁(yè)面調(diào)試等能力。 頁(yè)面加載:Web組件提供基礎(chǔ)的前端頁(yè)面加載的能力,包括加載網(wǎng)絡(luò)頁(yè)面、本地頁(yè)面、Html格
    發(fā)表于 05-10 15:03

    使用Docker部署Go Web應(yīng)用程序步驟

    大多數(shù)情況下Go應(yīng)用程序被編譯成單個(gè)二進(jìn)制文件,web應(yīng)用程序則會(huì)包括模版和配置文件。而當(dāng)一個(gè)項(xiàng)目中有很多文件的時(shí)候,由于很多文件沒(méi)有同步就會(huì)導(dǎo)致錯(cuò)誤的發(fā)生并且產(chǎn)生很多的問(wèn)題。
    發(fā)表于 04-20 09:33 ?477次閱讀
    使用Docker部署Go <b class='flag-5'>Web</b><b class='flag-5'>應(yīng)用程序</b>步驟

    鑒源實(shí)驗(yàn)室 | Web應(yīng)用程序常見(jiàn)漏洞淺析

    在如今的數(shù)字化時(shí)代,Web應(yīng)用程序已經(jīng)滲透到我們生活的每個(gè)角落。從購(gòu)物平臺(tái)、社交媒體到企業(yè)級(jí)系統(tǒng),無(wú)論是用戶還是組織,都依賴于這些應(yīng)用程序來(lái)滿足各自的業(yè)務(wù)需求。
    的頭像 發(fā)表于 01-26 11:33 ?920次閱讀
    鑒源實(shí)驗(yàn)室 | <b class='flag-5'>Web</b><b class='flag-5'>應(yīng)用程序</b>常見(jiàn)漏洞淺析

    web前端開(kāi)發(fā)和前端開(kāi)發(fā)的區(qū)別

    Web前端開(kāi)發(fā)和前端開(kāi)發(fā)是兩個(gè)相似但略有不同的概念。本文將詳細(xì)討論這兩者之間的區(qū)別。 定義和范圍: Web前端開(kāi)發(fā)是指開(kāi)發(fā)和維護(hù)Web應(yīng)用程序前端部分的過(guò)程。
    的頭像 發(fā)表于 01-18 09:54 ?3383次閱讀

    什么是web服務(wù)器?如何選擇服務(wù)器配置?

    Web服務(wù)器是一種軟件或硬件設(shè)備,用于托管和提供網(wǎng)頁(yè)內(nèi)容。它接收客戶端(如瀏覽器)發(fā)送的HTTP請(qǐng)求,返回相應(yīng)的網(wǎng)頁(yè)內(nèi)容或其他資源,以實(shí)現(xiàn)更高的性能和可靠性。它是網(wǎng)站和應(yīng)用程序在互聯(lián)網(wǎng)上構(gòu)建和交付
    的頭像 發(fā)表于 01-03 15:25 ?1065次閱讀

    eclipse安裝web插件步驟

    Eclipse 是一款功能強(qiáng)大的集成開(kāi)發(fā)環(huán)境 (IDE),廣泛用于 Java 開(kāi)發(fā)和各種 Web 應(yīng)用程序的開(kāi)發(fā)。通過(guò)安裝適當(dāng)?shù)牟寮梢詫?Eclipse 轉(zhuǎn)變?yōu)橐粋€(gè)強(qiáng)大的 Web 開(kāi)發(fā)工具。本文
    的頭像 發(fā)表于 12-06 13:48 ?1067次閱讀

    怎么用eclipse創(chuàng)建web項(xiàng)目

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

    Python Web框架Django 5.0新特性

    根據(jù) JetBrains 公布的 2022 Python 開(kāi)發(fā)者調(diào)查結(jié)果,Python Web 框架的三巨頭依舊是 Flask、Django 和 FastAPI。Django 和 Flask 的使用率排名并列第一。
    的頭像 發(fā)表于 12-06 13:37 ?1097次閱讀

    eclipse中沒(méi)有web怎么辦

    Eclipse JST插件(Eclipse JST Plugins),它們提供了Web開(kāi)發(fā)所需的組件和工具。 第二種方法是通過(guò)Eclipse的Marketplace來(lái)搜索添加Web開(kāi)發(fā)插件。
    的頭像 發(fā)表于 12-06 11:30 ?2541次閱讀

    java web 三大組件 啟動(dòng)順序

    應(yīng)用中,Servlet、JSP和Filter的啟動(dòng)順序如下: Servlet的啟動(dòng)順序: Servlet是Java Web應(yīng)用中最重要的組件之一。它用于處理客戶端的請(qǐng)求,生成相應(yīng)的響應(yīng)。在應(yīng)用啟動(dòng)時(shí)
    的頭像 發(fā)表于 12-03 11:45 ?817次閱讀

    【從0開(kāi)始創(chuàng)建AWTK應(yīng)用程序創(chuàng)建應(yīng)用程序并在模擬器運(yùn)行

    AWTK是基于C語(yǔ)言開(kāi)發(fā)的跨平臺(tái)GUI框架。本系列文章介紹如何從0開(kāi)始創(chuàng)建AWTK應(yīng)用程序,包括搭建開(kāi)發(fā)調(diào)試環(huán)境、使用AWTK創(chuàng)建Hello工程并在模擬器上運(yùn)行、將AWTK應(yīng)用程序移植
    的頭像 發(fā)表于 12-01 08:24 ?471次閱讀
    【從0開(kāi)始<b class='flag-5'>創(chuàng)建</b>AWTK<b class='flag-5'>應(yīng)用程序</b>】<b class='flag-5'>創(chuàng)建</b><b class='flag-5'>應(yīng)用程序</b>并在模擬器運(yùn)行