初次见到SMARS是在thingiverse.com。呆萌的外观很快吸引我的注意,仔细看它的介绍:
SMARS的缩写,是“无螺丝/螺丝模块化可组装机器人系统”,是一种为教育领域设计的简单机器人。SMARS的主要特点是减少了部件数量,无需螺丝即可安装且无需焊接任何零件的可能性,不需要胶水或类似物品,并且制造起来确实很便宜。SMARS的另一个要点是模块化设计。您可以安装不同的传感器和工具并设计自己的零件。
https://www.thingiverse.com/thing:2662828
https://www.youtube.com/watch?v=JCqkuDWNzIg&feature=youtu.be
惊叹它的设计精巧,好吧,我一定要仿制一个。thingiverse.com提供了stl文件下载,但是并没有程序文件和详细的说明,我们一步步试着来。
搜集好模型文件,经过漫长的等待打印出来,用雕刻刀,什锦锉修理毛刺,备用。电子部件若干,详见材料清单。
下载文件缺少详细说明,好在我们根据视频和一些零散的文字,还有经验能够判定使用什么部件,我们把它拼装起来。
安装从动轮,安装N20电机,安装9V层叠电池,用电池压板扣紧电机,安装主动轮,用细小的销穿起履带片,每条履带由16片组成。这里我们仔细观察可以看到履带片的突起并不是对称的,猜想这种设计是为了在不同材料的表面上都有良好的摩擦力。
组装好漂亮的大眼睛。话说超声波作为机器人的眼睛,应该是很常见的,但做的这么漂亮协调的并不多。
装好眼睛,准备安装Arduino UNO 和电机驱动板
连接导线,插上电源,大功告成!!!
接下来遇到了意想不到的问题:编写好程序烧录进去,电机会有啸叫并不能转动。。。反复检查程序没有问题啊,怀疑是供电不足引起的。换上2S 7.4V锂电池供电一切正常。我的9V电池还是新的。怎么办。但这么小的车,装不下我的锂电池组啊。
还好,网站上找到一个Mod,AAA*3供电。下载回来只是两个小小的挡片和一个新的电池压盘。并没有说明。仔细观察,应该是3D打印的弹性部件,配合导线完成AAA电池的串联。翻箱倒柜找出原来焊接锂电池组用的镍片,正好插在缝隙里,焊上导线,解决。1.5*3=4.5V 直接给UNO供电和电机供电应该没问题。
新下载的还有一个新的电池和电机压片,有一些空位置,一半看图,一半推测,应该分别装的小开关,1508S电机驱动,和蓝牙模块。这好啊,不用UNO那种笨重的L293D电机驱动扩展卡啦,这种环境这种小电机驱动正适合。可是小开关说什么也没有找到可以放到那个槽位里的。没办法,我适应不来你,那你适应我吧。用solidworks修改STL文件,把手中的小开关装上了。
好吧,既然电机驱动和蓝牙都已经装肚子里了,那能不能再简洁一点?想来想去,看到手中这块廉价的UNO板,好注意来了。我们需要外联的是两路电机,这里用 D4,D5~,D6~,D7,蓝牙串口 GndVccTxRx,一共8跟线,因为是5V,电机驱动板和蓝牙的供电可以并联起来,所以控制器只需要8跟线就可以了。我这里用了xh2.54_4P接口两个,为了预防差错用了一公一母。从这种UNO特有的杜邦针的孔位焊接出来,从板子下方接线,引线全部隐藏起来了。
怎么样,很整洁吧?像没接线的样子。
烧录程序,跑起来!
手机遥控App使用的是一款叫 蓝牙串口SPP的软件,可以自定义按键发送字符。免费软件带广告的。
SMARS是无螺丝,低成本,模块化的。任何人都可以使用,更改,制作更加好玩的附加功能。接下来我会尝试安装一个灰度传感器做循迹实验。
void go (int a,int b){ //-255~255 (MX1508 0,0停止 1,1刹车)left 5~ 4 right 6~ 7 555刹车
if (a==0){
digitalWrite(5,0);
digitalWrite(4,0);
}
else{
if (a==555){ //刹车
digitalWrite(5,1);
digitalWrite(4,1);
}
else{
if (a>0){
analogWrite(5,a);
digitalWrite(4,0);
}
else{
analogWrite(5,a-255);
digitalWrite(4,1);
}
}
}
if (b==0){
digitalWrite(6,0);
digitalWrite(7,0);
}
else{
if (b==555){ //刹车
digitalWrite(6,1);
digitalWrite(7,1);
}
else{
if (b>0){
analogWrite(6,b);
digitalWrite(7,0);
}
else{
analogWrite(6,b-255);
digitalWrite(7,1);
}
}
}
}
int incomedate = 0;
void setup() {
pinMode(13,OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
Serial.begin(9600); //设置串口波特率9600
digitalWrite(13,0);
}
void loop() {
//digitalWrite(13,1);
if (Serial.available() > 0)//串口接收到数据
{
incomedate = Serial.read();//获取串口接收到的数据
if (incomedate == 0xA0) //stop
{
go(0,0);
//delay(200);
}
if (incomedate == 0xA1) //上
{
go(200,200);
delay(100);
}
if (incomedate == 0xA2) //下
{
go(-200,-200);
delay(100);
}
if (incomedate == 0xA3) //左
{
go(-160,160);
delay(100);
}
if (incomedate == 0xA4) //右
{
go(160,-160);
delay(100);
}
if (incomedate == 0xA5) //左上
{
go(0,160);
delay(100);
}
if (incomedate == 0xA6) //右上
{
go(160,0);
delay(100);
}
if (incomedate == 0xA7) //左下
{
go(0,-160);
delay(100);
}
if (incomedate == 0xA8) //右下
{
go(-160,0);
delay(100);
}
}
//delay(1000);
//*/
}
附件
材料清单
- UNO X1
- 1508S 电机驱动 X1
- JDY31蓝牙模块 X1
- N20电机 X2
- sr04超声波 X1
- 开关 X1
a🚁💭 B2102021.06.25
厉害呀!!还开源出来。惊叹3D打印机的质量。打印的真好。卡位都那么好。
幸运阿风2021.01.18
提供了STL模型文件下载,使用pc端登陆,浏览文章可以看到。
手工人2023.03.18
我想问一下十三号引脚是干什么的,另外能不能发一下蓝牙模块与arduino的连接图