“体感电视遥控器”的版本间的差异
(→原理) |
|||
第42行: | 第42行: | ||
#define VOL- 0x02FD7887 //音量- | #define VOL- 0x02FD7887 //音量- | ||
− | MPU6050 accelgyro; // | + | MPU6050 accelgyro; //三轴加速度传感器 |
IRsend irsend; //红外发射 | IRsend irsend; //红外发射 | ||
</source> | </source> | ||
− | * | + | *三轴加速度传感器初始化 |
<source lang="cpp"> | <source lang="cpp"> | ||
Serial.println("Initializing I2C devices..."); | Serial.println("Initializing I2C devices..."); | ||
第84行: | 第84行: | ||
</source> | </source> | ||
*注意:如果感觉红外发射器遥控距离太短,可以通过减小红外发射器上的限流电阻来增加发射距离。 | *注意:如果感觉红外发射器遥控距离太短,可以通过减小红外发射器上的限流电阻来增加发射距离。 | ||
+ | |||
+ | ==程序== | ||
+ | [[https://github.com/Microduino/Microduino_Tutorials/tree/master/MCookie_Tutorial/MicroduinoMotionRemote MicroduinoMotionRemote]] | ||
==结果== | ==结果== |
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);
程序结果遥控器左右摆动可以控制电视机换台,上下摆动可以控制电视机加减音量,可以增加其他姿态来控制电视机的其他功能。 视频 |