MegaPI制作Delta机械臂-Arduino中文社区 - Powered by Discuz! Archiver

190808149 发表于 2016-7-19 21:04

MegaPI制作Delta机械臂

我是一名Arduino/Edison用户。平常比较熟悉Arduino的使用和编程。对于给Arduino UNO, Mega2560等单片机编程,需要弄清楚PIN端口 IO1-13, A0-A5,这些端口的位置,再相应读写端口状态,就可以做到一些基本的功能。Intel Edison也类似,只是开发环境和编程开发界面有了一个变化。但关键都在弄清端口有哪些,怎样调用。

但是,对于MakeBlock MegaPI这样的运动控制板,它集成了很多功放和步进控制芯片,在板卡接口上又引入了工业标准接口。MegaPI的PIN端口,更是远比Arduino复杂。这对于我们这样较少接触Arduino扩展板的用户,感觉比较陌生。怎样调用这么多的端口,我感到无从下手。

拿到MegaPI后,我查阅官方资料。开始逐步了解这块功能强大的运动控制主板。随着对MegaPI学习的不断深入。我在arduino中文社区的帮助下,自备材料,使用开源方案做出了一台Delta机械臂,并可以做基本的动作控制。



测试视频:
http://player.youku.com/player.php/sid/XMTczODk1Njg4NA==/v.swf

以下是MegaPI相关知识的学习,和Delta机械臂的详细制作过程。

1 MakeBlock MegaPI板卡性能指标、电路结构、软硬件接口情况


首先我在官网 www.makeblock.cc上查到MegaPi的端口编号。



有了端口号示意图,在Arduino IDE里面编程,就能想在Arduino里面操作操作IO1-13那样,
pinMode(), digitalWrite()这样的函数单独操作这些端口。
以下是MegaPI调用这些端口的定义文件在 ..\Arduino\libraries\makeblock\src:


#define PORT_1(0x01)
#define PORT_2(0x02)
#define PORT_3(0x03)
#define PORT_4(0x04)
#define PORT_5(0x05)
#define PORT_6(0x06)
#define PORT_7(0x07)
#define PORT_8(0x08)
#define PORT_9(0x09)
#define PORT_10 (0x0a)
#define M1      (0x09)
#define M2      (0x0a)
#define PORT_11 (0x0b)
#define PORT_12 (0x0c)
#define PORT_13 (0x0d)
#define PORT_14 (0x0e)

#ifdef MeMbot_H
#define PORT_RGB         (0x05)
#define PORT_LightSensor   (0x06)
#endif

#define SLOT1       (1)
#define SLOT2       (2)
#define SLOT3       (3)
#define SLOT4       (4)
#define SLOT_1SLOT1
#define SLOT_2SLOT2
#define SLOT_3SLOT3
#define SLOT_4SLOT4


MegaPI与Arduino标准板卡的另一个区别,在于其SLOT插槽,连接电机,方便插拔。这个SLOT插槽,官网在MegaPI上没有注明型号。但在官网另一产品上,有标注类似绿色插槽是HT5.08标准的。注意,MegaPI的插槽不一样。而MegaPI的SLOT插槽是更小的HT3.96标准插槽。



为了连接自己的步进电机,我第一次买错,买成HT5.08的。浪费了一笔采购费。

HT插头和MegaPI实拍:



MegaPI的电机供电接口,和Arduino一样使用标准的同心圆直流电源接口,外负内正。但是MegaPI可以承受比9V更高的电压:12V。
我购买选用这种转接口,为MegaPI电机供电。



在搞懂MegaPI的接口后,在主板上插上相应的步进电机、编码电机驱动芯片。电机接上SLOT接口,就可以让电机转起来了。

2 对顺利使用MegaPI所需要做的准备。

首先我阅读了MakeBlock的官网和官方github源代码库。

可以在
https://github.com/Makeblock-off ... oardStepperTest.ino
找到该例程,在Arduino IDE中,也可以找到该程序。



它可以控制步进电机做旋转运动。

