版权声明:本文为博主原创文章,如转载请注明出处和作者。 https://blog.csdn.net/crashMaker/article/details/78677599
钛极OS(TiJOS)物联网操作系统之小试牛刀(2)——超声波测距
作者:crashMaker
说明
开发环境的搭建以及应用工程的创建方法在这里不再赘述,可参考笔者文章《钛极OS(TiJOS)物联网操作系统之初体验》或访问钛极OS(TiJOS)系统官方发布的教程☞钛极OS(TiJOS)应用开发环境搭建
功能实现
采用超声波测距方式, 测量到前方障碍物的距离,并在显示屏上显示距离数值,测量周期为200毫秒。
硬件准备
- TiKit-T600-ESP8266A 开发板
- TiHCSR04超声波测距模块
- TiOLED_UG2864显示模块(OLED12864)
- 杜邦线若干
- USB线两条
硬件连接
TiKit开发板<——连接——>TiOLED_UG2864显示模块
SCL <——连接——>SCL
SDA <——连接——>SDA
3.3V <——连接——>VCC
GND <——连接——>GND
===================================
TiKit开发板<——连接——>TiHCSR04超声波测距模块
PIN3 <——连接——>Trig
PIN4 <——连接——>Echo
3.3V <——连接——>VCC
GND <——连接——>GND
===================================
程序编写
在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”,运行编写的应用程序,演示效果如下:
应用运行后,在Eclipse中打印日志如下: