37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十三:SG90二自由度舵机云台塑料支架MG双轴机械手臂航模监控智能机器人
云台参数说明:
该模块包含两个SG90 9g舵机+1个FPV尼龙云台
上下转动180度,左右转动180度
总高度:7.2cm
模块自重:约35g
底座长宽:37mm33mm
架台(载物台)长宽:28mm28mm
安装孔径尺寸:32mm*27mm
舵机线长度:19-24cm
工作电压:4.8-6V
工作温度:0℃-55℃
引脚定义:橙线信号,红线正极,棕线负极
舵机参数说明:
产品扭矩:2.0kg/cm(4.8V),2.2kg/cm(6V)
产品速度:0.09s/60°(4.8V),0.08s/60°(6V)
齿轮形式:塑料齿轮
死区设定:7微秒
舵机参考资料:
【雕爷学编程】Arduino动手做(83)—模拟SG90舵机模块
https://blog.csdn.net/weixin_41659040/article/details/116923671
【雕爷学编程】Arduino动手做(83)—模拟SG90舵机模块2
https://blog.csdn.net/weixin_41659040/article/details/131758166
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十三:SG90二自由度舵机云台塑料支架MG双轴机械手臂航模监控智能机器人
实验开源图形编程(Mind+、编玩边学)
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十三:SG90二自由度舵机云台塑料支架MG双轴机械手臂航模监控智能机器人
项目:通过串口驱动二轴云台
说明:当你在串口监视器上输入‘u’时,云台将向上转动5°。输入‘d’,‘r’,‘l’同理。
Arduino实验开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十三:SG90二自由度舵机云台塑料支架MG双轴机械手臂航模监控智能机器人
项目:在串口下通过输入不同的指令代码来调整上下舵机的角度
说明:当你在串口监视器上输入‘u’时,云台将向上转动60°。输入‘d’,‘r’,‘l’同理。
*/
// 加载 舵机 库
#include <Servo.h>
Servo up, down;
int a = 60, b = 30; //上下舵机初始角度
void setup() //初始化
{
up.attach(10, 1000, 2000); //上面的舵机附加到引脚10
down.attach(9, 1000, 2000); //下面的舵机附加到引脚9
up.write(a); //上面的舵机初始角度为60°
down.write(b); //下面的舵机初始角度为30°
Serial.begin(9600);
}
void loop() {
while (Serial.available() > 0) //当Serial.available()>0时,说明串口接收到了数据,可以读取。
{
char flag = Serial.read();
delay(2);
if (flag == 'u') //当串口输入‘u’时,上舵机向上转动60°
a = a + 60;
if (flag == 'd') //当串口输入‘d’时,上舵机向下转动60°
a = a - 60;
if (flag == 'l') //当串口输入‘l’时,下舵机向左转动60°
b = b + 60;
if (flag == 'r') //当串口输入‘r’时,下舵机向右转动60°
b = b - 60;
}
up.write(a);
down.write(b);
}
Arduino实验场景,串口输入“d”
Arduino实验场景图
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十三:SG90二自由度舵机云台塑料支架MG双轴机械手臂航模监控智能机器人
项目:利用servo库和一个摇杆控制两个小舵机的云台
Arduino实验开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十三:SG90二自由度舵机云台塑料支架MG双轴机械手臂航模监控智能机器人
项目:利用servo库和一个摇杆控制两个小舵机的云台
*/
// 加载舵机库
#include <Servo.h>
Servo a;
Servo b;
int i, p, j, k;
void setup() {
a.attach(9); //指定舵机a的OUT引脚为9号引脚
b.attach(10); //指定舵机b的OUT引脚为10号引脚
Serial.begin(9600);
}
void loop() {
i = analogRead(A0); //获取A0引脚的输入值,即PS2摇杆X轴的数值
j = analogRead(A1); //获取A1引脚的输入值,即PS2摇杆Y轴的数值
Serial.print("映射前x轴:");
Serial.print(i);
Serial.print(" ");
Serial.print("映射前y轴:");
Serial.print(j);
Serial.print(" ");
p = map(i, 0, 1023, 0, 180); //将0到1023的值映射成0到180
k = map(j, 0, 1023, 0, 180);
Serial.print("映射后x轴:");
Serial.print(p);
Serial.print(" ");
Serial.print("映射后y轴:");
Serial.println(k);
a.write(p); //设置舵机a角度为p
b.write(k); //设置舵机b角度为k
}
Arduino实验场景图