“Microduino 四轴飞行器教程”的版本间的差异
(→程序下载调试) |
|||
(未显示2个用户的38个中间版本) | |||
第29行: | 第29行: | ||
<br>为了在水平上获得一个推力,增加电机2的转速,尾部的推力增加;降低电机1的转速,头部的推力减小;整个机身会向前倾,合成了一个水平向前的推力,机身便能够向前运动。同时保持电机3和4的转速,反扭矩平衡,才能够保证机身平稳地向前。向后运动正好与向前运动相反。 | <br>为了在水平上获得一个推力,增加电机2的转速,尾部的推力增加;降低电机1的转速,头部的推力减小;整个机身会向前倾,合成了一个水平向前的推力,机身便能够向前运动。同时保持电机3和4的转速,反扭矩平衡,才能够保证机身平稳地向前。向后运动正好与向前运动相反。 | ||
<br>因为四旋翼飞行器是中心对称的,前后运动和侧向运动的控制是完全类似的,两组正反电机的控制方式对调即可。例如,保持电机1和2的转速不变,增加电机4的转速而降低电机3的转速,便能够产生向左的水平力,于是机身向左运动。 | <br>因为四旋翼飞行器是中心对称的,前后运动和侧向运动的控制是完全类似的,两组正反电机的控制方式对调即可。例如,保持电机1和2的转速不变,增加电机4的转速而降低电机3的转速,便能够产生向左的水平力,于是机身向左运动。 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | + | [[File:head-back-sport.jpg|center|400px]] |
− | + | ||
− | [[File:right-left-sport.jpg|center| | + | |
− | + | [[File:right-left-sport.jpg|center|400px]] | |
− | |||
− | |||
− | |||
− | |||
====偏航运动==== | ====偏航运动==== | ||
第57行: | 第46行: | ||
|- | |- | ||
|同样是因为中心对称的缘故,滚转运动与俯仰运动的原理一样。维持电机1和2的转速不变,改变电机3和4的转速,产生不平衡的力矩,使得机身绕着X轴做出滚转的运动。 | |同样是因为中心对称的缘故,滚转运动与俯仰运动的原理一样。维持电机1和2的转速不变,改变电机3和4的转速,产生不平衡的力矩,使得机身绕着X轴做出滚转的运动。 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | + | [[File:headback-sport.jpg|center|400px]] |
− | + | ||
− | [[File:turn over-sport.jpg|center| | + | |
− | + | [[File:turn over-sport.jpg|center|400px]] | |
− | |||
− | |||
− | |||
− | |||
===控制流程=== | ===控制流程=== | ||
第96行: | 第76行: | ||
|模块||数量||功能 | |模块||数量||功能 | ||
|- | |- | ||
− | |Microduino-CoreRF||1||核心板 | + | |[[Microduino-CoreRF/zh]]||1||核心板 |
|- | |- | ||
− | |Microduino-USBTTL ||1||下载程序 | + | |[[Microduino-USBTTL]] ||1||下载程序 |
|- | |- | ||
− | |Microduino-10DOF ||1||姿态稳定 | + | |[[Microduino-10DOF]] ||1||姿态稳定 |
|- | |- | ||
− | |Microduino-QuadCopter||1|| | + | |[[Microduino-QuadCopter]]||1||四轴驱动底板 |
|- | |- | ||
− | |2.4G天线||1|| | + | |[[2.4G天线]]||1||加长无线传输距离 |
|} | |} | ||
− | + | ||
*其他设备 | *其他设备 | ||
{|class="wikitable" | {|class="wikitable" | ||
第122行: | 第102行: | ||
|螺丝刀||1||固定 | |螺丝刀||1||固定 | ||
|} | |} | ||
− | [[File: | + | [[File:四轴物料1.jpg|center|600px]] |
− | |||
− | |||
− | |||
− | |||
− | *'''Step | + | *'''Step 1''':将四个螺旋翼按照如图所示方向插入到机架的对应机口上。 |
− | * | + | [[File:Quostep1.jpg|center|600px]] |
− | + | *'''Step 2''':将电池放到机架底部的对应位置. | |
− | * | + | [[File:Quostep2.jpg|center|600px]] |
− | [[File: | + | *'''Step 3''':将模块底板放入机架顶部位置,再将旋翼的接线插入模块底板对应的接口位置。 |
− | + | [[File:Quostep3.jpg|center|600px]] | |
− | *'''Step | + | *'''Step 4''':将天线接在CoreRF上,之后与10DOF上下叠加在一起,加在底板上,Upin方向朝两个橙色桨安装(如图所示)。 |
− | [[File: | + | [[File:Quostep4.jpg|center|600px]] |
− | + | *'''Step 5''':将底板模块的接线头和电池的连线进行连接。 | |
− | *'''Step | + | [[File:Quostep5.jpg|center|600px]] |
− | [[File: | + | *'''Step 6''':将CoreRF上的天线贴纸撕下来贴在机架背后任意位置,至此无人机组合完成。 |
− | *'''Step | + | [[File:Quostep6.jpg|center|600px]] |
**两根先正负极不要反了,红色线连红色线,黑色线连黑色线。 | **两根先正负极不要反了,红色线连红色线,黑色线连黑色线。 | ||
**电池线从电极臂下方连接,防止螺旋桨转动时与电池线碰撞。 | **电池线从电极臂下方连接,防止螺旋桨转动时与电池线碰撞。 | ||
第145行: | 第121行: | ||
===程序下载调试=== | ===程序下载调试=== | ||
*确认你搭建了Microduino的开发环境,否则参考:[[Microduino Getting started/zh]] | *确认你搭建了Microduino的开发环境,否则参考:[[Microduino Getting started/zh]] | ||
+ | *百度盘地址: | ||
+ | **Joypad代码:http://pan.baidu.com/s/1o6zVh3O 提取码:z6k2 | ||
+ | **飞行器代码:http://pan.baidu.com/s/1mgrRN7q 提取码:un3x | ||
+ | |||
+ | *Github 地址 | ||
+ | **Joypad代码:[https://github.com/wasdpkj/Joypad_RC/tree/master/Joypad_RC Joypad_RC] | ||
+ | **飞行器代码: [https://github.com/Microduino/MultiWii_for_Microduino/tree/master/MultiWii_for_CoreRF] | ||
*将Microduino-CoreRF、Microduino-USBTTL叠堆到一起,并用MicroUSB数据线将Microduino-USBTTL和电脑连接起来。 | *将Microduino-CoreRF、Microduino-USBTTL叠堆到一起,并用MicroUSB数据线将Microduino-USBTTL和电脑连接起来。 | ||
*打开Arduino IDE编程软件,点击 【文件】->【打开】,打开MultiWii_CoreRF中的【MultiWii_RF】程序,在菜单栏的Tools下的Board选择板卡Microduino-Core RF | *打开Arduino IDE编程软件,点击 【文件】->【打开】,打开MultiWii_CoreRF中的【MultiWii_RF】程序,在菜单栏的Tools下的Board选择板卡Microduino-Core RF | ||
第213行: | 第196行: | ||
|TFT连接线||1||连接 | |TFT连接线||1||连接 | ||
|} | |} | ||
− | + | ||
*其他设备 | *其他设备 | ||
{|class="wikitable" | {|class="wikitable" | ||
第233行: | 第216行: | ||
|TFT连接线||1||连接 | |TFT连接线||1||连接 | ||
|} | |} | ||
− | [[File: | + | [[File:Joypad物料.jpg|center|600px]] |
===Joypad搭建与调试=== | ===Joypad搭建与调试=== | ||
====Joypad搭建==== | ====Joypad搭建==== | ||
− | + | 给Joypad的Microduino-CorRF下载程序。 | |
− | * | + | *打开MultiWii_CoreRF中的【Joypad_RC】程序,在编译结束后,选择好板卡和端口进行直接下载 |
− | |||
− | |||
− | |||
− | *'''Step | + | *'''Step 1''':将Microduino-TFT从Microduino-Joypad面板后面卡进Microduino-Joypad面板上,用尼龙螺丝固定,注意Microduino-TFT安装方向 |
− | [[File: | + | [[File:Joypadstep1.jpg|center|600px]] |
− | + | '''注意:接不同的电池需要拨动中间的开关,在图中已有标志。需要先拨开关再接入电池,否则会影响使用。''' | |
− | *'''Step | + | [[File:Joypadstep1_1.jpg|center|800px]] |
− | [[File: | + | *'''Step 2''':将传感器接线插在Microduino-TFT的接口上 |
− | + | [[File:Joypadstep2.jpg|center|600px]] | |
− | *'''Step | + | *'''Step 3''':首先分别将两个摇杆按键、电池、四个白色按键放入对应位置,之后将连接好天线的nRF模块和Core装到Joypad底板上 |
− | + | [[File:Joypadstep3.jpg|center|600px]] | |
− | + | *'''Step 4''':将Microduino-TFT传感器接线的另一头接到底板上的相应位置,之后将长版螺丝帽放到四个角的相应位置 | |
− | [[File: | + | [[File:Joypadstep4.jpg|center|600px]] |
− | + | *'''Step 5''':将Joypad的表壳和底板使用螺丝和螺丝帽固定好 | |
− | *'''Step | + | [[File:Joypadstep5.jpg|center|600px]] |
− | [[File: | + | *'''Step 6''':组装完成后将天线上的贴纸撕下,将天线贴在底板背面的任意位置,至此Joypad组装完毕 |
− | + | [[File:Joypadstep6.jpg|center|600px]] | |
− | *'''Step | ||
− | [[File: | ||
====Joypad搭建调试==== | ====Joypad搭建调试==== | ||
− | * | + | *按键对应 |
− | * | + | 在打开Joypad之后的4秒左右时间之内按下Key1(下方最左侧的按键),会进入设置(Config)模式 |
− | | | + | [[File:Step1进入设置.jpg|600px|center|]] |
− | + | *进入设置模式 | |
+ | 按照图中的颜色,从左至右对应为Key1~Key4 | ||
+ | [[File:Step1按键对应.jpg|600px|center|]] | ||
+ | 注意:必须在进入操作界面前进入(4S左右时间)。若未进入则重启进入''' | ||
*摇杆校准 | *摇杆校准 | ||
− | + | 按动Key3和Key4使光标上下移动,Key1为返回,Key2为确认 | |
+ | 选择第一项Joystick Config进入摇杆设置模式 | ||
+ | 继续选择Joystick Correct进入摇杆校准模式。 | ||
+ | 进入之后会显示如图中第三张图所示的界面,初始状态为两个十字 | ||
+ | 此时摇动左右摇杆至最上,最下,最左,最右四个极限状态 | ||
+ | (推荐操作方式:将摇杆摇动一圈) | ||
+ | 摇动之后会看到十字的四个方向出现圆圈,圆圈扩大到最大状态证明已经是摇杆的极限位置 | ||
+ | 校准之后按Key2确认并返回上一页面 | ||
+ | [[File:Step2摇杆校准.jpg|600px|center|]] | ||
*选择控制模式 | *选择控制模式 | ||
− | + | 按Key1回到主界面,选择第二项Protocol Config进入模式选择 | |
− | * | + | 选择第一项Mode,之后选择Quodro即四轴飞行器控制模式,按下Key2确认并返回 |
− | + | [[File:Step3设置四轴模式.jpg|600px|center|]] | |
− | [[File: | + | *设置通信信道 |
+ | 返回二级菜单,选择Quodrotor Channel按下Key2确认 | ||
+ | 选择12,它是与MultiWii.h中"#define RF_Channel 12"中的设置相对应的 | ||
+ | [[File:Step4通信通道设置.jpg|600px|center|]] | ||
至此,飞行控制器和遥控器已经组装完成,接下来便是将两者结合起来,开始试飞,除了练习使用操纵杆,还要观察飞行器实际的飞行状态,以便进一步优化PID等参数。 | 至此,飞行控制器和遥控器已经组装完成,接下来便是将两者结合起来,开始试飞,除了练习使用操纵杆,还要观察飞行器实际的飞行状态,以便进一步优化PID等参数。 | ||
第300行: | 第292行: | ||
打开手机蓝牙,打开四轴控制App,可以发现Microduino的蓝牙设备。 | 打开手机蓝牙,打开四轴控制App,可以发现Microduino的蓝牙设备。 | ||
− | [[File:app_microduino.png|center| | + | [[File:app_microduino.png|center|600px]] |
点击Microduino,进行蓝牙连接,进入控制界面,连接成功之后,屏幕出现“Reday”提示即可开始对四轴解锁。 | 点击Microduino,进行蓝牙连接,进入控制界面,连接成功之后,屏幕出现“Reday”提示即可开始对四轴解锁。 | ||
− | [[File:Qua_app-ready.png|center| | + | [[File:Qua_app-ready.png|center|600px]] |
电机Locked对四轴解锁,解锁之后四轴底板上的蓝色指示灯常亮,解锁成功,如果屏幕出现“Unlocked”,请重新尝试解锁。 | 电机Locked对四轴解锁,解锁之后四轴底板上的蓝色指示灯常亮,解锁成功,如果屏幕出现“Unlocked”,请重新尝试解锁。 | ||
解锁后,中间摇杆往上推就可以加油门,四轴就可以飞起来,前后左右则通过重力感应来控制。 | 解锁后,中间摇杆往上推就可以加油门,四轴就可以飞起来,前后左右则通过重力感应来控制。 | ||
− | [[File:Qua_app-ok.png|center| | + | [[File:Qua_app-ok.png|center|600px]] |
+ | |||
+ | ==程序说明== | ||
==注意问题== | ==注意问题== | ||
第320行: | 第314行: | ||
**遥控解锁前请先把左上边开关拨到下面(关闭油门),开始试飞请先把油门调到最低,避免解锁后油门值太大起飞发生意外。 | **遥控解锁前请先把左上边开关拨到下面(关闭油门),开始试飞请先把油门调到最低,避免解锁后油门值太大起飞发生意外。 | ||
*当你想关掉飞行器,请一定要先断开四轴的电源,再断开遥控器电源,否则会使四旋翼飞行器失控,容易发生意外。 | *当你想关掉飞行器,请一定要先断开四轴的电源,再断开遥控器电源,否则会使四旋翼飞行器失控,容易发生意外。 | ||
+ | 若出现其他问题,欢迎在讨论部分提出 | ||
|} | |} |
2016年9月6日 (二) 07:50的最新版本
Language | English |
---|
概述四旋翼飞行器,又称为四旋翼直升机,顾名思义,是一种具备4个螺旋桨的飞行器,与直升机类似,可以完成空中悬停、飞行的动作。传统直升机会用一个主桨来产生推力,用一个尾桨来抵消主桨产生的扭矩(即锁尾),而四旋翼飞行器对角螺旋桨采用正反桨设计,从而不需要额外的机构进行“锁尾”。4个螺旋桨呈十字形对称分布,1和2 号桨逆时针转动,而3和4号桨顺时针转动,但4个螺旋桨产生的推力相同时,两组正反桨对机身所施加的反扭矩两两抵消,使得绕垂直方向旋转的反扭矩平衡,从而确保了航向的稳定。 | |||||||||||||||||||||||||||||||||||||||||||||
根据飞行器自定义的首尾方向,可以将四旋翼飞行器分为十字模式和X字模式两种。十字模式意味着首尾的方向会指向某个螺旋桨,而X字模式则是指首尾方向指向两个螺旋桨中间。 | |||||||||||||||||||||||||||||||||||||||||||||
大多数飞行器采用的是X字模式。X字模式相对于十字模式来说,控制起来更加困难,但动作的灵活性会更高。
原理系统架构如图是四旋翼飞行器的结构简图。飞行器包括主要包括遥控器(航模遥控)、飞行控制器以及四个电机组成。而飞行控制器又包括微控制器、遥控信号接收模块、传感器模块(陀螺仪、加速度计、电子罗盘和GPS定位模块)和电机驱动模块。 飞行原理垂直运动即飞行器垂直上升或下降。正如前文所说的,四个电机保持在同一转速,就能够在水平方向上保持稳定。如图2.2.1所示,如果四个电机增加到在同一个转速,产生的推力足以克服飞行器自身的重力,便能够上升;反之,如果四个电机同时降低到同一个速度,产生的推力无法克服飞行器的重力,便可以下降。如果外界没有其他的扰动,四个电机产生的推力恰好克服飞行器的重力,这样,飞行器就可以悬停在空中。 | |||||||||||||||||||||||||||||||||||||||||||||
只要让四个电机保持在相同转速,便能够让飞行器平稳地垂直运动,相对来说比较简单。
前后运动和侧向运动电机1为飞行器头部,而电机2为飞行器尾部。
偏航运动前面介绍的三种运动都是空间三个轴上的平移,接下来要介绍的三种运动是绕着三轴的旋转。 | |||||||||||||||||||||||||||||||||||||||||||||
偏航运动就是在水平方向上的左右转动,即绕着Z轴的旋转。旋翼在转动的过程中,由于空气阻力的作用,会形成与转动方向相反的反扭矩。偏航运动就是利用反扭矩实现的。当飞行器悬停时,4个电机的转速相同,两组正反扭矩相互抵消,维持平衡。当四个电机转速不完全相同时,不平衡的反扭力会引起四旋翼飞行器水平转动,从而实现偏航运动。如图所示,提升电机1和2的转速,同时降低电机3和4的转速,1和2 电机产生的顺时针反扭矩大于3和4电机产生的逆时针反扭矩,而且总的向上推力没有发生变化,于是机身在水平面上顺时针转动,又不会出现垂直位移。逆时针转动正好相反。
俯仰运动和滚转运动俯仰运动是指在Y轴上的旋转,而滚转运动则是在X轴上旋转。 | |||||||||||||||||||||||||||||||||||||||||||||
如图所示,提升电机1的转速,降低电机2的转速,两者转速的变化量应该一样,同时保持电机3和4转速不变。机身头部的推力大于尾部的推力,不平衡的力矩使得机身仰起。同样的,俯身运动则是降低电机1的转速,而提升电机2的转速,产生一个向前倾的力矩。 | |||||||||||||||||||||||||||||||||||||||||||||
同样是因为中心对称的缘故,滚转运动与俯仰运动的原理一样。维持电机1和2的转速不变,改变电机3和4的转速,产生不平衡的力矩,使得机身绕着X轴做出滚转的运动。
控制流程遥控器发出控制命令,比如起飞、向左飞等等,控制信号通过无线接收
| |||||||||||||||||||||||||||||||||||||||||||||
因为四旋翼飞行器的四个电机组合控制才能实现6个方向的运动,是一个欠驱动系统,必须要有一个飞行控制器来控制整个系统。 | |||||||||||||||||||||||||||||||||||||||||||||
在飞行控制器中,传感器,如陀螺仪和加速度计,是必须的。微控制器计算这两个传感器所传来的数据,获得当前飞行器的姿态,然后通过PID等算法调整电机的转速,以保持飞行器的稳定。当然还可以加入电子罗盘掌握机身的方向,加入GPS模块确定飞行器的地理位置。所以简单来说,四旋翼飞行器是一个具备两个闭环控制的系统,大环由遥控接收设备注入输入量,小环由姿态传感器注入输入量。 | |||||||||||||||||||||||||||||||||||||||||||||
当然,这个过程中也有一些技术细节需要设计,比如传感器读入的数据需要进行滤波、俯仰(Pitch)、滚转(Roll)、偏航(Yaw)等动作的PID算法设计及调整。这是一个较复杂的综合系统,如果玩家想在理论方面从零开始学习则需要介绍许许多多,受篇幅所限,请参考相关资料,这里就不详细介绍了。 | |||||||||||||||||||||||||||||||||||||||||||||
总的来说,所使用四旋翼飞行套件包括飞行器和遥控器两大部分,两者通过CoreRF传输控制指令。 | |||||||||||||||||||||||||||||||||||||||||||||
飞行器主要由带4个电机的机架、Microduino-CoreRF和Microduino-10DOF等模块组成。其中Microduino-10DOF集成了四种传感器,分别是三轴加速度+三轴陀螺仪传感器(MPU6050)、磁场强度传感器(HMC5883L)、数字气压传感器(BMP180)。通过I2C进行通信。 | |||||||||||||||||||||||||||||||||||||||||||||
MPU6050是其中最主要的姿态传感器,内部集成了三轴加速度计和三轴陀螺仪,不仅消除了组合加速度计和陀螺仪时容易出现的对准误差,而且内置了可编程的低通滤波器,即使在飞行器经受较大振动时,控制程序通过配置适当频率的低通滤波器,可以滤掉高频振动。这种处理方式可以减小四旋翼飞行器自身的振动对陀螺仪数据产生的影响。
四轴飞行器机架搭建与调试四旋翼飞行器材料清单
程序下载调试
Microduino-USBTTL下载模块在下载程序和串口调试校准四轴的时候才用到,其他时候可以不叠加。 校正四旋翼飞行器准备
注意:文件需使用JAVA开发环境打开,没有JAVA开发环境可以选择Microduino_Joypad_QuadCopter\java环境安装。 传感器校准
设置PID参数直接LOAD配置文件,点击LOAD,浏览到你下载你配置文件夹选择pkj.mwi导入,如图所示: 设置飞行模式 | |||||||||||||||||||||||||||||||||||||||||||||
在调整PID的右侧点击”SELECT SETTING”(下图右下)我们可以看到各种飞行模式以及对应辅助开关的一个二维表。一个开关或者多个开关的组合可以指定为一种飞行模式。我们建议玩家按照下图设置飞行模式。 | |||||||||||||||||||||||||||||||||||||||||||||
设置方法为在方块处点击鼠标左键,灰色的方块就会变成白色,如下图点击3个白色方块处(本应为灰色)。 | |||||||||||||||||||||||||||||||||||||||||||||
这样就指定了在这样的开关方位时处于对应的飞行模式。ANGLE是增稳模式,这有助于我们飞行。设置好点击WRITE以将数值写入飞控。
设置完飞行模式后,关闭MultiWiiConf串口连接,可以取下Microduino-USBTTL模块。完成了整个飞行控制器的组装和调试。 使用传感器值排除故障这种方法有助于排除飞行器在方向上出现的问题。它可以用来显示控制板安装的方向正确是否正确,或者有没有在“config.h”中选择正确的控制板类型。
遥控器(Microduino-Joypad)搭建与调试前面已经提及,遥控器由控制板(Microduino-Joypad)、微控制器(Microduino-CoreRF)、显示模块(Microduino-TFT)、以及下载调试模块(Microduino-USBTTL)组成。
Joypad搭建与调试Joypad搭建给Joypad的Microduino-CorRF下载程序。
注意:接不同的电池需要拨动中间的开关,在图中已有标志。需要先拨开关再接入电池,否则会影响使用。
Joypad搭建调试
在打开Joypad之后的4秒左右时间之内按下Key1(下方最左侧的按键),会进入设置(Config)模式
按照图中的颜色,从左至右对应为Key1~Key4 注意:必须在进入操作界面前进入(4S左右时间)。若未进入则重启进入
按动Key3和Key4使光标上下移动,Key1为返回,Key2为确认 选择第一项Joystick Config进入摇杆设置模式 继续选择Joystick Correct进入摇杆校准模式。 进入之后会显示如图中第三张图所示的界面,初始状态为两个十字 此时摇动左右摇杆至最上,最下,最左,最右四个极限状态 (推荐操作方式:将摇杆摇动一圈) 摇动之后会看到十字的四个方向出现圆圈,圆圈扩大到最大状态证明已经是摇杆的极限位置 校准之后按Key2确认并返回上一页面
按Key1回到主界面,选择第二项Protocol Config进入模式选择 选择第一项Mode,之后选择Quodro即四轴飞行器控制模式,按下Key2确认并返回
返回二级菜单,选择Quodrotor Channel按下Key2确认 选择12,它是与MultiWii.h中"#define RF_Channel 12"中的设置相对应的 至此,飞行控制器和遥控器已经组装完成,接下来便是将两者结合起来,开始试飞,除了练习使用操纵杆,还要观察飞行器实际的飞行状态,以便进一步优化PID等参数。 整体测试
手机蓝牙控制
将BT模块叠加到校准好的四轴上(四轴校准参考上文)。然后将四轴放置在平稳的地方,等待蓝牙连接。 打开手机蓝牙,打开四轴控制App,可以发现Microduino的蓝牙设备。 点击Microduino,进行蓝牙连接,进入控制界面,连接成功之后,屏幕出现“Reday”提示即可开始对四轴解锁。 电机Locked对四轴解锁,解锁之后四轴底板上的蓝色指示灯常亮,解锁成功,如果屏幕出现“Unlocked”,请重新尝试解锁。 解锁后,中间摇杆往上推就可以加油门,四轴就可以飞起来,前后左右则通过重力感应来控制。 程序说明注意问题尽管在前面的内容中列出了不少要注意的一些问题,这里再总结一下。
若出现其他问题,欢迎在讨论部分提出 |