红石飞行控制系统

红石飞行控制系统

添加基于红石的PID处理器及相应的输入/输出方块,以及更多功能。目标是让PID成为你所使用的任何机器的便捷选项。

创建

Github:GitHub - 红石飞行控制系统

我一直在《机械动力:飞艇》中研制一艘飞艇,花了好几天时间搭建一个红石PD电路来控制我的实体风扇驱动飞行器,但效果并不比没有控制好多少。于是我做这个模组,让大家可以轻松许多。

注意:我是模组新手,在这个项目初期大量使用了AI。我尝试逆向工程AI生成的代码,并以一种在我看来符合面向对象风格的方式构建了代码结构,但不保证此模组没有bug,也不保证其高效。

注意:虽然看起来像飞艇模组的附属,本模组没有任何前置要求。你可以自由探索这个模组的非飞艇用途。

所有物品的简要概览:

所有物品都有[Shift]说明

PIDer配置菜单

完整物品列表:

钳子 - 一把"扳手"。右键旋转任意完整方块(信号传递器除外)。Shift+右键破坏任何模组方块及更多内容。与任何使用扳手标签的其他模组兼容。

模拟表 - 可配置的输出盘,可贴在任意方块上。直接给其附着的面提供信号。

PWM器 - 基于侧面输入,提供[后输入-1, 后输入]的PWM输出。

PID器 - 对后输入信号进行PID处理后输出。同时尝试基于导数对输入进行"自我校正"。

交叉读取PID器 - 专门用于控制飞艇万向节传感器一个轴的PID器。

S-PID器 - 不是蜘蛛,而是从万向节传感器提供完整PID信号的PID器。最佳放置方式是朝向飞船后方("S方向"),这样输出标签才会正确。注意非S方块可以传递S-PID器信号,但无法正确计算或解码它们。(代码中信号是两个整数拼接后作为一个整数传输)

振荡检测器 - 检测后输入信号是否两次通过零点。

加减器 - 单方块多面正负红石信号。看到后应该相当直观。

四加法器、四减法器、半加减器、半加法器、半减法器 - 加减器的变体,提供不同数量的正负输入面。

成对输入 - 取两组两个[0,15]普通红石信号,转换为本模组的[-15,15]内部红石信号。想想你如何从万向节传感器读取俯仰信号。

成对输出 - 成对输入的逆向操作。将[-15,15]信号解码回两个[0,15]信号。两种成对方块可同时处理两组。同一组的面有相同的基色。

S输出 - 用于S-PID器的WASD输出。放置朝向"S方向"时,所有标签正确。

S输出变体 - S输出,但将底部移至背面(代码中实际为正面),这样你就不用在地板上挖洞了。可通过合成与S输出互换。

S四路解码器 - 用于S-PID器输入的四路解码器。放置朝向"S方向"时,所有标签正确。无法解码Squad信号。

S四路解码器变体 - S-Q.D.,但将底部移至背面(代码中实际为正面),这样你就不用在地板上挖洞了。可通过合成与S-Q.D.互换。

共移成对输出 - 成对输出,仅处理一组,但允许对两个输出施加共同偏移。例如输入5会在成对输出上输出{5,0},加上共同偏移2则输出{7,2}。提供负输入面。

差移成对输出 - 接受一个基础信号,输出基础信号正负设定偏移。例如输入基础值12、偏移3,会输出{9,15}。提供负面。

四路信号解码器 - 基本就是WASD到四旋翼式/副翼尾翼信号的转换。解释起来稍复杂,游戏内[Shift]提示有更多说明。

*新增* HOLC - 高开低闭。后输入低于下界时输出红石信号,直到其大于等于上界才停止输出。可在Shift+右键菜单中切换反相行为和配置上下界。

信号扩散器 - 将输入信号广播到所有其他面。

信号传递器 - 3路(技术上为6路但尚无方块支持)独立信号传递。

其他特性:

配置中可自定义菜单颜色。因菜单为代码生成,不可更换背景。

欢迎将我的模组加入你的整合包。如果这样做,请留下评论:)