也可以参考这个网址:http://www.makerlab.me/guides/6/articles/34

1.教Pixy一个物体
教Pixy识别一个物体是非常简单的。但让我们先说一下什么要的物体会更好的被Pixy所识别。Pixy使用的是基于色调过滤算法(hue-based color filtering algorithm)来识别物体。因为Pixy使用色调(hue),物体应明显的色调,下面的物体就很好,因为他们都有比较好、易辨识的色调。

下面有几个不好识别的物体,因为他们没有色调(黑,白或灰)或因为色调不明显。


把这条原则记在心里,挑选一个物体来教Pixy。(通过电池或USB线给Pixy供电,如果你还没有。当你给Pixy供电时,Pixy会闪几下LED。等待LED灭掉后再教Pixy。)用手按住Pixy顶部的按钮,等待大约1秒钟,LED会变亮,先显示白色,然后是红色,然后是别的颜色,当显示红色时就松开按钮。
当你松开按钮后,Pixy会进入所谓的“light pipe”模式,LED的颜色就是Pixy摄像头所看到的图像中间部分的颜色。

用LED的颜色来检查是否你的物体在Pixy视角的中心位置。当你感觉LED颜色和你的物体颜色很接近时,点击一下按键(按下并释放按键,就像单击鼠标一样)。如果Pixy感觉你的物体色调足够好(有足够的色彩饱和度[enough color saturation])的话,LED会闪烁,你现在已经操作完成。Pixy现在已经“学会”了你的物体,并且会追踪具有相同颜色的物体。如果物体的色调没有那么好,LED会关闭(不会闪)并且Pixy并没有学到物体。如果LED没有闪,你可以换一个有更好色彩饱和度的物体。
多个标记[Signatures]
Pixy可以学习多大7个颜色标记。在上面部分,我们通过松开按键当LED变红色时,已经教了Pixy第一个颜色标记。如果我们继续按下按键,LED会变为橙、黄等,来指示剩下的颜色标记。下面是标记的顺序:
1、红
2、橙
3、黄
4、绿
5、青
6、蓝
7、紫
颜色标记的编号是指你松开按键时的颜色。松开按键LED颜色是黄色,那么你在教Pixy第三个标记。松开按键后LED变蓝色,你教的是第6个标记。这些颜色跟实际的物体色调没有任何关系。这些颜色只是用来识别标记编号。举例,标记1可能是黄色的物体,虽然标记1的提示颜色是红色,标记2可能是粉色物体,虽然它的提示颜色是橙色。
关于教物体的其它说明
当你按下并松开按键来表示LED颜色和实际物体颜色匹配时,Pixy会闪LED,并且闪烁的亮度代表物体的色调的饱和程度。所以高亮度的闪烁是好的。试着教Pixy一个颜色鲜艳的物体——Pixy会通过闪烁LED来指示它是不是“高兴”。
如果你偶然发现本打算教Pixy第3个颜色标记时,它却再学第2个。你可以按下按键直到LED关闭后再松开。这将是你取消Pixy学习模式的方法。你可以通过按住按键重新进入学习摸索。
白平衡
某些类型的灯(如白炽灯)有略红的色调,而有些(如荧光灯及常见的节能灯)会有略蓝的色调。这样的光线会影响你的颜色标记。比如,如果你在白炽灯条件下教的物体,转移到荧光灯下,颜色标记可能不会被识别的非常好。你可以重新教标记或调节白平衡。
当你第一次上电时,Pixy会花5秒钟的时间来监测需要用哪个合适的白平衡。然后它会关闭自动白平衡的功能。如果你想重新配置白平衡,按下按键直到LED变白后松开,时间会很快,做好松开的准备。Pixy现在就是在自动白平衡摸索中。你可以那一张白色的纸在Pixy前面,从而让Pixy可以进行白平衡调节,这将会花2~3秒钟的时间。然后你可以像点鼠标一样按下并松开按键。LED会闪烁来表示白平衡调试成功,完成了。
通过PixyMon来教Pixy
你也可以通过PixyMon来教Pixy。当你的物体很小或者你想更好的控制哪些像素被用到时会很有帮助。通过连接USB线并且运行PixyMon。当PixyMon打开后,点击上面的raw按钮。

