LeJOS学习(6):Sensor的API研究-TouchSensor
来源:互联网 发布:判断素数c语言 9是素数 编辑:程序博客网 时间:2024/05/17 07:28
继续研究传感器,因为我手上是Home版,所以只有触碰、颜色和红外三个感应器,今天先从最简单的TouchSensor开始吧。就是它了:
TouchSensor只有两个状态,压下或没压下。所以代码非常简单,lejos提供了两种方法来操作传感器,一一道来。
方法一:使用lejos.hardware.sensor
在这个硬件包下有大量的传感器类,其中就有我们需要的EV3TouchSensor:
//触碰传感器接到1号口 EV3TouchSensor sensor = new EV3TouchSensor(SensorPort.S1); SensorMode mode = sensor.getTouchMode(); float[] samples = new float[mode.sampleSize()]; System.out.println("====samples size is "+samples.length); while( true ){ sensor.fetchSample(samples, 0);// for(int i=0;i<samples.length;i++)// log.echo("sample["+i+"] = "+samples[i]+","); //如果samples[0]==1.0,说明被触碰了。 if( samples[0]==1.0){ break; } Delay.msDelay(1000); } sensor.close();
从上面代码是lejos对传感器封装的典型流程,
- 构造,并指定端口,注意这里的端口与Motor中使用的不一样了。
- 获得传感模式,对于TouchSensor来说,只可能有一个模式,即触碰模式。
- 构造一个数组用于存放采样数据,数组大小应该等于mode.sampleSize()。
- 进入采集状态,利用mode.fetchSample函数采样,结果存在上面那个数组中。
- 不同的传感器,采样得到的数据含义也是不同的,根据需要使用。
对于触碰而言,只有一个采样数据,所以sampleSize=1,得到的采样值也只有两个,0表示没有被压下,1表示被压下了。
方法二:使用lejos.robotics中的适配器
lejos为我们提供了更为简便的适配器类,比如触碰就有TouchAdapter,可以大量简化上面的代码。
TouchAdapter adapter = new TouchAdapter(new EV3TouchSensor(SensorPort.S1));// while(true){// // log.echo("touch status is "+adapter.isPressed());// // if( adapter.isPressed() ) break;// Delay.msDelay(1000);// } synchronized (adapter) { while ( !adapter.isPressed() ) try { log.echo("status="+adapter.isPressed()); adapter.wait(500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
构造Adapter需要一个Sensor,然后它就简单到只需要一个 adapter.isPressed()就可以判断是否被按压下。
0 0
- LeJOS学习(6):Sensor的API研究-TouchSensor
- LeJOS学习(7):Sensor的API研究-ColorSensor
- LeJOS学习(8):Sensor的API研究-InfraRedSensor
- LeJOS学习(4):Motor的API研究
- LeJOS学习(5):Motor的API研究-进阶篇
- LeJOS学习(3):继续打造Maven的开发环境
- LeJOS学习(2):继续 HelloWorld
- LeJOS学习(9):一个整合传感器与马达的简单例子
- LeJOS学习(1):一切从安装开始
- HttpClient学习研究---第五章:流利的API
- HTML5 audio API的研究与学习1
- [sensor] android的sensor架构
- leJOS——LEGO NXT的Java环境
- 最近研究的windows API
- Android 传感器(Sensor)API教程
- Android 传感器(Sensor)API教程
- Android学习之Sensor
- MQTT的学习研究(十二) MQTT moquette 的 Future API 消息发布订阅的实现
- No.6 Single Number II 一组数都出现n次除了某个数,找出这个数
- 基于opencv的符号提取源代码
- 最常用的排序——快速排序
- PHP+Mysql+AJAX无跳转刷新例子
- 小波变换入门知识总结
- LeJOS学习(6):Sensor的API研究-TouchSensor
- HDU 5523:Game
- 在iPhone上使用3D Touch
- hdoj 2579 Dating with girls(2) 【BFS&&三维数组标记】
- Spark学习笔记之初识
- 【C#】winform子窗体与父窗体传值,子窗体与子窗体传值
- 装饰模式----设计模式系列
- 职业生涯规划
- poj2367 拓扑排序入门