首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

张高兴的 .NET IoT 入门指南:(八)基于 GPS 的 NTP 时间同步服务器

时间究竟是什么?这既可以是一个哲学问题,也可以是一个物理问题。古人对太阳进行观测,利用太阳的投影发明了日晷,定义了最初的时间。随着科技的发展,天文观测的精度也越来越准确,人们发现地球的自转并不是完全一致的,这就导致每天经过的时间是不一样的。这点误差对于基本生活基本没有影响,但是对于股票交易、火箭发射等等要求高精度时间的场景就无法忍受了。科学家们开始把观测转移到了微观世界,找到了一种运动高度稳定的原子——铯,最终定义出了准确的时间:铯原子电子跃迁 9192631770 个周期所持续的时间长度定义为 1 秒。基于这个定义制造出了高度稳定的原子钟。

02

Android文件系统的结构及目录用途、操作方法 整理「建议收藏」

android源码编译后得到system.img,ramdisk.img,userdata.img映像文件。其中, ramdisk.img是emulator的文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,emulator加载这3个映像文件后,会把 system和 userdata分别加载到 ramdisk文件系统中的system和 userdata目录下。因此,我们可以把ramdisk.img里的所有文件复制出来,system.img和userdata.img分别解压到 ramdisk文件系统中的system和 userdata目录下。 2、分离android文件系统出来 system.img,ramdisk.img,userdata.img映像文件是采用cpio打包、gzip压缩的,可以通过file命令验证: file ramdisk.img,输出: ramdisk.img: gzip compressed data, from Unix, last modified: Wed Mar 18 17:16:10 2009 Android源码编译后除了生成system.img,userdata.img之外还生成system和 userdata文件夹,因此不需要解压它们。Android源码编译后还生成root文件夹,其实root下的文件与 ramdisk.img 里的文件是一样的,不过这里还是介绍怎样把 ramdisk.img解压出来: 将ramdisk.img复制一份到任何其他目录下,将其名称改为ramdisk.img.gz,并使用命令 gunzip ramdisk.img.gz 然后新建一个文件夹,叫ramdisk吧,进入,输入命令 cpio -i -F ../ramdisk.img 这下,你就能看见并操作ramdisk里面的内容了。 然后把Android源码编译后生成的system和 userdata里的文件复制到 ramdisk/system和 ramdisk/userdata下。这样就得到一个文件系统了。 3、使用网络文件系统方式挂载android文件系统 因此,我们需要建立/nfsroot目录,再建立/nfsroot/androidfs目录,把刚才的android文件系统改名为androidfs,并链接到/nfsroot/androidfs 4、android内核引导文件系统 android内核挂载/nfsroot/androidfs之后,根据init.rc,init.goldfish.rc来初始化并装载系统库、程序等直到开机完成。init.rc脚本包括了文件系统初始化、装载的许多过程。init.rc的工作主要是: 1)设置一些环境变量 2)创建system、sdcard、data、cache等目录 3)把一些文件系统mount到一些目录去,如,mount tmpfs tmpfs /sqlite_stmt_journals 4)设置一些文件的用户群组、权限 5)设置一些线程参数 6)设置TCP缓存大小 5、操作android的一些方法 您应该已经知道,Android 的核心作业系统是Linux (现在用的版本是2.6.25)。因此内部的档案系统,与系统目录等,也和Linux 脱不了关系。要如何观察这些系统目录,到底藏了什么秘密呢? 在Eclipse 环境中,你可以用DDMS 来观察。不过这个DDMS 在我的电脑上的执行速度,实在太慢了。我个人的偏好是,直接用adb shell 来观察。 启动adb shell 的用法如下: 1). 在Windows 中,开启一个命令列视窗(或执行cmd.exe 这个程式) 2). cd <android-sdk-install_path>/tools 3). adb shell 当你看到这个# 提示字元时,就表示你已经进入模拟器的系统。接下来,你就可以用Linux 上的指令来浏览这些目录。像是 cd, ls, pwd, cat, rm 等等。 这里面,有几个目录是和Android 相关的,特地将他整理下来,供你参考。

03

嵌入式之一款GPRS模块的应用

我在做充电桩项目中使用了一款EC20的4G模块,它是移远通信最近推出的LTE Cat.3模块;采用LTE 3GPP Rel.9技术;支持最大下行速率100Mbps和最大上行速率50Mbps。EC20在封装上兼容移远通信UMTS/HSPA+ UC20模块,实现了3G与4G网络之间的无缝切换。 EC20系列模块包含EC20-A、EC20-C、EC20-CE和EC20-E四个版本,使其能够向后兼容现存的EDGE和GSM/GPRS网络,以确保在缺乏3G和4G网络的偏远地区也能正常工作。 EC20支持多输入多输出技术(MIMO),即在发射端和接收端分别使用多个发射天线和接收天线,使信号通过发射端与接收端的多个天线传送和接收,从而降低误码率,改善通信质量。同时,它结合了高速无线连接与内置多星座高精度定位GPS+GLONASS接收器。

03

基于Ubuntu 的 Parrot ARDrone 2.0的SDK安装以及ardrone_autonomy和tum_ardrone的安装和使用

经过了一个多星期的摸索,现在开始慢慢理解Parrot ARDrone 2.0的使用。现在总结一下遇到的问题,希望用这款无人机的人能够得到一些帮助,毕竟不能总是做一个伸手党。 Parrot ARDrone 2.0是法国的一家无人机的厂商生产的无人机的产品,是parrot ardrone 1.0的进阶版,摸索的这一个星期我感受到现在对ardrone 2.0的支持还是挺棒的。有很多资料,遇到问题google一下也有很多解决方案。这款无人机售价比较便宜,我们购买的是power edition版本,价格在2500左右,然后不包括GPS模块,价格在600左右。如果需要进行室外自主飞行,就需要GPS模块获得无人机的location然后利用qgroundcontrol这款软件指定无人机的飞行路径,就可以实现按照固定的轨迹自主飞行拍摄。这款无人机还有的硬件外设有一个向前的摄像头,720p的,还有一个向下的摄像头,分辨率比较差。内置里IMU,处理器是一款ARM 的处理器。详细的参数可以去google搜索一下那个用户手册(user guide),里面的参数写的很详细。 Parrot ardrone 2.0不做开发的话买回来的装上电池就可以飞了,这个需要你仔细看看里面的使用说明书。你需要在手机或者pad上面下载对应版本的app——ARFreeFlight 2.0(最好使用iphone或者ipad,我发现这款app对安卓的支持貌似不是很好,但是也是可以用的)。 闲话不多说了,下面开始讲关于使用ardrone 2.0开发的一些事情了。其他的资料可以去官网看看: (http://www.parrot.com) ardrone2.0的SDK 下载的地址是:http://developer.parrot.com/products.html,里面的SDK 2.0就是针对ardrone 2.0的SDK 。我们要讲的ardrone_autonomy其实是SDK的二次封装。在SDK的基础上加上了ROS,就像是ardrone的驱动一样。 首先是讲解ardrone_autonomy的安装,我参考的文献http://blog.csdn.net/u014209688/article/details/42614705#comments,里面讲解的是有两种安装方式,但是我使用的是第一种安装方式,后来也证明了,第一种安装方式既简单,有很少会报错。

05

两分钟了解:NTP网络时间服务器 技术架构

对于控制系统的时间准确度有严格要求。为此,采用搭建高精度NTP服务器的方法实现系统校时。基本思路是从NMEA018 3数据中提取时间信息,通过PPS信号来保证高精度。具体实现方法是采用GPS接收模块G591来构造硬件电路,软件部分需要NTP服务器软件和GPS的正确安装和配置。对照实验表明,基于GPS的NTP服务器校时精度可以达到微秒量级,工作性能稳定而可靠。 引言 准确的时间是天文观测所必需的。天文望远镜在特定时间内的准确指向、CCD曝光时间的控制以及不同波段观测数据所进行的高精度同步比对等应用需要系统至少有亚毫秒的时间准确度。然而就目前来看,一般的计算机和嵌入式设备所使用的晶体振荡器的精度为几个或者几十个ppm(百万分之一秒),并且会受温度漂移的影响,使得每天的误差能够达到秒级,若再考虑元器件的老化或外界干扰等因素,误差可能会超过10 s,如果不及时校正,其误差积累将不可忽视。 网络时间协议NTP(Network Time Protocol)是美国特拉华大学的MILLS David L.教授在1982年提出的,其设计目的是利用互联网资源传递统一和标准的时间。目前,使用GPS信号实现校时的研究工作很多,大多只是通过读取GPS模块解码出的串行数据,提取其中的时间信息来纠正系统时钟,该过程并不涉及NTP的使用,精度较低,一般为几十到几百毫秒。对此,本文充分利用了NTP服务器软件对GPS时钟源的支持,采用串行数据和秒脉冲相结合的方式来校准时间,校时精度大为提高。

01
领券