现在拿着要教Pixy的物体在它前面,然后选择菜单Action=》Set signature 1。

现在选择哪一个区域是你想用的物体。

如果成功,你应该可以在下面的命令区看到“Success!”信息,并且还有一个数字是0~100之间来指示色调饱和度。色调饱和度高会有更高的数字。
就是这样了,你现在可以监测颜色标记的效果了,通过点击厨师图标或选择Action➜Cooked Video。Cooked Video(处理过的图像)会显示哪些像素与颜色标记一致,并且如何组成识别的物体:

下面是什么呢?
你可以通过这种方式教Pixy识别物体,最多可以有7种颜色标记。需要注意的是Pixy总是将标记记忆在flash里,所以当你下一次上电时,这些标记都是直接可用的。
2. 上传新固件
Pixy使用保存在ROM里的bootloader来上传最新的固件到Flash里。这使得Pixy不会“变砖”,也就是说你总可以从不成功的固件上传或不完美固件版本的升级中恢复你的Pixy。
第一次上传固件
请仔细按照本文操作。(如果你做错了某件事情或顺序颠倒,也不会有大问题,只是有可能会让你困惑。)OK,开始前做如下准备:
*Pixy上没有任何接线,没有电源,没有usb,没有IO,没有舵机等;
*你的计算机没有运行PixyMon(但是PixyMon已经在你的计算机上安装了);
*你自己的固件已经准备好了(.hex文件);
首先,将USB线插在计算机上
然后按下Pixy顶部白色的按钮,并且在保持按下按键的同时插上USB线。要同时完成,这可能是最麻烦的一个环节了。
Pixy上的LED会变的非常亮(白色)并且保持,这说明你已经进入了固件上传模式。因为你这是第一次上传固件,你的计算机会提示你安装固件,因为Pixy在固件上传模式下使用单独的驱动,所以计算机之前并没有安装过相应的驱动。这个过程只针对Windows用户,如果你用的是Mac,你可以直接掉过驱动安装部分。
Windows Vista、7或8
你应该会看到这样的下弹窗:

只需要等待驱动安装完成即可,期间你不想要做任何操作,仅仅是等待。
Windows XP
你会看到添加新硬件的对话框

点击,“No,not this time”然后点击“下一步”。然后点击“自动安装驱动”,然后点击“下一步”

驱动将会安装完成,等待完成后继续。
打开PixyMon
首先打开PixyMon,当PixyMon运行后,Pixy上的LED会关闭,你会看到如下信息“Pixy programming state detected”在PixyMon的命令窗口区。如果你没有看到上面信息,有可能是驱动还在安装,再多等一段时间。
选择菜单File➜Program,选取文件对话框将会弹出,浏览到你的新固件位置(.hex文件)然后选择相应文件,然后点击OK。Pixy会开始接受新固件,然后将其写入到flash中。这是非常快的,一般只需要2~3秒钟。当完成后,你会看到“done!”信息,你需要拔掉USB线然后重新插上来运行新固件。
任务完成。
再一次安装固件
下一次上传固件时,你的驱动已经安装,所以你只需要通过按键然后插上USB线进入固件上传模式。并且PixyMon可以已经在运行,这并不影响。
3. Pixy与Arduino连接
Pixy被设计为可以与微控制器进行通讯,并且Pixy可以直接与Arduino进行通讯。它会以1Mbits/s的速度发送块信息给Arduino,这意味着Pixy每秒可以发送超过6000个识别的物体或每帧135个被识别的物体(Pixy每秒可以处理50帧画面)。
OK,想让Pixy与Arduino进行通讯,使用Pixy自带的数据线连接Pixy到Arduino。


接下来,下载Arduino库在这里:http://pan.baidu.com/s/1dDpDlvV ,打开Arduino IDE并且通过菜单Sketch->Import Library导入Pixy库文件,然后浏览到Pixy库文件解压的地方。
然后,通过菜单File➜Examples➜Pixy载入“hello_world”例子。上传代码到Arduino并且打开Serial Monitor(串口监视器)。你应该可以看到一些类似于下面的数据信息:

Detected 1: block 0: sig: 1 x: 159 y: 109 width: 61 height:
61Detected 1: block 0: sig: 1 x: 173 y: 114 width: 60 height:
61Detected 1: block 0: sig: 1 x: 146 y: 111 width: 70 height: 65…

注意,这个例子中,如果Pixy运行了默认的固件,并且一个物体被识别才会打印这些信息。
Arduino API
在Arduino中使用Pixy是非常简单的,你只需要包含SPI和Pixy的头文件:

并且在setup()和loop()函数外面创建一个全局的Pixy实例变量:

API包含一个函数:getBlocks(),这个函数将返回Pixy所识别的物体数量。然后你就可以通过pixy.blocks[]的数组得到每个识别到的物体数据(每个数组成员对应一个被识别的物体)。每个成员(i)包含下列元素:
pixy.blocks[i].signature:被识别物体的标记编号;
pixy.blocks[i].x:被识别物体中心位置在x方向的坐标;
pixy.blocks[i].y:被识别物体中心位置在y方向的坐标;
pixy.blocks[i].width:被识别物体的宽度(1~320);
pixy.blocks[i].height:被识别物体的高度(1~200);
pixy.blocks[i].print():一个成员函数用来打印被识别物体的信息到串口上;
所以Pixy与Arduino通讯很简单。
其它微控制器或设备
Pixy支持多种方式输出被识别物体的数据。它支持SPI,I2C,UART或模拟/数字 I/O口(通过10Pin接口)。Pixy还支持USB2.0 。你可以通过PixyMon的对话框来配置Pixy使用哪种方式。“Data out port”参数决定了输出方式(UART/SPI/Arduino SPI/I2C)。

如果你将鼠标指针移动到“Data out port”文字上,会有提示信息显示各个类型的接口对应的文字:
SPI:这是默认的输出端口,使用了三根心(IO口的第Pin1、3、4)并且用于与Arduino通讯;
I2C:两线接口(IO口的Pin5和9),可以支持一个主机与127个从机的通讯(多大127个Pixy);
UART:这是普通的串口(IO口的Pin1和4)。Pixy通过Pin1(输入)接受数据,Pin4(输出)发送数据;
模拟/数字 X:这种方式将在Pin3口输出0~3.3V的模拟电压,表示监测到的最大物体的X值;
模拟/数字 Y:这种方式将在Pin3口输出0~3.3V的模拟电压,表示监测到的最大物体的Y值;

在牛角座的上边相应序号为左上角1号脚:

