亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

使用操纵杆模块控制双轴 FPV 摄像机支架

组件和用品

Arduino UNO
× 1
SG90 微伺服电机
× 2

关于这个项目

大家好,

今天我们将看到有关如何使用操纵杆模块控制 2 轴 FPV 摄像机支架的完整教程,摄像机支架采用小包装,包含一些亚克力支架和部件、一些螺钉和两个伺服电机。

要求:所以请在你继续之前,如果你不熟悉操纵杆,也不熟悉伺服电机,这里有两个教程给你:

  • 如何简单地将操纵杆模块与 Arduino 板连接
  • 在 Arduino 中使用伺服电机

所以在这里我们将使用两种方法来控制舵机:第一种是舵机跟随操纵杆的位置,当我们移动操纵杆时它们会移动,第二种是舵机开始向操纵杆指向的方向移动,他们一直呆在那里,直到我们再次移动操纵杆或改变方向。

这是我们最后的演示:

在教程视频中,我在接线或校准时一步一步地在编码时也一步一步地进行,但在这里我会给你整个接线,这不是问题,因为没有模块或伺服会影响其他。

为了不被我的操纵杆轴混淆,我的操纵杆在图中有(X 轴在顶部,然后是 Y 轴),它们被倒置并以其他方式命名,但我让我使用的接线你可以随心所欲地改变它(伺服销,操纵杆输入,方向……)

所以不要混淆你,因为我实际上在视频中使用了很多代码,但它们非常基本(伺服定位,从操纵杆读取模拟值......)我已经这样做了,然后你可以查看我的其他教程,所以在这里我只上传了视频中看到的两个最终版本的两个代码。

如果您对此有任何需要,可以联系我。

代码

  • 视频中的代码 1
  • 视频中的代码 2
视频中的代码 1Arduino
//这段代码是配合使用两个舵机的双轴fpv相机支架使用,增加了一个摇杆模块//我们通过移动模拟摇杆来控制支架的位置,支架跟随摇杆的运动//参考surtrtech.com for more information#include  //伺服库和声明Servo myservo1;Servo myservo2;int YAxis =1; //声明摇杆引脚的X轴和Y轴连线到哪里int XAxis =0; //当然模拟输入void setup() { Serial.begin(9600); //设置串口监视器波特率并启动pinMode(XAxis, INPUT); //声明引脚模式和伺服引脚 myservo1.attach(8); pinMode(YAxis, INPUT); myservo2.attach(9);}void loop() { int X=analogRead(XAxis); //读取X轴电位器X=X*0.1756; //将电位器的范围从 0-1023 转换为伺服的 0-180 限制,如果您有 360° 伺服 X=180-X,则可以更改它们;// 使用此方法可以使伺服转向准确位置,否则它将被反转 myservo1.write(X); //适应后我们将该值注入第一个伺服 int Y=analogRead(YAxis);//从 Y 轴电位器读取 Y=Y*0.1466; //这里我们做了适合伺服限制的转换,所以我们从0-1023到0-150 myservo2.write(Y);//我们注入到我们的伺服}
视频中的代码 2Arduino
//这段代码是配合使用两个舵机的双轴fpv相机支架使用,增加了一个摇杆模块//我们通过移动模拟摇杆来控制支架的位置,支架移动到摇杆所在的方向指向//直到极限并停留在那里//有关更多信息,请参阅surtrtech.com#include  //伺服库和声明Servo myservo1;Servo myservo2;int a,b,X,Y; //以后需要的变量int YAxis =1; //声明摇杆引脚的X轴和Y轴连线到哪里int XAxis =0; //当然模拟输入void setup() { Serial.begin(9600); //设置串口监视器波特率并启动pinMode(XAxis, INPUT); //声明引脚模式和伺服引脚 myservo1.attach(8); pinMode(YAxis, INPUT); myservo2.attach(9);}void loop() { a=myservo1.read(); //读取之前的舵机位置是一个重要的步骤,这样我们就可以知道它们应该在哪里定位下一个 b=myservo2.read(); X=analogRead(XAxis);//读取摇杆值 Y=analogRead(YAxis); if(X>550){ //这里我们没有做任何校准,所以操纵杆有三个位置(左|静止|右)a=a-1; //这取决于我们读取的值,我们可以知道操纵杆指向哪个方向,而我将静止位置留得很大,实际上它只是 1 个值 myservo1.write(a); //我们注入新值 delay(50); //你可以把延迟变大或变短,或者根据a=a-x来做大步或短步 } if(X<450){ a=a+1; //这里我们做了相反的操作,移动到相反的方向 myservo1.write(a);延迟(50); } if(Y>600){ //这里我们没有做任何校准,所以操纵杆有三个位置(向上|静止|向下)同上 b=b+1; myservo2.write(b);延迟(50); } if(Y<450){ b=b-1; myservo2.write(b);延迟(50); }

示意图

有一个顶部伺服和底部伺服不要让他们混淆

制造工艺

  1. 带二维码、RFID 和温度验证的访问控制
  2. 鸟舍中的带摄像头的树莓
  3. Discord Security Camera with an ESP32
  4. 用紫外线灯给机器人消毒
  5. 使用 Arduino 控制硬币接收器
  6. 带 3D 打印外壳的电池供电电视遥控器
  7. 带伺服电机的机器人避障
  8. Arduino 带蓝牙控制 LED!
  9. Arduino Nano:使用操纵杆控制 2 个步进电机
  10. 使用 Arduino 和 MPU6050 控制伺服电机
  11. 带 CNC 的车床
  12. 带有验证图形的斜床身车床特征控制