[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CX97NDM2VN96G95QC76FSM":3,"skill-same:01M6CX97NDM2VN96G95QC76FSM":48},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":21,"linkOnly":22,"markdownContent":23,"markdownBody":24,"frontMatter":25,"refName":28,"commitSha":29,"skillDirectory":5,"forksCount":30,"repositoryHtmlUrl":31,"repositoryHomepageUrl":6,"ownerHtmlUrl":32,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":33,"install":34,"resources":47},"01M6CX97NDM2VN96G95QC76FSM","mechatronics",null,"Mechatronic systems integration","ffsshhttiikk\u002Fopencode-agents-skills","ffsshhttiikk","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F226346827?v=4","01M6CWD9RR3Y7VRQX3MXYC8FYH","01M6CWD9WVPYAZW0J82G1VKGHY",3,"MIT","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fmechatronics\u002FSKILL.md",[],[5,18,19,20],"integration","engineering","opencode","2026-11-10 10:12:30",false,"---\nname: mechatronics\ndescription: Mechatronic systems integration\nlicense: MIT\ncompatibility: opencode\nmetadata:\n  audience: engineers, designers, integrators\n  category: engineering\n---\n\n## What I do\n\n- Integrate mechanical, electrical, and control systems\n- Design electromechanical systems and robots\n- Implement sensor\u002Factuator interfaces\n- Create automated systems and PLC logic\n- Optimize system performance across domains\n\n## When to use me\n\n- When designing automated machines or robots\n- When integrating sensors and actuators\n- When developing PLC control logic\n- When creating electromechanical systems\n- When troubleshooting integrated systems\n\n## Key Concepts\n\n### System Integration\n\n```python\n# Mechatronic system architecture\nclass MechatronicSystem:\n    def __init__(self):\n        self.sensors = {}\n        self.actuators = {}\n        self.controller = None\n        self.actuator_commands = []\n        self.sensor_data = {}\n    \n    def add_sensor(self, name, sensor):\n        \"\"\"Add sensor to system\"\"\"\n        self.sensors[name] = sensor\n    \n    def add_actuator(self, name, actuator):\n        \"\"\"Add actuator to system\"\"\"\n        self.actuators[name] = actuator\n    \n    def read_all_sensors(self):\n        \"\"\"Read all sensor values\"\"\"\n        self.sensor_data = {\n            name: sensor.read() \n            for name, sensor in self.sensors.items()\n        }\n        return self.sensor_data\n    \n    def control_loop(self):\n        \"\"\"Execute one control cycle\"\"\"\n        self.read_all_sensors()\n        commands = self.controller.compute(self.sensor_data)\n        self.execute_commands(commands)\n    \n    def execute_commands(self, commands):\n        \"\"\"Send commands to actuators\"\"\"\n        for name, value in commands.items():\n            if name in self.actuators:\n                self.actuators[name].set_value(value)\n```\n\n### PLC Programming (IEC 61131-3)\n\n```python\n# Ladder Logic equivalent in Python\nclass LadderLogic:\n    def __init__(self):\n        self.coils = {}\n        self.contacts = {}\n    \n    # Input contact\n    def contact(self, address, normally_open=True):\n        return {\"type\": \"contact\", \"address\": address, \"no\": normally_open}\n    \n    # Output coil\n    def coil(self, address):\n        return {\"type\": \"coil\", \"address\": address}\n    \n    # Timer\n    def timer(self, preset, timer_type=\"TON\"):\n        return {\"type\": \"timer\", \"preset\": preset, \"ttype\": timer_type}\n    \n    # Counter\n    def counter(self, preset, count_type=\"CTU\"):\n        return {\"type\": \"counter\", \"preset\": preset, \"ctype\": count_type}\n\n# Example: Motor start\u002Fstop circuit\nladder = LadderLogic()\n# | I:0\u002F0 (Start)  I:0\u002F1 (Stop)   O:0\u002F0 (Motor) |\n# |----[ )[ ]----( )----|\n```\n\n### Sensor Selection\n\n```python\n# Common sensor types and interfaces\nSENSOR_INTERFACES = {\n    \"analog_voltage\": {\n        \"range\": \"0-10V, ±10V\",\n        \"adc\": \"Required\",\n        \"resolution\": \"10-16 bit\"\n    },\n    \"analog_current\": {\n        \"range\": \"4-20mA\",\n        \"adc\": \"Required (or current sense)\",\n        \"noise\": \"Low\"\n    },\n    \"digital\": {\n        \"types\": [\"PNP\", \"NPN\", \"Push-pull\"],\n        \"interfaces\": [\"GPIO\", \"SPI\", \"I2C\"]\n    },\n    \"encoder\": {\n        \"types\": [\"Incremental\", \"Absolute\"],\n        \"interfaces\": [\" quadrature\", \"SSI\", \"BiSS\"\n    ]},\n    \"proximity\": {\n        \"types\": [\"Inductive\", \"Capacitive\", \"Photoelectric\"],\n        \"range\": \"1mm - 50mm\"\n    }\n}\n```\n\n### Actuator Systems\n\n| Actuator | Control | Power | Applications |\n|----------|---------|-------|--------------|\n| DC Motor | PWM, H-Bridge | Low-Med | General purpose |\n| Servo Motor | PWM | Medium | Position control |\n| Stepper Motor | Step\u002FDir | Medium | Precise positioning |\n| Solenoid | On\u002FOff | Low | Valves, clamping |\n| Hydraulic | Proportional | High | Heavy loads |\n| Pneumatic | On\u002FOff, Proportional | Medium | Fast response |\n| Piezoelectric | High voltage | Low | Precision |\n\n### Motor Control\n\n```python\n# DC motor control\nclass DCMotorControl:\n    def __init__(self, pwm_pin, dir_pin):\n        self.pwm = pwm_pin\n        self.dir = dir_pin\n    \n    def set_speed(self, speed):\n        \"\"\"speed: -1.0 to 1.0\"\"\"\n        if speed > 0:\n            self.dir.write(1)\n        else:\n            self.dir.write(0)\n        self.pwm.write(abs(speed))\n    \n    # Closed loop speed control\n    def pid_speed_control(self, target_rpm, measured_rpm, kp, ki, kd):\n        error = target_rpm - measured_rpm\n        integral += error * dt\n        derivative = (error - prev_error) \u002F dt\n        output = kp * error + ki * integral + kd * derivative\n        self.set_speed(output)\n\n# Servo control\nclass ServoControl:\n    def __init__(self, pwm_pin):\n        self.pwm = pwm_pin\n    \n    def set_angle(self, angle):\n        \"\"\"angle: 0-180 degrees\"\"\"\n        pulse = 1000 + (angle \u002F 180) * 1000  # μs\n        self.pwm.write_microseconds(pulse)\n```\n\n### System Communication\n\n```python\n# Industrial communication protocols\nPROTOCOLS = {\n    \"ethernet_ip\": {\n        \"layer\": \"Industrial Ethernet\",\n        \"speed\": \"100 Mbps - 1 Gbps\",\n        \"deterministic\": \"Yes\"\n    },\n    \"profinet\": {\n        \"layer\": \"Industrial Ethernet\",\n        \"features\": \"IRT, RT\"\n    },\n    \"can_bus\": {\n        \"layer\": \"Fieldbus\",\n        \"speed\": \"125 kbps - 1 Mbps\",\n        \"deterministic\": \"Yes\"\n    },\n    \"modbus\": {\n        \"layer\": \"Serial\u002FEthernet\",\n        \"simple\": True\n    }\n}\n```\n","## What I do\n\n- Integrate mechanical, electrical, and control systems\n- Design electromechanical systems and robots\n- Implement sensor\u002Factuator interfaces\n- Create automated systems and PLC logic\n- Optimize system performance across domains\n\n## When to use me\n\n- When designing automated machines or robots\n- When integrating sensors and actuators\n- When developing PLC control logic\n- When creating electromechanical systems\n- When troubleshooting integrated systems\n\n## Key Concepts\n\n### System Integration\n\n```python\n# Mechatronic system architecture\nclass MechatronicSystem:\n    def __init__(self):\n        self.sensors = {}\n        self.actuators = {}\n        self.controller = None\n        self.actuator_commands = []\n        self.sensor_data = {}\n    \n    def add_sensor(self, name, sensor):\n        \"\"\"Add sensor to system\"\"\"\n        self.sensors[name] = sensor\n    \n    def add_actuator(self, name, actuator):\n        \"\"\"Add actuator to system\"\"\"\n        self.actuators[name] = actuator\n    \n    def read_all_sensors(self):\n        \"\"\"Read all sensor values\"\"\"\n        self.sensor_data = {\n            name: sensor.read() \n            for name, sensor in self.sensors.items()\n        }\n        return self.sensor_data\n    \n    def control_loop(self):\n        \"\"\"Execute one control cycle\"\"\"\n        self.read_all_sensors()\n        commands = self.controller.compute(self.sensor_data)\n        self.execute_commands(commands)\n    \n    def execute_commands(self, commands):\n        \"\"\"Send commands to actuators\"\"\"\n        for name, value in commands.items():\n            if name in self.actuators:\n                self.actuators[name].set_value(value)\n```\n\n### PLC Programming (IEC 61131-3)\n\n```python\n# Ladder Logic equivalent in Python\nclass LadderLogic:\n    def __init__(self):\n        self.coils = {}\n        self.contacts = {}\n    \n    # Input contact\n    def contact(self, address, normally_open=True):\n        return {\"type\": \"contact\", \"address\": address, \"no\": normally_open}\n    \n    # Output coil\n    def coil(self, address):\n        return {\"type\": \"coil\", \"address\": address}\n    \n    # Timer\n    def timer(self, preset, timer_type=\"TON\"):\n        return {\"type\": \"timer\", \"preset\": preset, \"ttype\": timer_type}\n    \n    # Counter\n    def counter(self, preset, count_type=\"CTU\"):\n        return {\"type\": \"counter\", \"preset\": preset, \"ctype\": count_type}\n\n# Example: Motor start\u002Fstop circuit\nladder = LadderLogic()\n# | I:0\u002F0 (Start)  I:0\u002F1 (Stop)   O:0\u002F0 (Motor) |\n# |----[ )[ ]----( )----|\n```\n\n### Sensor Selection\n\n```python\n# Common sensor types and interfaces\nSENSOR_INTERFACES = {\n    \"analog_voltage\": {\n        \"range\": \"0-10V, ±10V\",\n        \"adc\": \"Required\",\n        \"resolution\": \"10-16 bit\"\n    },\n    \"analog_current\": {\n        \"range\": \"4-20mA\",\n        \"adc\": \"Required (or current sense)\",\n        \"noise\": \"Low\"\n    },\n    \"digital\": {\n        \"types\": [\"PNP\", \"NPN\", \"Push-pull\"],\n        \"interfaces\": [\"GPIO\", \"SPI\", \"I2C\"]\n    },\n    \"encoder\": {\n        \"types\": [\"Incremental\", \"Absolute\"],\n        \"interfaces\": [\" quadrature\", \"SSI\", \"BiSS\"\n    ]},\n    \"proximity\": {\n        \"types\": [\"Inductive\", \"Capacitive\", \"Photoelectric\"],\n        \"range\": \"1mm - 50mm\"\n    }\n}\n```\n\n### Actuator Systems\n\n| Actuator | Control | Power | Applications |\n|----------|---------|-------|--------------|\n| DC Motor | PWM, H-Bridge | Low-Med | General purpose |\n| Servo Motor | PWM | Medium | Position control |\n| Stepper Motor | Step\u002FDir | Medium | Precise positioning |\n| Solenoid | On\u002FOff | Low | Valves, clamping |\n| Hydraulic | Proportional | High | Heavy loads |\n| Pneumatic | On\u002FOff, Proportional | Medium | Fast response |\n| Piezoelectric | High voltage | Low | Precision |\n\n### Motor Control\n\n```python\n# DC motor control\nclass DCMotorControl:\n    def __init__(self, pwm_pin, dir_pin):\n        self.pwm = pwm_pin\n        self.dir = dir_pin\n    \n    def set_speed(self, speed):\n        \"\"\"speed: -1.0 to 1.0\"\"\"\n        if speed > 0:\n            self.dir.write(1)\n        else:\n            self.dir.write(0)\n        self.pwm.write(abs(speed))\n    \n    # Closed loop speed control\n    def pid_speed_control(self, target_rpm, measured_rpm, kp, ki, kd):\n        error = target_rpm - measured_rpm\n        integral += error * dt\n        derivative = (error - prev_error) \u002F dt\n        output = kp * error + ki * integral + kd * derivative\n        self.set_speed(output)\n\n# Servo control\nclass ServoControl:\n    def __init__(self, pwm_pin):\n        self.pwm = pwm_pin\n    \n    def set_angle(self, angle):\n        \"\"\"angle: 0-180 degrees\"\"\"\n        pulse = 1000 + (angle \u002F 180) * 1000  # μs\n        self.pwm.write_microseconds(pulse)\n```\n\n### System Communication\n\n```python\n# Industrial communication protocols\nPROTOCOLS = {\n    \"ethernet_ip\": {\n        \"layer\": \"Industrial Ethernet\",\n        \"speed\": \"100 Mbps - 1 Gbps\",\n        \"deterministic\": \"Yes\"\n    },\n    \"profinet\": {\n        \"layer\": \"Industrial Ethernet\",\n        \"features\": \"IRT, RT\"\n    },\n    \"can_bus\": {\n        \"layer\": \"Fieldbus\",\n        \"speed\": \"125 kbps - 1 Mbps\",\n        \"deterministic\": \"Yes\"\n    },\n    \"modbus\": {\n        \"layer\": \"Serial\u002FEthernet\",\n        \"simple\": True\n    }\n}\n```\n",{"name":5,"license":14,"metadata":26,"description":7,"compatibility":20},{"audience":27,"category":19},"engineers, designers, integrators","main","5f7a3e453c98261f93d19a6a7de44ad8f7b72d41",2,"https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk","2026-03-01 06:55:40",{"source":8,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill mechatronics",{"tool":40,"command":41},"bunx","bunx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill mechatronics",{"tool":43,"command":44},"pnpm","pnpm dlx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill mechatronics","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fmechatronics\u002FSKILL.md",true,[],[49,60,70,79,89,98],{"skillNo":50,"name":51,"nameZh":6,"description":52,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":53,"categories":54,"keywords":55,"publishedAt":21},"01M6CXT9TXDF79BWJTMQAPB49G","xamarin","Xamarin cross-platform development","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fxamarin\u002FSKILL.md",[],[51,56,57,58,20,59],"platform","cross-platform","mobile","development",{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":21},"01M6CXT8AD04MFYDA32VW3FKAG","wrangling","Data wrangling fundamentals","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwrangling\u002FSKILL.md",[],[62,67,20,68,69],"data wrangling","science","data",{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":21},"01M6CXT717GCN7SRRNPBDP4508","windows","Windows operating system administration and scripting","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwindows\u002FSKILL.md",[],[72,77,20,78],"system","scripting",{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":21},"01M6CXT54K794NMEM3XAPZZDKT","wide-column","Wide-column data model","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwide-column\u002FSKILL.md",[],[86,87,20,88,69],"wide column","databases","model",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":21},"01M6CXT28FMT2P4V9GZE67WA8E","wide-column-stores","Wide-column database stores","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwide-column-stores\u002FSKILL.md",[],[96,87,20,97],"wide column stores","database",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":21},"01M6CXT0D0M0Q4T2N7C2RX7DSN","websockets","WebSocket implementation and best practices","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwebsockets\u002FSKILL.md",[],[100,105,106,107,20,108,109],"websocket","real-time","time","best practices","implementation"]