<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-CN">
		<id>http:///https//wiki.microduino.cn/index.php?action=history&amp;feed=atom&amp;title=Somatosensory_TV_Remote_Controller</id>
		<title>Somatosensory TV Remote Controller - 版本历史</title>
		<link rel="self" type="application/atom+xml" href="http:///https//wiki.microduino.cn/index.php?action=history&amp;feed=atom&amp;title=Somatosensory_TV_Remote_Controller"/>
		<link rel="alternate" type="text/html" href="https//wiki.microduino.cn/index.php?title=Somatosensory_TV_Remote_Controller&amp;action=history"/>
		<updated>2026-06-14T04:52:38Z</updated>
		<subtitle>本wiki的该页面的版本历史</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https//wiki.microduino.cn/index.php?title=Somatosensory_TV_Remote_Controller&amp;diff=10915&amp;oldid=prev</id>
		<title>1304410487@qq.com：Created page with &quot;{{Language| Somatosensory TV Remote Controller}} {| style=&quot;width: 800px;&quot; |- | ==Objective== To have a remote control of a TV through somatosensory operation. By moving the po...&quot;</title>
		<link rel="alternate" type="text/html" href="https//wiki.microduino.cn/index.php?title=Somatosensory_TV_Remote_Controller&amp;diff=10915&amp;oldid=prev"/>
				<updated>2015-10-22T04:10:06Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Language| Somatosensory TV Remote Controller}} {| style=&amp;quot;width: 800px;&amp;quot; |- | ==Objective== To have a remote control of a TV through somatosensory operation. By moving the po...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Language| Somatosensory TV Remote Controller}}&lt;br /&gt;
{| style=&amp;quot;width: 800px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
==Objective==&lt;br /&gt;
To have a remote control of a TV through somatosensory operation. By moving the position of the remote controller, you can change TV channels or volume. &lt;br /&gt;
==Principle==&lt;br /&gt;
Use three-axis acceleration sensor MPU6050 to detect the remote controller's movement and the infrared transmission sensor to control the TV by matching code. &lt;br /&gt;
&lt;br /&gt;
==Equipment==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Module||Number||Function &lt;br /&gt;
|-&lt;br /&gt;
|[[Microduino-CoreUSB]]||1||Core board &lt;br /&gt;
|-&lt;br /&gt;
|[[Microduino-Sensorhub]]||1||Sensor pin board&lt;br /&gt;
|-&lt;br /&gt;
|[[Microduino-10DOF]]||1||Vector sensor module &lt;br /&gt;
|-&lt;br /&gt;
| [[Microduino-IR transmitter]]||1||Infrared transmission sensor &lt;br /&gt;
|-&lt;br /&gt;
| [[Microduino-Converter]]||1||Pin board &lt;br /&gt;
|-&lt;br /&gt;
| [[Microduino-BM]]||1||Battery management &lt;br /&gt;
|}&lt;br /&gt;
 [[File:ble_lamp_light.jpg|600px|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hardware Buildup==&lt;br /&gt;
*Setup 1：Stack CoreUSBk, 10DOF and Sensorhub together.&lt;br /&gt;
[[File:CoreUSB_10DOF_Sensorhub.jpg|600px|center|thumb]]&lt;br /&gt;
*Setup 2：Connect the infrared transmission sensor to the D3 pin of Sensorhub through the pin board. &lt;br /&gt;
[[file:Microduino-sensorhub_rule.JPG|thumb|800px|center]]&lt;br /&gt;
[[File:light_ir_transmitter.jpg|600px|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
==Software Debugging==&lt;br /&gt;
*TV infrared control code definition. Here we adopt NEC encoding format. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#define ITEM+  0x02FDD827  //TV program+ &lt;br /&gt;
#define ITEM-  0x02FDF807  // TV program -&lt;br /&gt;
#define VOL+  0x02FD58A7   //Volume+&lt;br /&gt;
#define VOL-  0x02FD7887   // Volume -&lt;br /&gt;
&lt;br /&gt;
MPU6050 accelgyro;       //Three-axis acceleration sensor &lt;br /&gt;
IRsend irsend;           //Infrared transmission &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Three-axis acceleration sensor initialization &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
Serial.println(&amp;quot;Initializing I2C devices...&amp;quot;);&lt;br /&gt;
accelgyro.initialize();    //IIC device initializes. &lt;br /&gt;
Serial.println(&amp;quot;Testing device connections...&amp;quot;);&lt;br /&gt;
Serial.println(accelgyro.testConnection() ?&amp;quot;MPU6050 connection successful&amp;quot; : &amp;quot;MPU6050 connection failed&amp;quot;);   //MPU6050 has been connected. &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[File:Microduino_MPU6050_1.png||300px|center|thumb]]&lt;br /&gt;
*Judge the movement status of the controller.  (Move rightwards: TV program+   Leftwards: TV program -   Upwards: Volume+   Downwards: Volume -)  &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
 accelgyro.getAcceleration(&amp;amp;ax, &amp;amp;ay, &amp;amp;az);   //Acquire accelerator values. &lt;br /&gt;
    Ax = ax/16384.00;      &lt;br /&gt;
    Ay = ay/16384.00;&lt;br /&gt;
    Az = az/16384.00;&lt;br /&gt;
    &lt;br /&gt;
    if(Ay &amp;gt;= 0.6 )      //Have detected the remote controller starts to move rightwards.&lt;br /&gt;
    {&lt;br /&gt;
      irsend.sendNEC(ITEM+,32);   //Send channel change code &lt;br /&gt;
      delay(1000);      //Delay time and wait until it stops moving. &lt;br /&gt;
    }&lt;br /&gt;
    else if(Ay &amp;lt;= -0.6) //Have detected the remote controller starts to move leftwards. &lt;br /&gt;
   {&lt;br /&gt;
      irsend.sendNEC(ITEM-,32);   &lt;br /&gt;
      delay(1000);     &lt;br /&gt;
    }&lt;br /&gt;
    else if(Az &amp;gt;= 1.5)   //Have detected the controller starts to move upwards. &lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
      irsend.sendNEC(VOL+,32);   &lt;br /&gt;
      delay(1000);&lt;br /&gt;
    }&lt;br /&gt;
    else if(Az &amp;lt;= 0.5)   //Have detected the controller starts to move downwards. &lt;br /&gt;
    {&lt;br /&gt;
       irsend.sendNEC(VOL-,32);  &lt;br /&gt;
       delay(1000);&lt;br /&gt;
    } &lt;br /&gt;
    delay(100);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Note: If you think the infrared transmission sensor's remote control distance is short, you can reduce current-limit resistance on the infrared sensor to increase transmission distance. &lt;br /&gt;
&lt;br /&gt;
==Program==&lt;br /&gt;
[[https://github.com/Microduino/Microduino_Tutorials/tree/master/MCookie_Tutorial/MicroduinoMotionRemoteTV MicroduinoMotionRemoteTV]]&lt;br /&gt;
&lt;br /&gt;
==Result==&lt;br /&gt;
By moving leftwards or rightwards, the remote controller can change TV channels. By moving upwards or downwards, it can control TV volume. You can also add attitudes to control TV's other functions. &lt;br /&gt;
&lt;br /&gt;
==Video==&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>1304410487@qq.com</name></author>	</entry>

	</feed>