本文为在用龙芯1c做3D打印机过程中的笔记。龙芯1c做的3d打印机简称“龙印”,Git地址“http://git.oschina.NET/caogos/marlin_ls1c”

理论分析

S曲线算法的核心思想是让加速度不产生突变,从而使被控对象的速度控制具有快速、平稳的特性。这就回答了为什么要使用S曲线的原因。

常见的S曲线有抛物线型和三角函数型。这里主要探讨抛物线型。这里说的抛物线指的是速度曲线为抛物线,加速度的曲线却为梯形曲线。同样marlin中使用的梯形曲线也指的是速度曲线。

注意观察与后面的抛物线型S曲线的异同。

本文参考以下论文

七段式抛物线型S曲线

常见的需求是从一点(一个坐标)运动到灵一点(另一个坐标),要求用最短的时间,但是最大速度不能超过某个值。

在实际应用中,如果需要运动的距离太短,可能还来不及加速度最大速度,甚至加速度都还没达到最大值。这时可能就没有加加速阶段或者匀速阶段等。那么实际的速度曲线可能就是六段式,五段式,四段式抛物线型S曲线。

这就要求在路径规划时,需要根据每条路径的长短情况,选择不同的抛物线型S曲线。

其它网友有一种方案——将S曲线做成一张表,然后查表,实现S曲线加减速。假设每个路径的起点和终点速度都是v0,即从v0加速后再减速到v0。现在有两个不同长度的路径,但用的却是同一个表,同一个抛物线曲线,这会造成速度是连续的。加速度不连续,这点不太好理解,慢慢理解吧,呵呵!

六段式抛物线型S曲线

五段式抛物线型S曲线

四段式抛物线型S曲线

下面以四段式抛物线型S曲线为例详细讲解

从0到t1

[0,t1]

加速度的加速度=h_max

a(t)=h_max*t

对a(t)求积分

v(t)=h_max/2*t*t+c

将(0,v0)代入,求得c=v0

所以,v(t)=h_max/2*t*t+v0

对v(t)求积分

s(t)=h_max/2/3*t*t*t+v0*t+c

将(0,0)代入,求得c=0

所以,s(t)=h_max/6*t*t*t+v0*t

[0,t1]之间的距离S = s(t1)-S(0) = s(t1) = h_max/6*t1*t1*t1 + v0*t1

在t=t1时,

a(t1)=h_max*t1

v(t1)=h_max/2*t1*t1+v0

s(t1)=h_max/6*t1*t1*t1+v0*t1

从t1到t2

[t1,t2]

a(t)=k*t+b

将(t1,h_max*t1)和(2*t1,0)代入,求得

k=-h_max

b=2*h_max*t1

那么,a(t)=-h_max*t+2*h_max*t1

对a(t)积分

v(t)=-h_max/2*t*t+2*h_max*t1*t+c

将t=t1时的速度代入,(t1,h_max/2*t1*t1+v0)

h_max/2*t1*t1+v0=h_max/2*t1*t1+2*h_max*t1*t1+c

求得

c = v0 - h_max*t1*t1

所以,v(t)=-h_max/2*t*t + 2*h_max*t1*t + v0-h_max*t1*t1

对v(t)积分

s(t)=-h_max/2/3*t*t*t + 2*h_max*t1/2*t*t + (v0-h_max*t1*t1)*t + c

=-h_max/6*t*t*t + h_max*t1*t*t + (v0-h_max*t1*t1)*t + c

将t=t1时的距离代入,(t1,h_max/6*t1*t1*t1+v0*t1)

h_max/6*t1*t1*t1 + v0*t1 = -h_max/6*t1*t1*t1 + h_max*t1*t1*t1 + (v0-2*h_max*t1*t1)*t1 + c

求得

c = 1/3*h_max*t1*t1*t1

所以,s(t)=-h_max/6*t*t*t + h_max*t1*t*t + (v0-h_max*t1*t1)*t + 1/3*h_max*t1*t1*t1

[t1,t2]之间的距离

S = s(t2) - s(t1)

= s(2*t1) - s(t1)

=[-h_max/6*(2*t1)*(2*t1)*(2*t1) + h_max*t1*(2*t1)*(2*t1) + (v0-h_max*t1*t1)*(2*t1)]

- [-h_max/6*t1*t1*t1 + h_max*t1*t1*t1 + (v0-h_max*t1*t1)*t]

=5/6*h_max*t1*t1*t1 + v0*t1

[0,t2]的距离

S[0,t1] + S[t1,t2]

=[h_max/6*t1*t1*t1 + v0*t1] + [5/6*h_max*t1*t1*t1 + v0*t1]

=h_max*t1*t1*t1 + 2*v0*t1

再回顾下v(t1)=h_max/2*t1*t1+v0,仔细对比你会发现[0,t2]的距离S=2*v(t1)*t1,其中t2=2*t1。

用一个实际例子验证前面的公式

假设

v0=6

h_max=5

t1=7

t2=14

在区间[0,7]

加速度公式

a(t)=5t

v(t)=5/2*t*t+c

代入(0,6)

6=c

速度公式

v(t)=2.5*t*t+6

s(t)=2.5/3*t*t*t+6t+c

代入(0,7)

s(t)=5/6*t*t*t+6t+7

[0,7]的距离

S=s(7)-s(0)

= (5/6*7*7*7 + 6*7 + 7) - (7)

= 5/6*7*7*7 + 6*7

= 327.83

t=7时

a(7)=35

v(7)=128.5

s(7)=2009/6=334.83

在区间[7,14]

a(t)=kx+b

代入(7,35)和(14,0)

35=7k+b

0=14k+b

k=-5

b=70

加速度公式

a(t)=-5t+70

v(t)=-5/2*t*t+70*t+c

代入(7,128.5)

128.5=-5/2*7*7+70*7+c

c=-239

速度公式

v(t)=-5/2*t*t+70*t-239

s(t)=-5/2/3*t*t*t+70/2*t*t-239*t+c

=-5/6*t*t*t + 35*t*t -239*t + c

代入(7,2009/6)

2009/6=-5/6*7*7*7 + 35*7*7 - 239*7 + c

=-1715/6 + 1715 - 1673 + c

=-1715/6 + 42 + c

c = 2009/6 + 1715/6 + 42

= 3724/6 + 42

= 662.67

面积公式

s(t)=-5/6*t*t*t + 35*t*t - 239*t + c

[7,14]的面积

S=s(14)-s(7)

= (-5/6*14*14*14 + 35*14*14 - 239*14 + c) - (-5/6*7*7*7 + 35*7*7 - 239*7 + c)

= -13720/6 + 3514 - (-1715/6 + 42)

= -13720/6 + 3514 + 1715/6 - 42

=-12005/6 + 3472

=-2000.83 + 3472

=1471.17

[0,14]的距离

[0,7]的距离+[7,14]的距离

S = 327.83 + 1471.17

= 1799

应用前面推论得到的公式

S = h_max*t1*t1*t1 + 2*v0*t1

= 5*7*7*7+2*6*7

= 1799

根据推论:[0,t2]的距离S=2*v(t1)*t1,其中t2=2*t1

S=2*v(7)*7=2*128.5*7=1799

实际计算结果和以上推论是相符合的,说明公式是正确的。

实现

用定点运算代替浮点运算

四段式抛物线型S曲线

假设,步进电机的初始速度v0=10mm/s,最大速度为100mm/s,最大加速度为20mm/s2,加速度的加速度h_max=10mm/s3。

由四段式抛物线的加速度曲线可知:当t=t1时加速度最大,即a(t1)=h_max*t1=10*t1=20mm/s2,求得t1=2s。

从0到t1

以加加速阶段为例,看看如何在中断中计算定时器的周期

根据T=s/v,即时间=运行的距离/速度

再有,给步进电机一个脉冲,步进电机走一步,即定时器的定时时间内,步进电机运行的距离为一个(微)步。步进电机一个微步的距离micro_step_mm=0.01mm,即s=0.01mm。

速度v可以用加加速阶段的速度计算公式v(t)=h_max/2*t*t+v0=10/2*t*t+10=5*t*t+10。

综上所述,定时器周期T=s/v=0.01/(5*t*t+10),单位为秒。

将定时器周期T转换为微秒T_us=T*1000000=0.01*1000000/(5*t*t+10)=10000/(5*t*t+10),

再将时间t转换为微秒t_us后得,

T_us

= 10000 / (5*(t_us/1000000)*(t_us/1000000)+10)

= 10000 / (5*t_us*t_us/1000000/1000000+10)

为避免t_us*t_us溢出,将t_us/1000再相乘,变换后得

T_us=10000/(5*(t_us/1000)*(t_us/1000)/1000/1000 + 10)

当t_us<10秒时,不会溢出。10s可以跑很远了,对大部分打印机来说,一条G指令执行时间不会超过10s。

虽然龙芯1c定时器的时钟频率为126Mhz,定时精度小于1us,但对于3d打印机来说,精度为1us就已经足够了,如果将定时器时间改为纳秒级,时间值就是很大的整数,t_ns*t_ns很容易溢出。所以将定时器精度定为1us。

计算定时器周期T_us的表达式中,中分母最小为10。当分母为11时,计算得到的T_us=909,与分母为10时的T_us=1000相差很大。

为了进一步减小误差,将分子分母同时乘以100,得

T_us=10000*100/(100 * (5*(t_us/1000)*(t_us/1000)/1000/1000+10) )

整理后得

T_us=1000000/(5*(t_us/1000)*(t_us/1000)/10000+1000)

分母最小为1000,对应的T_us=1000us,当分母为1001时,T_us=999us,由此可知已达到定时器周期精度为1us的要求。这很重要,如果计算出来的定时器周期跳变很大,也会导致步进电机加速度不连续,即实现的和理论的偏差很大,那样的话就失去了抛物线加减速的意义了。

// 测试驱动中进行定点运算

static void motor_test(void)

{

unsigned int t_i_us;

unsigned int t_sum_us;

unsigned int T_i_us;

int i;

t_sum_us = 1000;

i=1;

for ( ; 1000000>t_sum_us; )

{

t_i_us = t_sum_us;

T_i_us = 1000000 / (5*(t_i_us/1000)*(t_i_us/1000)/10000+1000);

t_sum_us += T_i_us;

printk(KERN_INFO "[%s] i=%d, t_sum_us=%d, T_i_us=%d\n", __FUNCTION__, i, t_sum_us, T_i_us);

i++;

}

return ;

}

测试结果

[LOONSON@3DPrinter:~]#/test/3dprinter_app

[motor_test] i=1, t_sum_us=2000, T_i_us=1000

[motor_test] i=2, t_sum_us=3000, T_i_us=1000

[motor_test] i=3, t_sum_us=4000, T_i_us=1000

[motor_test] i=4, t_sum_us=5000, T_i_us=1000

[motor_test] i=5, t_sum_us=6000, T_i_us=1000

[motor_test] i=6, t_sum_us=7000, T_i_us=1000

[motor_test] i=7, t_sum_us=8000, T_i_us=1000

[motor_test] i=8, t_sum_us=9000, T_i_us=1000

[motor_test] i=9, t_sum_us=10000, T_i_us=1000

[motor_test] i=10, t_sum_us=11000, T_i_us=1000

[motor_test] i=11, t_sum_us=12000, T_i_us=1000

[motor_test] i=12, t_sum_us=13000, T_i_us=1000

[motor_test] i=13, t_sum_us=14000, T_i_us=1000

[motor_test] i=14, t_sum_us=15000, T_i_us=1000

[motor_test] i=15, t_sum_us=16000, T_i_us=1000

[motor_test] i=16, t_sum_us=17000, T_i_us=1000

[motor_test] i=17, t_sum_us=18000, T_i_us=1000

[motor_test] i=18, t_sum_us=19000, T_i_us=1000

[motor_test] i=19, t_sum_us=20000, T_i_us=1000

[motor_test] i=20, t_sum_us=21000, T_i_us=1000

[motor_test] i=21, t_sum_us=22000, T_i_us=1000

[motor_test] i=22, t_sum_us=23000, T_i_us=1000

[motor_test] i=23, t_sum_us=24000, T_i_us=1000

[motor_test] i=24, t_sum_us=25000, T_i_us=1000

[motor_test] i=25, t_sum_us=26000, T_i_us=1000

[motor_test] i=26, t_sum_us=27000, T_i_us=1000

[motor_test] i=27, t_sum_us=28000, T_i_us=1000

[motor_test] i=28, t_sum_us=29000, T_i_us=1000

[motor_test] i=29, t_sum_us=30000, T_i_us=1000

[motor_test] i=30, t_sum_us=31000, T_i_us=1000

[motor_test] i=31, t_sum_us=32000, T_i_us=1000

[motor_test] i=32, t_sum_us=33000, T_i_us=1000

[motor_test] i=33, t_sum_us=34000, T_i_us=1000

[motor_test] i=34, t_sum_us=35000, T_i_us=1000

[motor_test] i=35, t_sum_us=36000, T_i_us=1000

[motor_test] i=36, t_sum_us=37000, T_i_us=1000

[motor_test] i=37, t_sum_us=38000, T_i_us=1000

[motor_test] i=38, t_sum_us=39000, T_i_us=1000

[motor_test] i=39, t_sum_us=40000, T_i_us=1000

[motor_test] i=40, t_sum_us=41000, T_i_us=1000

[motor_test] i=41, t_sum_us=42000, T_i_us=1000

[motor_test] i=42, t_sum_us=43000, T_i_us=1000

[motor_test] i=43, t_sum_us=44000, T_i_us=1000

[motor_test] i=44, t_sum_us=45000, T_i_us=1000

[motor_test] i=45, t_sum_us=45999, T_i_us=999

[motor_test] i=46, t_sum_us=46998, T_i_us=999

[motor_test] i=47, t_sum_us=47997, T_i_us=999

[motor_test] i=48, t_sum_us=48996, T_i_us=999

[motor_test] i=49, t_sum_us=49995, T_i_us=999

[motor_test] i=50, t_sum_us=50994, T_i_us=999

[motor_test] i=51, t_sum_us=51993, T_i_us=999

[motor_test] i=52, t_sum_us=52992, T_i_us=999

[motor_test] i=53, t_sum_us=53991, T_i_us=999

[motor_test] i=54, t_sum_us=54990, T_i_us=999

[motor_test] i=55, t_sum_us=55989, T_i_us=999

[motor_test] i=56, t_sum_us=56988, T_i_us=999

[motor_test] i=57, t_sum_us=57987, T_i_us=999

[motor_test] i=58, t_sum_us=58986, T_i_us=999

[motor_test] i=59, t_sum_us=59985, T_i_us=999

[motor_test] i=60, t_sum_us=60984, T_i_us=999

[motor_test] i=61, t_sum_us=61983, T_i_us=999

[motor_test] i=62, t_sum_us=62982, T_i_us=999

[motor_test] i=63, t_sum_us=63981, T_i_us=999

[motor_test] i=64, t_sum_us=64980, T_i_us=999

[motor_test] i=65, t_sum_us=65978, T_i_us=998

[motor_test] i=66, t_sum_us=66976, T_i_us=998

[motor_test] i=67, t_sum_us=67974, T_i_us=998

[motor_test] i=68, t_sum_us=68972, T_i_us=998

[motor_test] i=69, t_sum_us=69970, T_i_us=998

[motor_test] i=70, t_sum_us=70968, T_i_us=998

[motor_test] i=71, t_sum_us=71966, T_i_us=998

[motor_test] i=72, t_sum_us=72964, T_i_us=998

[motor_test] i=73, t_sum_us=73962, T_i_us=998

[motor_test] i=74, t_sum_us=74960, T_i_us=998

[motor_test] i=75, t_sum_us=75958, T_i_us=998

[motor_test] i=76, t_sum_us=76956, T_i_us=998

[motor_test] i=77, t_sum_us=77954, T_i_us=998

[motor_test] i=78, t_sum_us=78952, T_i_us=998

[motor_test] i=79, t_sum_us=79949, T_i_us=997

[motor_test] i=80, t_sum_us=80946, T_i_us=997

[motor_test] i=81, t_sum_us=81943, T_i_us=997

[motor_test] i=82, t_sum_us=82940, T_i_us=997

[motor_test] i=83, t_sum_us=83937, T_i_us=997

[motor_test] i=84, t_sum_us=84934, T_i_us=997

[motor_test] i=85, t_sum_us=85931, T_i_us=997

[motor_test] i=86, t_sum_us=86928, T_i_us=997

[motor_test] i=87, t_sum_us=87925, T_i_us=997

[motor_test] i=88, t_sum_us=88922, T_i_us=997

[motor_test] i=89, t_sum_us=89919, T_i_us=997

[motor_test] i=90, t_sum_us=90916, T_i_us=997

[motor_test] i=91, t_sum_us=91912, T_i_us=996

[motor_test] i=92, t_sum_us=92908, T_i_us=996

[motor_test] i=93, t_sum_us=93904, T_i_us=996

[motor_test] i=94, t_sum_us=94900, T_i_us=996

[motor_test] i=95, t_sum_us=95896, T_i_us=996

[motor_test] i=96, t_sum_us=96892, T_i_us=996

[motor_test] i=97, t_sum_us=97888, T_i_us=996

[motor_test] i=98, t_sum_us=98884, T_i_us=996

[motor_test] i=99, t_sum_us=99880, T_i_us=996

[motor_test] i=100, t_sum_us=100876, T_i_us=996

[motor_test] i=101, t_sum_us=101871, T_i_us=995

[motor_test] i=102, t_sum_us=102866, T_i_us=995

[motor_test] i=103, t_sum_us=103861, T_i_us=995

[motor_test] i=104, t_sum_us=104856, T_i_us=995

[motor_test] i=105, t_sum_us=105851, T_i_us=995

[motor_test] i=106, t_sum_us=106846, T_i_us=995

[motor_test] i=107, t_sum_us=107841, T_i_us=995

[motor_test] i=108, t_sum_us=108836, T_i_us=995

[motor_test] i=109, t_sum_us=109831, T_i_us=995

[motor_test] i=110, t_sum_us=110826, T_i_us=995

[motor_test] i=111, t_sum_us=111820, T_i_us=994

[motor_test] i=112, t_sum_us=112814, T_i_us=994

[motor_test] i=113, t_sum_us=113808, T_i_us=994

[motor_test] i=114, t_sum_us=114802, T_i_us=994

[motor_test] i=115, t_sum_us=115796, T_i_us=994

[motor_test] i=116, t_sum_us=116790, T_i_us=994

[motor_test] i=117, t_sum_us=117784, T_i_us=994

[motor_test] i=118, t_sum_us=118778, T_i_us=994

[motor_test] i=119, t_sum_us=119772, T_i_us=994

[motor_test] i=120, t_sum_us=120765, T_i_us=993

[motor_test] i=121, t_sum_us=121758, T_i_us=993

[motor_test] i=122, t_sum_us=122751, T_i_us=993

[motor_test] i=123, t_sum_us=123744, T_i_us=993

[motor_test] i=124, t_sum_us=124737, T_i_us=993

[motor_test] i=125, t_sum_us=125730, T_i_us=993

[motor_test] i=126, t_sum_us=126723, T_i_us=993

[motor_test] i=127, t_sum_us=127716, T_i_us=993

[motor_test] i=128, t_sum_us=128708, T_i_us=992

[motor_test] i=129, t_sum_us=129700, T_i_us=992

[motor_test] i=130, t_sum_us=130692, T_i_us=992

[motor_test] i=131, t_sum_us=131684, T_i_us=992

[motor_test] i=132, t_sum_us=132676, T_i_us=992

[motor_test] i=133, t_sum_us=133668, T_i_us=992

