上学期修读了设计与制造课程,完成了一个关于BB8(星球大战–原力觉醒)的作品,在此分享制作经历,供有兴趣爱好者浏览。
作者:yongchun_zha
QQ:1729465178
首先,来认识一下我们要制作的对象:

然后是制作完成效果图: 
以下我主要通过3个方面来叙述:
实物建模组装与上漆电子控制整体外观仿照BB8实物,大概确定其尺寸为直径90mm的球壳,然后完善里面的各个细节,最终的建模结果如下: 
动力部分 选用两个6V直流电压的电机作为驱动力,由于电机空载转速为19000rpm,转速过大,需进行电机减速,故设计减速比为20:1的二级齿轮减速组,实现了机器人理论最大1.5m/s的运动速度。为了减小减速系统的摩擦系数,给减速组引进了深沟球轴承(618/2-Z)进行齿轮的轴定位,进而使实际的传动比逼近理论值,降低了系统误差,提高控制的可行性。 
最后为头部的建模,头部分成了两部分建模,一部分为50mm直径的空心半球,半球球面加一突起。底部为一定曲率的圆形底板,其内部建有深度2mm的圆形槽,用于放置磁铁,两槽上方也建有两个通槽并装配有小轮,用于减小头部与机身的摩擦,通过两部分的连接便得到了完整的头部模型。

然后购买电子原件

开始组装机身部分:安装电机和齿轮组:首先挑选好两组3个齿轮,使其减速比约为20:1,然后在齿轮和铁轴上打定位孔,以便使二者不发生相对转动,然后在机身上安装轴承,使用502胶水固定,然后装入齿轮穿入轴,固定轴和齿轮。安装好齿轮组后,接着开始安装电机,使用电机固定片和m2螺丝螺母固定,安装后如下图:

然后安装上面的舵机结构,先把舵机装入,粘接好磁铁,使热熔胶固定舵机和连杆的接头。 
最后,把外轮固定上去。完成后的效果图:
组装头部 首先用铁轴把小轮固定,然后使用502把四个小磁铁粘上。再把上面的壳套上即可
添加固定圈
上漆效果如下 
Arduino代码#include<Servo.h>int m1l = 2, m1r = 3 , m2l = 4, m2r = 5; //电机控制引脚int ser = 9; //舵机控制引脚int spe = 100; //定义速度Servo myServo;//初始化舵机对象void setup() { Serial.begin(9600); myServo.attach(ser); pinMode(m1l, OUTPUT); pinMode(m1r, OUTPUT); pinMode(m2l, OUTPUT); pinMode(m2r, OUTPUT);}void loop(){ while (Serial.available()) { char c = Serial.read(); if (c == 'b') { digitalWrite(m1l, HIGH); digitalWrite(m1r, LOW); digitalWrite(m2l, LOW); digitalWrite(m2r, HIGH); delay(20); } if (c == 'f') { digitalWrite(m1l, LOW); digitalWrite(m1r, HIGH); digitalWrite(m2l, HIGH); digitalWrite(m2r, LOW); delay(20); } if (c == 'l') { digitalWrite(m1l, HIGH); digitalWrite(m1r, LOW); digitalWrite(m2l, HIGH); digitalWrite(m2r, LOW); delay(20); } if (c == 'r') { digitalWrite(m1l, LOW); digitalWrite(m1r, HIGH); digitalWrite(m2l, LOW); digitalWrite(m2r, HIGH); delay(20); } if (c == 's') { digitalWrite(m1l, LOW); digitalWrite(m1r, LOW); digitalWrite(m2l, LOW); digitalWrite(m2r, LOW); delay(20); } if (c == 'w') { for (int pos = 90; pos < 170; pos++) { myServo.write(pos); delay(10); } for (int pos = 170; pos > 89; pos--) { myServo.write(pos); delay(10); } for (int pos = 90; pos < 170; pos++) { myServo.write(pos); delay(10); } for (int pos = 170; pos > 89; pos--) { myServo.write(pos); delay(10); } for (int pos = 90; pos < 170; pos++) { myServo.write(pos); delay(10); } for (int pos = 170; pos > 89; pos--) { myServo.write(pos); delay(10); } for (int pos = 90; pos < 170; pos++) { myServo.write(pos); delay(10); } for (int pos = 170; pos > 89; pos--) { myServo.write(pos); delay(10); } for (int pos = 90; pos < 170; pos++) { myServo.write(pos); delay(10); } for (int pos = 170; pos > 89; pos--) { myServo.write(pos); delay(10); } } if (c == 'e') { for (int pos = 90; pos > 0; pos--) { myServo.write(pos); delay(10); } for (int pos = 1; pos < 90; pos++) { myServo.write(pos); delay(10); } } }}PART Ⅳ 资源下载
演示视频:链接:http://pan.baidu.com/s/1miLlIvm 密码:dxz3课程报告:链接:http://pan.baidu.com/s/1pKUYQ1t 密码:slqj新闻热点
疑难解答