相信很多人都喜欢小动物(不仅仅喜欢小动物,还要吃掉小动物,这个我开玩笑的),例如小喵或小狗什么的!现在分享一个好玩的小玩意!类似Sphero的球型机器,可以用来逗喵溜狗。
2016年大概5月份的时候看到做BB-8机器人的泰哥做了一个遥控小球,我也好想做一个,可是他说电脑坏了重装系统后建模文件没了。
恰好2016年暑假8月份我家走来了一只流浪小喵,好萌好可爱啊!我正好在学习solidworks三维建模,于是就决定自己试着做一个逗喵的小球。
小喵卖萌地上滚啊滚小视频
看图,是不是好可爱呢?喵~~不过好瘦小啊,呜呜呜,好可怜QAQ!!!正好家里有老鼠,父母把小喵收养下来了,我也正式成为一名铲屎官啦。
过了不久10月份的时候又来多了一只小黄喵,一起收养了,现在他们成为好朋友啦ˏ₍•ɞ•₎ˎˏ₍•ʚ•₎ˎ!
小球3D建模效果图:
一边学习Solidworks一边建模,断断续续地画,大概画了一个多月吧,建完模后又修改了好多遍才满意。
零件清单:
名称 | 数量 |
---|---|
8CM直径亚力克球 | 1(建议多买几个备用) |
N20减速电机4mm出轴(转速300RPM/6V) | 2 |
7.4V小锂电池602540(SM接口) | 1 |
7.4V SM接口充电器 | 1 |
两路电机驱动板drv8833 | 1 |
塑料牛眼轮 | 3 |
Arduino Nano(不焊排针) | 1 |
HC05或06蓝牙模块 | 1 |
橡胶圈 | 2 |
杜邦线、28号硅胶线、3mm热缩管、3*100扎带 | 若干 |
M2*8螺丝+M2螺母 | 14 |
3D打印件 | 按stl文件说明打印(轮子多打印几个备用) |
↓橡胶圈是买这种橡胶圈车轮拆下来的,尺寸大概是外径28mm、内径25mm、线径3mm。
想自己做的自己到网上购买上面说的电子零件,在这里说说做小球时走过的坑!用DF活动的现金券在DF商店买了Bluno Nano、3.7v锂电、HR8833微型电机驱动板结果发现没一个能用上,原来那个集成蓝牙功能的Bluno Nano是个不通用的蓝牙,蓝牙软件必须用官方提供的app,不支持密码配对,自己弄好的蓝牙遥控app用不了;HR8833驱动板需要两个5V或以上的电源输入才能工作,我还以为一个是电源输入,另外一个可以输出电源的,折腾了我快一个多星期才搞懂了,真是每块板子都有它不工作的脾气啊!!!希望DFRobot能完善一下这些电子零件和模块,做个通用的蓝牙Nano板,电机驱动板也做得更人性化易用;3.7v电池电机启动瞬间会把电压拉低,导致蓝牙自动断开然后小球会失控,一直滚停不下来,所以改用7.4v锂电就没有问题了。
接线图:接线很简单,就是一个蓝牙小车的接线方式
自己在电池与Arduino Nano接线里加个开关
组装零件
第一个版本内部尺寸小了,两边的牛眼轮距离外壳有个空隙
第二个版本修改建模尺寸后让别人重新打印
小球程序:
1 | /* |
蓝牙模块先不要安装,先烧录程序,通过Arduino IDE串口发送字符测试电机转向,方向不对就修改子函数下的digitalWrite(INX
,HIGH
或者LOW
);测试好再装蓝牙模块
蓝牙模块设置参考:蓝牙HC05模块探究-设置AT指令
蓝牙模块设置教程附件
HC-06AT命令设置
HC05或HC06蓝牙模块默认波特率是9600,密码为1234,如果觉得麻烦可以不用设置直接使用
1 |
|
蓝牙模块设置好后再组装到Arduino板子上,我比较喜欢用杜邦线与蓝牙模块连接,不焊死,方便拆下来用到别的地方
组装完成
用扎带把电池固定
完成
我在GitHub上找到了一个android开源的蓝牙遥控App把源码修改成自己想要的,我不会iOS,所以就没有iOS苹果手机的App啦。
遥控App演示:
自定义编码默认值为:前进 1、后退 2、左转 3、右转 4、停止 0
滑动虚拟摇杆上-前进、下-后退、左-左转、右-右转、松开为停止;也可以作为其它蓝牙小车的遥控app。
小球演示:
演示视频: B站地址
Processing上位机程序
我做完小球和安卓程序觉得还不够好玩,电脑也可以利用起来的,于是看了两天Processing的资料写出了个电脑蓝牙遥控小球的程序
使用方法:到Processing官网下载IDE安装,先让蓝牙模块连接电脑获取串口(设备管理器上查看),例如COM3(不同电脑可能不一样)修改下面String arduinoPort = "COM3"
;再运行程序1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73import processing.serial.*;//加载Serial库
Serial port;//创建端口
char stop = '0';//停止编码
char up = '1';//前进编码
char down = '2';//后退编码
char left = '3';//左转编码
char right = '4';//右转编码
char CW = '5';//顺时针编码
char ACW= '6';//逆时针编码
void setup() {
size(680, 480, P3D);
//String arduinoPort = Serial.list()[0]; // 方法1,自动获取活动串口
String arduinoPort = "COM3"; // 方法2,直接填入端口号
port = new Serial(this, arduinoPort, 9600);//初始化端口(指定端口和波特率)把'端口名称'改成Arduino连接的端口,类似COM3
}
void draw() {
//文字
text("up", 326, 156);
text("down", 316, 335);
text("left", 230, 240);
text("right", 420, 240);
//按下键盘方向键从端口发送数据
if (keyPressed && (key == CODED)) {
if (keyCode == UP) {
port.write(up);
fill(0);
rect(315, 165, 50, 50);//上
} else if (keyCode == DOWN) {
port.write(down);
fill(0);
rect(315, 265, 50, 50);//下
} else if (keyCode == LEFT) {
port.write(left);
fill(0);
rect(265, 215, 50, 50);//左
} else if (keyCode == RIGHT) {
port.write(right);
fill(0);
rect(365, 215, 50, 50);//右
}
} else {
stop();
}
//普通键盘编码事件
//按键a为小球逆时针旋转,按键d为小球顺时针旋转
if(keyPressed){
if (key == 'a'){
port.write(ACW);//逆时针自转
}else if (key == 'd'){
port.write(CW);//顺时针自转
}
}else{
stop();
}
}
//默认停止
void stop(){
port.write(stop);
fill(255, 255, 255);
rect(315, 165, 50, 50);//上
rect(265, 215, 50, 50);//左
rect(365, 215, 50, 50);//右
rect(315, 265, 50, 50);//下
}
Processing程序演示
如图,按键盘方向键为上-前进、下-后退、左-左转、右-右转、松开为停止
开源文件↓
Arduino程序
Android程序
开源程序地址
建模及打印文件–sldprt文件需solidworks2016及以上版本打开
最后感谢那些帮助过我的小伙伴(泰哥和SC),因为我没有3D打印机要找小伙伴帮忙!
祝大家玩得开心ヽ(•‿•)ノ。
我知道我的水平不够,只是我有个梦想—让大家一起爱上科技DIY。
注:转载需注明出处!!!
——————-2017-07-29——————–
程序更新:
-下位机程序修改顺时针自转和逆时针自转为绕圈左右转,新增两个方向为顺时针自转和逆时针
-上位机新增两个按钮控制顺时针自转和逆时针
-原来的圆孔轴轮子容易打滑,现在改成D轴孔再也不会打滑啦😏