RPi树莓派 | 使用VNC远程查看桌面

虽然树莓派具有一个HDMI视频接口,但很多老式显示器并不支持HDMI。那如果没有HDMI接口的显示设备,但又想使用树莓派的图形化界面怎么办呢? 你可以使用VNC服务。在树莓派中安装了VNC服务端后,可以在用户的电脑运行VNC客户器,从而在用户电脑上直接看到树莓派输出的图像信息。 1、首先我们需要在树莓派上安装VNC服务器。使用Raspberry Pi控制台,输入以下命令: 下载更新包的速度比较慢, […]

暴力拆解ADIS16365惯性传感器

上次我介绍了我的惯性导航项目,但一直未公布所用传感器型号,其实我打算用的传感器是AD公司的ADIS16365惯性导航模块。本打算有一些研究成果后再进行公布,无奈在一次实验中,不慎将传感器的外部接口 (FPC排线) 弄坏了。眼看维修无望,索性将传感器暴力拆解,看看这款几千元的传感器“真身几何”。 传感器的外壳是用某种胶粘起来的 (很山寨是不是),用起子强行敲开: 传感器内部使用了柔性PCB,使用了一 […]

RPi树莓派 | 树莓派是什么?

一、Raspberry Pi简介 不久之前,经由朋友介绍,我了解到了这款优秀的开源卡片式电脑:Raspberry Pi,在国内被称为树莓派。此项目发起于剑桥大学计算机实验室,历时6年开发完成,现由Raspberry PI Foundation维护,该项目旨在普及学校中的基础计算机教育。 Raspberry Pi主板仅有iPhone4手机大小,其使用Broadcom的ARM11处理器BCM2835, […]

STM32 | 串口初始化发送0xFE的Bug

最近在使用STM32F103串口功能时,发现第一个发出的串口数据帧总是不能被正确识别,在监听串口的原始报文后,我发现原来是数据帧前面多了一个0xFE。在经过一些尝试性的程序调整之后,我发现这个问题竟然和串口时钟初始化所在的位置有关。 这是存在问题的初始化程序: 这是修改后工作正常的代码: 这两者唯一的区别在于后者将串口时钟初始化放在了GPIO引脚初始化之前! 我现在还没有办法解释这种情况发生的原因 […]

STM32 | STM32的低功耗设计

在谈到低功耗处理器时,我们第一个想到的总是MSP430,但其实STM32也能拥有不错的低功耗特性。通过合理的进行软件设置,STM32在工作时的功耗可以降至数十mA,而待机功耗可以降到数uA。总的来说,降低STM32功耗的方法主要有以下三种: 1. 关闭不需要的外设时钟 STM32的所有外设都可以独立开启和关断,通过将不需要的AHB/APB的时钟关闭,可以起到降低总待机功耗的作用。各个模块的典型功耗 […]

Rovio硬件电路图解

Rovio买回来很长时间了,其实早就已经拆解过,只是还没有整理成系统的说明。最近时间也不是非常多,再最终整理完成之前,先将目前的研究成果公布一下吧。 Rovio共有四块电路板,分别为1)运动控制板、2)电源充电板、3)北极星传感器和4)IP CAM控制板。其中前两块PCB安装在机器腹部,后两块PCB安装在头部。北极星的传感部分是外露的,就是头顶上的圆形接收区域,IP CAM的摄像头在头部的最前端, […]

STM32 | STM32F4 Discovery开发板简介

不久之前在淘宝上购买了一块STM32F4-Discovery开发板,根据自己的使用情况以及官方提供的说明手册,撰写了这篇关于该开发板的初步介绍,以供初学者参考。 Figure 1. F4-Discovery外观与包装 F4-Discovery是ST公司推出的官方开发套件,从开发板板载的资源来看,该开发板在设计上着重突出了F4的数字信号处理能力。其板载的芯片有1片STM32F407VGT6,1个三轴 […]

串行Flash芯片w25x16使用心得

