【iOS与EV3混合机器人编程系列之三】编写EV3 Port Viewer 应用监测EV3端口数据

本文主要是介绍【iOS与EV3混合机器人编程系列之三】编写EV3 Port Viewer 应用监测EV3端口数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在前两篇文章中,我们对iOS与EV3混合机器人编程做了一个基本的设想,并且介绍了要完成项目所需的软硬件准备和知识准备。

那么在今天这一篇文章中,我们将直接真正开始项目实践。


==第一个项目: EV3 Port Viewer==


项目目的:在iOS设备上通过WiFi连接EV3并且读取EV3每个端口的数据。


大家可以在App Store上搜索EV3 Port Viewer,那么我已经做了一个范例App发布了。下载地址为:https://itunes.apple.com/cn/app/ev3-port-viewer/id898298464?mt=8



应用的基本使用要求:将EV3和iPhone同时连接到同一个WiFi网络中。对于EV3,必须使用NetGear WNA1100 WiFi Dongle。网卡的使用非常简单,只有插在EV3 Brick的USB接口上就能使用了

这里不得不说明的是:使用iOS7及以上版本的iPhone,EV3无法直接连接到iPhone的热点上!!


可能原因:在iOS7之后,iPhone的热点只支持WPA2 PSK的加密格式,而NetGear WNA1100在EV3上则只能使用WPA2或None。目前我还没有找到有效的解决办法,大家可以一起研究解决。这个问题从本质上看严重影响了iOS与EV3混合机器人的体验!这使得我们不得不单独再弄一个路由器,很麻烦。


==开始==


我已经将iOS与EV3连接及控制的程序编写成库分享到GitHub上,并且本项目的程序也直接分享了。


https://github.com/songrotek/iOS_WiFi_EV3_Library.git

https://github.com/songrotek/EV3PortViewer.git


另外,感谢网友crazypoo江门首席监黄师对库的扩展,他的github在这:

https://github.com/crazypoo/myrobot


大家可以先下下来,然后跟着本教程一步一步编写这个项目。在这里我将会一步一步地剖析我编写的这个代码库的实现原理。与此同时,考虑到阅读本文的读者可能大都不了解iOS开发,因此本文将非常详细的介绍每一个开发步骤!


==Step 1:建立项目==

打开Xcode,新建一个项目,选择Single View Application,点击Next。





将项目命名为EV3PortViewer。Company Identifier选择你们自己的开发者账号里申请的App ID。对于没有开发者账号的童鞋,那么不要考虑这个。如果大家想要真机测试,那么有两种选择,一个是花99美元申请一个账号,一个是在淘宝上购买一个真机测试的证书。虽然说在淘宝上这种方式不怎么好,但对于刚刚开始研究iOS开发的童鞋,不失为一个省钱的方式。

接下来Class Prefix留空,然后Device选择iPhone。这里不使用iPad只是因为iPad太大麻烦。之后或许会考虑出个iPad版本。

设置好之后,点击Next创建。


==Step 2:添加代码库==

大家下载我的代码库之后,将其添加进来。方法就是点击项目右键,点击 Add Files to “EV3PortViewer”…,如下图所示:



文件夹名称为iOS_WiFi_EV3_Library,添加进来后如下图所示:

这篇关于【iOS与EV3混合机器人编程系列之三】编写EV3 Port Viewer 应用监测EV3端口数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/630662

相关文章

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke