背景:
我准备用一些零件实现一个写字机器人,因此我开始思考如何去控制它。我准备用一个舵机来控制笔的抬笔、落笔动作,舵机很擅长处理这些因为它很容易集成,它带有反馈功能,总是能知道自己转过的角度。
我也许可以使用grbl,它可以输出步进脉冲和方向信号实现移动,舵机需要一个PWM信号驱动,主轴电机也是用pwm来控制速度的,这或许是个不错的开始。一个PWM信号包含频率和占空比,频率表示信号重复的频繁程度,占空比表示一个周期内逻辑高电平的时长(其余时间低电平)。舵机需要信号周期是20ms(50hz),占空比是1ms的时候在一端点,占空比是2ms的时候转到另一个端点。总结一下就是:
- 0°对应占空比是1ms
- 180°对应占空比是2ms
- 频率是50hz,周期是2ms
PWM被大部分包括arduino在内的微控制器使用,用来控制外围设备,它使用内置的定时器和CPU周期来生成,你只需要设置几个寄存器,并且不依赖代码。主轴使用的是timer2,所有其他定时器已经被grbl的其他功能使用了(在uno版本上),所以其他的是