/**
* \par Copyright (C), 2012-2016, MakeBlock
* @file    MegaPiOnBoardStepperTest.ino
* @authorMakeBlock
* @version V1.0.0
* @date    2016/05/06
* @brief   Description: this file is sample code for Stepper Driver device.
*
* Function List:
*
*    1. void MeStepper::moveTo(long absolute);
*    2. void MeStepper::move(long relative);
*    3. boolean MeStepper::run();
*    4. void MeStepper::setMaxSpeed(float speed);
*    5. void MeStepper::setAcceleration(float acceleration);
*    6. void MeStepper::setMicroStep(int8_t value);
*    7. void MeStepper::enableOutputs(void);
*
* \par History:
* <pre>
* <Author>   <Time>      <Version>      <Descr>
* Mark Yan   2016/05/06    1.0.0          build the new.
* </pre>
*/


#include "MeMegaPi.h"
#include <SoftwareSerial.h>


MeStepperOnBoard stepper(SLOT_1);


void setup()
{   
   Serial.begin(9600);
   // Change these to suit your stepper if you want
   stepper.setMaxSpeed(1000);
   stepper.setAcceleration(20000);
   stepper.setMicroStep(16);
   stepper.enableOutputs();
}


void loop()
{
   if(Serial.available())
   {
   char a = Serial.read();
   switch(a)
   {
       case '0':
       stepper.moveTo(0);
       break;
       case '1':
       stepper.moveTo(200);
       break;
       case '2':
       stepper.move(50);
       break;
       case '3':
       stepper.move(100);
       break;
       case '4':
       stepper.move(200);
       break;
       case '5':
       stepper.move(400);
       break;
       case '6':
       stepper.move(600);
       break;
       case '7':
       stepper.move(4000);
       break;
       case '8':
       stepper.move(8000);
       break;
       case '9':
       stepper.move(3200);
       break;
   }
   }
   stepper.run();
}


3 试用MegaPI控制步进电机,研制电路接线可靠性。

将连接好HT3.96插头的步进电机插入MegaPI,接好MegaPI电源,USB线,即可测试步进电机。
没有找到合适HT3.96接口步进电机的同学,建议直接在MakeBlock旗舰店购买。质量更有保证。
http://item.jd.com/10066690351.html





测试视频如下:
http://player.youku.com/player.php/sid/XMTYzNjMwOTQ5Ng==/v.swf

注意,在使用MegaPI时,记住要安装散热设施。MegaPI自带电机驱动芯片,发热量较大,良好的散热是保护芯片长久耐用的好方法。

经测试,电机能够运动。接下来,就可以设计制作机械臂,并用步进电机加以驱动了。

4 制作Delta机械臂的初步设想,设计图纸,源程序。

MegaPI自带4路步进电机驱动SLOT插座,使用它控制机器人是个很好的选择。它连接电机,连线简单,集成度高。选择它控制Delta机械臂,实际需要使用3个电机控制插座。

Delta机械臂方面,因为Delta3D打印机设计方案比较成熟,目前销量大,零配件便宜。所以我打算按照Delta3D打印机方案制作机械臂,只是摒弃掉打印机的吐丝机。只要其机械臂运动系统即可。

我选择repreappro.com提供的Delta3d打印机方案Fisher,来制作我的Delta机械臂系统。该方案的官方制作文档在这里:
https://reprappro.com/documentation/fisher-1/


reprappro是开源3D打印机的创始人Adrian Bowyer设立的企业。



现在的开源桌面3D打印机方案实际最初都源自reprap。
RepRap的设计思想,是运用最少的工业化零件,只依靠3D打印机和激光切割机,设计出器械。让大家体会DIY的乐趣。大家现在能便宜使用的桌面型3d打印机,以前其机械零件繁多,成本很高,所以该行业只有Strasys和3DSystem才愿意投资做研发生产。Adrain的reprap项目花了很多功夫,机械设计上即便使用公差大,精度低3D打印件和激光切割件,机械也可以正常运转。大幅降低了3D打印机的制作成本。

选择reprappro fisher制作机械臂,可以重用到我的老式reprappro mendel 2的零件。我把老的打印机M8光轴拆下,即可组装成一台Delta机械臂。螺钉体系也是原来的M3螺钉。多么巧妙的再利用。


5 delta机械臂的制作过程

首先,按照Fisher说明文档BOM零件清单,打印相关零件。

我使用玉米塑料SLA来打印零件。这样,零件尺寸更加精确。而且,我的ABS塑料打印机reprappro mendel 2,上文所述,已经被我拆掉用来制作本机械臂了。-__-!

