钛极OS(TiJOS)物联网操作系统之小试牛刀(2)——超声波测距

来源:互联网 发布:yy笑声软件下载 编辑:程序博客网 时间:2024/05/24 06:56

钛极OS(TiJOS)物联网操作系统之小试牛刀(2)——超声波测距

作者:crashMaker

说明

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

功能实现

采用超声波测距方式, 测量到前方障碍物的距离,并在显示屏上显示距离数值,测量周期为200毫秒。

硬件准备

  1. TiKit-T600-ESP8266A 开发板
  2. TiHCSR04超声波测距模块
  3. TiOLED_UG2864显示模块(OLED12864)
  4. 杜邦线若干
  5. USB线两条

硬件连接

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

SCL <——连接——>SCL

SDA <——连接——>SDA

3.3V <——连接——>VCC

GND <——连接——>GND

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

TiKit开发板<——连接——>TiHCSR04超声波测距模块

PIN3 <——连接——>Trig

PIN4 <——连接——>Echo

3.3V <——连接——>VCC

GND <——连接——>GND

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

hardware

程序编写

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

import java.io.IOException;import java.text.DecimalFormat;import tijos.framework.devicecenter.TiGPIO;import tijos.framework.devicecenter.TiI2CMaster;import tijos.framework.sensor.distance.TiHCSR04;import tijos.framework.transducer.led.TiOLED_UG2864;import tijos.util.Delay;/** * 采用超声波测距方式, 测量到前方障碍物的距离,并在显示屏上显示距离数值,测量周期为200毫秒 *  * @author crashMaker * */public class Distance {    public static void main(String[] args) {        try {            //定义要使用的I2C接口            int i2cPort = 0;            //定义要使用的GPIO接口和PIN资源            int goioPort = 0;            int trigPin = 3;            int echoPin = 4;            //打印日志            System.out.println("This is a distance measurement test.");            //分配I2C和GPIO资源            TiI2CMaster i2c = TiI2CMaster.open(i2cPort);            TiGPIO gpio = TiGPIO.open(goioPort, trigPin, echoPin);            //绑定资源到实例,完成与硬件的映射            TiOLED_UG2864 oled = new TiOLED_UG2864(i2c, 0x78);            TiHCSR04 hcsr = new TiHCSR04(gpio, trigPin, echoPin);            //显示屏幕打开,并显示信息            oled.turnOn();            oled.clear();            oled.print(0, 0, "===crashMaker===");            //定义格式化对象            DecimalFormat df = new DecimalFormat("######0.00");               //连续测量和显示            while(true) {                //启动测量                hcsr.measure();                //获取测量结果,并按照指定格式显示                double dis = hcsr.getDistance();                oled.print(2, 0, "Distance:"+df.format(dis)+" m");                //线程睡眠200毫秒                Delay.msDelay(200);            }        }        catch(IOException e) {            e.printStackTrace();        }    }}

功能演示

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

test

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

log

阅读全文
3 0