“体感电视遥控器”的版本间的差异
(Created page with "{{Language| 体感电视遥控器}} {| style="width: 800px;" |- | ==目的== 通过体感遥控电视机,遥控器处在不同的姿势或运动状态来控制电视机的...") |
|||
第4行: | 第4行: | ||
| | | | ||
==目的== | ==目的== | ||
− | + | 通过体感遥控电视机,遥控器处在不同的姿势或运动状态来控制电视机的换台和音量。 | |
==原理== | ==原理== | ||
第52行: | 第52行: | ||
Serial.println(accelgyro.testConnection() ?"MPU6050 connection successful" : "MPU6050 connection failed"); //测试MPU6050已连接上 | Serial.println(accelgyro.testConnection() ?"MPU6050 connection successful" : "MPU6050 connection failed"); //测试MPU6050已连接上 | ||
</source> | </source> | ||
− | [[File: | + | [[File:Microduino_MPU6050_1.png||300px|center|thumb]] |
*判断遥控器的运动状态。遥控器向右摆,电视机换下一个台,向左摆,电视机换上一个台;遥控器向上摆,电视机音量增加,向下摆,电视机音量减小。 | *判断遥控器的运动状态。遥控器向右摆,电视机换下一个台,向左摆,电视机换上一个台;遥控器向上摆,电视机音量增加,向下摆,电视机音量减小。 | ||
<source lang="cpp"> | <source lang="cpp"> |
2015年6月22日 (一) 06:34的版本
Language | English |
---|
目的通过体感遥控电视机,遥控器处在不同的姿势或运动状态来控制电视机的换台和音量。 原理设备
搭建硬件
软件调试
#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);
结果遥控器左右摆动可以控制电视机换台,上下摆动可以控制电视机加减音量,可以增加其他姿态来控制电视机的其他功能。 视频 |