机器谱 发表于 2022-12-20 14:12:17

制作一个机器螳螂

本帖最后由 机器谱 于 2022-12-20 16:09 编辑

1. 运动功能说明      机器螳螂可以通过两侧仿生腿的差速运动来实现前进、后退、原地转向、大半径转向等基本行走功能。行走时在传动机构的作用下,两个前肢也会一起运动。颈部的关节模组可以驱动头部和前肢做上、下运动。
https://28846868.s21i.faiusr.com/3/ABUIABADGAAggtmEmQYo0LK9nQUwsAQ4wAM!400x400.gif.webphttps://28846868.s21i.faiusr.com/3/ABUIABADGAAgn9mEmQYo5Z_8sQMwsAQ4wAM!400x400.gif.webphttps://28846868.s21i.faiusr.com/3/ABUIABADGAAgvtmEmQYoo9m-8gMwsAQ4wAM!400x400.gif.webp

2.结构说明       该样机的行走机构由两组仿生腿构成,仿生腿由直流电机驱动,包含1个偏心轮滑块机构,和1个偏心轮摇杆机构,前肢也是1个偏心轮摇杆机构,通过偏心轮安装的相位差来确定中间腿、后腿、前肢的运动节奏。
中间腿的传动结构运动原理,如下图所示:
https://28846868.s21i.faiusr.com/3/ABUIABADGAAghuOEmQYovOqLlAcw-xM47A0!800x800.gif.webp
后腿和前肢的传动结构运动原理,如下图所示:https://28846868.s21i.faiusr.com/3/ABUIABADGAAgy_eEmQYonrOM7wYw-xM47A0!800x800.gif.webp
3. 运动功能实现
      该机构的运动方式也是差速运动,小型双轮差速底盘【https://www.robotway.com/h-col-113.html】一样,请参考小型双轮差速底盘机构。关节模组【https://www.robotway.com/h-col-121.html】驱动的,可以参考关节模组的控制方法。
下面是“向前行走同时点头攻击”功能的实现方法。
3.1 电子硬件
在这个示例中,采用了以下硬件,请大家参考:
主控板Basra(兼容Arduino Uno)
扩展板Bigfish2.1
电池7.4V锂电池

3.2 编写程序编程环境:Arduino 1.8.19
代码如下(Mantis.ino):

/*------------------------------------------------------------------------------------

版权说明:Copyright 2022 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved.

         Distributed under MIT license.See file LICENSE for detail or copy at

         https://opensource.org/licenses/MIT

         by 机器谱 2022-9-8 https://www.robotway.com/

------------------------------

实验功能:

          实现机器螳螂前进的同时点头攻击.

-----------------------------------------------------

实验接线:螳螂的左腿接D5,D6;右腿接D9,D10;颈部关节模组的舵机接D4。                                    

------------------------------------------------------------------------------------*/

#include<Servo.h>   //调用舵机库

#define Servo_Pin 4   //定义舵机引脚号

#define Angle_Zero 90   //设置舵机转动的角度为90度

#define Angle_One 45 //设置舵机转动的角度为45度


void Mantisup(); // 前进并抬头

void Mantisdown();// 前进并低头

Servo myservo;   //声明舵机对象


//程序初始化部分:设置电机引脚为输出模式

void setup() {

Serial.begin(9600);//开启串口,并设置波特率为9600

myservo.attach(Servo_Pin);//设置舵机引脚

pinMode( 5 , OUTPUT); //将引脚5设置为输出模式

pinMode( 6 , OUTPUT); //将引脚6设置为输出模式

pinMode( 9 , OUTPUT); //将引脚9设置为输出模式

pinMode( 10 , OUTPUT); //将引脚10设置为输出模式

}


//主程序部分:螳螂前进的同时点头攻击

void loop() {

Mantisup();

delay(500); //保持0.5秒

Mantisdown();

delay(500); //保持0.5秒

}


//封装螳螂前进并抬头动作子程序

void Mantisup() {

myservo.write(Angle_Zero); //4号引脚舵机直接转到90度

digitalWrite( 5 , LOW );   //前进

digitalWrite( 6 , HIGH );

digitalWrite( 9 , LOW );

digitalWrite( 10 , HIGH );

}


//封装螳螂前进并低头动作子程序

void Mantisdown() {

myservo.write(Angle_One); //4号引脚舵机直接转到45度

digitalWrite( 5 , LOW );   //前进

digitalWrite( 6 , HIGH );

digitalWrite( 9 , LOW );

digitalWrite( 10 , HIGH );

}代码如下(Mantis.ino):

/*------------------------------------------------------------------------------------

版权说明:Copyright 2022 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved.

         Distributed under MIT license.See file LICENSE for detail or copy at

         https://opensource.org/licenses/MIT

         by 机器谱 2022-9-8 https://www.robotway.com/

------------------------------

实验功能:

          实现机器螳螂前进的同时点头攻击.

-----------------------------------------------------

实验接线:螳螂的左腿接D5,D6;右腿接D9,D10;颈部关节模组的舵机接D4。                                    

------------------------------------------------------------------------------------*/

#include<Servo.h>   //调用舵机库

#define Servo_Pin 4   //定义舵机引脚号

#define Angle_Zero 90   //设置舵机转动的角度为90度

#define Angle_One 45 //设置舵机转动的角度为45度


void Mantisup(); // 前进并抬头

void Mantisdown();// 前进并低头

Servo myservo;   //声明舵机对象


//程序初始化部分:设置电机引脚为输出模式

void setup() {

Serial.begin(9600);//开启串口,并设置波特率为9600

myservo.attach(Servo_Pin);//设置舵机引脚

pinMode( 5 , OUTPUT); //将引脚5设置为输出模式

pinMode( 6 , OUTPUT); //将引脚6设置为输出模式

pinMode( 9 , OUTPUT); //将引脚9设置为输出模式

pinMode( 10 , OUTPUT); //将引脚10设置为输出模式

}


//主程序部分:螳螂前进的同时点头攻击

void loop() {

Mantisup();

delay(500); //保持0.5秒

Mantisdown();

delay(500); //保持0.5秒

}


//封装螳螂前进并抬头动作子程序

void Mantisup() {

myservo.write(Angle_Zero); //4号引脚舵机直接转到90度

digitalWrite( 5 , LOW );   //前进

digitalWrite( 6 , HIGH );

digitalWrite( 9 , LOW );

digitalWrite( 10 , HIGH );

}


//封装螳螂前进并低头动作子程序

void Mantisdown() {

myservo.write(Angle_One); //4号引脚舵机直接转到45度

digitalWrite( 5 , LOW );   //前进

digitalWrite( 6 , HIGH );

digitalWrite( 9 , LOW );

digitalWrite( 10 , HIGH );

}
4.扩展样机本样机有按照:① 2个直流电机 VS 1个直流电机;② 颈部有关节 VS 颈部无关节;③ 有翅膀 VS 无翅膀等要素,可以排列组合出多种方案。

另外,也可以用各种手工材料给螳螂制作丰富多彩的外观。
https://28846868.s21i.faiusr.com/3/ABUIABADGAAgyYaPmQYoisWRtgUwsAQ4wAM!450x450.gif.webp
5. 资料下载资料内容:①样机3D文件②样机例程源代码资料下载链接 https://www.robotway.com/h-col-147.html
页: [1]
查看完整版本: 制作一个机器螳螂