这篇文章来源于DevicePlus.com英语网站的翻译稿。
目录
水平相机支架简介
设备规格
3D 打印安装部件
编写程序
测试!
在上一篇文章中,我们构建了一个伺服控制的无线照明开关。今天,我们打算更上一层楼,尝试创建一个水平相机支架或云台。如果您还没有准备好,请随时查阅我们的第一个相机云台项目:第1部分和第2部分。
今天的电子食谱
预计完成时间:60分钟
所需部件:
ArduinoUNO R3 或 Arduino Pro Mini
面包板
三轴加速度计 KXR94-2050
Towerpro MG996R伺服电机
1. 水平相机支架简介
水平相机支架,通常称为“稳定器”或“云台”,过去仅用于高预算生产环境。由于无人机行业的繁荣和新兴消费技术,现在利用配备云台的无人机拍摄高质量的视频已经非常普遍——用无人机或智能手机都可以。市面上易于操作的相关消费产品有很多种。其中一些产品采用无刷电机进行主观视角拍摄(噪音、速度等)。
图1.稳定器
我一直想亲手制作一个这样的设备。上次,我挑战自己,构建了一个这种设备,具体内容请参见这篇文章,但是结果却并不理想……
该设备有其自身的魅力……但是如果无法作为稳定器使用,那么也毫无用处。我回顾了之前的项目,发现许多需要改进的地方。最大的问题就是我选择的伺服电机。之前的电机功率不够。其扭矩不足以操作智能手机。
出于这个原因,在继续其他工作之前我想先关注一下设备规格选型。
2. 设备规格
首先,我们来看一下伺服电机。虽然之前使用的伺服电机SG90价格便宜且易于使用,但是显然其扭矩不够。因此,这次我们使用MG996R伺服电机,其扭矩几乎是之前电机的5倍,可能动作会略微延迟/减慢。
另外,其他部件基本就是Arduino和加速度计,所以设置几乎与上次相同。由于新伺服电机较大,我用适配器为其供电。电路接线也是相同的。
3. 3D 打印安装部件
对于支架的部件,您可以使用上次的木材和金属配件。但这一次,我想利用3D打印来制作各个部件。这次我准备的三脚架带有螺丝孔,即使伺服电机较大,也可以保持稳定。我设计的小三脚架具有方向性,而且可以单手操作。
这是我3D打印的部件。组装后的样子如下所示:
请注意,如果使用ABS树脂进行3D打印,那么材料固化时会发生收缩。我打印部件时发现了这个问题。我注意到部件产生轻微变形,组装时螺钉很难拧入。经过多次试验和错误后,我决定分别打印安装在伺服电机上的部件。您可以在这里下载适用于该支架的3D模型: https://github.com/DevicePlus/ServoGimbal
三脚架组装如下所示:
至于外壳,这取决于您的相机类型等因素。此外,您还可以根据您的手机类型改进/更改部件的整体设计。
4. 编写程序
对于程序,我们有必要进行校准。首先将加速度传感器倾斜180度,并根据输出值调整伺服电机的倾斜度。所以我们稍微改进了第17个程序并进行了校准。让我们用比较容易理解的方式输出数字。
首先需要将加速度计倾斜180度,并根据输出值调整伺服电机的倾斜度来校准加速度计。让我们稍微修改一下 第1部分 中的程序,以易于理解的方式输出校准值。
int _maxX = 0; int _minX = 1000; int _maxY = 0; int _minY = 1000; int _maxZ = 0; int _minZ = 1000; //****************************************** //Programforacquiring accelerometer values //****************************************** void setup() { // initialize the serial monitor Serial.begin(9600) ; } void loop() { long x , y , z ; x = y = z = 0 ; x =analogRead(1) ; // X axis y = analogRead(2) ; // Y axis z = analogRead(3) ; // Z axis if(_maxX < x){ _maxX = x; } if(_minX > x){ _minX = x; } if(_maxY < y){ _maxY = y; } if(_minY > y){ _minY = y; } if(_maxZ < z){ _maxZ = z; } if(_minZ > z){ _minZ = z; } int centerX = (_maxX-_minX)/2+_minX; int centerY = (_maxY-_minY)/2+_minY; int centerZ = (_maxZ-_minZ)/2+_minZ; float rotateX = ((float)_maxX-(float)_minX)/180; float rotateY = ((float)_maxY-(float)_minY)/180; float rotateZ = ((float)_maxZ-(float)_minZ)/180; Serial.print("X:") ; Serial.print(_minX) ; Serial.print(" ") ; Serial.print(centerX) ; Serial.print(" ") ; Serial.print(_maxX) ; Serial.print(" ") ; Serial.print(rotateX) ; Serial.print(" Y:") ; Serial.print(_minY) ; Serial.print(" ") ; Serial.print(centerY) ; Serial.print(" ") ; Serial.print(_maxY) ; Serial.print(" ") ; Serial.print(rotateY) ; Serial.print(" Z:") ; Serial.print(_minZ) ; Serial.print(" ") ; Serial.print(centerZ) ; Serial.print(" ") ; Serial.print(_maxZ) ; Serial.print(" ") ; Serial.println(rotateZ) ; delay(50) ; }
运行此程序后,启动串口监视器,然后将传感器分别在X和Y方向-90度到90度之间倾斜,并确认输出值。将输出值的最小值和最大值除以180度,获得的数值为加速度计倾斜值/度,这样可以与伺服电机的操作同步。
串口监视器上的数值在激活伺服电机的程序中有所反应。
//******************************************** //Program 2 for acquiring accelerometer values //******************************************** #include Servo myservoX; Servo myservoY; void setup() { // initialize the serial monitor Serial.begin(9600) ; myservoX.attach( 5 ); myservoY.attach( 6 ); } void loop() { int i ; long x , y; // read each data 100 times and average x = y = 0 ; for (i=0 ; i < 100 ; i++) { x = x + analogRead(1) ; // read x axis y = y + analogRead(2) ; // read y axis } x = x / 100 ; y = y / 100 ; int rotateX = (x-493)/1.30; //obtain anble myservoX.write( 90-rotateX ); Serial.print("X:") ; Serial.print(x) ; Serial.print(" ") ; Serial.print(rotateX) ; int rotateY = (y-488)/1.23; myservoY.write( 90-rotateY ); Serial.print(" Y:") ; Serial.print(y) ; // Y axis Serial.print(" ") ; Serial.println(rotateY) ; // Y axis delay(10) ; }
5. 测试!
这次我们有了足够的功率,但是支架的运动仍然很有趣……
在上面的视频中,用手握住设备时,加速度计可以捕获最轻微的摇动。即使传感器轴对齐,也会出现到一些不同角度的意外运动。解决这个问题对于平滑旋转和未来改进来说至关重要。
运动(或摇动)与相机(或智能手机)的重量成比例。如果物体小而轻,移动就相对轻微;但是如果放置像智能手机那样较重的物体,摇晃就会很严重。还应该改进该程序以提高性能并提高可靠性。
我们的最终目标是创建一个像下面的产品一样稳定的云台:
似乎很多人都尝试用无人机这样做。有些无人机可以保持稳定的姿态,所以该设备可能更适合无人机。
今天,我们重新制作了第1部分和第2部分构建的水平相机云台。我们对云台的机械设计进行了一些改进,但是随着项目的进一步推进,我们发现了更多的挑战。我们仍然无法顺利控制云台。现在,该设备只能说仍处于测试阶段,但是我们不会善罢甘休。我们一定会在不久的将来重新解决这个问题,并使其成为一个功能正常的设备。
DevicePlus 编辑团队
设备升级版适用于所有热爱电子和机电一体化的人。
审核编辑黄宇
- 智能手机
+关注
关注
66文章
18302浏览量
178297 - Arduino
+关注
关注
186文章
6451浏览量
185735
发布评论请先登录
相关推荐
评论