需要打印的零部件在这里:Delta机械臂零件



其中挤出机Extruder的零件不要打印,因为我们只要3D打印机的Delta机械臂部分,不要它吐塑料丝。
另外准备好LM8UU直线轴承6个,套在M8光轴上使用。M8光轴长度420毫米6根。
准备好MXL同步轮和同步带。这些都是3d打印机常用零件,在淘宝上几十块钱就能买到,价格便宜。精度又不低,非常有益于自己DIY制作机械。

需要用激光切割机制作的零件在这里:Delta机械臂所需激光切割亚克力件


在Arduino.cn论坛的支持下,论坛为我定做了以上激光切割亚克力零件。非常感谢论坛支持我们学习开源硬件设计,非常敬佩论坛工作人员的专业态度。

接下来开始按照官方文档拼装Delta机械臂的机架。

准备好材料:光轴,螺钉,和Bracket零件。



安装说明文档拼装:



装好3个电机和光轴后,拿出激光切割的亚克力件,拼装底盘。




底盘插入到电机光轴上,用3D打印件Kinematic Mount固定。


螺丝要用内六角螺丝固定,用劲扭,这个螺丝固定好底盘后,很牢固。



底盘固定好后的俯视图是这样。



注意别压着电机线。



以上是Delta机械臂和官方说明文档图片的比对。结构上没有太大问题。

下面制作开始机械臂了。

首先这里难倒了我。

MegaPI需要控制步进电机提拉滑块,滑块带动机械臂运动。而滑块和机械臂的连接使用球形关节。
根据我查看淘宝上Delta机械臂的设计方案,都是使用现成的球型关节轴承。
但是reprap官方为了DIY精神,选择自己制作球形关节,它建议使用钢球,打孔攻丝。


就是这一步,把钢球打半孔后攻丝,上到M3螺钉上面,做成球形关节。

我请教了贵州大学的机加工老师后才发现:

妈呀?钢球可是经过淬火热处理工艺的,表面强度高,根本不适合打孔攻丝。需要重新加热,在空气中缓慢冷却,才能软化表面,用车床打孔。吐血啊。
又联系淘宝,有唯一一家店面承接钢球开孔攻丝,人家制作12mm直径以上的。reprap要求6mm直径的小球开孔,这么精细的活儿,又只有很小的加工订单量,老板直接不干。

多翻思索,决定换为POM塑料小球打孔。同样润滑,而且POM塑料方便机加工。目前笔者我跑了2个周末。打孔已经成功,攻丝弄不了,决定开孔后直接用螺丝攻上去,霸王硬上弓......

-_-!!!

下周末去机加工车间,再进行球关节制作,随后汇报情况。
将POM塑料球在车床上夹紧,选择M2.7-2.8直径范围钻头,1400转/分钟转速,
1.在塑料球顶用顶针车出凹陷,方便第2步操作钻头定位。
2.顶针更换为上述钻头,钻头给进4mm,打半孔。


M3螺钉即可直接自攻方式上入半孔小球,造出球形关节。M3×16mm的螺钉也已经买到。拼装后关节臂长56mm+3mm :funk:有点长,实在拧不进去了。



接下来做好3个。



对做好球型关节的滑块零件继续装配,在“双眼”处嵌入LM8UU直线轴承。
就像这样:



轴承装入后用M3螺钉固定,滑块零件上同样留有M3螺钉和螺帽位置,按照图中位置装入拧紧固定轴承。
然后将滑块按照轴承位置插入Delta结构塔的M8光轴。保证滑块能够上下正常滑动。



滑块上的球型关节安装方向要注意,选择向内对准圆心。

安装好滑块后,我们需要对Delta结构塔封顶。
首先找出封顶零件1285,和随动轮装配零件1243:




1285需要装配到每一对M8轴承上,1243和随动轮组合挂载到1285上。

1243随动轮这样装配:


1243V型槽一侧为六方型开口,嵌入一个M3螺帽,另一侧为圆形开口,嵌入M3螺钉,螺钉中间穿入两个428轴承,轴承外侧用垫圈固定位置,作为后面要说到的MXL步进皮带的随动轮。