[motor_test] i=134, t_sum_us=134660, T_i_us=992

[motor_test] i=135, t_sum_us=135652, T_i_us=992

[motor_test] i=136, t_sum_us=136643, T_i_us=991

[motor_test] i=137, t_sum_us=137634, T_i_us=991

[motor_test] i=138, t_sum_us=138625, T_i_us=991

[motor_test] i=139, t_sum_us=139616, T_i_us=991

[motor_test] i=140, t_sum_us=140607, T_i_us=991

[motor_test] i=141, t_sum_us=141598, T_i_us=991

[motor_test] i=142, t_sum_us=142589, T_i_us=991

[motor_test] i=143, t_sum_us=143579, T_i_us=990

[motor_test] i=144, t_sum_us=144569, T_i_us=990

[motor_test] i=145, t_sum_us=145559, T_i_us=990

[motor_test] i=146, t_sum_us=146549, T_i_us=990

[motor_test] i=147, t_sum_us=147539, T_i_us=990

[motor_test] i=148, t_sum_us=148529, T_i_us=990

[motor_test] i=149, t_sum_us=149519, T_i_us=990

[motor_test] i=150, t_sum_us=150508, T_i_us=989

[motor_test] i=151, t_sum_us=151497, T_i_us=989

[motor_test] i=152, t_sum_us=152486, T_i_us=989

[motor_test] i=153, t_sum_us=153475, T_i_us=989

[motor_test] i=154, t_sum_us=154464, T_i_us=989

[motor_test] i=155, t_sum_us=155453, T_i_us=989

[motor_test] i=156, t_sum_us=156441, T_i_us=988

[motor_test] i=157, t_sum_us=157429, T_i_us=988

[motor_test] i=158, t_sum_us=158417, T_i_us=988

[motor_test] i=159, t_sum_us=159405, T_i_us=988

[motor_test] i=160, t_sum_us=160393, T_i_us=988

[motor_test] i=161, t_sum_us=161381, T_i_us=988

[motor_test] i=162, t_sum_us=162369, T_i_us=988

[motor_test] i=163, t_sum_us=163356, T_i_us=987

[motor_test] i=164, t_sum_us=164343, T_i_us=987

[motor_test] i=165, t_sum_us=165330, T_i_us=987

[motor_test] i=166, t_sum_us=166317, T_i_us=987

[motor_test] i=167, t_sum_us=167304, T_i_us=987

[motor_test] i=168, t_sum_us=168291, T_i_us=987

[motor_test] i=169, t_sum_us=169277, T_i_us=986

[motor_test] i=170, t_sum_us=170263, T_i_us=986

[motor_test] i=171, t_sum_us=171249, T_i_us=986

[motor_test] i=172, t_sum_us=172235, T_i_us=986

[motor_test] i=173, t_sum_us=173221, T_i_us=986

[motor_test] i=174, t_sum_us=174207, T_i_us=986

[motor_test] i=175, t_sum_us=175192, T_i_us=985

[motor_test] i=176, t_sum_us=176177, T_i_us=985

[motor_test] i=177, t_sum_us=177162, T_i_us=985

[motor_test] i=178, t_sum_us=178147, T_i_us=985

[motor_test] i=179, t_sum_us=179132, T_i_us=985

[motor_test] i=180, t_sum_us=180116, T_i_us=984

[motor_test] i=181, t_sum_us=181100, T_i_us=984

[motor_test] i=182, t_sum_us=182084, T_i_us=984

[motor_test] i=183, t_sum_us=183068, T_i_us=984

[motor_test] i=184, t_sum_us=184052, T_i_us=984

[motor_test] i=185, t_sum_us=185036, T_i_us=984

[motor_test] i=186, t_sum_us=186019, T_i_us=983

[motor_test] i=187, t_sum_us=187002, T_i_us=983

[motor_test] i=188, t_sum_us=187985, T_i_us=983

[motor_test] i=189, t_sum_us=188968, T_i_us=983

[motor_test] i=190, t_sum_us=189951, T_i_us=983

[motor_test] i=191, t_sum_us=190934, T_i_us=983

[motor_test] i=192, t_sum_us=191916, T_i_us=982

[motor_test] i=193, t_sum_us=192898, T_i_us=982

[motor_test] i=194, t_sum_us=193880, T_i_us=982

[motor_test] i=195, t_sum_us=194862, T_i_us=982

[motor_test] i=196, t_sum_us=195844, T_i_us=982

[motor_test] i=197, t_sum_us=196825, T_i_us=981

[motor_test] i=198, t_sum_us=197806, T_i_us=981

[motor_test] i=199, t_sum_us=198787, T_i_us=981

[motor_test] i=200, t_sum_us=199768, T_i_us=981

[motor_test] i=201, t_sum_us=200749, T_i_us=981

[motor_test] i=202, t_sum_us=201729, T_i_us=980

[motor_test] i=203, t_sum_us=202709, T_i_us=980

[motor_test] i=204, t_sum_us=203689, T_i_us=980

[motor_test] i=205, t_sum_us=204669, T_i_us=980

[motor_test] i=206, t_sum_us=205649, T_i_us=980

[motor_test] i=207, t_sum_us=206628, T_i_us=979

[motor_test] i=208, t_sum_us=207607, T_i_us=979

[motor_test] i=209, t_sum_us=208586, T_i_us=979

[motor_test] i=210, t_sum_us=209565, T_i_us=979

[motor_test] i=211, t_sum_us=210544, T_i_us=979

[motor_test] i=212, t_sum_us=211522, T_i_us=978

[motor_test] i=213, t_sum_us=212500, T_i_us=978

[motor_test] i=214, t_sum_us=213478, T_i_us=978

[motor_test] i=215, t_sum_us=214456, T_i_us=978

[motor_test] i=216, t_sum_us=215434, T_i_us=978

[motor_test] i=217, t_sum_us=216411, T_i_us=977

[motor_test] i=218, t_sum_us=217388, T_i_us=977

[motor_test] i=219, t_sum_us=218365, T_i_us=977

[motor_test] i=220, t_sum_us=219342, T_i_us=977

[motor_test] i=221, t_sum_us=220319, T_i_us=977

[motor_test] i=222, t_sum_us=221295, T_i_us=976

[motor_test] i=223, t_sum_us=222271, T_i_us=976

[motor_test] i=224, t_sum_us=223247, T_i_us=976

[motor_test] i=225, t_sum_us=224223, T_i_us=976

[motor_test] i=226, t_sum_us=225198, T_i_us=975

[motor_test] i=227, t_sum_us=226173, T_i_us=975

[motor_test] i=228, t_sum_us=227148, T_i_us=975

[motor_test] i=229, t_sum_us=228123, T_i_us=975

