串口命令行的使用

蓝玫瑰驱动板,命令行接口
命令行接口会在可以输入的时候提示“:>”
编辑
help
help命令会返回一个所有的命令列表
编辑
calibrate
校正 返回编码器的200个的校正数据。电机最开始需要转动一圈来确定每个步数的具体角度,默认是一圈200步
编辑
testcal
测试校正 输入此命令。电机会转动一圈进行测试校正,返回最大误差角度值
编辑
step
移动一步 顺时针移动一步,步长基于当前的microstep设置。 逆时针移动使用“step 1”。 顺时针移动电机16步使用“step 0 16”,逆时针移动电机16步使用“step 1 16”
编辑
readpos
读取角度 读取当前的角度值
编辑
ctrlmode
获取/设置反馈控制器操作模式。该命令采用从0到4的整数,按照下表设置控制模式:
控制器关闭 – 0 – 当前固件没有使用 开环 – 1 – 这是开环,没有反馈 简单PID – 2 – 简单位置PID,出厂默认值 位置PID – 3 – 基于电流的PID模式,需要调整您的机器 速度PID – 4 – 基于速度的PID,需要调整您的机器和速度范围
如果您不确定您在做什么,请在简单PID操作模式下操作。
编辑
move
电机移动到绝对角度位置。可选地,用户可以指定移动的旋转速度(RPM)。 例如,如果当前电机位置为角度0,并发出“move 3600”,电机将顺时针旋转10圈,角度为3600度。如果再次发出“move 3600”,则不会发生任何事情,因为电动机已经处于角度3600.如果电动机处于角度0并且用户发出命令“移动3600 20”,则电动机将以 20RPM速率 顺时针 移动10圈 到3600角度。
编辑
getcal
获取校正角度数据 这个命令会显示200处校正角度数据的表格。如果你在开发固件,而且不想每次上传完固件后都要校正角度,那么可以在固件中`nonvolatile.cpp`文件:
//we use this so we can hard code calibration table
 
// be sure to set the last word as status flag
 
// this save time calibrating each time we do a code build
 
#ifdef NZS_FAST_CAL
 
__attribute__((__aligned__(FLASH_ROW_SIZE))) const uint16_t NVM_flash[16640]={  //allocates 33280 bytes
 
#else
 
__attribute__((__aligned__(FLASH_ROW_SIZE))) const uint16_t NVM_flash[256]={  //allocates 512 bytes
 
#endif
 
//insert the getcal command calibration data here 22064,22378,22734,23065,23433,23756,24120,24456,24827,25150,25512,25841,26203,26520,26869,27191,27543,27853,28197,28513,28861,29169,29508,29823,30172,30477,30819,31136,31483,31790,32131,32447,32794,33099,33439,33755,34102,34409,34748,35061,35405,35709,36046,36357,36701,37005,37341,37655,37999,38302,38639,38952,39295,39599,39938,40251,40598,40906,41250,41566,41921,42230,42575,42896,43247,43557,43902,44223,44575,44881,45225,45541,45889,46192,46530,46843,47187,47489,47824,48138,48479,48783,49122,49436,49783,50088,50427,50739,51083,51384,51719,52028,52366,52668,53003,53314,53660,53965,54310,54626,54981,55292,55640,55966,56324,56640,56992,57319,57681,57998,58352,58685,59051,59371,59732,60062,60424,60739,61089,61408,61759,62066,62409,62725,63074,63381,63725,64042,64394,64701,65043,65357,167,467,803,1111,1450,1751,2087,2399,2745,3049,3392,3711,4063,4372,4720,5042,5396,5708,6059,6384,6744,7055,7407,7728,8081,8387,8727,9036,9375,9670,10000,10302,10635,10930,11255,11559,11892,12185,12513,12814,13147,13438,13762,14060,14389,14675,14996,15294,15621,15908,16228,16529,16858,17148,17478,17785,18124,18425,18762,19077,19425,19730,20073,20390,20739,21049,21393,21714,
 
0xFFFF //for the valid flag
};
编辑
feedback
反馈 启动/关闭 闭环反馈控制。 未来计划取消这个命令,使用“controlmode”命令来让控制器选择开启或者各种闭环反馈模式。
编辑
encoderdiag
编码器诊断 读取AD5047D内部寄存器的值,处于诊断的目的。
编辑
microsteps
细分值 获取或者设置 步进电机驱动器的微步细分的值,当使用step命令或者step引脚的时候。微步数不影响控制器的分辨率,而是可以设置位置的精细程度。
编辑
spid
设置Kp,Ki,和Kd—对于`简单位置PID`控制器
编辑
ppid
设置Kp,Ki,和Kd—对于`位置PID`控制器
编辑
vpid
设置Kp,Ki,和Kd—对于`速度PID`控制器
编辑
velocity
当设置为`速度PID`操作模式时,此参数设置旋转电机的速度。
编辑
boot
使微处理器进入boot loader(引导加载程序)模式。或者,这可以通过双按复位按钮来完成。
编辑
factoryreset
将擦除校准和其他系统和电机参数,以便将设备重置为出厂状态。在该命令之后,该单元将需要再次校准到电动机。
编辑
dirpin
dir引脚方向
此命令设置当方向引脚拉高时,电机将旋转的方向。方向引脚仅在步进引脚具有上升沿时采样。 ‘dirpin 0’将设置电机在dir引脚为高电平时顺时针旋转 ‘dirpin 1’将设置电机在dir引脚为高电平时逆时针旋转
编辑
errorlimit
可接受的最大错误差值,当error引脚设置为错误输出时,超出误差范围时会输出到error引脚。 errorlimit 1.8 将错误限制设置为1.8度。
编辑
maxcurrent
这将设置驱动电机的最大电流。 “maxcurrent 2000” 将电流设置为最大值2.0A单位为毫安。
编辑
holdcurrent
对于简单位置PID模式,最小电流(即没有位置误差的电流)就是保持电流。您可根据应用所需的保持扭矩设置此电流。保持电流越高,电机越热并且噪声越大,但保持转矩也越大。 对于位置PID模式,必须正确设置PID调节参数,以使反馈控制器动态的确定保持转矩。 PID的这种调参可能是困难的,因此简单的PID模式将通过设置最大电流和保持电流在大多数时间开箱即用。
编辑
motorwiring
固件始终使用正角度作为顺时针旋转。然而,步进电机可能在插线的时候插反,这将使电机操作彼岸反。智能步进器固件将使用编码器检测电机接线方向,固件将修正反向连线电机。工厂复位后,首次上电时检测电机的反向或正向接线。如果接线后更改,您可以使用此命令进行修改。
然而,如果接线改变,最好做出厂复位和重新校准电机。
编辑
stepsperrotation
智能步进器固件将在出厂复位后首次开机检测步进电机每转的完整步数,并存储在flash中。此命令将从flash读取此参数,并允许用户在电机更改时更改此参数。
然而,如果电机更换,最好进行恢复出厂设置并重新校准电机。
编辑
stop
如果用户move命令输错了而且需要很长时间,并想要在完成之前停止移动的移动命令,则用户可以发出停止移动操作的停止命令。
编辑
setzero
该命令将获取当前电机位置并将其设置为绝对零角度。注意,如果你在中间移动,它将采取命令时的位置并使用它,因此建议在发出setzero之前停止移动或等待完成。
参考:http://misfittech.net/2017/01/12/firmware-updates/