然后将1243按这个方向挂载到1285零件上。1243留有M3螺母位置,1285留有M3螺钉位置,轻轻上好,不要拧紧,这个步骤1243零件方向为3D打印堆集方向,强度不高,容易开裂。



以上是1243和1285装配好后的样子。



1285零件也有两对M3螺钉需要装配,用在封顶时固定M8光轴对。所以保持螺钉螺帽宽松。
好了,准备好3对1285+1243:



接下来开始封顶!



将1285的M8光轴预留孔对准光轴,装入后拧紧M3螺钉固定。

接着安装效应器球型关节。关节安装方法和安装尺寸完全和滑块相同。取出效应器零件,上面留有M3螺钉孔,插入M3*16mm螺钉,并拧上螺帽固定好位置,螺钉顶部上入球型关节。每一对球关节距离等同滑块球关节距离。

取出2只激光切割好的亚克力半机臂零件,用M3*8mm螺钉螺母轻轻拧住。合并为一只。
共需要制作6只机臂。

用手扳开机臂末端,夹住球型关节。



每个滑块左右两侧球型关节与效应器左右两侧球型关节分别连接,形成可以移动的平行四边形连接。
平行四边形连接是可以平移滑动的,我们用手移动滑块测试一下,保证效应器正常随动。

http://player.youku.com/player.php/sid/XMTcxNTY3NjYwMA==/v.swf

然后使用MegaPI的Sketch例程序Me_MegaPiOnBoardStepper连接每个步进电机进行测试:

http://player.youku.com/player.php/sid/XMTcxOTEwOTUzMg==/v.swf

经测试,电机能够带动Delta机械臂运动。
接下来,我们准备给MegaPI烧录Marlin固件控制程序。

Marlin是3D打印机固件控制程序的一种。

为MegaPI准备的Marlin固件在这里:
https://github.com/Makeblock-official/Marlin-for-mGiraffe
将整个目录下载回来,用Arduino Sketch打开marlin.ino文件,目录中其他相关文件会跟着打开。



Marlin可以接受G代码,翻译,控制步进电机推动机械臂运动,并挤压塑料丝,形成打印件。

为MegaPI准备的Marlin硬件是用于控制MakeBlock的mGiraffe Delta 3D打印机套件的。
这次我们只是自己组装一台简易Delta机械臂,使用机械臂的运动功能,不涉及塑料融化吐丝,所以修改Marlin程序的机械部分参数,将Makeblock mGiraffe的机械臂尺寸改为Reprappro Fisher的尺寸即可实现控制。

该尺寸的修改说明,我搜索到这篇帖子
http://tieba.baidu.com/p/3021889363
在marlin目录下有Configuration.h文件



以上4个字段需要修改。

经测量,对上示意图的:
第一个参数修改为160mm
第二个参数修改为125mm
第三个参数修改为28mm
第四个参数修改为18mm
另外,机械臂的安全移动半径为60mm

//===========================================================================
//============================== Delta Settings =============================
//===========================================================================
// Enable DELTA kinematics and most of the default configuration for Deltas
#define DELTA

#if ENABLED(DELTA)

// Make delta curves from many straight lines (linear interpolation).
// This is a trade-off between visible corners (not enough segments)
// and processor overload (too many expensive sqrt calls).
#define DELTA_SEGMENTS_PER_SECOND 120

// NOTE NB all values for DELTA_* values MUST be floating point, so always have a decimal point in them

// Center-to-center distance of the holes in the diagonal push rods.
//#define DELTA_DIAGONAL_ROD 240.0 // mm
#define DELTA_DIAGONAL_ROD 160.0 // mm

// Horizontal offset from middle of printer to smooth rod center.
//#define DELTA_SMOOTH_ROD_OFFSET 165.0// mm
#define DELTA_SMOOTH_ROD_OFFSET 125.0// mm

// Horizontal offset of the universal joints on the end effector.
//#define DELTA_EFFECTOR_OFFSET 35.0 // mm
#define DELTA_EFFECTOR_OFFSET 28.0 // mm

// Horizontal offset of the universal joints on the carriages.
//#define DELTA_CARRIAGE_OFFSET 12 // mm
#define DELTA_CARRIAGE_OFFSET 18 // mm

// Horizontal distance bridged by diagonal push rods when effector is centered.
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET)

// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
//#define DELTA_PRINTABLE_RADIUS 90
#define DELTA_PRINTABLE_RADIUS 60
#endif


我选用的电机同步带为MXL标准同步带,MXL20齿同步轮。



MXL同步带的每一齿距离为2.032mm
我选用的同步轮为20齿。
这也需要在Configuration.h文件相应位置作修改。

#define XYZ_BELT_PITCH 2.032
//#define XYZ_PULLEY_TEETH 18
#define XYZ_PULLEY_TEETH 20

以上参数改好之后,在arduino sketch IDE中运行Marlin代码。将Marlin固件传输烧录到MegaPI。



点击串口监视器,进入串口调试。
选择输入结束符 NL CR 通讯速率115200。

Marlin固件显示以下文字,并等待输入。



上图Marlin界面启动信息全文:
start
echo:Marlin 1.1.0-RC3
echo: Last Updated: 2015-12-01 12:00 | Author: (Makeblock, mGiraffeV1.0)
Compiled: Sep 12 2016
echo: Free Memory: 3394PlannerBufferBytes: 1232
echo:Hardcoded Default Settings Loaded
echo:Steps per unit:
echo:M92 X157.48 Y157.48 Z157.48 E185.20
echo:Maximum feedrates (mm/s):
echo:M203 X500.00 Y500.00 Z500.00 E25.00
echo:Maximum Acceleration (mm/s2):
echo:M201 X9000 Y9000 Z9000 E10000
echo:Accelerations: P=printing, R=retract and T=travel
echo:M204 P3000.00 R3000.00 T3000.00
echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s),Z=maximum Z jerk (mm/s),E=maximum E jerk (mm/s)
echo:M205 S0.00 T0.00 B20000 X20.00 Z20.00 E5.00
echo:Home offset (mm):
echo:M206 X0.00 Y0.00 Z0.00
echo:Endstop adjustment (mm):
echo:M666 X0.00 Y0.00 Z0.00
echo:Delta settings: L=delta_diagonal_rod, R=delta_radius, S=delta_segments_per_second
echo:M665 L160.00 R79.00 S120.00
echo:Material heatup parameters:
echo:M145 M0 H180 B70 F255
echo:M145 M1 H240 B100 F255
echo:PID settings:
echo:M301 P16.66 I1.19 D58.14 C100.00 L20
echo:Filament settings: Disabled
echo:M200 D3.00
echo:M200 D0
echo:Z-Probe Offset (mm):
echo:M851 Z-1.00
echo:Bed correction(mm):
echo:; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00
echo:; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00
echo:; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00
echo:; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00
echo:; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00
echo:; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00
echo:; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00
echo:; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00
echo:; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00; 0.00
echo:SD init fail


这样,MegaPI的Marlin固件就烧写好了。通过串口发送G代码命令,MegaPI中的Marlin固件就可以接收处理,并驱动Delta机械臂做相应运动了。

下面我们发送G代码命令到MegaPI,驱动Delta机械臂进行测试:

我们要使用的G代码命令为:

G1 S2 X5 Y0 Z0 F500

X___ Y___ Z____ 这是需要机械臂到达的XYZ坐标。输入正负数都可以。
F___这个是机械臂的运动速度。

OK。我们开始测试。

http://player.youku.com/player.php/sid/XMTcxOTEwOTUzMg==/v.swf

测试基本完成后,我们使用Processing做一个小程序,在电脑上用键盘直接控制机械臂。
借助论坛网友@夏夜繁星 控制四自由度舵机机械臂的程序:Processing与arduino互动之4自由度桌面码垛机
我对该程序进行了简化,不需要计算关节动力学,只是把XYZ数值通过串口发送给MegaPI而已:

大家可从https://github.com/qq95538/DeltaArm目录下载最新版本。


/**
processing control a Marlin Delta 3D printer arm
by b.h. song
190808149@qq.com
*/

/**
*processing control a 4-DOF mechanical arm
*by jorneryChen
*
*my emial address is 1274104408@qq.com
*/

import processing.serial.*;
Serial port;
boolean bToSend;
String inString;
int lf = 10;      // ASCII linefeed
int x=0;
int y=0;
int z=0;
int a=2;
PFont font;
void setup()
{
   size(500,500);
   frameRate(53);
   printArray(Serial.list());
   port = new Serial(this, Serial.list(), 115200);
   port.bufferUntil(lf);

   
   smooth();
}
void draw()
{

   inter_face();
   picture();
   if(bToSend) send_data();
}