[motor_test] i=230, t_sum_us=229098, T_i_us=975

[motor_test] i=231, t_sum_us=230072, T_i_us=974

[motor_test] i=232, t_sum_us=231046, T_i_us=974

[motor_test] i=233, t_sum_us=232020, T_i_us=974

[motor_test] i=234, t_sum_us=232994, T_i_us=974

[motor_test] i=235, t_sum_us=233968, T_i_us=974

[motor_test] i=236, t_sum_us=234941, T_i_us=973

[motor_test] i=237, t_sum_us=235914, T_i_us=973

[motor_test] i=238, t_sum_us=236887, T_i_us=973

[motor_test] i=239, t_sum_us=237860, T_i_us=973

[motor_test] i=240, t_sum_us=238832, T_i_us=972

[motor_test] i=241, t_sum_us=239804, T_i_us=972

[motor_test] i=242, t_sum_us=240776, T_i_us=972

[motor_test] i=243, t_sum_us=241748, T_i_us=972

[motor_test] i=244, t_sum_us=242719, T_i_us=971

[motor_test] i=245, t_sum_us=243690, T_i_us=971

[motor_test] i=246, t_sum_us=244661, T_i_us=971

[motor_test] i=247, t_sum_us=245632, T_i_us=971

[motor_test] i=248, t_sum_us=246602, T_i_us=970

[motor_test] i=249, t_sum_us=247572, T_i_us=970

[motor_test] i=250, t_sum_us=248542, T_i_us=970

[motor_test] i=251, t_sum_us=249512, T_i_us=970

[motor_test] i=252, t_sum_us=250481, T_i_us=969

[motor_test] i=253, t_sum_us=251450, T_i_us=969

[motor_test] i=254, t_sum_us=252419, T_i_us=969

[motor_test] i=255, t_sum_us=253388, T_i_us=969

[motor_test] i=256, t_sum_us=254356, T_i_us=968

[motor_test] i=257, t_sum_us=255324, T_i_us=968

[motor_test] i=258, t_sum_us=256292, T_i_us=968

[motor_test] i=259, t_sum_us=257260, T_i_us=968

[motor_test] i=260, t_sum_us=258228, T_i_us=968

[motor_test] i=261, t_sum_us=259196, T_i_us=968

[motor_test] i=262, t_sum_us=260164, T_i_us=968

[motor_test] i=263, t_sum_us=261132, T_i_us=968

[motor_test] i=264, t_sum_us=262099, T_i_us=967

[motor_test] i=265, t_sum_us=263066, T_i_us=967

[motor_test] i=266, t_sum_us=264033, T_i_us=967

[motor_test] i=267, t_sum_us=265000, T_i_us=967

[motor_test] i=268, t_sum_us=265966, T_i_us=966

[motor_test] i=269, t_sum_us=266932, T_i_us=966

[motor_test] i=270, t_sum_us=267898, T_i_us=966

[motor_test] i=271, t_sum_us=268864, T_i_us=966

[motor_test] i=272, t_sum_us=269830, T_i_us=966

[motor_test] i=273, t_sum_us=270795, T_i_us=965

[motor_test] i=274, t_sum_us=271760, T_i_us=965

[motor_test] i=275, t_sum_us=272725, T_i_us=965

[motor_test] i=276, t_sum_us=273690, T_i_us=965

[motor_test] i=277, t_sum_us=274654, T_i_us=964

[motor_test] i=278, t_sum_us=275618, T_i_us=964

[motor_test] i=279, t_sum_us=276582, T_i_us=964

[motor_test] i=280, t_sum_us=277545, T_i_us=963

[motor_test] i=281, t_sum_us=278508, T_i_us=963

[motor_test] i=282, t_sum_us=279471, T_i_us=963

[motor_test] i=283, t_sum_us=280434, T_i_us=963

[motor_test] i=284, t_sum_us=281396, T_i_us=962

[motor_test] i=285, t_sum_us=282358, T_i_us=962

[motor_test] i=286, t_sum_us=283320, T_i_us=962

[motor_test] i=287, t_sum_us=284281, T_i_us=961

[motor_test] i=288, t_sum_us=285242, T_i_us=961

[motor_test] i=289, t_sum_us=286203, T_i_us=961

[motor_test] i=290, t_sum_us=287164, T_i_us=961

[motor_test] i=291, t_sum_us=288124, T_i_us=960

[motor_test] i=292, t_sum_us=289084, T_i_us=960

[motor_test] i=293, t_sum_us=290044, T_i_us=960

[motor_test] i=294, t_sum_us=291003, T_i_us=959

[motor_test] i=295, t_sum_us=291962, T_i_us=959

[motor_test] i=296, t_sum_us=292921, T_i_us=959

[motor_test] i=297, t_sum_us=293880, T_i_us=959

[motor_test] i=298, t_sum_us=294839, T_i_us=959

[motor_test] i=299, t_sum_us=295797, T_i_us=958

[motor_test] i=300, t_sum_us=296755, T_i_us=958

[motor_test] i=301, t_sum_us=297713, T_i_us=958

[motor_test] i=302, t_sum_us=298670, T_i_us=957

[motor_test] i=303, t_sum_us=299627, T_i_us=957

[motor_test] i=304, t_sum_us=300584, T_i_us=957

[motor_test] i=305, t_sum_us=301540, T_i_us=956

[motor_test] i=306, t_sum_us=302496, T_i_us=956

[motor_test] i=307, t_sum_us=303452, T_i_us=956

[motor_test] i=308, t_sum_us=304408, T_i_us=956

[motor_test] i=309, t_sum_us=305364, T_i_us=956

[motor_test] i=310, t_sum_us=306320, T_i_us=956

[motor_test] i=311, t_sum_us=307276, T_i_us=956

[motor_test] i=312, t_sum_us=308231, T_i_us=955

[motor_test] i=313, t_sum_us=309186, T_i_us=955

[motor_test] i=314, t_sum_us=310141, T_i_us=955

[motor_test] i=315, t_sum_us=311095, T_i_us=954

[motor_test] i=316, t_sum_us=312049, T_i_us=954

[motor_test] i=317, t_sum_us=313003, T_i_us=954

[motor_test] i=318, t_sum_us=313957, T_i_us=954

[motor_test] i=319, t_sum_us=314911, T_i_us=954

[motor_test] i=320, t_sum_us=315864, T_i_us=953

[motor_test] i=321, t_sum_us=316817, T_i_us=953

[motor_test] i=322, t_sum_us=317770, T_i_us=953

[motor_test] i=323, t_sum_us=318722, T_i_us=952

[motor_test] i=324, t_sum_us=319674, T_i_us=952

[motor_test] i=325, t_sum_us=320626, T_i_us=952

