1.运动功能说明
舵机云台下方的舵机可以提供一个左右摆动的动作,同时上方横置的关节模组可以提供一个上下摆动的动作。在这两部分的配合下,云台的执行端端(即:关节模组的U型支架)可以灵活地走出一个近似半球的运动轨迹。
2.结构说明
该样机由一个 舵机 加一个 舵机关节模组 构成。
3.运动功能实现
3.1 电子硬件
在这个示例中,采用了以下硬件,请大家参考:
Basra主控板(兼容Arduino Uno)、Bigfish2.1扩展板、7.4V锂电池
将两个舵机接在扩展板的D3以及D4舵机接口上。
3.2 编写程序
编程环境:Arduino 1.8.19
舵机云台的控制关键是驱动舵机和舵机关节模组。
云台运动的代码
/*------------------------------------------------------------------------------------ 版权说明: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-5-31 https://www.robotway.com/ ---------------------------------- 实验功能: 实现云台模组的两个舵机同时运动. ----------------------------------------------- 实验接线: 云台 .-----. | | 控制云台上下的舵机接:D3 .---------. | | 控制云台左右转动的舵机接:D4 | | ----------------- ------------------------------------------------------------------------------------*/ #include //调用舵机库函数 Servo servo_pin_3; //声明控制云台上下转动的舵机 Servo servo_pin_4; //声明控制云台左右转动的舵机 //程序初始化部分:使能舵机引脚,并设置舵机初始角度 void setup() { servo_pin_3.attach(3); //使能3号舵机 servo_pin_4.attach(4); //使能4号舵机 servo_pin_3.write(0); //3号舵机初始转到0度 servo_pin_4.write(0); //4号舵机初始转到0度 } void loop() { Servo_Move( 0,95, 0,180); //D4舵机缓慢从0度转到180度,同时D3舵机缓慢从0度转到95度 Servo_Move( 95,0, 180,0); //D4舵机缓慢从180度转到0度,同时D3舵机缓慢从95度转到0度 } /*两舵机同时转动子函数.使用方法如下所示: servo_loop_count:表示舵机从A角度转到B角度分成了多少份. delay(20);表示每一份需要的延时时间. Servo_Move( 30, 45, 23, 80 );表示的意识是:D4舵机缓慢从23度转到80度,同时D3舵机缓慢从30度转到45度 Servo_Move( 45, 30, 80, 23 );表示的意识是:D4舵机缓慢从80度转到23度,同时D3舵机缓慢从45度转到30度 */ void Servo_Move(float servo3_start_angle, float servo3_end_angle, float servo4_start_angle, float servo4_end_angle){ servo_pin_3.write( servo3_start_angle ); //设置3号舵机初始角度 servo_pin_4.write( servo4_start_angle ); //设置4号舵机初始角度 float xunhuan_count = 30.0; float delta_servo3 = 0; float delta_servo4 = 0; float servo3_calculate_angle = 0; float servo4_calculate_angle = 0; int servo3_really_angle = 0; int servo4_really_angle = 0; delta_servo3 = - ( ( servo3_start_angle - servo3_end_angle ) / xunhuan_count ); delta_servo4 = - ( ( servo4_start_angle - servo4_end_angle ) / xunhuan_count ); for( float i = 0; i< xunhuan_count; i++ ) { servo3_calculate_angle = servo3_calculate_angle + delta_servo3; servo4_calculate_angle = servo4_calculate_angle + delta_servo4; servo3_really_angle = int(servo3_calculate_angle); servo4_really_angle = int(servo4_calculate_angle); servo_pin_4.write(servo4_really_angle); servo_pin_3.write(servo3_really_angle); delay(20); } } |
4.扩展样机
使用不同的舵机和支架,可以构建出不同形态的云台,如图所示:
5.资料内容
① 样机3D文件
② 例程源代码
更多机器人开源项目请关注机器谱网站
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
机器人
+关注
关注
211文章
28418浏览量
207099 -
舵机
+关注
关注
17文章
270浏览量
41035
发布评论请先 登录
相关推荐
【盈鹏飞EVB-T335开发板试用体验】NO.3 舵机云台3D打印
最近入手了一台3D打印机正好做的项目又和摄像头相关于是就3D打印了舵机云台3D文件我放在附件里了最后拼好了大概是这个样子注明一下,上面的图是别人的图,我自己刚刚打印好的3D模型还米有拼
发表于 10-02 23:20
如何使用openmv控制云台自动跟踪Apriltag
使用openmv控制云台自动跟踪Apriltag,并且将openmv与Apriltag距离通过串口发送到单片机。如果有openmv的同学直接将main.py和pid.py复制到flash中就可以了
发表于 12-03 08:07
如何制作相机跟拍云台?
如何制作相机跟拍云台? 实现目标:当相机或拍摄对象向左或向右移动时,相机镜头也相应转动,始终对着拍摄对象。 思路:在拍摄对象处设置一个激光接收器,在相机两边分别设置一个激光发射器,两个发射端与接收端
发表于 12-05 09:05
如何做一个跟随角度运动的两轴云台
中用到了一个两轴舵机云台支架。感觉挺有趣,结合mpu6050传感器,做一个跟随角度运动的两轴云台。实验效果:在讲原理之前,先将源码送给大家,
发表于 02-10 06:08
51单片机智能小车(舵机云台超声波避障+循迹+蓝牙+红外跟随)
**51单片机智能小车(舵机云台超声波避障+循迹+蓝牙+红外跟随+遥控+TFT液晶显示屏)本人由于使用的液晶显示屏,程序大于8K,所以更换为STC12C5A60S2芯片,与51芯片兼容。功能比较
发表于 11-12 14:21
•49次下载
stm32 mpu6050 舵机云台支架跟随
中用到了一个两轴舵机云台支架。感觉挺有趣,结合mpu6050传感器,做一个跟随角度运动的两轴云台。实验效果:在讲原理之前,先将源码送给大家,
发表于 12-06 12:36
•11次下载
评论