ROS | ROS支持的Ubuntu版本

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

锂电池的主要参数与选型

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

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

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

Smart Home | 智能家居系统

项目相关文章: Smart Home | HP MicroServer Gen8服务器不专业评测 Smart Home | ZigBee无线设备的低功耗通讯方案 Smart Home | 短距离无线通信的方案与选择 相关代码: 树莓派温湿度环境气象站:https://github.com/automaticdai/rpi-environmental-sensing ESP32 – MQTT温湿度节点:https://github.com/automaticdai/esp32-iot- […]

机器人电机驱动器YFWind

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

机器人控制器YFSMega128

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

活动 | STM意法半导体2012全国研讨会记录

本周三,我前往南京绿地洲际酒店参与了ST公司的全国巡回研讨会。 本次研讨会主要介绍了ST公司MCU家族的两款新系列:STM32F0与STM32F3。 STM32F0系列用于成本敏感的领域,主频在48MHz,可将STM32F1系列进行直接替换,降低产品成本。相比F1系列,STM32F0中加入了1路32位定时器与2路模拟比较器功能。 STM32F3系列基于Cortex-M4,可以认为是F4系列的低成本替代品。相比F4系列,F3系列的主频只有72MHz,但保留了其DSP运算与浮点运算的优势,同时在ST […]

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

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

挑战低功耗7小时纪实

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

C语言 | 陷阱:一个Break在if语句中的误用

C语言以高效著称,但其也存在很多晦涩的语法。让我们来看下面这段(真实的)代码: 以上代码的break意外跳出了case语句。之所以会产生这样的错误,是因为break在for和while中有类似的应用。我的这位朋友是在没有意识的情况下写出了上面这段代码。不仅如此,编译器(甚至高级的排错工具)对此也不会产生疑问,因为break在case语句之中是可以合法存在的。这里我用VS 2010测试了一下,如果该语句不在case语句下,编译器会提示break用法错误。 该错误可以通过将if的逻辑反转来解决: & […]