Esempio n. 1
0
from PyTrinamicMicro.platforms.motionpy.modules.linear_distance import linear_distance
from PyTrinamic.modules.TMCM1240.TMCM_1240 import TMCM_1240
from PyTrinamicMicro.platforms.motionpy.modules.hc_sr04_multi import hc_sr04_multi
from PyTrinamicMicro.platforms.motionpy.modules.MCP23S08 import MCP23S08
from PyTrinamicMicro.platforms.motionpy.connections.rs485_tmcl_interface import rs485_tmcl_interface

module = TMCM_1240(rs485_tmcl_interface())
module.setMaxAcceleration(0, 100000)

lin = linear_distance(sensor=hc_sr04_multi(avg_window=100),
                      sensor_index=1,
                      module=module)

lin.homing_direct(velocity=100000)

print(lin.bounds)
Esempio n. 2
0
'''

from PyTrinamic.ic.TMC5130.TMC5130 import TMC5130
from PyTrinamicMicro.platforms.motionpy.connections.uart_ic_interface import uart_ic_interface
from PyTrinamicMicro.platforms.motionpy.modules.hc_sr04_multi import hc_sr04_multi
from PyTrinamicMicro.platforms.motionpy.modules.MCP23S08 import MCP23S08
import logging

logger = logging.getLogger(__name__)

logger.debug("Initializing TMC5130 ...")
mc = TMC5130(connection=uart_ic_interface(single_wire=True),
             comm=TMC5130.COMM_UART)
logger.debug("TMC5130 initialized.")
logger.debug("Initializing hc_sr04_multi ...")
sensor = hc_sr04_multi()
logger.debug("hc_sr04_multi initialized.")

logger.debug("Writing default registers ...")
mc.writeRegister(mc.registers.IHOLD_IRUN, 0x00071703)
mc.writeRegister(mc.registers.CHOPCONF, 0x000101D5)
mc.writeRegister(mc.registers.PWMCONF, 0x000500C8)

mc.writeRegister(mc.registers.VSTART, 1000)
mc.writeRegister(mc.registers.V1, 1000)
mc.writeRegister(mc.registers.VSTOP, 1000)
mc.writeRegister(mc.registers.AMAX, 1000)
mc.writeRegister(mc.registers.A1, 1000)
mc.writeRegister(mc.registers.DMAX, 1000)
mc.writeRegister(mc.registers.D1, 1000)
module.setMaxAcceleration(0, 100000)
logger.info("Interface initialized.")

while (not (slave.status.stop)):
    # Handle connection
    if (con.request_available()):
        logger.debug("Request available.")
        request = con.receive_request()
        if (not (slave.filter(request))):
            continue
        logger.debug("Request for this slave detected.")
        reply = slave.handle_request(request)
        con.send_reply(reply)
    # Handle flags
    if (slave.status.lin[0]):
        lin = linear_distance(hc_sr04_multi(avg_window=100), 1, module)
        slave.status.lin[0] = False
    if (slave.status.homing[0]):
        slave.ap[0][slave.APs.linear_homing_status] = lin.homing(
            slave.ap[0][slave.APs.linear_homing_status],
            slave.ap[0][slave.APs.linear_length] / 0xFFFF,
            slave.ap[0][slave.APs.linear_velocity_homing],
            slave.ap[0][slave.APs.linear_acceleration_homing],
            slave.ap[0][slave.APs.linear_homing_margin] / 0xFFFFFFFF,
            slave.ap[0][slave.APs.linear_homing_hyst] / 0xFFFFFFFF)
    if (slave.status.position_step[0]):
        lin.position_step(slave.ap[0][slave.APs.linear_position_step],
                          slave.ap[0][slave.APs.linear_velocity_position],
                          slave.ap[0][slave.APs.linear_acceleration_position])
        slave.status.position_step[0] = False
    if (slave.status.position_relative[0]):