体感电视遥控器
Hustshenyang@126.com(讨论 | 贡献)2015年6月22日 (一) 08:58的版本
Language | English |
---|
目的通过体感遥控电视机,遥控器处在不同的姿势或运动状态来控制电视机的换台和音量。 原理利用三轴加速度传感器MPU6050检测遥控器的运动状态变化,然后红外发射传感器通过匹配编码控制电视机的功能。 设备
搭建硬件
软件调试
#define ITEM+ 0x02FDD827 //节目+
#define ITEM- 0x02FDF807 //节目-
#define VOL+ 0x02FD58A7 //音量+
#define VOL- 0x02FD7887 //音量-
MPU6050 accelgyro; //三轴加速度传感器
IRsend irsend; //红外发射
Serial.println("Initializing I2C devices...");
accelgyro.initialize(); //初始化I2C设备
Serial.println("Testing device connections...");
Serial.println(accelgyro.testConnection() ?"MPU6050 connection successful" : "MPU6050 connection failed"); //测试MPU6050已连接上
accelgyro.getAcceleration(&ax, &ay, &az); //获得三轴加速度值
Ax = ax/16384.00;
Ay = ay/16384.00;
Az = az/16384.00;
if(Ay >= 0.6 ) //检测到遥控器向右开始摆动
{
irsend.sendNEC(ITEM+,32); //发射换台编码
delay(1000); //延时等待摆动停下来
}
else if(Ay <= -0.6) //检测到遥控器向左开始摆动
{
irsend.sendNEC(ITEM-,32);
delay(1000);
}
else if(Az >= 1.5) //检测到遥控器向上开始摆动
{
irsend.sendNEC(VOL+,32);
delay(1000);
}
else if(Az <= 0.5) //检测到遥控器向下开始摆动
{
irsend.sendNEC(VOL-,32);
delay(1000);
}
delay(100);
程序结果遥控器左右摆动可以控制电视机换台,上下摆动可以控制电视机加减音量,可以增加其他姿态来控制电视机的其他功能。 视频 |