极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3081|回复: 0

制作一个机器螳螂

[复制链接]
发表于 2022-12-20 14:12:17 | 显示全部楼层 |阅读模式
本帖最后由 机器谱 于 2022-12-20 16:09 编辑

1. 运动功能说明
      机器螳螂可以通过两侧仿生腿的差速运动来实现前进、后退、原地转向、大半径转向等基本行走功能。行走时在传动机构的作用下,两个前肢也会一起运动。颈部的关节模组可以驱动头部和前肢做上、下运动。



2.结构说明
      该样机的行走机构由两组仿生腿构成,仿生腿由直流电机驱动,包含1个偏心轮滑块机构,和1个偏心轮摇杆机构,前肢也是1个偏心轮摇杆机构,通过偏心轮安装的相位差来确定中间腿、后腿、前肢的运动节奏。

中间腿的传动结构运动原理,如下图所示:

腿和前肢的传动结构运动原理,如下图所示:

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
  1. 代码如下(Mantis.ino):

  2. /*------------------------------------------------------------------------------------

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

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

  5.            https://opensource.org/licenses/MIT

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

  7.   ------------------------------

  8.   实验功能:

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

  10.   -----------------------------------------------------

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

  12. ------------------------------------------------------------------------------------*/

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

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

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

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


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

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

  19. Servo myservo;   //声明舵机对象


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

  21. void setup() {

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

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

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

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

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

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

  28. }


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

  30. void loop() {

  31.   Mantisup();

  32.   delay(500); //保持0.5秒

  33.   Mantisdown();

  34.   delay(500); //保持0.5秒

  35. }


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

  37. void Mantisup() {  

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

  39.   digitalWrite( 5 , LOW );   //前进

  40.   digitalWrite( 6 , HIGH );

  41.   digitalWrite( 9 , LOW );  

  42.   digitalWrite( 10 , HIGH );

  43. }


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

  45. void Mantisdown() {

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

  47.   digitalWrite( 5 , LOW );   //前进

  48.   digitalWrite( 6 , HIGH );

  49.   digitalWrite( 9 , LOW );  

  50.   digitalWrite( 10 , HIGH );

  51. }代码如下(Mantis.ino):

  52. /*------------------------------------------------------------------------------------

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

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

  55.            https://opensource.org/licenses/MIT

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

  57.   ------------------------------

  58.   实验功能:

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

  60.   -----------------------------------------------------

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

  62. ------------------------------------------------------------------------------------*/

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

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

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

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


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

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

  69. Servo myservo;   //声明舵机对象


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

  71. void setup() {

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

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

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

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

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

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

  78. }


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

  80. void loop() {

  81.   Mantisup();

  82.   delay(500); //保持0.5秒

  83.   Mantisdown();

  84.   delay(500); //保持0.5秒

  85. }


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

  87. void Mantisup() {  

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

  89.   digitalWrite( 5 , LOW );   //前进

  90.   digitalWrite( 6 , HIGH );

  91.   digitalWrite( 9 , LOW );  

  92.   digitalWrite( 10 , HIGH );

  93. }


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

  95. void Mantisdown() {

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

  97.   digitalWrite( 5 , LOW );   //前进

  98.   digitalWrite( 6 , HIGH );

  99.   digitalWrite( 9 , LOW );  

  100.   digitalWrite( 10 , HIGH );

  101. }
复制代码

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

另外,也可以用各种手工材料给螳螂制作丰富多彩的外观。


5. 资料下载
资料内容:
样机3D文件
样机例程源代码
资料下载链接 https://www.robotway.com/h-col-147.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-28 21:57 , Processed in 0.043422 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表