[motor_test] i=326, t_sum_us=321577, T_i_us=951

[motor_test] i=327, t_sum_us=322528, T_i_us=951

[motor_test] i=328, t_sum_us=323479, T_i_us=951

[motor_test] i=329, t_sum_us=324429, T_i_us=950

[motor_test] i=330, t_sum_us=325379, T_i_us=950

[motor_test] i=331, t_sum_us=326329, T_i_us=950

[motor_test] i=332, t_sum_us=327278, T_i_us=949

[motor_test] i=333, t_sum_us=328227, T_i_us=949

[motor_test] i=334, t_sum_us=329176, T_i_us=949

[motor_test] i=335, t_sum_us=330124, T_i_us=948

[motor_test] i=336, t_sum_us=331072, T_i_us=948

[motor_test] i=337, t_sum_us=332020, T_i_us=948

[motor_test] i=338, t_sum_us=332967, T_i_us=947

[motor_test] i=339, t_sum_us=333914, T_i_us=947

[motor_test] i=340, t_sum_us=334861, T_i_us=947

[motor_test] i=341, t_sum_us=335808, T_i_us=947

[motor_test] i=342, t_sum_us=336754, T_i_us=946

[motor_test] i=343, t_sum_us=337700, T_i_us=946

[motor_test] i=344, t_sum_us=338646, T_i_us=946

[motor_test] i=345, t_sum_us=339592, T_i_us=946

[motor_test] i=346, t_sum_us=340538, T_i_us=946

[motor_test] i=347, t_sum_us=341484, T_i_us=946

[motor_test] i=348, t_sum_us=342429, T_i_us=945

[motor_test] i=349, t_sum_us=343374, T_i_us=945

[motor_test] i=350, t_sum_us=344319, T_i_us=945

[motor_test] i=351, t_sum_us=345263, T_i_us=944

[motor_test] i=352, t_sum_us=346207, T_i_us=944

[motor_test] i=353, t_sum_us=347151, T_i_us=944

[motor_test] i=354, t_sum_us=348094, T_i_us=943

[motor_test] i=355, t_sum_us=349037, T_i_us=943

[motor_test] i=356, t_sum_us=349980, T_i_us=943

[motor_test] i=357, t_sum_us=350923, T_i_us=943

[motor_test] i=358, t_sum_us=351865, T_i_us=942

[motor_test] i=359, t_sum_us=352807, T_i_us=942

[motor_test] i=360, t_sum_us=353749, T_i_us=942

[motor_test] i=361, t_sum_us=354690, T_i_us=941

[motor_test] i=362, t_sum_us=355631, T_i_us=941

[motor_test] i=363, t_sum_us=356571, T_i_us=940

[motor_test] i=364, t_sum_us=357511, T_i_us=940

[motor_test] i=365, t_sum_us=358451, T_i_us=940

[motor_test] i=366, t_sum_us=359390, T_i_us=939

[motor_test] i=367, t_sum_us=360329, T_i_us=939

[motor_test] i=368, t_sum_us=361268, T_i_us=939

[motor_test] i=369, t_sum_us=362206, T_i_us=938

[motor_test] i=370, t_sum_us=363144, T_i_us=938

[motor_test] i=371, t_sum_us=364082, T_i_us=938

[motor_test] i=372, t_sum_us=365020, T_i_us=938

……

……

……

[motor_test] i=1022, t_sum_us=901281, T_i_us=711

[motor_test] i=1023, t_sum_us=901992, T_i_us=711

[motor_test] i=1024, t_sum_us=902703, T_i_us=711

[motor_test] i=1025, t_sum_us=903414, T_i_us=711

[motor_test] i=1026, t_sum_us=904124, T_i_us=710

[motor_test] i=1027, t_sum_us=904834, T_i_us=710

[motor_test] i=1028, t_sum_us=905544, T_i_us=710

[motor_test] i=1029, t_sum_us=906253, T_i_us=709

[motor_test] i=1030, t_sum_us=906962, T_i_us=709

[motor_test] i=1031, t_sum_us=907671, T_i_us=709

[motor_test] i=1032, t_sum_us=908379, T_i_us=708

[motor_test] i=1033, t_sum_us=909087, T_i_us=708

[motor_test] i=1034, t_sum_us=909794, T_i_us=707

[motor_test] i=1035, t_sum_us=910501, T_i_us=707

[motor_test] i=1036, t_sum_us=911208, T_i_us=707

[motor_test] i=1037, t_sum_us=911915, T_i_us=707

[motor_test] i=1038, t_sum_us=912622, T_i_us=707

[motor_test] i=1039, t_sum_us=913328, T_i_us=706

[motor_test] i=1040, t_sum_us=914034, T_i_us=706

[motor_test] i=1041, t_sum_us=914739, T_i_us=705

[motor_test] i=1042, t_sum_us=915444, T_i_us=705

[motor_test] i=1043, t_sum_us=916149, T_i_us=705

[motor_test] i=1044, t_sum_us=916853, T_i_us=704

[motor_test] i=1045, t_sum_us=917557, T_i_us=704

[motor_test] i=1046, t_sum_us=918261, T_i_us=704

[motor_test] i=1047, t_sum_us=918964, T_i_us=703

[motor_test] i=1048, t_sum_us=919667, T_i_us=703

[motor_test] i=1049, t_sum_us=920370, T_i_us=703

[motor_test] i=1050, t_sum_us=921072, T_i_us=702

[motor_test] i=1051, t_sum_us=921774, T_i_us=702

[motor_test] i=1052, t_sum_us=922476, T_i_us=702

[motor_test] i=1053, t_sum_us=923177, T_i_us=701

[motor_test] i=1054, t_sum_us=923878, T_i_us=701

[motor_test] i=1055, t_sum_us=924579, T_i_us=701

[motor_test] i=1056, t_sum_us=925280, T_i_us=701

[motor_test] i=1057, t_sum_us=925980, T_i_us=700

[motor_test] i=1058, t_sum_us=926680, T_i_us=700

[motor_test] i=1059, t_sum_us=927380, T_i_us=700

[motor_test] i=1060, t_sum_us=928079, T_i_us=699

[motor_test] i=1061, t_sum_us=928778, T_i_us=699

[motor_test] i=1062, t_sum_us=929477, T_i_us=699

[motor_test] i=1063, t_sum_us=930175, T_i_us=698

[motor_test] i=1064, t_sum_us=930873, T_i_us=698

[motor_test] i=1065, t_sum_us=931571, T_i_us=698

[motor_test] i=1066, t_sum_us=932268, T_i_us=697

[motor_test] i=1067, t_sum_us=932965, T_i_us=697

[motor_test] i=1068, t_sum_us=933662, T_i_us=697

[motor_test] i=1069, t_sum_us=934358, T_i_us=696

[motor_test] i=1070, t_sum_us=935054, T_i_us=696

[motor_test] i=1071, t_sum_us=935749, T_i_us=695

[motor_test] i=1072, t_sum_us=936444, T_i_us=695

[motor_test] i=1073, t_sum_us=937139, T_i_us=695

[motor_test] i=1074, t_sum_us=937834, T_i_us=695

[motor_test] i=1075, t_sum_us=938529, T_i_us=695

[motor_test] i=1076, t_sum_us=939223, T_i_us=694

[motor_test] i=1077, t_sum_us=939917, T_i_us=694

[motor_test] i=1078, t_sum_us=940611, T_i_us=694

[motor_test] i=1079, t_sum_us=941304, T_i_us=693

[motor_test] i=1080, t_sum_us=941997, T_i_us=693

[motor_test] i=1081, t_sum_us=942690, T_i_us=693

[motor_test] i=1082, t_sum_us=943383, T_i_us=693

[motor_test] i=1083, t_sum_us=944075, T_i_us=692

[motor_test] i=1084, t_sum_us=944767, T_i_us=692

[motor_test] i=1085, t_sum_us=945459, T_i_us=692

[motor_test] i=1086, t_sum_us=946150, T_i_us=691

[motor_test] i=1087, t_sum_us=946841, T_i_us=691

[motor_test] i=1088, t_sum_us=947532, T_i_us=691

[motor_test] i=1089, t_sum_us=948222, T_i_us=690

[motor_test] i=1090, t_sum_us=948912, T_i_us=690

[motor_test] i=1091, t_sum_us=949602, T_i_us=690

[motor_test] i=1092, t_sum_us=950291, T_i_us=689

[motor_test] i=1093, t_sum_us=950980, T_i_us=689

[motor_test] i=1094, t_sum_us=951669, T_i_us=689

[motor_test] i=1095, t_sum_us=952357, T_i_us=688

[motor_test] i=1096, t_sum_us=953045, T_i_us=688

[motor_test] i=1097, t_sum_us=953732, T_i_us=687

[motor_test] i=1098, t_sum_us=954419, T_i_us=687

[motor_test] i=1099, t_sum_us=955106, T_i_us=687

[motor_test] i=1100, t_sum_us=955792, T_i_us=686

[motor_test] i=1101, t_sum_us=956478, T_i_us=686

[motor_test] i=1102, t_sum_us=957164, T_i_us=686

[motor_test] i=1103, t_sum_us=957850, T_i_us=686

[motor_test] i=1104, t_sum_us=958536, T_i_us=686

[motor_test] i=1105, t_sum_us=959221, T_i_us=685

[motor_test] i=1106, t_sum_us=959906, T_i_us=685

[motor_test] i=1107, t_sum_us=960591, T_i_us=685

[motor_test] i=1108, t_sum_us=961275, T_i_us=684

[motor_test] i=1109, t_sum_us=961959, T_i_us=684

[motor_test] i=1110, t_sum_us=962643, T_i_us=684

[motor_test] i=1111, t_sum_us=963326, T_i_us=683

[motor_test] i=1112, t_sum_us=964009, T_i_us=683

[motor_test] i=1113, t_sum_us=964692, T_i_us=683

[motor_test] i=1114, t_sum_us=965375, T_i_us=683

[motor_test] i=1115, t_sum_us=966057, T_i_us=682

[motor_test] i=1116, t_sum_us=966739, T_i_us=682

[motor_test] i=1117, t_sum_us=967421, T_i_us=682

[motor_test] i=1118, t_sum_us=968102, T_i_us=681

[motor_test] i=1119, t_sum_us=968783, T_i_us=681

[motor_test] i=1120, t_sum_us=969464, T_i_us=681

[motor_test] i=1121, t_sum_us=970144, T_i_us=680

[motor_test] i=1122, t_sum_us=970824, T_i_us=680

[motor_test] i=1123, t_sum_us=971504, T_i_us=680

[motor_test] i=1124, t_sum_us=972183, T_i_us=679

[motor_test] i=1125, t_sum_us=972862, T_i_us=679

[motor_test] i=1126, t_sum_us=973541, T_i_us=679

[motor_test] i=1127, t_sum_us=974219, T_i_us=678

[motor_test] i=1128, t_sum_us=974897, T_i_us=678

[motor_test] i=1129, t_sum_us=975575, T_i_us=678

[motor_test] i=1130, t_sum_us=976252, T_i_us=677

[motor_test] i=1131, t_sum_us=976929, T_i_us=677

[motor_test] i=1132, t_sum_us=977606, T_i_us=677

[motor_test] i=1133, t_sum_us=978283, T_i_us=677

[motor_test] i=1134, t_sum_us=978959, T_i_us=676

[motor_test] i=1135, t_sum_us=979635, T_i_us=676

[motor_test] i=1136, t_sum_us=980311, T_i_us=676

[motor_test] i=1137, t_sum_us=980986, T_i_us=675

[motor_test] i=1138, t_sum_us=981661, T_i_us=675

[motor_test] i=1139, t_sum_us=982336, T_i_us=675

[motor_test] i=1140, t_sum_us=983010, T_i_us=674

[motor_test] i=1141, t_sum_us=983684, T_i_us=674

[motor_test] i=1142, t_sum_us=984358, T_i_us=674

[motor_test] i=1143, t_sum_us=985031, T_i_us=673

[motor_test] i=1144, t_sum_us=985704, T_i_us=673

[motor_test] i=1145, t_sum_us=986377, T_i_us=673

[motor_test] i=1146, t_sum_us=987049, T_i_us=672

[motor_test] i=1147, t_sum_us=987721, T_i_us=672

[motor_test] i=1148, t_sum_us=988393, T_i_us=672

[motor_test] i=1149, t_sum_us=989065, T_i_us=672

[motor_test] i=1150, t_sum_us=989736, T_i_us=671

[motor_test] i=1151, t_sum_us=990407, T_i_us=671

[motor_test] i=1152, t_sum_us=991078, T_i_us=671

[motor_test] i=1153, t_sum_us=991748, T_i_us=670

[motor_test] i=1154, t_sum_us=992418, T_i_us=670

[motor_test] i=1155, t_sum_us=993088, T_i_us=670

[motor_test] i=1156, t_sum_us=993757, T_i_us=669

[motor_test] i=1157, t_sum_us=994426, T_i_us=669

[motor_test] i=1158, t_sum_us=995095, T_i_us=669

[motor_test] i=1159, t_sum_us=995763, T_i_us=668

[motor_test] i=1160, t_sum_us=996431, T_i_us=668

