钛极OS(TiJOS)物联网操作系统之小试牛刀(3)——红外遥控

今日头条

1097人已加入

描述

说明

开发环境的搭建以及应用工程的创建方法在这里不再赘述,可参考笔者文章《钛极OS(TiJOS)物联网操作系统之初体验》或访问钛极OS(TiJOS)系统官方发布的教程☞钛极OS(TiJOS)应用开发环境搭建

功能实现

解码红外遥控编码,编码方式为NEC码,并将遥控编码在屏幕上显示(支持重复码的接收显示)。

硬件准备

TiKit-T600-ESP8266A 开发板

TiVS1838BNEC红外接收模块

TiOLED_UG2864显示模块(OLED12864)

红外线遥控器(迷你版)

杜邦线若干

USB线两条

硬件连接

TiKit开发板<——连接——>TiOLED_UG2864显示模块

SCL <——连接——>SCL

SDA <——连接——>SDA

3.3V <——连接——>VCC

GND <——连接——>GND

===================================

TiKit开发板<——连接——>TiVS1838BNEC红外接收模块

PIN3 <——连接——>OUT

3.3V <——连接——>VCC

GND <——连接——>GND

===================================

程序编写

在Eclipse中新建TiJOS Application工程,编写JAVA代码如下:

import java.io.IOException;import tijos.framework.devicecenter.TiGPIO;import tijos.framework.devicecenter.TiI2CMaster;import tijos.framework.sensor.infrared.ITiVS1838BNECEventListener;import tijos.framework.sensor.infrared.TiVS1838BNEC;import tijos.framework.transducer.led.TiOLED_UG2864;import tijos.util.Delay; class DecodingEventListener implements ITiVS1838BNECEventListener {    private TiOLED_UG2864 _oled;    public DecodingEventListener(TiOLED_UG2864 oled) {        this._oled = oled;     }    /**      * 接收事件处理      */     public void cmdReceived(TiVS1838BNEC arg0) {        try {             _oled.print(1, 0, "ADDR:"+arg0.getAddress());             _oled.print(2, 0, "CODE:"+arg0.getCommand());             _oled.print(3, 0, "REPEAT:No ");         }        catch(IOException e) {             e.printStackTrace();         }     }    /**      * 接收重复事件处理      */     public void cmdRepeat(TiVS1838BNEC arg0) {        try {             _oled.print(3, 0, "REPEAT:Yes");         }        catch(IOException e) {             e.printStackTrace();         }     }    }/**  * 解码红外遥控编码,编码方式为NEC码,并将遥控编码在屏幕上显示(支持重复码的接收显示)。  *   * @author crashMaker  *  */public class Decoding {     public static void main(String[] args) {        try {            //定义要使用的I2C接口             int i2cPort = 0;            //定义要使用的GPIO接口和PIN资源             int goioPort = 0;            int outPin = 3;            //打印日志             System.out.println("This is a infrared decoding test.");            //分配I2C和GPIO资源             TiI2CMaster i2c = TiI2CMaster.open(i2cPort);             TiGPIO gpio = TiGPIO.open(goioPort, outPin);            //绑定资源到实例,完成与硬件的映射             TiOLED_UG2864 oled = new TiOLED_UG2864(i2c, 0x78);             TiVS1838BNEC vs1838b = new TiVS1838BNEC(gpio, outPin);            //创建解码事件监听对象,并设置监听者             DecodingEventListener lc = new DecodingEventListener(oled);             vs1838b.setEventListener(lc);            //显示屏幕打开,并显示信息             oled.turnOn();             oled.clear();             oled.print(0, 0, "===crashMaker===");            //保证主线程不退出             while(true) {                //线程睡眠1秒                 Delay.msDelay(1000);             }                }        catch(IOException e) {             e.printStackTrace();         }     } }1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192

功能演示

在Eclipse中执行“Run As TiJOS Application”,运行编写的应用程序,演示效果如下:

应用运行后,在Eclipse中打印日志如下:


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分