【iOS与EV3混合机器人编程系列之7】通过蓝牙控制EV3
1 前言
2 具体代码实现
![](/assets/blank.gif)
- (void)connectEV3
{[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(accessoryDidConnect:) name:EAAccessoryDidConnectNotification object:nil];[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(accessoryDidDisconnect:) name:EAAccessoryDidDisconnectNotification object:nil];[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sessionDataReceived:) name:EADSessionDataReceivedNotification object:nil];[[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications];self.sessionController = [EADSessionController sharedController];accessoryList = [[NSMutableArray alloc] initWithArray:[[EAAccessoryManager sharedAccessoryManager] connectedAccessories]];NSLog(@"accessory list:%@",accessoryList);if(accessoryList != nil){[self.sessionController setupControllerForAccessory:[accessoryList firstObject]withProtocolString:@"COM.LEGO.MINDSTORMS.EV3"];isConnected = [self.sessionController openSession];}
}
- (void)accessoryDidConnect:(NSNotification *)notification {NSLog(@"EV3 did connect!");EAAccessory *connectedAccessory = [[notification userInfo] objectForKey:EAAccessoryKey];[self.sessionController setupControllerForAccessory:connectedAccessorywithProtocolString:@"COM.LEGO.MINDSTORMS.EV3"];isConnected = [self.sessionController openSession];}
在这里我也直接使用了EADemo上的代码来分析。
- (IBAction)go:(id)sender {if (isConnected) {NSData *data = [EV3DirectCommander turnMotorAtPort:EV3OutputPortB power:50];[[EADSessionController sharedController] writeData:data];isGo = YES;}
}
3 为什么用蓝牙?
【iOS与EV3混合机器人编程系列之7】通过蓝牙控制EV3相关推荐
- 【iOS与EV3混合机器人编程系列之三】编写EV3 Port Viewer 应用监测EV3端口数据
在前两篇文章中,我们对iOS与EV3混合机器人编程做了一个基本的设想,并且介绍了要完成项目所需的软硬件准备和知识准备. 那么在今天这一篇文章中,我们将直接真正开始项目实践. ==第一个项目: EV3 ...
- 【iOS与EV3混合机器人编程系列之中的一个】iOS要干嘛?EV3能够更酷!
乐高Mindstorm EV3智能机器人(下面简称EV3) 自从在2013年的CES(Consumer Electronics Show美国消费电子展)上展出之后, 就吸引了全球广大机器人爱好者的眼球 ...
- 【iOS与EV3混合机器人编程系列之五】iOS_WiFi_EV3_Library 剖析之连接EV3
在上一篇文章中,我们讲解了如何用开源代码库CocoaAsyncSocket来实现iOS上的UDP和TCP数据通信.那么在本文中,我们将介绍在CocoaAsyncSocket的基础如何使用UDP和TCP ...
- 【iOS与EV3混合机器人编程系列之六】iOS_WiFi_EV3_Library 剖析之发送命令给EV3
在上一篇文章中,我们已经知道了如何通过WiFi将iOS设备和EV3连接起来,那么下一步的工作就是从iOS设备中发送命令给EV3并接收EV3返回的数据.这也是本篇文章将告诉大家的. 首先要明确的一点是本 ...
- 【iOS与EV3混合机器人编程系列之二】工欲善其事,必先利其器(准备篇)
在上一篇文章中,我们论述了iOS与EV3结合后机器人开发的无限可能, 那么,大家要不要一起来Hacking一把呢? 为了能够完整地完成我接下来我讲的项目,我们需要做以下准备: 1.一台Mac运行MAC ...
- 【iOS与EV3混合机器人编程一系列五个】iOS_WiFi_EV3_Library 解剖连接EV3
在上一篇文章中.我们解说了怎样用开源码库CocoaAsyncSocket来实现iOS上的UDP和TCP数据通信.那么在本文中.我们将介绍在CocoaAsyncSocket的基础怎样使用UDP和TCP连 ...
- 大疆推教育机器人已到第二代!机器人编程玩具的前世今生是怎样的?
热点追踪 / 深度探讨 / 实地探访 / 商务合作 大疆作为一个无人机品牌,可能已经无人不知,无人不晓了吧.但是,你知道大疆已经涉足教育机器人领域了吗? 继去年大疆推出首款教育机器人机甲大师S1后,今 ...
- wedo巡线机器人编程教程_这是一个机器人和编程的时代
图中在草地上自在奔跑的机器人是波士顿动力公司(BostonDynamics) 开发的类人双足机器人Atlas,由麻省理工(MIT)电子工程与计算机科学系的教授马克·雷波特在1992年创立,一直致力于将 ...
- Javascript模块化编程系列二: 模块化的标准化(CommonJS AMD)
前言 Javascript模块化编程系列一: 模块化的驱动 在前一篇介绍了为什么要进行Javascript模块化编程.至于如何实现模块化,不同的开发组织和个人具体的实现方式肯定是不一样.如何统一一个规 ...
最新文章
- MySQL登陆时加-U选项
- retinajs 使用方法
- Python 的装饰器执行顺序问题(二)
- 【渝粤题库】广东开放大学 社会学基础 形成性考核
- 二、kubernetes
- 【DFS + Backtracking】LeetCode 79. Word Search
- hdu 3879 Base Station
- 利用Axure制作动态表格(Axure学习日志1)
- 阿里P6+面试:介绍下观察者模式?
- 台式计算机键盘快捷键怎么设置,电脑快捷键设置修改 电脑键盘快捷键怎么更改...
- 代购类网站商品高清晰大图片(1000x1000)的采集解决方案 - hackercai - 博客园
- iis部署网站java_值得分享的IIS部署网站详细步骤
- Java解决一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?经过每个村子卖出多少只鸭子?
- 2019-05-22 Domain注入工具;旁注工具;ASP木马;
- TS 中的 keyof 和 typeof 操作符
- 中医药大学远程教育计算机,《中医药大学远程教育计算机作业 1-7》.doc
- 熤星传媒:抖音几万粉丝能入驻星图?
- 打开vivado的.xpr工程文件报错Cannot locate target loader
- Ceph分布式存储知识总结
- [再寄小读者之数学篇](2014-11-20 计算二重积分)