RPi树莓派 | 树莓派3代介绍及历代树莓派比较

树莓派自从12年02月最初发布之后,目前已突破800万的总销量。作为树莓派的早期支持者,云飞实验室也一直在关注着它的发展。如今在经历了4年的设计迭代之后,树莓派于16年02月推出了最新一代的树莓派3。树莓派3的本次发布与之前的2代只相差了整整一年时间,但是得益于目前芯片行业的快速发展,树莓派3的性能将会有很大的提升。这主要表现在以下几点: 更高的处理速度。树莓派3首次采用了64位处理器:基于Cor […]

机器学习 | 机器学习101

最近正尝试用机器学习的方法解决线性回归和趋势预测问题,这里将自己对机器学习的初步理解整理至此。 机器学习 (Machine Learning) 研究的主题是如何让计算机具备与人类同等的思考和分析能力。机器学习主要基于认知学、计算机科学,统计概率学以及信息决策学。典型的机器学习应用包括照片分类、垃圾邮件识别、自然语言处理等。最近很火热的围棋人工智能AlphaGo就是采用了深度神经网络对大量棋局进行学 […]

C语言 | C语言的函数指针

函数指针是C语言指针中的一个分支:函数指针是指向函数地址的指针。和一般的指针一样,函数指针可以大大增强编程时的灵活性。这篇博文根据我的理解,简单介绍了自己对于函数指针的理解。 一、函数名的本质 在介绍函数指针之前,我们先来理解一下究竟什么是函数。以下一段代码定义了名为fun1(),接受int并返回int参数的函数: 从一般的理解角度来看,fun1是函数的函数名。之所以要定义函数名,是因为在程序的其 […]

Smart Home | HP MicroServer Gen8 不专业评测

今年三月份,我在英国Amazon下单买下了现在这台HP ProLiant MircoServer Gen8。说到为什么要买它,回想起来,其实中间有很长的一段渊源。 记得2010年,我对DIY智能家居系统开始感兴趣。因为当时手上有友善之臂的mini2440开发板,我最初选择的实现方案是基于ARM(S3C2440)+ Linux。不过当时对Linux系统还不熟悉,花了一些精力调通了摄像头远程拍照后,就 […]

AR.Drone四轴飞行器ROS开发方法介绍

之前有人咨询如何在AR.Drone平台上进行开发,这里就简单介绍一下AR.Drone在Linux和ROS (Robot Operating System) 下的开发方法。原来计划是一篇更加完整的开发介绍,但是因为中间搁置了一段时间,很多细节到现在已经不能完全记清楚了,所以只简单介绍一下工具及方法。开发过程是在我的研究生毕业设计: Vision-Based Localization and Trac […]

两轮自平衡机器人 – 研究计划

我一直对自平衡小车十分感兴趣,最早在关注Segway的时候就想玩一玩自平衡算法(当时大约还是2010年)。然而那时一无业余时间,二无设计能力,于是搁浅至今。今年5月份回国的时候,这个想法重新占上心头,于是在淘宝选够了一款评价较好的平衡车,总价不过400大洋。谁知回到英国,自己又懈怠了下来,除了偶尔拿出来当玩具玩两下,也没有仔细深入研究。这样下去自然不行,然而深入研究确实需要不少精力,只能在此痛下决 […]

实时系统 | 实时系统研究的一点思考

要想弄清实时系统的研究意义,首先必须明确实时系统在整个工程系统中的角色。 实时系统的主要应用对象是工业控制、轨道交通、航空航天、电力及能源、机器人、网络设备及服务等。这些系统的稳定性很大程度上决定了生命财产与经济的安全性:如电力系统的短时间崩溃会导致工业和交通停滞,并可能带来生命财产事故;航天飞行器的软件故障,会导致与地面控制中心的失联甚至是坠毁,带来巨大的财产损失。社会的正常发展和秩序很大程度上 […]

