如何用arduino制作一个六足机器人
最近,小风风三刷蜘蛛侠系列所有电影,十分迷恋托尼给帕克搞得那套蜘蛛外骨骼啊,想要一比一复制却无奈囊中羞涩,只能勉为其难降低标准,转方向复制帕克的那个小蜘蛛了。
相信在每一个工程师心中,都有一个想要成为钢铁侠的梦想(身穿钛合金氪金战甲,2.0排量的推动器一飞冲天,不知从哪里就能召唤出一个侦察机器人,轰轰烈烈拯救地球…)每闻此段,小风风都会想起项羽曾说的话:“大丈夫生当如此”。既然我们现在有了实力,那到了开始去做的时候了。
倘若大家喜欢,小风风也会竭尽全力,复原其他复联科技项目。(只要兜里允许哈哈)
(复联3蜘蛛侠机械外骨骼)
材料
arduino系列mega2560版本
MG90s舵机x12
机械固件
HC-05蓝牙模块
3806稳压若干(视电压情况而定)
底盘
电池
虽然六足机器人看起来很高大上,但实际上设计起来极其简单,家里有孩子的朋友们可以做一个给孩子玩玩,对于孩子们的幼儿启蒙很有意义。
硬件设计:
机器人机械腿采用两个自由度的舵机安装模式。分别控制前后180度与左右180度两个方向,将12个舵机按照下图与底盘安装即可。
(机械蜘蛛CAD模型,方便有3D打印机的朋友们参照)
代码设计:
在代码控制方面,小风风采用模块化方式提供给大家,想要了解源码的,可以关注转发后私聊小风风哦。
/单向舵机控制
#include
Servo myservo;
void setup() {
myservo.attach(10);
myservo.write(0);
delay(1000);
myservo.write(30);
delay(1000);
myservo.write(60);
delay(1000);
myservo.write(90);
delay(1000);
myservo.write(120);
delay(1000);
myservo.write(150);
delay(1000);
myservo.write(180);
delay(1000);
myservo.detach();
}
void loop() {
}
(机械蜘蛛各自由度移动情况)
/HC-05蓝牙控制
SoftwareSerial BT(8,9);
void setup()
{
Serial.begin(38400);
BT.begin(38400);
Serial.println("BT is ready!");
}
char AT_Cmd,AT_Rec;
void loop()
{
if(Serial.available()>0)
{
AT_Cmd = Serial.read();
BT.print(AT_Cmd);
}
if(BT.available()>0)
{
AT_Rec = BT.read();
Serial.print(AT_Rec);
}
}
/部分源码
void setup()
{
Serial.begin(115200);
int i,j;
unsigned int InitAngle[3]=;
for(i=1;i
Serial.print("#");
Serial.print(Leg[j]);
Serial.print("P");
if(i%2==0)//2,4,6
Serial.print(InitAngle[0]);
else//1,3,5
Serial.print(2500-InitAngle[0]);
}
for(i=1;i
for(j=1;j
{
Serial.print("#");
Serial.print(Leg[j]);
Serial.print("P");
if(i
Serial.print(2500-InitAngle[j]);
else
Serial.print(InitAngle[j]);
} Serial.println("");
delay(3000);
}
unsigned int AngleForward[3]=
;
unsigned int AngleBack[3]
=;
unsigned int AngleDown=1800;
int i,j;void loop()
{
Serial.print("#4P500#5P500
#6P500#12P900#13P500
#14P500#24P1900
#25P2000#26P2000");
//1,3,5
For Serial.print("#8P1900
#9P700#10P500#20P1000
#21P1800#22P2000
#28P900#29P1800#30P2000");
//2,4,6 Back
Serial.println("T500");
delay(300);
Serial.print("#5P700#13P700
#25P1800");
//1,3,5 Down
Serial.println("T100");
delay(100);
Serial.print("#4P1600#5P700#
6P500 #12P2000#13P700
#14P500 #24P900#
25P1800#26P2000");
//1,3,5 Back
Serial.print("#8P800#9P500
#10P500#20P2000
#21P2000#22P2000#28P1900
#29P2000#30P2000 ");
//2,4,6 For
Serial.println("T500");
delay(300);
Serial.print("#9P700
#21P1800#29P1800");
//2,4,6 Down
Serial.println("T100");
delay(100);
}
(机械蜘蛛最终廉价版)
今天的六足机器人就先介绍到这,下期小风风会给大家聊一聊美国博茨大战的故事。
关注风火轮,技术之路常相伴,我们下期见!
领取专属 10元无门槛券
私享最新 技术干货