基于stm32的光点运动轨迹控制 |
您所在的位置:网站首页 › pdf如何用激光笔 › 基于stm32的光点运动轨迹控制 |
前言
步进电机画圆、直线。使用的简单的模拟脉冲方式快速实现的步进电机运动控制,如有不足的地方欢迎补充。 任务分析1.任务 制作一个激光笔点二维控制装置,示意如图所示。在50cm*50cm靶纸上,用激光笔投射一光点,激光笔距离靶纸1米。要求能按指定的误差范围将光点定位在靶纸上任意一点,并在限定的条件下将光点按指定轨迹运动。 4.关键代码 #define Step_one 1 //单步步进值 static float now_x_step = 0, now_y_step = 0; //记忆当前步数 /* * x * CCW对应x轴正方向 */ void stepper_x_run(int tim,float step,float subdivide,uint8_t dir) { int i; if(step = 0) XOY = 1; else if ((Xm - x0) 0) XOY = 2; else if ((Xm - x0) 0) ? (Ym -= Step_one) : (Xm -= Step_one); break; case 3: if(SorN == 1) (Fm >= 0) ? (Ym += Step_one) : (Xm -= Step_one); else (Fm > 0) ? (Xm += Step_one) : (Ym -= Step_one); break; case 4: if(SorN == 1) (Fm >= 0) ? (Xm -= Step_one) : (Ym -= Step_one); else (Fm > 0) ? (Ym += Step_one) : (Xm += Step_one); default: break; } step = step + 1; Fm = pow((Xm - x0), 2) + pow((Ym - y0), 2) - pow(R, 2); turn_coordinate(Xm, Ym); osDelay(2); } } 结论与现象
附下工程:https://github.com/YAOSIYANAD/Light_spot_motion_control |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |