Motorsteuerung, brauche Hilfe
Verfasst: Mittwoch 4. Januar 2017, 18:13
Guten Abend an alle!
Ich bin gerade dabei eine Motorsteuerung mit zwei Motoren zu schreiben, für einen positionier Arm. Ich bin noch ziemlich unerfahren was Python betrifft. Daweil habe ich es nur für einen Motor geschrieben und wollte das ganze, mit Threads machen, damit ich beide Motoren gleichzeit steuern kann. Aber jetzt bekomme ich nurnoch beim Kompilieren den Fehler File
"dipl.py" , line 76
print ('ende')
SyntaxError: invalid syntax.
Danke jetzt schon mal.
Mit freundlichen Grüßen
Dominic
Ich bin gerade dabei eine Motorsteuerung mit zwei Motoren zu schreiben, für einen positionier Arm. Ich bin noch ziemlich unerfahren was Python betrifft. Daweil habe ich es nur für einen Motor geschrieben und wollte das ganze, mit Threads machen, damit ich beide Motoren gleichzeit steuern kann. Aber jetzt bekomme ich nurnoch beim Kompilieren den Fehler File
"dipl.py" , line 76
print ('ende')
SyntaxError: invalid syntax.
Code: Alles auswählen
from __future__ import print_function
import time
from dual_mc33926_rpi import motors, MAX_SPEED
import math
import threading
r_arm=70
def rechnenxy(xkoor,ykoor,rarm):
a90grad=90*0.0174532925
w2=math.atan(xkoor/ykoor)
w1=a90grad-w2
global amotor
global bmotor
z=ykoor/math.sin(w1)
amotor=(a90grad*2-(math.asin(z/(2*rarm)))*2)/2+w1
y1=(rarm*math.sin(a90grad-(a90grad-amotor)))/math.sin(a90grad)
y2=ykoor-y1
bmotor=(a90grad-amotor)+math.asin(y2/rarm)
bmotor=bmotor*57.295779513
amotor=amotor*57.295779513
def motor1(amotor_neu):
global tm1
global m1dir
amotor_alt=0
amotordiff = amotor_neu - amotor_alt
if amotordiff<-1:
m1dir=-1
amotordiff = amotordiff * (-1)
elif amotordiff>1:
m1dir=1
umdrehung=amotordiff/360
tm1=(umdrehung*5*2)/0.0041666666/1000 #bei einer min Auflösung von 5ms und bei einem PWM von 240 bei max 480
amotor_alt=amotor_neu
def m1control():
motors.motor1.enable()
motors.motor1.setSpeed(0)
motors.motor1.setSpeed(240*m1dir)
time.sleep(tm1)
motors.motor1.setSpeed(280*(-1)*m1dir)
if tm1>0.250:
time.sleep(tm1*0.0335522579)
elif tm1<0.250 and tm1>0.150:
time.sleep(tm1*0.086)
else: time.sleep(tm1*0.144788403)
motors.motor1.setSpeed(0)
motors.motor1.disable()
class m1c(threading.Thread):
def _init_(self):
threading.Thread_init_(self)
self.deamon=True
self.start()
def run(self):
m1control()
try:
x_koor = float(input('Eingabe für x Koordiante: '))
y_koor = float(input('Eingabe für die y Koordiante: '))
rechnenxy(x_koor,y_koor,r_arm)
print('amotor= ',amotor)
print('bmotor= ',bmotor)
motor1(amotor)
print('tmi= ', tm1, 'milli')
print('ende')
Danke jetzt schon mal.
Mit freundlichen Grüßen
Dominic