Pixy(CMUCAM5)入门学习相关推荐

  1. pixy php,Pixy快速入门指南.pdf

    Pixy快速入门指南 Pixy 快速入门指南 1.教Pixy一个物体 教Pixy识别一个物体是非常简单的.但让我们先说一下什么要的物体会更好的被Pixy 所识别.Pixy使用的是基于色调过滤算法(hu ...

  2. python速成要多久2019-8-28_2019最全Python入门学习路线,不是我吹,绝对是最全

    近几年Python的受欢迎程度可谓是扶摇直上,当然了学习的人也是愈来愈多.一些学习Python的小白在学习初期,总希望能够得到一份Python学习路线图,小编经过多方汇总为大家汇总了一份Python学 ...

  3. MAYA 2022基础入门学习教程

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:3.41 GB |时长:4.5小时 包含 ...

  4. 3dmax Vray建筑可视化入门学习教程

    面向初学者的3Ds Max Vray最佳Archviz可视化课程 从安装到最终图像的一切都将从头开始教授,不需要任何经验 大小解压后:3.25G 时长4h 6m 1280X720 MP4 语言:英语+ ...

  5. Blender 3.0基础入门学习教程 Introduction to Blender 3.0

    成为Blender通才,通过这个基于项目的循序渐进课程学习所有主题的基础知识. 你会学到什么 教程获取:Blender 3.0基础入门学习教程 Introduction to Blender 3.0- ...

  6. Maya游戏角色绑定入门学习教程 Game Character Rigging for Beginners in Maya

    准备好开始为游戏制作自己的角色动画了吗? 你会学到什么 了解Maya的界面 优化并准备好你的模型,为游戏做准备 了解关节以及如何使用它们来构建健壮的角色骨骼,以便在任何游戏引擎中制作动画 了解IK和F ...

  7. 三维地形制作软件 World Machine 基础入门学习教程

    <World Machine课程>涵盖了你需要的一切,让你有一个坚实的基础来构建自己的高质量的电影或视频游戏地形. 你会学到什么 为渲染或游戏开发创建高分辨率.高细节的地形. 基于Worl ...

  8. Blender3.0动画制作入门学习教程 Learn Animation with Blender (2021)

    要求 下载并安装Blender.免费下载和免费用于任何目的. 描述 加入我的动画课程. 在本课程中,我将从头开始讲述在Blender中创建动画场景的过程. 从第一步到最终渲染.在这个课程中,我们将使用 ...

  9. UE5真实环境设计入门学习教程

    大小解压后:4.69G 时长4h 30m 1280X720 MP4 语言:英语+中英文字幕(根据原英文字幕机译更准确) 虚幻引擎5–面向初学者的真实环境设计 Unreal Engine 5 – Rea ...

  10. ZBrush全面入门学习教程 Schoolism – Introduction to ZBrush

    ZBrush全面入门学习教程 Schoolism – Introduction to ZBrush ZBrush全面入门学习教程 Schoolism – Introduction to ZBrush ...

最新文章

  1. 树莓派安装python2idle_树莓派开发日记2——Linux!python!GPIO!
  2. python判断集合为空
  3. 享有的意思是_“fuck you money”不是“x你钱”,真实意思却是这个
  4. java社区活跃度_Java并发编程-活跃度问题
  5. jQuery学习笔记——jQuery基础核心
  6. 1010 一元多项式求导(C语言)
  7. 苹果笔记本能学二级计算机吗,怎么辨别苹果笔记本是不是翻新机
  8. AI学习路线和书籍分享
  9. # 书籍《银河帝国10—裸阳》读后感—20210606
  10. 南宁领取房产证流程以及寻找房产评估公司的方法
  11. Spark Transformation算子->subtract
  12. 笔记一:领导力是什么
  13. Contour Processing
  14. 如何用python打印一段文字,如何在PYTHON中正确打印阿拉伯文字
  15. 【TVM 巡礼】How to optimize cpu(x86) gemm串讲
  16. ResNet DenseNet(原理篇)
  17. 【机器学习】深度解析机器学习五大流派中主算法精髓
  18. 短信分割算法(以长度分割)
  19. Python爬虫入门——3.8 Scrapy爬虫项目文件介绍
  20. 视频直播系统源码,实例源码系列-设置系统时间

热门文章

  1. 河南专升本公共英语语法考点分析---倒装句型
  2. 颠覆,仅银行卡大小充电宝,可登机,手机党出门随身必备!
  3. js判断点在线上位置,距离各端点距离算法
  4. 本地项目上传到git
  5. 为什么布局了100+社交媒体账号,却依然做不好社会化营销?
  6. 10款超实用的服务器监控工具和软件
  7. 分页 pti_计算pti的历史
  8. Java枚举类与注解——一篇文章读懂枚举类与注解
  9. 心酸java面经合集(说多了都是泪啊
  10. 中国石油大学《行政组织学》第一次在线作业