mechatronics

star 2

Mechatronic systems integration

ffsshhttiikk By ffsshhttiikk schedule Updated 2/28/2026

name: mechatronics description: Mechatronic systems integration license: MIT compatibility: opencode metadata: audience: engineers, designers, integrators category: engineering

What I do

  • Integrate mechanical, electrical, and control systems
  • Design electromechanical systems and robots
  • Implement sensor/actuator interfaces
  • Create automated systems and PLC logic
  • Optimize system performance across domains

When to use me

  • When designing automated machines or robots
  • When integrating sensors and actuators
  • When developing PLC control logic
  • When creating electromechanical systems
  • When troubleshooting integrated systems

Key Concepts

System Integration

# Mechatronic system architecture
class MechatronicSystem:
    def __init__(self):
        self.sensors = {}
        self.actuators = {}
        self.controller = None
        self.actuator_commands = []
        self.sensor_data = {}
    
    def add_sensor(self, name, sensor):
        """Add sensor to system"""
        self.sensors[name] = sensor
    
    def add_actuator(self, name, actuator):
        """Add actuator to system"""
        self.actuators[name] = actuator
    
    def read_all_sensors(self):
        """Read all sensor values"""
        self.sensor_data = {
            name: sensor.read() 
            for name, sensor in self.sensors.items()
        }
        return self.sensor_data
    
    def control_loop(self):
        """Execute one control cycle"""
        self.read_all_sensors()
        commands = self.controller.compute(self.sensor_data)
        self.execute_commands(commands)
    
    def execute_commands(self, commands):
        """Send commands to actuators"""
        for name, value in commands.items():
            if name in self.actuators:
                self.actuators[name].set_value(value)

PLC Programming (IEC 61131-3)

# Ladder Logic equivalent in Python
class LadderLogic:
    def __init__(self):
        self.coils = {}
        self.contacts = {}
    
    # Input contact
    def contact(self, address, normally_open=True):
        return {"type": "contact", "address": address, "no": normally_open}
    
    # Output coil
    def coil(self, address):
        return {"type": "coil", "address": address}
    
    # Timer
    def timer(self, preset, timer_type="TON"):
        return {"type": "timer", "preset": preset, "ttype": timer_type}
    
    # Counter
    def counter(self, preset, count_type="CTU"):
        return {"type": "counter", "preset": preset, "ctype": count_type}

# Example: Motor start/stop circuit
ladder = LadderLogic()
# | I:0/0 (Start)  I:0/1 (Stop)   O:0/0 (Motor) |
# |----[ )[ ]----( )----|

Sensor Selection

# Common sensor types and interfaces
SENSOR_INTERFACES = {
    "analog_voltage": {
        "range": "0-10V, ±10V",
        "adc": "Required",
        "resolution": "10-16 bit"
    },
    "analog_current": {
        "range": "4-20mA",
        "adc": "Required (or current sense)",
        "noise": "Low"
    },
    "digital": {
        "types": ["PNP", "NPN", "Push-pull"],
        "interfaces": ["GPIO", "SPI", "I2C"]
    },
    "encoder": {
        "types": ["Incremental", "Absolute"],
        "interfaces": [" quadrature", "SSI", "BiSS"
    ]},
    "proximity": {
        "types": ["Inductive", "Capacitive", "Photoelectric"],
        "range": "1mm - 50mm"
    }
}

Actuator Systems

Actuator Control Power Applications
DC Motor PWM, H-Bridge Low-Med General purpose
Servo Motor PWM Medium Position control
Stepper Motor Step/Dir Medium Precise positioning
Solenoid On/Off Low Valves, clamping
Hydraulic Proportional High Heavy loads
Pneumatic On/Off, Proportional Medium Fast response
Piezoelectric High voltage Low Precision

Motor Control

# DC motor control
class DCMotorControl:
    def __init__(self, pwm_pin, dir_pin):
        self.pwm = pwm_pin
        self.dir = dir_pin
    
    def set_speed(self, speed):
        """speed: -1.0 to 1.0"""
        if speed > 0:
            self.dir.write(1)
        else:
            self.dir.write(0)
        self.pwm.write(abs(speed))
    
    # Closed loop speed control
    def pid_speed_control(self, target_rpm, measured_rpm, kp, ki, kd):
        error = target_rpm - measured_rpm
        integral += error * dt
        derivative = (error - prev_error) / dt
        output = kp * error + ki * integral + kd * derivative
        self.set_speed(output)

# Servo control
class ServoControl:
    def __init__(self, pwm_pin):
        self.pwm = pwm_pin
    
    def set_angle(self, angle):
        """angle: 0-180 degrees"""
        pulse = 1000 + (angle / 180) * 1000  # μs
        self.pwm.write_microseconds(pulse)

System Communication

# Industrial communication protocols
PROTOCOLS = {
    "ethernet_ip": {
        "layer": "Industrial Ethernet",
        "speed": "100 Mbps - 1 Gbps",
        "deterministic": "Yes"
    },
    "profinet": {
        "layer": "Industrial Ethernet",
        "features": "IRT, RT"
    },
    "can_bus": {
        "layer": "Fieldbus",
        "speed": "125 kbps - 1 Mbps",
        "deterministic": "Yes"
    },
    "modbus": {
        "layer": "Serial/Ethernet",
        "simple": True
    }
}
Install via CLI
npx skills add https://github.com/ffsshhttiikk/opencode-agents-skills --skill mechatronics
Repository Details
star Stars 2
call_split Forks 2
navigation Branch main
article Path SKILL.md
More from Creator
ffsshhttiikk
ffsshhttiikk Explore all skills →