资料介绍
描述
在这篇文章中,我想介绍一种使用 Android 手机的新方法,并解释我们如何使用它来控制Sphero球。如果您不知道这个令人难以置信的球,请查看Sphero 网站。
计划:使用温度传感器控制 Sphero
在这个 Android 项目中,我想描述我们如何在智能手机中集成温度传感器来控制 Sphero 球的颜色。换句话说,我想根据智能手机测量的温度改变球的颜色,即使它处于待机状态。这是一个有趣的项目,因为它可以用来演示一些重要的概念:
最后但同样重要的是,如何连接和使用Sphero ball 及其 SDK 。我们要设计的是一个如下图所示的应用程序:
应用程序设计
现在我们知道我们想要获取什么,我们可以混合使用 Android 特性和组件来获取它。我们需要一个监控温度传感器的组件和另一个连接到 Sphero 的组件。如前所述,即使应用程序不在前台或智能手机处于待机状态,我们也想让这项工作正常进行。所以我们需要一个Service,因为这个Android组件可以满足我们的要求。我们将用来控制 Sphero 的组件是:
- 监控温度传感器的服务
- 连接到球并控制其颜色的服务
UI 活动启动两个服务并侦听来自它们的事件。该活动设置了一个警报,用于启动温度传感器服务,这样我们就不会耗尽电池。警报可以配置为以固定的时间间隔启动。每次温度传感器启动时,它都会测量环境温度并广播该值。UI 活动侦听这些事件并在 UI 中显示值。同时,球连接服务监听相同的事件并计算颜色分量(R、G、B)并设置球的颜色。
创建温度传感器服务:代码
现在我们已经大致了解了应用程序中的主要组件,我们可以开始对其进行编码了。我们要编码的第一个元素是温度传感器服务。
创建球连接服务:代码
我们必须实施的另一项服务是通过蓝牙处理 Sphero 连接。您可以参考 Sphero SDK 了解更多信息。我们想在 android 服务中处理连接:
public class BallConnectionService extends Service {
..
}
现在onStartCommand
我们开始连接到 Sphero,同时我们开始监听传入的温度事件(第 8 行)。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (mySphero == null)
doConnection();
IntentFilter rec = new IntentFilter();
rec.addAction(SensorService.TEMP_BALL_SENSOR);
registerReceiver(receiver, rec);
return Service.START_STICKY;
}
在doConnection
我们进行实际连接时:
private void doConnection() {
sendStatus(CONNECTING);
createNotification("Connecting...");
RobotProvider.getDefaultProvider().addConnectionListener(new ConnectionListener() {
@Override
public void onConnected(Robot robot) {
Log.d("Temp", "Connected");
mySphero = (Sphero) robot;
sendStatus(CONNECTED);
createNotification("Connected");
}
@Override
public void onConnectionFailed(Robot robot) {
Log.d("Temp", "Conection failed");
sendStatus(FAILED);
}
@Override
public void onDisconnected(Robot robot) {
Log.d("Temp", "Disconnected");
mySphero = null;
createNotification("Disconnected!");
}
});
RobotProvider.getDefaultProvider().addDiscoveryListener(new DiscoveryListener() {
@Override
public void onBluetoothDisabled() {
Log.d("Temp", "BT Disabled");
}
@Override
public void discoveryComplete(Listspheros) {
Log.d("Temp", "Found ["+spheros.size()+"]");
}
@Override
public void onFound(Listspheros) {
// Do connection
Log.d("Temp", "Found ball");
RobotProvider.getDefaultProvider().connect(spheros.get(0));
}
});
boolean success = RobotProvider.getDefaultProvider().startDiscovery(this);
}
代码看似复杂,仔细看其实很简单。我们开始广播我们尝试连接到 Sphero 的事件(第 3 行),然后,使用 Sphere API,我们注册一个侦听器以了解连接何时建立,并在最后广播连接处于活动状态的新事件通过这种方法,我们开始发现周围是否有新的 Sphero 并准备好连接。
服务的最后一部分用于监听温度事件并设置球的颜色:
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
float val = intent.getFloatExtra("value", 0);
Log.d("Temp", "Received value ["+val+"]");
if (mySphero != null) {
// send color to sphero
int red = (int) (255 * val / RANGE) * (val > 10 ? 1 : 0);
int green = (int) ( (255 * (RANGE - Math.abs(val)) / RANGE) * (val < 10 ? 0.2 : 1) );
int blue = (int) (255 * (10 - val) / 10) * (val < 10 ? 1 : 0);
mySphero.setColor(red, green, blue);
}
}
;
现在是创建应用程序并使用 Android 温度传感器控制 Sphero 的时候了。
- IC温度传感器的威廉希尔官方网站 现状 5次下载
- DS18B20温度传感器的数字温度计设计案例 53次下载
- 智能化集成温度传感器原理与应用的PDF电子书 31次下载
- 智能化集成温度传感器原理与应用的PDF电子书免费下载 20次下载
- 温度传感器及其与微处理器接口的详细资料说明 11次下载
- 四种温度传感器的数据介绍 9次下载
- 温度传感器的详细资料说明 45次下载
- 温度测量的概述和热电偶的介绍及各类温度传感器的详细资料说明 0次下载
- AD590温度传感器的中文资料介绍 29次下载
- 嵌入式应用温度测量如何选择温度传感器和调理电路
- CWF2温度传感器英文资料 7次下载
- 传感器综合实验--温度控制器 0次下载
- SUNSTAR温度传感器 69次下载
- 数字温度传感器自动控制仪的研制
- 无线数字温度传感器的设计
- 温度传感器的结构和类型 605次阅读
- 温度传感器T121构成的温度控制电路 2121次阅读
- 温度传感器是什么,哪些是属于温度传感器 1.7w次阅读
- 温度传感器如何选型 9669次阅读
- 温度传感器探头型号介绍 温度传感器原理分析 5.6w次阅读
- 温度传感器的常见分类 温度传感器应用大全 2.1w次阅读
- 温度传感器怎么测好坏_温度传感器的测量方法 8w次阅读
- 温度传感器如何选型?选择温度传感器需要注意哪些? 3.7w次阅读
- 温度传感器的应用及原理 1.5w次阅读
- 温度传感器设计方案汇总(二款温度传感器的设计方案) 5.7w次阅读
- 温度传感器种类汇总及应用分析 3w次阅读
- 各式温度传感器的原理及温度传感器套管破裂的解决 2272次阅读
- pt100温度传感器的工作电路及原理与pt100温度传感器的检定点选择 1.6w次阅读
- 常用温度传感器解析,温度传感器的原理、分类及应用 3828次阅读
- 温度传感器 3056次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多