“体感电视遥控器”的版本间的差异
Zhangfengfeng(讨论 | 贡献) (→设备) |
|||
(未显示1个用户的4个中间版本) | |||
第7行: | 第7行: | ||
==原理== | ==原理== | ||
+ | 利用三轴加速度传感器MPU6050检测遥控器的运动状态变化,然后红外发射传感器通过匹配编码控制电视机的功能。 | ||
==设备== | ==设备== | ||
第19行: | 第20行: | ||
|[[Microduino-10DOF/zh]]||1||矢量传感器模块 | |[[Microduino-10DOF/zh]]||1||矢量传感器模块 | ||
|- | |- | ||
− | | [[ | + | | [[Sensor-IR Sensor/zh]]||1||红外发送传感器 |
+ | |- | ||
+ | | [[Microduino-Converter/zh]]||1||转接板 | ||
|- | |- | ||
| [[Microduino-BM/zh]]||1||电源管理 | | [[Microduino-BM/zh]]||1||电源管理 | ||
|} | |} | ||
[[File:ble_lamp_light.jpg|600px|center|thumb]] | [[File:ble_lamp_light.jpg|600px|center|thumb]] | ||
− | |||
==搭建硬件== | ==搭建硬件== | ||
*Setup 1:将CoreUSB、10DOF与Sensorhub叠堆。 | *Setup 1:将CoreUSB、10DOF与Sensorhub叠堆。 | ||
[[File:CoreUSB_10DOF_Sensorhub.jpg|600px|center|thumb]] | [[File:CoreUSB_10DOF_Sensorhub.jpg|600px|center|thumb]] | ||
− | *Setup | + | *Setup 2:将红外发射传感器通过转接板接到Sensorhub的D3引脚上. |
[[file:Microduino-sensorhub_rule.JPG|thumb|800px|center]] | [[file:Microduino-sensorhub_rule.JPG|thumb|800px|center]] | ||
[[File:light_ir_transmitter.jpg|600px|center|thumb]] | [[File:light_ir_transmitter.jpg|600px|center|thumb]] | ||
第41行: | 第43行: | ||
#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..."); | ||
第83行: | 第85行: | ||
</source> | </source> | ||
*注意:如果感觉红外发射器遥控距离太短,可以通过减小红外发射器上的限流电阻来增加发射距离。 | *注意:如果感觉红外发射器遥控距离太短,可以通过减小红外发射器上的限流电阻来增加发射距离。 | ||
+ | |||
+ | ==程序== | ||
+ | [[https://github.com/Microduino/Microduino_Tutorials/tree/master/MCookie_Tutorial/MicroduinoMotionRemoteTV MicroduinoMotionRemoteTV]] | ||
==结果== | ==结果== |
2017年5月31日 (三) 10:09的最新版本
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);
程序结果遥控器左右摆动可以控制电视机换台,上下摆动可以控制电视机加减音量,可以增加其他姿态来控制电视机的其他功能。 视频 |