这一段时间因项目需要使用了Winbond公司的w25x16/w25x32串行Flash存储芯片,对Flash芯片的使用方法略有心得,现整理成文。 在Flash中存储数据与在EEPROM中存储数据不同,不仅需要考虑数据的存储结构,还需要针对Flash独有的特性进行特殊处理。其中最显著的不同点在于Flash在编程前,必须保证待写入区域全部为空(0xFF),否则无法正常执行写入操作;并且Flash在操作 […]

ROS | ROS支持的Ubuntu版本

最近在项目中需要使用ROS机器人操作系统,在官网了解之后发现Ubuntu发行版对其的支持最好。我之前只接触过Fedore与RedHat,所以我特地了解了一下Ubuntu的特性。 Ubuntu基于Debian GNU/Linux,支持x86、amd64/x64和ppc架构,由全球化的专业开发团队(Canonical Ltd)打造的开源GNU/Linux操作系统。Ubuntu对GNU/Linux的普及 […]

锂电池的主要参数与选型

在进行机器人设计时,动力源是必不可少的。常用的供能方式有很多,如干电池、镍氢电池、锂电池、硫酸铅电池。其中,锂电池在放电性能以及能量密度方面的优势明显,被广泛使用。 锂电池有三个重要的性能参数:电压、容量以及放电倍数。 锂电池的电压是由串联级数决定的,单节锂电的电压是一定的,所以锂电总电压永远是单节电池电压的整数倍。锂电池在表示时,使用”串联级数+s“作为其型号,如两节串联 […]

全向超声波雷达的设计与实现

一、开发背景 2011年初,当时我的毕设”基于嵌入式系统的无线环境监测机器人”需要一套用于自主避障的传感方案。当时候选的传感器有:GP2D12、红外收发管、超声波传感器、激光传感器。红外收发管测量距离较近,受环境光影响严重;激光传感器受反射面材质影响较大,而且不易处理;GP2D12虽也是基于红外原理设计的,但经过了调制与滤波,所以性能相比红外收发管要好很多,可其输出是模拟量 […]

机器人电机驱动器YFWind

YFWind是专门用于中小型移动机器人的电机驱动模块,该模块支持双路有刷电机驱动,可提供5A持续电流,6A瞬间电流,电路留有YFSMega专用接口,也可使用其它控制器驱动。模块留有电源指示灯、正反转工作指示灯,并具有反接、过热关断、输出短路等保护。 模块的主要特性如下所示: 控制对象 5 – 12V 直流电机 负载电流 5A持续,6A峰值 通道数量 两路 控制方式 GPIO 调速方式 PWM 指示 […]

机器人控制器YFSMega128

YFSMega128是我在2010年设计的一款机器人控制器,该控制器使用Atmega128作为主控芯片,具有丰富的外设资源,包括:8路数字输入/输出,8路模拟量输入,6路PWM输出,2路转速传感器输入,1个LCD显示,4个用户按键,1个蜂鸣器,1个IO并口与1个YFWind电机接口。 该控制器的参数如下所示: Application 机器人竞赛、机器人DIY、AVR学习、毕业设计 MCU Atme […]

关于编程语言的选择与体会

从我最早接触编程至今已有近10年时间,当时是在初中时,通过文曲星编写了几款基于文字和简单图形的游戏。高中时因没有相关条件与指导,慢慢就荒废了下来,中途曾经因为计算机考试学过一段时间VB,但就当时的知识能力,并没有学习的很深入。上大学以后,学校开设了C语言和VB的相关课程,加之之后对单片机和嵌入式系统的狂热,让我更加深入的接触了计算机编程的原则与方法。 我虽然不是计算机专业出生,但在学习、工作中还是 […]

挑战低功耗7小时纪实

今天,我的一位同事在低功耗设计上遇到了麻烦,他所设计的一个电池供电的设备不到几天就将电池消耗殆尽。经过测量,我发现这个设备的待机功耗过大,达到6.6mA,经核算,按照该功耗,即使设备一直处于休眠状态也只能工作2天。 按照低功耗设计的一般分析方法,可以从硬件和软件两个方面减小设备的功耗。 首先,我怀疑是所用的一些模块功耗较大,于是我把一些可插拔的模块断开,但是功耗没有明显下降,可见功耗损失不来自这些 […]