RPi树莓派 | 在树莓派上安装MySQL数据库

在嵌入式Linux平台下如果需要使用数据库功能,一般会选择SQLite或MySQL。SQLite是轻量级、基于文件的关系数据库,系统资源占用较少;但是SQLite的缺点是不支持远程部署和访问。对于大多数应用,SQLite是很易用的数据库,我之前就使用过它开发过一套生产管理系统;但是当需要远程访问数据并提供数据库安全时,MySQL则是更好的选择。考虑到树莓派的性能局限,其本身并不适合集成数据展示功能 […]

Processing | 用递归创造复杂图形

在Processing中想要创作复杂的图形元素,除了可以使用循环结构外,还可以使用递归 (recursion) 。递归是一种在函数执行时调用自身的一种特殊设计方法,递归可以解决很多循环结构无法解决的问题,同时在代码实现上也极为简洁。 为了可以更直观的了解什么是递归,这里先给出一个例子: 该代码生成的图形如下: 在上例中,drawCircle() 函数在返回前再次调用了drawCircle(),同时 […]

活动 | 参加南京创客空间创客联盟沙龙活动

12月23日,我受邀参加了南京创客联盟的沙龙分享活动。本次分享活动自定主题,我就想到了之前一直很想讲但是没有机会讲的话题:创客对于大公司的影响与颠覆。一直以来,新科技与新产品都是由大公司主导的:大公司设计、生产、宣传、销售;只有在大公司成功进入市场后,小公司才会考虑复制其产品,分一杯羹。 然而在现在,创客及初创公司(start-ups)借助着新的工具:快速制造、众筹、开源硬件、互联网及移动互联网等 […]

RPi树莓派 | 树莓派常见问题整理与解答

这篇博文整理了在使用树莓派的过程中常见的问题和解答,以及我自己在使用时遇到的问题与总结,供树莓派爱好者快速查阅。本文根据需要不断更新,也欢迎读者留言提问与补充。 一、基本操作与管理 Q: 树莓派的默认登录密码是什么? A: 用户名: pi,密码: raspberry。 Q: 树莓派如何解锁root? A: 解锁方法如下: Q: 如何启动树莓派的图形界面? A: 命令行中输入startx。如果要设置 […]

RPi树莓派 | Raspberry PI网络配置与SSH远程登录

树莓派虽然支持鼠标、键盘和显示屏等交互外设,但是每次使用时都要连接很多线缆,很不方便。而使用远程登陆就不会有这些不便。之前在 【RPi树莓派使用指南】使用VNC远程查看桌面 一文中介绍了远程查看桌面的方法,但是远程查看桌面会占用大量网络带宽,影响操作速度。对于不需要查看图形桌面,只需要使用terminal的情况,这里再介绍一下使用SSH远程使用树莓派控制台的方法。 在配置远程登陆之前,最好将树莓派 […]

Arduino | Windows下使用Eclipse开发Arduino程序

Arduino IDE功能简单,对于不熟悉编程环境的用户十分容易上手;但是对于大型的Arduino项目开发,如果再使用自带的IDE就会多少显得不便。之前我曾经使用过Eclipse + CDT + avr-gcc开发AVR程序,鉴于Arduino也是基于AVR和avr-gcc的,理论上应该也可以使用Eclipse开发。Google之后发现在Arduino官方网站上就有配置方法的介绍[1],此处自己按 […]

ROS | ROS的消息回调处理:ros::spin()与ros::spinOnce()

作者注:本文基于ROS Hydro,新版本可能存在细微差别,以官方资料为准。 我们知道ROS的主循环中需要不断调用ros::spin() 或 ros::spinOnce(),两者区别在于前者调用后不会再返回,而后者在调用后还可以继续执行之后的程序。 在使用ros::spin()的情况下,一般来说在初始化时已经设置好所有消息的回调,并且不需要其他背景程序运行。这样以来,每次消息到达时会执行用户的回调 […]