第1步:设计
我们首先在CATIA V5中创建基本设计。机器人由两个分开的滑动机构组成,安装在PVC中心管上。每个滑动机构都有三个固定在圆柱形轴环上的支腿,通过一个小连杆与滑动缸连接。
滑动时,弹簧可以实现伸展和压缩运动。因此,如果腿被压缩,机器人的直径会减小。释放此压缩力后,机器人会自动伸展。在这两种机构之间,有一个电子元件的支架,呈长领状。
在我们的设计中(如上图所示),两个前腿由两个高度控制齿轮直流电动机。后腿没有马达,因为前腿足够强大,可以驱动整个机构。
第2步:工具和材料
1xArduino Uno(任何工作)
电机控制器
1x H桥(L298N)
22AWG实芯电线
220V SMD返修焊台
其他电子产品
2x 12VDC电机
DPDT拨动开关(电源开关)
SPDT滑动开关(用户输入)
热缩管
6x激光切割链接(电机链接与其他链接略有不同)
6x PLA小链接(已打印)
2x项圈(已打印)
2x平移元素(已打印) )
1x电子零件支架(印刷)
2x坚固的矩形弹簧(印刷)
2x电动轮销(印刷)
4x Link-whe el pin(已印刷)
2x电机衬套(已印刷)
4x 7mm轴承
18x 3mm螺栓
7x 2.5mm螺栓
7x拉链
6x机器人轮胎塑料轮
1x端部阻挡器
14x 2.5mm pgp-fasteners
36x 3mm螺母
14x 2.5mm螺母
50x 3mm垫片
1x 40mm PVC管
工具《
电钻/钻床(以及大量钻头)
激光切割机
3D打印机
钢锯
烙铁
钳子
内六角扳手
各种螺丝刀
剥线钳
C Clamp
标尺
步骤3:电机控制器
我们为此机器人制造的电机控制器基于H桥芯片(L298N)。使用该芯片,每个电机需要两个输入才能工作(如果H桥的两个引脚中的一个为高电平而另一个为低电平,那么电机将转动,但如果它反转,则电机将反向转向!)。
现在你需要控制这些电机的准确速度。您可以通过在Arduino的“HIGH”引脚上施加较低的电压来实现此目的,因为任何高于5V的电压都会产生相同的电机速度。
在将所有电子元件固定在支架上之后,我们将它们焊接到位并使用22AWG实芯电线进行连接。
步骤4:电源
为Arduino供电,使用9V堆栈。它具有三个串联9V堆栈的公共接地。
为H桥和电机供电时,串联使用3x 9V堆栈,提供27V电源。
步骤5:腿
腿是这个机器人最重要的部分,因为它们的设计决定了它们是否能够支撑电机的重量和管道的压力。我们决定从6个中选择2个支腿,每个支腿由一个电机控制,另外4个支腿使用滚子轴承,使其具有低摩擦力。
为了制作支腿,我们激光切割了6 mm宽的木板。从上面的图像可以看出,腿有两种不同的切口,这是因为一个切口用于电机驱动的腿,另一个用于正常的腿。
第6步:构建框架
腿部完成后,下一步是构建一个框架,将电机和支腿固定到位。我们通过制作合适的销/衬套(白色)来启动框架,以将电机,支腿和车轮固定在一起。
为了将电机固定到支腿上,我们使用2个螺钉进入从整个支腿穿过电机的孔,我们还使用拉链系统来固定它。
除此之外,我们还使用销钉将电机轴连接到车轮上。为了减少木材和塑料之间的摩擦,我们在支腿中心孔中固定衬套。之后,我们制作一个针(黑色)用于将正常腿连接到车轮上。
为了确保车轮自由旋转,我们在车腿内放置了一个滚柱轴承,使销可以随车轮自由旋转。然后我们用垫圈和锁紧螺母将支腿穿过轴环,将它们固定到位,让它们在螺栓上自由旋转。我们做同样的事情来固定小连杆(白色连接到腿)与平移元件和腿。最后,我们将项圈固定,以确保它们固定在中心管上。
步骤7:电子平台
我们设计了支架,以便更容易地修复所有电子元件。有一个Arduino船的地方,也在对面有一个H-briges,baterries和开关的地方。
最后,我们将Arduino和电机控制器拧入支架,我们使用拉链连接到固定开关和电池。
步骤8:连接机器人
下一步是连接所有电气元件机器人在一起我们首先将长导线焊接到电机的触点上。接下来,将腿上的花盆连接在一起。这是通过使用旧IDE电缆的带状电缆段完成的。电池接线,使它们都具有共同的接地和输入电压。输入电压连接到Arduino上的+ 9V引脚,两根信号线焊接到接头,然后连接到Arduino上的模拟输入A0-A1。
接下来,我们连接数字输出将Arduino上的引脚连接到电机控制器上的输入端。
最后,我们在中心管上钻一个孔,这样我们就可以将电缆插入管中,直到管的开口端,我们在那里固定前腿。这样做可以更容易地连接电机。然后我们通过拨动开关将每个电机电压端子连接到9V电池组。
步骤9:编程
//This program is a simple program who will use motor drives (L298N) only to make the motor going straight forward than wait and then backward.
//Note that no regu-lation is used and the motor will just go at full speed (in the case of the pipe ro- bot, due to the degrees of freedom of the project this kind of method can be applied.
int mot1plus = 2; //initialisation of the motor pin
int mot1moins= 3;
int mot2plus = 4;
int mot2moins= 5;
int mot3plus = 6;
int mot3moins= 7;
float t_init , t_now , t; //initialisation of the time variables
float t_forward =8;
float t_back = 10;
float t_waiting = 1;
int motorSpeed=0;
void setup()
{
Serial.begin(9600);//give the values of the variables if mantioned inn the code (can be delete)
pinMode(mot1plus,OUTPUT);//initialisation of the pins as output
pinMode(mot1moins,OUTPUT);
pinMode(mot2plus,OUTPUT);
pinMode(mot2moins,OUTPUT);
pinMode(mot3plus,OUTPUT);
pinMode(mot3moins,OUTPUT);
t_init=millis(); //initialisation of the time as variable and start to count
t_forward *=1000;//transformation of the time in seconds
t_back*=1000;
t_waiting *=1000;
}
void loop()
{t_now=millis();
t=t_now-t_init;// use to calcul the time in the loop
if (t《=t_forward){ //first loop the robot goes forward
digitalWrite(mot1moins,LOW);
digitalWrite(mot1plus,HIGH);
digitalWrite(mot2moins,LOW);
digitalWrite(mot2plus,HIGH);
digitalWrite(mot3moins,LOW);
digitalWrite(mot3plus,HIGH);
}
if (t》t_forward) { if (t《=t_forward+t_wait){
digitalWrite(mot1moins,LOW);
digitalWrite(mot1plus,LOW);
digitalWrite(mot2moins,LOW);
digitalWrite(mot2plus,LOW);
digitalWrite(mot3moins,LOW);
digitalWrite(mot3plus,LOW);}
}
if (t_forward+t_waiting《=t){//third loop the robot come back
digitalWrite(mot1moins,HIGH);
digitalWrite(mot1plus,LOW);
digitalWrite(mot2moins,HIGH);
digitalWrite(mot2plus,LOW);
digitalWrite(mot3moins,HIGH);
digitalWrite(mot3plus,LOW);
}
while(t》=t_forward+t_waiting+t_back){ // the code is block in this loop and the robot stop
digitalWrite(mot1moins,LOW);
digitalWrite(mot1plus,LOW);
digitalWrite(mot2moins,LOW);
digitalWrite(mot2plus,LOW);
digitalWrite(mot3moins,LOW);
digitalWrite(mot3plus,LOW);
}
}
步骤10:测试和结果
最后,是时候进行测试了。
我们测试了不同直径的机器人。第一次测试是在直径小于260mm的管道中进行的,但它太压缩而无法向前移动,它几乎不在管道内移动。
然而,它对其他直径(300mm)表现相当不错,320毫米)。此外,它被证明能够在更大的直径下工作,但作为汽车(没有压缩)。
此机器人设计用于水平圆柱形管道或略微倾斜的管道。然而,对于更大的倾斜角度或不平坦的表面,可能会有进一步的改进。
-
机器人
+关注
关注
206文章
27033浏览量
201393
发布评论请先 登录
相关推荐
评论