void inter_face()
{
    background(255);
   textSize(40);
   fill(245,12,32);
   text("C",5,40);
   fill(38,245,12);
   text("L",35,40);
   fill(12,91,245);
   text("Y",55,40);
   fill(66,204,227);
   textSize(15);
   text("Redesigned by song, which was an originally u-arm",100,20);
   text("similar robot control program authorized by yao.",100,40);
   textSize(30);
   fill(211,191,0);
   text("this interface shows data only",5,80);
   fill(0);
   textSize(20);
   text("X=",5,110);
   text(int(x),35,110);
   text("Y=",85,110);
   text(int(y),115,110);
   text("Z=",165,110);
   text(int(z),195,110);
   
   
}
void picture()
{
   strokeWeight(4);
   fill(255);
   rect(5,160,490,320);
   ellipse(170,320,300,300);
   stroke(0);
   line(415,170,415,470);
   float m=map(x,-100,100,40,300);
   float n=map(y,-100,100,450,190);
   fill(0,0,150);
   ellipse(m,n,30,30);
   float l=map(z,-100,100,470,170);
   l=constrain(l,170,470);
   ellipse(415,l,30,30);
}
void keyPressed()
{
    switch(key) {
    case 'A':
      x-=a;
    break;
    case 'D':
      x+=a;
    break;
    case 'W':
      y+=a;
    break;
    case 'S':
      y-=a;
    break;
    case 'I':
      z+=a;
    break;
    case 'K':
      z-=a;
    break;
    }
}
void keyReleased()
{
   bToSend=true;
}

void send_data()
{
   String s;
   s = "G1 S2 X" + x + " Y" + y + " Z" + z + " F1000";
   println(s);
   port.write(s);
   port.write(13);
   port.write(10);
   bToSend=false;
}

void serialEvent(Serial p) {
inString = p.readString();
print(inString);
}

电脑插上MegaPI,运行程序:



W前S后A左 D右, I上 K下。控制机械臂运动。
OK, 可以进行测试了:
http://player.youku.com/player.php/sid/XMTczODk1Njg4NA==/v.swf
测试成功。




fenggr 发表于 2016-7-20 16:45

在哪弄的?拍个实物图看看呀。

190808149 发表于 2016-7-25 12:28

fenggr 发表于 2016-7-20 16:45
在哪弄的?拍个实物图看看呀。

您好,帖子正在写作中,现在实物图已上传。正在制作,还没做好。请查看。

190808149 发表于 2016-8-7 10:38

fenggr 发表于 2016-7-20 16:45
在哪弄的?拍个实物图看看呀。

您好,已经制作好球型关节,请查看最新进度。

981510493 发表于 2016-10-21 10:03

大神,如果用mega2560+ramps1.4的主板来做机器人的marlin固件源该怎么改啊

190808149 发表于 2016-10-21 20:27

981510493 发表于 2016-10-21 10:03
大神,如果用mega2560+ramps1.4的主板来做机器人的marlin固件源该怎么改啊

ramps1.4是最常用的扩展版了,marlin硬件有现成的3D打印机配置方案。直接在官方网站下载烧录即可使用。改造控制机器人,至少可以配合控制3路电机,还可以独立控制1路电机,把机器人关节运动行程,输入到G代码中,即可将3D打印机控制器当作机器人的控制器。

青桑 发表于 2016-11-10 17:16

大神,我用MegaPi用Arduino IDE上传程序时出现错误,如下:
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x56
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x65
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x72
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x73
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x69
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x6f
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x6e
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x3a
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x20
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x30
上传项目出错
Arduino 选择的UNO
com口没错
编译器用的是AVRISP MKII

190808149 发表于 2016-11-10 21:41

MegaPi使用Mega2560核心。应该在IDE选Mega2560.

yylucky 发表于 2016-11-25 21:48

来向大神学习了

xucucu 发表于 2017-4-9 20:29

楼主还在吗,想问下这整个过程是什么样的,谢谢!
页: [1] 2
查看完整版本: MegaPI制作Delta机械臂