私は2つのPythonスクリプトを持っています。基本的に、最初のスクリプトはPOSTリクエストを処理するサーバー用です。それはこのように見えます。もう一つ必要な2つのpythonスクリプトを実行
from bottle import Bottle, run, template, get, post, request
app = Bottle()
@app.route('/rotation', method='POST')
def set_rotation():
rotation = request.forms.get('count')
return rotation
if __name__ == '__main__':
run(app, host='145.24.226.121', port=8080)
第2のスクリプトは、ステッパモータを実行することです。これがスクリプトです。
# importeer de GPIO bibliotheek.
import RPi.GPIO as GPIO
# Importeer de time biblotheek voor tijdfuncties.
from time import sleep
# Zet de pinmode op Broadcom SOC.
GPIO.setmode(GPIO.BCM)
# Zet waarschuwingen uit.
GPIO.setwarnings(False)
# Stel de GPIO pinnen in voor de stappenmotor:
StepPins = [4,17,27,22]
# Set alle pinnen als uitgang.
for pin in StepPins:
print "Setup pins"
GPIO.setup(pin,GPIO.OUT)
GPIO.output(pin, False)
# Definieer variabelen.
StepCounter = 0
# Definieer simpele volgorde
StepCount1 = 4
Seq1 = []
Seq1 = range(0, StepCount1)
Seq1[0] = [1,0,0,0]
Seq1[1] = [0,1,0,0]
Seq1[2] = [0,0,1,0]
Seq1[3] = [0,0,0,1]
# Definieer geadvanceerde volgorde (volgens de datasheet)
StepCount2 = 8
Seq2 = []
Seq2 = range(0, StepCount2)
Seq2[0] = [1,0,0,0]
Seq2[1] = [1,1,0,0]
Seq2[2] = [0,1,0,0]
Seq2[3] = [0,1,1,0]
Seq2[4] = [0,0,1,0]
Seq2[5] = [0,0,1,1]
Seq2[6] = [0,0,0,1]
Seq2[7] = [1,0,0,1]
# Welke stappenvolgorde gaan we hanteren?
Seq = Seq2
StepCount = StepCount2
try:
while True:
for pin in range(0, 4):
xpin = StepPins[pin]
if Seq[StepCounter][pin]!=0:
print "Stap: %i GPIO Actief: %i" %(StepCounter,xpin)
GPIO.output(xpin, True)
else:
GPIO.output(xpin, False)
StepCounter += 1
# Als we aan het einde van de stappenvolgorde zijn beland start dan opnieuw
if (StepCounter==StepCount): StepCounter = 0
if (StepCounter<0): StepCounter = StepCount
# Wacht voor de volgende stap (lager = snellere draaisnelheid)
sleep(.01)
except KeyboardInterrupt:
# GPIO netjes afsluiten
GPIO.cleanup()
2番目のスクリプトのsleep関数の最初のスクリプトからローテーション値が必要です。両方のスクリプトを実行して、最初のスクリプトがPOST要求を受け取るようにし、2番目のスクリプトがsteppermotorを動作させるようにする必要があります。 これを実行する最良の方法は何ですか?また、この方法でも可能ですか?
なぜ彼らは別のスクリプトでなければならないのですか? steppermotorコードをWebサーバーに移動できますか? – fafl
これが可能かどうかわかりません。私はPythonに全く新しいです。 – Jaimy
サーバ部分から何かを取得したい場合は、 'rotation'値を返すGETルートを定義し、2番目のスクリプトでそれを取得してください。それはあなたがしようとしていることですか? –