【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

相关文章

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet