本帖最后由 卑微黄工 于 2021-10-29 16:24 编辑
这章简单讲述下机械臂的原理,我这里要做的是并联臂,这是在工业中使用的非常多的一种手臂,还有一种是关节式的机械臂,相对与并联臂灵活度更高,但是成本和操作难度更大。
手臂本质是一种几何解算,无论是并联臂还是关节臂,为了达到目标位置可以分别用两种方案——自动解算和手工编程。自动解算对机械臂的上位机也就是控制台的要求很高,当然也可以放在下位机,我们的marlin固件使用sd卡加工时读取g代码来实现脱机打印本质上就是将自动解算放在单片机中,在笛卡尔坐标系中对坐标解算要求不高。
atmega2560就能胜任低速的解算,但是手臂因为多解性,2560有时候并不能有效的解算,特别是我第一次制作手臂时没有经验我拿了块2012版本的2560,那块2560还在使用8位的mcu。。。还没有启动就死机了,后面我换了16位的mcu才勉强动起来;还有一种方案是手工编程,这种方法实际上正常工业生产中使用的最多的方案,自动编程更多的应用在高灵活场景,手工编程本质就是提前准备好机械臂运动所需要的一切,对控制台和下位机要求低非常多。
但是随着工厂的技术水平不断的提升,技术更新换代,精度的不断提高,工厂对机械臂的要求越来越高,完全手工编程已经没办法满足工厂的需求了,因此诞生了半预制编程,简单来说就是动作的主体是提前编程完成,到达目标位置时再进行盈补,可以有效的减少对主板和上位机的性能的要求,但是这就要涉及机器视觉和人工智能了,毕竟白条条也是成本,对我这个编程苦手来说并不友好。
然后是手臂的数学模型,为了方便全电子方向的极客方便理解,我配了个简单的图,源文件我会放在附件里面,要用GeoGebra来打开模拟(这是一个数学几何画板,挺好玩的,对于喜欢这些的人来说)简单的理解下就是通过2个固定的驱动点来驱动。原理简单看下,基本上是初中数学的水平。通过数学模型可以非常明显的看到同一结果有大量的解,那么就意味着我们的328p可能会撑不住运算的压力,即使能够撑住,极端不稳定的控制效果对我们来说也是不能接受的。
关于步进电机如何驱动的问题,简单解释下就是mcu提供pwm信号,驱动驱动芯片,解算出步进电机需要的脉冲型号,这样的解释是极度不严谨的,但是为了方便简单理解也只能这样了,具体可以看看这个帖子,是步进电机详细原理和应用还包括4988的讲解。 https://blog.csdn.net/qq_41262681/article/details/94830684?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163541762016780262561775%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163541762016780262561775&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-94830684.first_rank_v2_pc_rank_v29&utm_term=%E6%AD%A5%E8%BF%9B%E7%94%B5%E6%9C%BA%E5%8E%9F%E7%90%86&spm=1018.2226.3001.4187
|