[motor_test] i=1161, t_sum_us=997099, T_i_us=668

[motor_test] i=1162, t_sum_us=997767, T_i_us=668

[motor_test] i=1163, t_sum_us=998435, T_i_us=668

[motor_test] i=1164, t_sum_us=999102, T_i_us=667

[motor_test] i=1165, t_sum_us=999769, T_i_us=667

[motor_test] i=1166, t_sum_us=1000436, T_i_us=667

这是截取串口打印的一部分,从这个结果可以看出——定时器的定时时间T_i_us在相邻两个中变化量小于等于1us。当然有需要的话,还可以进一步优化。

经过测试发现,我手上这款三角洲3d打印机的启动速度可以达到30mm/s,并且以30mm/s的速度匀速(不加减速)打印,能够达到较好的打印质量。关键是我以30mm/s的速度打印时,感觉机器的动静有点大,当时买的是滑车版,不知道光轴版和线轨版是不是会好些。另外,我当时买的是DIY套件,商家推荐把速度设为20mm/s,这样打印质量会好些。但我看到有些大神的视频中进给率都达到7000了,换算为速度超过100mm/s。虽然我坚信可以把速度加上去,对于是否有必要实现加减速算法,还处于思考中。暂时就这样吧!

在找S曲线加减速的资料时,发现网上很少关于S曲线加减速的路径规划方面的资料,所以决定在这里将目前搜集整理的资料分享给大家,希望对你有帮助,谢谢!

使用硬件浮点运算单元

龙芯1c支持硬件浮点运算,但为了避免在中断中进行浮点运算,需要将浮点运算放在中断的下半部。

是否使用硬件浮点是由定点运算精度是否达到要求决定。

【龙印】步进电机使用七段式抛物线型S曲线加减速和路径规划的理论分析和实现相关推荐

  1. 51单片机步进电机全套资料(启停+正反转+加减速+显示速度+中断)【源程序+流程图+接线图+视频+答辩报告】综合设计首选

    一.设计目标 设计程序实现按键控制步进电机启动.停机.正反转.加减速.转速及转向显示. 二.主要功能 功能1:步进电机的启动.重启.停机: 功能2:步进电机正反装: 功能3:静态数码管显示速度等级: ...

  2. 基于STM32F103的步进电机S型曲线加减速算法与实现

    步进电机是将电脉冲信号转变为角位移或线位移的开环控制电机,是现代数字程序控制系统中的主要执行元件,应用极为广泛.在非超载的情况下,电机的转速.停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的 ...

  3. 基于51单片机+ULN2003控制步进电机S曲线加减速

    目录 1.ULN2003功能简介 2.28BYJ48简介 3.S曲线加减速方法 4.proteus仿真及实物测试 1.ULN2003功能简介 ULN2003比较简单,相关资料也比较多.可以用来驱动四线 ...

  4. “S“型曲线加减速在42步进电机的位置控制和速度控制中的交叉应用

    "S"型曲线加减速在42步进电机位置和速度交叉控制应用 兴趣使然,兴趣使然-哈哈,花了一个多星期研究了一下S型曲线在步进电机的加速减速中应用,以及简单的结合了一下位置控制和速度控制 ...

  5. 步进电机S型曲线加减速算法与实现

    转载于http://blog.csdn.net/pengzhihui2012/article/details/52228822?locationNum=6 一年前做过的S型曲线加减速算法,再次做的时候 ...

  6. stm32 步进电机控制,S曲线加减速,匀加速运动

    C语言电机控制,曲线加速 ,直线加速 1.函数说明 void vStepMotor_Init(void); 初始化步进电机参数:使能脚,方向,脉冲,原点检测信号,终点检测信号 运动最小速度 最大速度 ...

  7. 步进电机S(SigMoid)曲线加减速【查表法】

    首先感谢以下博客的博主提供的参考公式:https://blog.csdn.net/pengzhihui2012/article/details/52228822?locationNum=6 首先在本设 ...

  8. 步进电机S曲线加减速控制生成器-VB6.0实现

    程序功能:生成步进电机S曲线运动数组代码 程序语言:VB6.0 对应硬件线路连接见上章: https://blog.csdn.net/LuDanTongXue/article/details/8786 ...

  9. 51单片机+L298N控制步进电机【T型】加减速

    本文介绍另一种常见的步进电机[T型]加减速方法 关于L298N模块的使用介绍.以及S型加减速可以上一篇文章,传送门如下: 51单片机+L298N控制步进电机S曲线加减速 1. 与S曲线加减速对比 1. ...

最新文章

  1. __call处理调用错误
  2. netty 为什么用nio 不用 aio
  3. 一些非常有用的链接和工具
  4. 8位可控加减法电路设计_高级工程师:相同的地线GND,却有不同的电路设计含义...
  5. hadoop中的9000端口代表什么_启动hadoop后,fs.defaultFS中配置的9000端口没有出现在监听中?...
  6. vue二级路由跳转后外部引入js失效问题解决方案
  7. RGBA alpha 透明度混合算法实现和测试
  8. 用VBA下载google图片
  9. 从头再学java系列之char和Character的区别及Character的源码分析
  10. 如何清除电脑桌面图标蓝底
  11. oa系统服务器地址怎么查找,oa系统的服务器地址怎么看
  12. CIO:人工智能将改变企业IT
  13. C语言输入一个大写字母,输出金字塔打印字母
  14. 手机消息同步+android屏幕镜像=电脑微信 for linux
  15. C语言实现飞翔的小鸟小游戏
  16. 网络营销人应具备的五大思维
  17. centos7挂载磁盘分区,新增磁盘小于或大于2T
  18. DSP TMF320F2803x 串行通信接口SCI
  19. 国防科技大学 计算机硬件技术基础,国防科技大学--操作系统教程【40讲】--罗宇...
  20. 安全篇 ━━ 整改php和IIS(根据安全等级保护评估、渗透测试报告)

热门文章

  1. Oracle表空间时间点恢复技术TSPITR
  2. 计算机辅助技术英语,电子计算机辅助技术(CAD)
  3. String Utils 工具类介绍大全 isAnyEmpty isAnyBlank stripToNull 等,一篇文章找全所有答案!
  4. java-集合框架库-LinkedList
  5. 解决升级Flutter3.0后出现警告Operand of null-aware operation ‘!‘ has type ‘WidgetsBinding‘ which excludes null
  6. 互调失真 ,P1dB 压缩点,三阶交调截止点
  7. 华硕笔记本X450JB拆机及加装固态硬盘
  8. vCenter Server CA证书下载
  9. 基于搜索的贝叶斯网络结构学习算法-K2
  10. 微信表情与输入法无缝切换(原理篇)