3D打印之火星车1号
因为深受造起来 的精神摧残的不能自拔,还有朋友怂恿+煽风点火,我做了一台我自己也不太满意的车!因为部分借鉴了一本为《NASA火星漫游车大揭秘》封面好奇号火星车的结构故起名为“火星车1号”。一直都对标题党行为嗤之以鼻,呵呵,今天我也做了一回标题党,请原谅请原谅请原谅。。。。。。
好奇号的六个大轮子是最能体现它是一辆“车”的特征了,而每个轮子都具有驱动力,可谓是六轮全时驱动!前后两组轮子都可以进行360°全方位旋转,转向能力更是无与伦比。
并且具有独特的火星车特性:“摇臂+转向架”式的悬架系统,这种专门为六个轮子设计的悬挂系统能很好的保证六轮都能实时附着地面。同时还有0.65米的最小离地间隙,就越野通过性来说可比一般SUV屌多了。超强的越野性能保证能在火星凹凸不平的地面行驶无阻。
但是我造的这台车,起名为火星车1号,蛮不好意思的,因为火星车独有的超屌的:摇臂+转向架悬挂,在这台车上并没有体现出了。只体现出其中:每个轮子都具有独立的驱动力和每个轮子可以进行全方位旋转的转向能力这两点特性。
对于火星车,憧憬是这样的! 当然,设计是这样的!然而,实际是这样的!不要说它爆丑,它可是以功能性著称的一代原型。为了给一个符合它身份的场景,我也是拼了,让桌面凌乱如火星表面,让它尽情在里面穿梭!
虽然有些颜值论者说它丑爆了,在此我只能呵呵了,它的目标是火星。。。。。。。。。。。。。生命本应该充满希望的!
刚才偷偷吹了个牛!
接下来,介绍一下轮子单元
轮子单元清单:
金属9g舵机X1N20金属减速电机X13PI miniQ 小车橡胶X13D打印支架X13D打印电机固定套X1
电子控制部分清单:
7.4V 2200MA 锂电池Bluno主控器IO 传感器扩展
此车行走系统是由四个独立的轮子单元组成但是它的通过性也是蛮强的。。。。有视频为证https://www.tudou.com/programs/view/XWEJvP3DNfI/?lvt=95&resourceId=0_07_10_28
因为没钱,无法请专业人士制作,视频略显粗。。。。请原谅!
控制用的是DFRobot研发的通用蓝牙遥控器--走你 - 蓝牙4.0 控制器
控制逻辑:左边虚拟摇杆同时控制四个转向舵机的方向和驱动电机的转速与正反转
右边的左右按钮可用控制小车自转,左按钮控制向左自转,右按钮控制向右自转,右边上下按钮为扩展备用按钮,暂无定义。
如果同时按住左边虚拟摇杆和右边的左或右按钮,软件以右边按钮为优先控制。
感谢大乔(Angelo)奉献详细代码:
#include <Metro.h>
#include "GoBLE.h"
#include <Servo.h>
int LeftUpServoPin = 4;
int RightUpServoPin = 5;
int LeftDownServoPin = 6;
int RightDownServoPin = 7;
int LeftUpSpeedPin = 8;
int RightUpSpeedPin = 9;
int LeftDownSpeedPin = 10;
int RightDownSpeedPin = 11;
int joystickX, joystickY;
int buttonState;
Servo LeftUpServo;
Servo RightUpServo;
Servo LeftDownServo;
Servo RightDownServo;
Servo LeftUpSpeed;
Servo RightUpSpeed;
Servo LeftDownSpeed;
Servo RightDownSpeed;
int LeftUpServoBase = 85;
int RightUpServoBase = 83;
int LeftDownServoBase = 100;
int RightDownServoBase = 96;
int LeftUpSpeedBase = 106;
int RightUpSpeedBase = 99;
int LeftDownSpeedBase = 95;
int RightDownSpeedBase = 99;
void setup() {
Goble.begin();
Serial.begin(115200);
LeftUpServo.attach(4);
RightUpServo.attach(5);
LeftDownServo.attach(6);
RightDownServo.attach(7);
LeftUpSpeed.attach(8);
RightUpSpeed.attach(9);
LeftDownSpeed.attach(10);
RightDownSpeed.attach(11);
LeftUpServo.write(LeftUpServoBase);
RightUpServo.write(RightUpServoBase);
LeftDownServo.write(LeftDownServoBase);
RightDownServo.write(RightDownServoBase);
LeftUpSpeed.write(LeftUpSpeedBase);
RightUpSpeed.write(RightUpSpeedBase);
LeftDownSpeed.write(LeftDownSpeedBase);
RightDownSpeed.write(RightDownSpeedBase);
}
void updateSpeed(int theLeftUpSpeed, int theRightUpSpeed, int theLeftDownSpeed, int theRightDownSpeed)
{
LeftUpSpeed.write(LeftUpSpeedBase + theLeftUpSpeed);
RightUpSpeed.write(RightUpSpeedBase + theRightUpSpeed);
LeftDownSpeed.write(LeftDownSpeedBase - theLeftDownSpeed);
RightDownSpeed.write(RightDownSpeedBase - theRightDownSpeed);
}
void updateServo(int theLeftUpServo, int theRightUpServo, int theLeftDownServo, int theRightDownServo)
{
LeftUpServo.write(LeftUpServoBase - theLeftUpServo);
RightUpServo.write(RightUpServoBase - theRightUpServo);
LeftDownServo.write(LeftDownServoBase - theLeftDownServo);
RightDownServo.write(RightDownServoBase - theRightDownServo);
}
void loop() {
if (Goble.available()) {
if (Goble.readSwitchLeft()==PRESSED)
{
updateSpeed(-30, 30, -30, 30);
updateServo(45, -45, -45, 45);
}
else if (Goble.readSwitchRight()==PRESSED)
{
updateSpeed(30, -30, 30, -30);
updateServo(45, -45, -45, 45);
}
else {
joystickX = Goble.readJoystickX() - 128;
joystickY = Goble.readJoystickY() - 128;
joystickX = constrain(joystickX, -128, 128);
joystickY = constrain(joystickY, -128, 128);
int theSpeed = sqrt(joystickX * joystickX + joystickY * joystickY) / 3;
theSpeed = constrain(theSpeed, 0, 60);
int degree = atan2 (joystickX, joystickY) / PI * 180;
if (degree > 0)
{
updateSpeed(theSpeed, theSpeed, theSpeed, theSpeed);
degree = 90 - degree;
degree = constrain(degree, -60, 60);
if (theSpeed)
{
updateServo(degree, degree, degree, degree);
}
}
else
{
updateSpeed(-theSpeed, -theSpeed, -theSpeed, -theSpeed);
degree = -degree - 90;
degree = constrain(degree, -60, 60);
if (theSpeed)
{
updateServo(degree, degree, degree, degree);
}
}
}
}
}
来膜拜吧:好奇号火星车任务全景演示
https://www.tudou.com/programs/view/INNhFvdMQYY/?resourceId=0_06_02_99
前天看了最近上映的《火星救援》老牛逼了,预告分享一下https://video.mtime.com/56665/?mid=216036
如果有时间,做个缩小版的索杰纳如何?最大限度尊重原创的缩小版动态艺术品?
索杰纳是在火星上真正从事科学考察工作的第一台机器人车辆,它是一辆自主式的机器人车辆,同时又可从地面对它进行遥控。
visionsl 发表于 2015-12-4 10:41
厉害, 不过视频好像看不了?
真的吗?{:5_195:}我可是故意全部换成土豆,以前优酷上传的视频也换了土豆,是测试土豆不卡的!难道天底下就没有不卡的免费视频分享网站了嘛?{:5_177:} luna 发表于 2015-12-4 17:03
这个是9月的大奖~之前改版误删了,找到原作者补了上来
哈哈哈 看看这东西绝对赞啊她说要给买糖吃 是不是奖金已经发了 大家一起找她买糖吃
本帖最后由 FBI-C 于 2015-12-7 18:52 编辑
大连林海 发表于 2015-12-7 12:36
哈哈 大餐吗
可以哦!{:5_162:}不过多大为大餐呀?{:5_165:}把奖的软妹币全吃掉是可以的{:5_191:}这个要求绝对完全没问题,主要是12月拿奖无望,到现在还没有好的项目。。。。。。。。。。。。。{:5_120:}
不丑啊,期待中。 我觉得很漂亮 我觉得真不错 12月大奖 你很有希望 牛牛牛。牛爆了 哈哈,很灵活啊! 屌屌屌,突然感觉楼主文风不错~~ 厉害, 不过视频好像看不了? 大连林海 发表于 2015-12-3 07:36
我觉得真不错 12月大奖 你很有希望
哈哈,承蒙看得起!12月拿奖请吃!{:5_168:} hnyzcj 发表于 2015-12-2 22:58
我觉得很漂亮
{:5_181:}谢谢!谢谢!谢谢夸奖! 很赞的车子啊,大神,我们合作出个套件吧! 好用创意哈哈
FBI-C 发表于 2015-12-4 15:49
哈哈,承蒙看得起!12月拿奖请吃!
{:5_146:} 大连林海 发表于 2015-12-3 07:36
我觉得真不错 12月大奖 你很有希望
这个是9月的大奖~之前改版误删了,找到原作者补了上来{:5_172:} 大连林海 发表于 2015-12-4 18:27
哈哈哈 看看这东西绝对赞啊她说要给买糖吃 是不是奖金已经发了 大家一起找她买糖吃
...
这个可以有~发糖发糖 luna 发表于 2015-12-7 10:07
这个可以有~发糖发糖
快给我补发糖 哈哈 本帖最后由 FBI-C 于 2015-12-7 12:27 编辑
大连林海 发表于 2015-12-7 11:05
快给我补发糖 哈哈
{:5_160:}不是说了12月的大奖,也有希望吗?{:5_179:}我现在正积极备战,12月拿奖请吃哦{:5_180:}{:5_190:} FBI-C 发表于 2015-12-7 12:25
不是说了12月的大奖,也有希望吗?我现在正积极备战,12月拿奖请吃哦{:5_190: ...
哈哈 大餐吗
页:
[1]
2