from time import sleep
from utils.pinout import set_pinout
from components.servo import Servo
pinout = set_pinout()

s1 = Servo(pinout.PWM1_PIN)
# s2 = Servo(pinout.PWM2_PIN)
# s3 = Servo(pinout.PWM3_PIN)

import blesync_server
import blesync_uart.server
import utils.ble.bluefruit as bf

angle = 45
s1.set_degree(angle)
angle_min = 10
angle_max = 150


@blesync_uart.server.UARTService.on_message
def on_message(service, conn_handle, message):
    global angle
    print(str(message), angle)

    if message == bf.LEFT:
        angle = angle - 5
        if angle < angle_min:
            angle = angle_min
        s1.set_degree(angle)
# servo test - example
from time import sleep
from utils.pinout import set_pinout

from components.servo import Servo
# todo: PWM double setup error

pinout = set_pinout()

# s1 = Servo(pinout.PWM1_PIN)
# s2 = Servo(pinout.PWM2_PIN)
s3 = Servo(pinout.PWM3_PIN)

angles = [0, 20, 50, 70, 90]

while True:
    for a in angles:
        # s1.set_degree(a)
        # s2.set_degree(a)
        s3.set_degree(a)
        sleep(1)
Exemple #3
0
from time import sleep
from utils.pinout import set_pinout
from components.servo import Servo
pinout = set_pinout()

s1 = Servo(pinout.PWM1_PIN)
s2 = Servo(pinout.PWM2_PIN)
# s3 = Servo(pinout.PWM3_PIN)

import blesync_server
import blesync_uart.server
import utils.ble.bluefruit as bf

angle1 = 45
angle2 = 45
s1.set_degree(angle1)
s2.set_degree(angle2)
angle_min = 10
angle_max = 150


@blesync_uart.server.UARTService.on_message
def on_message(service, conn_handle, message):
    global angle1, angle2
    print(str(message), angle1, angle2)

    if message == bf.LEFT:
        angle1 = angle1 - 5
        if angle1 < angle_min:
            angle1 = angle_min
        s1.set_degree(angle1)
Exemple #4
0
LR_COMPENSATION = +10  # %, -10 slows L motor comared to R
ULTRASONIC_SAMPLING = 60  # ms, how often detect obstacle

moto_L1 = Pin(pinout.MOTOR_1A, Pin.OUT)
moto_L2 = Pin(pinout.MOTOR_2A, Pin.OUT)
moto_L  = PWM(Pin(pinout.MOTOR_12EN, Pin.OUT), freq=500, duty = 0)


moto_R3 = Pin(pinout.MOTOR_3A, Pin.OUT)
moto_R4 = Pin(pinout.MOTOR_4A, Pin.OUT)
moto_R  = PWM(Pin(pinout.MOTOR_34EN, Pin.OUT), freq=500, duty = 0)

echo = HCSR04(trigger_pin=pinout.PWM2_PIN, echo_pin=pinout.PWM1_PIN)

servo = Servo(pinout.PWM3_PIN)
servo.set_degree(50)

def read_distance(echo):
    d = echo.distance_cm()
    if d < 0:
        sleep_ms(50)
        d = echo.distance_cm()
    print('distance', d)
    return d

def compensate_speed_left(speed):
    return speed + int(speed/100 * LR_COMPENSATION/2) * ENABLE_COMPENSATION

def compensate_speed_right(speed):
    return speed - int(speed/100 * LR_COMPENSATION/2) * ENABLE_COMPENSATION
Exemple #5
0
setup = Config("draw2servos")
setup.print_all()
try:
    L1 = int(setup.get("L1"))
    L2 = int(setup.get("L2"))
except:
    print("config.Err")
print("L1, L2: " + str(L1) + ", " + str(L2))

print("servos init")
from components.servo import Servo

s1 = Servo(17)
s2 = Servo(16)

s1.set_degree(90)
s2.set_degree(0)


def move_servo2(p1, p2, delay=5):
    steps = move_2d_line(p1, p2)
    for step in steps:

        alfa, beta = invkin2(step, L1, L2)
        print(step, alfa, beta)

        s1.set_degree(alfa)
        s2.set_degree(beta)
        sleep_ms(delay)