-
Notifications
You must be signed in to change notification settings - Fork 2
Explore example
Zavrazhnov Dmitriy edited this page Apr 3, 2019
·
2 revisions
Example run under python 2.7 and older or python 3.7 and older
To include lib from subfolder
sys.path.append('..\Lib')
sys.path.append('../Lib')
Import all lib neded
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
from x4motor import X4Motor
import time
import hjson
First you need to create modbus client to comunicate
client= ModbusClient(method = "rtu", port="/dev/ttyS1", stopbits = 1,
bytesize = 8, parity = 'N', baudrate= 115200,
timeout = 0.8 )
client.connect()
Okey, now load controller settings from json and create motor
f = open('config.json')
config = hjson.loads(f.read())
f.close()
M = X4Motor(client, settings = config)
Read encoder data in loop
print("Angle read Demo")
for i in range(100):
angle = M.step
print("Angle is"+str(angle))
time.sleep(0.1)
Angle support mode demo
print("Angle set Demo")
points = [5,10,20,30,40 ,100,0,-100]
for i in points:
print("Set Angle to", i)
M.step = (angle+i)
e = M.readError()
if e>0:
print("Error is", e)
time.sleep(2)
M.release()
time.sleep(0.5)
Speed support mode
print("Speed Demo")
points = [1,2,4,8,10,0,-10,-10]
for i in points:
print("Set Speed to",i)
M.speed = i
e = M.readError()
if e>0:
print("Error is", e)
time.sleep(1)
M.release()
And legacy pwm mode
print("PWM Demo")
points = list(range(1,100,10)) + list(range(100,-101,-10)) + list(range(-100,1,10))
for i in points:
print("Set PWM to",i)
M.pwm = i*3
e = M.readError()
if e>0:
print("Error is", e)
time.sleep(0.5)
M.release()
At the end of progrom goot to close all
client.close()