Объединение двух сценариев python, один читает IMU, другой перемещает серводвигатель - PullRequest
0 голосов
/ 09 июля 2020

Я новичок в python, но мне удалось создать несколько полезных кодов python (по крайней мере, полезных для моей работы). Я хотел бы объединить два сценария python, но мне сложно заставить его работать, я думаю, что совершенно не понимаю, как все должно выглядеть. Конечная цель - заставить мою Raspberry считывать датчик, в то время как сервопривод движется .

Вот сценарий IMU

from mpu6050 import mpu6050
import time
mpu = mpu6050(0x68)

while True:
    print("Temp : "+str(mpu.get_temp()))
    print()

    accel_data = mpu.get_accel_data()
    print("Acc X : "+str(accel_data['x']))
    print("Acc Y : "+str(accel_data['y']))
    print("Acc Z : "+str(accel_data['z']))
    print()

    gyro_data = mpu.get_gyro_data()
    print("Gyro X : "+str(gyro_data['x']))
    print("Gyro Y : "+str(gyro_data['y']))
    print("Gyro Z : "+str(gyro_data['z']))  
    print()
    print("-------------------------------")
    time.sleep(1)

Скрипты серводвигателя

# Servo1.py
import RPi.GPIO as GPIO
import time

P_SERVO = 22 # adapt to your wiring
fPWM = 50  # Hz (not higher with software PWM)
a = 10
b = 2

def setup():
    global pwm
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(P_SERVO, GPIO.OUT)
    pwm = GPIO.PWM(P_SERVO, fPWM)
    pwm.start(0)

def setDirection(direction):
    duty = a / 180 * direction + b
    pwm.ChangeDutyCycle(duty)
    print "direction =", direction, "-> duty =", duty
    time.sleep(1) # allow to settle
   
print "starting"
setup()
for direction in range(0, 181, 10):
    setDirection(direction)
direction = 0    
setDirection(0)    
GPIO.cleanup() 
print "done"
...