- 博客(34)
- 资源 (17)
- 收藏
- 关注
原创 博客转移至简书,这里将不会更新了
去年开始就尝试使用简书,起因是关于无人机的一篇文章被管理员删掉了,原因是禁止发布相关文章。删得干干净净,记录都没有,然后我尝试使用自建的博客,结论是使用的VPS太渣,导致体验太糟糕了,而且维护需要精力。最后选择了简书,因为线下一直使用MD来写文章,正好那时候简书也支持MD(那时候的CSDN没有这个功能),于是用着挺顺手的,并且我还时不时写个和技术无关的杂记,如果在CSDN上写这些 就格格不入了 哈...
2019-06-12 17:59:34 464
原创 WIN10下搭建一个linux环境(ubuntu+cmder+oh-my-zsh)
由于各种原因,笔者不能单纯的使用linux系统或者windows系统,当得知windows更新出了linux子系统的时候是相当开心。该篇文章主要表述如何在win10上搭建ubunt系统,并且使交互更加方便和美观。1 ubunt子系统打开开发者模式设置菜单,更新和安全,开发者选项,然后选择开发者模式。打开适用于linux的windows子系统设置菜单,应用和功能,右方打开程序和功能,...
2018-07-17 16:02:50 9743 4
原创 simplelink_cc13x0_sdk中GPIO的使用
本系列用于对simplelink_cc13x0_sdk的快速使用1 相关文件PIN.h : simplelink_cc13x0_sdk_1_60_00_21\source\ti\drivers , 接口函数GPIOCC26XX.c,GPIOCC26XX.h : E:\TI-RTOS\simplelink_cc13x0_sdk_1_60_00_21\source\ti\drivers\gpio , ...
2018-06-19 16:00:02 1854
原创 TI-RTOS中建立一个进程
1 简述和每个RTOS系统一样,程序由任务组成,每个任务根据优先级来执行,该文章不对具体调度进行分析,应该是该分类均不深入讨论,而是作为一个快速使用手册的存在2 示例头文件#include <ti/sysbios/knl/Task.h>定义#define TASKSTACKSIZE 768static uint8_t taskStack[TASKSTACKSIZE];Task_...
2018-06-19 15:59:51 3149
原创 simplelink_cc13x0_sdk中的串口UART
1 简述该SDK中封装了一个串口的上层(display),如果想使用串口打印调试,则直接调用对应API会方便很多,下列例程两种方式都会列举.2 例程2.1 配置UART进行输入输出头文件#include <ti/drivers/UART.h>定义 char input; const char echoPrompt[] = "Echoing characte...
2018-06-19 15:59:41 888
原创 使用CC2531 USB Dongle 抓取小米Zigbee智能硬件数据包
1 准备工作硬件①: CC2531 USB Dongle 硬件②: 智能家庭礼装板 (单独购买需要现在网关绑定各种节点) 软件①:TiWsPc 软件②:SmartRF_Packet_Sniffer 软件③:Wireshark2 查看端口号将小米多功能网关上电,通过米家APP连接后,点开智能网关,然后在右上角点击三个点的图标,选择”关于”,进入新界面后疯狂点击底部的版本,过一会儿就会弹
2018-04-14 17:10:03 12343 11
原创 MDK在原有函数前插入程序 '$Sub$ $ 和 $Super$ $ `
使用环境如果需要在原有的函数前面添加一些代码,但又不能修改原函数,使用Sub" role="presentation" style="position: relative;">SubSubSub和" role="presentation" style="position: relative;">和和和Super$$)便可以在原函数前面插入一个例程来办到。就如同rt-thread-
2018-01-31 15:48:12 1209
翻译 BMA250三轴加速度传感器(部分翻译)
本文主要对BMA250传感器的文档内容进行提取,通过阅读本文,可以了解到该传感器具备什么样的功能已经如何驱动文档翻译由于我是一边编辑这篇文章,一边翻译,编写顺序也就是原文档的顺序,我会提取其中自认为有用的部分封装 : 12引脚,2mm X 2mm,高度0.95 接口:IIC,SPI 加速度范围: +-2g,4g,8g,16g 低通滤波器带宽:1KHz - 8Hz 输入电压: 就给3.3V啦有
2017-12-27 11:27:36 7507 5
原创 搭建一个自己的导航网页
前言由于最近公司平台太多了,之前一直保存到谷歌浏览器的书签里面,但是有时候想用手机或者IPAD访问,有没有安装谷歌浏览器,就比较麻烦。最关键是当你需要让某个人打开某个网站,但是同类型网站太多,域名估计是记不住的,这时候有个专门用于导航的页面还是蛮方便的。读完这个文章,就能分分钟搭建一个这样的网站。准备如果你想任何地方都能打开它,那就得有一个自己的服务器。我这里用的是vultr。然后为了好记得有一个自
2017-12-22 10:13:18 16501 1
原创 用PN532对RFID进行读写和复制(附winfrom软件)
1、前言通过本文你可以了解到PN523的通信协议,并且能够对RFID卡进行读写和复制操作。这里不会深度探讨理论,而是重点展示如何使用。2、PN523串口通信协议2.1 唤醒模组按照模组的文档来看,在每次上电的时候需要唤醒,让他退出休眠模式。 对其发送:55 55 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF 03 FD
2017-10-21 14:47:21 16499 16
原创 关于contiki中的Ctimer和Etimer
文件目录:contiki\core\sys\1 etimer1.1 说明事件定时器,发生超时的时候会得到一个事件,etimer include了timer,timer使用的是clock的系统滴答时钟。 定时器结构体:struct etimer { struct timer timer; struct etimer *next; struct process *p;};定时器会被保存到
2017-09-29 13:26:01 1715
原创 微型四轴飞行器(7)串级PID控制器
PID控制器是通过目标与当前状态的误差,然后利用比例、积分、微分三个计算公式计算出控制量来进行自动控制的系统[8]。自动控制有三大要求:稳定性,快速性,准确性。稳定性是当系统受到来自外界的干扰时能够恢复到之前的状态的特性,比例和积分会降低系统稳定性,微分则能提高稳定性。准确性表示系统达到稳定时的状态和目标状态的情况,越相近则越准确。比例积分都能提高准确性。快速性是指从当前状态变化到目标状态的速度,比
2017-09-02 16:52:15 1981
原创 微型四轴飞行器(6)四轴飞行器控制原理
四轴飞行器通过操控四个电机的转速来达到不同的控制效果[13]。分别有4种运动 姿态。垂直运动、俯仰运动、横滚运动和偏航运动。当保持在控制稳定时需要通过对角电机同向、相邻电机反向运动的方式来抵消陀螺效应和空气动力扭矩效应。垂直运动: 暂且不考虑自稳的情况下,增大4个电机的输出功率能够提升飞行器的浮力,当浮力大于机体重量且足够改变状态的时候,机体便会向上移动,相反,同时降低四个电机的输出功率则会垂直下
2017-09-02 16:46:24 3463
原创 关于contiki中进程间沟通时使用到的data参数
介绍首先我们知道,下面这一句代码是用来实现一个进程的PROCESS_THREAD(udp_client_process, ev, data)他的原型是:#define PROCESS_THREAD(name, ev, data) \static PT_THREAD(process_thread_##name(struct pt *process_pt, \
2017-08-28 14:54:13 580
原创 微型四轴飞行器(5)九轴姿态融合算法B
方向余弦矩阵飞行器在空中的运行姿态可以用平面和转动来表示,为了方便使用向量表示,需要建立两个空间直角坐标系。设R表示单位矢量在机体坐标系下的三个轴的投影,B表示单位矢量在地球坐标系下的三个轴的投影。我们通常对飞行器的偏航、俯仰、横滚了多少度的定义是参照地球坐标系而下得出的,也就是我们只需要知道矢量R相较于矢量B进行了怎样的运动就能获取所需的姿态信息。而向什么方向进行怎样的运动就是方向余弦矩阵。现设C
2017-08-27 19:02:51 1698
原创 微型四轴飞行器(5)九轴姿态融合算法A
1 概述所谓的九轴姿态融合就是将通过传感器获得的3轴加速度、3轴角速度、3轴磁场数据,在相应的算法处理后能够得到飞行器的姿态信息(欧拉角)。输入输出如下图 在惯性导航领域的欧拉角分别表示的是航向角(yaw)、横滚角(roll)、俯仰角(pitch)。我们拟建一空间直角坐标系,在该坐标系中,物体做出的任何姿态同样也可以用一个空间直角坐标系表示,而这个新的坐标系都可以通过原坐标系围绕三个轴向进行一
2017-08-27 13:28:16 6859
原创 微型四轴飞行器(4)通讯设计
通讯方式选择如今的四轴飞行器上使用的无线通信模块有5种大类,WIFI、蓝牙、2.4G模块、433M模块、868M模块。Wifi和2.4G其实都是一个频段,但是wifi是经过了协议封装的结果,而后者模块仅仅是用于传输,并没有任何协议。综合考虑下我使用了WIFI。其中弃用蓝牙是因为其传输距离的确太近,不符合微四轴的使用情况,而其他几种频段的通信则需要一个对等的接收装置,微型四轴飞行器其中一个理念就是更方
2017-08-26 16:42:03 2385
原创 微型四轴飞行器(3)嵌入式软件设计
多文本注意。。其实就是我那个飞控是怎么写的底层驱动应用嵌入式软件平台建立在我系物联网实验室搭建的底层驱动平台之上,该平台用C++对STM32F103C8T6底层驱动进行了较为完善的封装,能够让使用者更专心于编辑逻辑层的代码。该平台我也是参与编写者之一,将其移植到飞控里,使用了一下几种外设:ADC,主要用于监控电池电量,对于飞行器来说,电源不足就意味着控制失灵、飞机坠毁,所以对其进行实时监控是非常重要
2017-08-26 16:28:21 1535 1
原创 微型四轴飞行器(2)硬件设计
这些电路估计在大部分智能设备上都是用得到的,对诸位或许有些帮助1 硬件设计机身的设计有两种选择,其一是使用已经成型的机架,在搭载自己的飞控板来组成,但由于业界对微四轴关注度较小,不容易找到成型的微型机架,于是我选择的方案二,就是使用PCB电路板直接作为飞行器的骨架。好处在于能够使飞行器浑然一体,减少组装,降低成本,并且还能自定义外形。 硬件电路由8个部分组成,分别是单片机的最小系统、稳压电路、升压
2017-08-26 15:51:16 5392 4
原创 使用sgrok-sunny进行内网穿透
准备sunny_ngrok网站在网站上的配置先到上面给出的网页去注册一个账号。登录后进入管理页面 HTTP点击隧道管理,开通隧道,然后再右边选择一项进入隧道配置页面。先选择http 如果不知道本机的ip地址,有多种方式查看,笔者是下载了个 IP SCANNER 软件来看的。打开软件后,点击绿三角,然后就在下方找你电脑的名字,然后记下左边的IP TCP点击TCP选项,找到一个可用的服务器端
2017-03-24 17:31:31 1105
原创 在contiki下使用CC1310的GPIO引脚
前言由于contiki操作系统中已经有了CC1310的封装库,我们只需要调用即可,本文就是给大家讲下怎么调用,免去自己找的麻烦驱动位置在更新好contiki系统后可以在下图位置找到驱动的位置,其中图1中的 ti-lib.h 文件是留出的各种驱动的接口,里面可以找打图2的所以驱动接口,他用宏重新定义了个名字 gpio接口介绍下图便是ti-lib.h文件中的GPIO接口了。 其中有multi的参
2017-02-24 14:25:34 2472
原创 eclipse下搭建Contiki环境
1.安装eclipse C/C++首先我们得去下载java的jdk和eclipse C/C++ eclipse官网 JDK下载如果发现安装的eclipse没有顶部的菜单栏,可以打开 /etc/profile文件,在下面添加代码,重启后问题解决export UBUNTU_MENUPROXY=02.安装arm交叉编译工具直接在终端中执行下面的命令即可 sudo apt-get install sre
2016-11-09 16:29:51 653
原创 Contiki-CC2538-AD/GPIO/LED驱动程序
正在学习contiki操作系统,用了一块CC2538的片子来实验,环境是直接使用的Contiki提供的虚拟机,这个程序不讲述关于contiki,直接阐述如何编写一个使LED闪烁,将一个管脚电平置位,并且读取一路ADC通道的值1.准备工作我使用的是6lbr,这里和使用Contiki-3.0 没影响。 首先找到我们的例子程序/home/user/6lbr/examples/cc2538dk路径你们就
2016-11-01 17:51:37 1004
原创 STM32F10X便利的GPIO驱动设计(C++,基于基础库)
目的该驱动的目的是使用户更加简单的配置GPIO,并且封装成为类后,相较于基础库,管脚信息获取与设置更加清晰简单,层次结构更好使用效果#include "GPIO.h"#include "Delay.h"GPIO RedLed(GPIOA,1,GPIO_Mode_Out_PP,GPIO_Speed_50MHz);int main(){ bool Level = false;
2016-08-29 16:08:51 801
原创 STM32F10X便利的定时器C++驱动设计(基于基础库)
目的该驱动的目的是使用户远离繁琐的定时器配置,而更关心代码逻辑,加快项目开发。使用效果1.用户只需要在主函数中定义一个定时器Timer tim(TIM2,1,2,3);//使用定时器2 计时 :1s 2ms 3us2.开启定时器tim.Start();这时定时器已经按照你需要确定的时间开始运转,如果你需要编写中断函数, 在UserInterrupt.cpp文件中找到相应的函数即可,例如void T
2016-08-26 11:42:01 1000
原创 贝叶斯推理
举例说明用来自两个传感器的不同类型的量测数据提高矿物的检测率金属检测器(A)能检测出大于1cm且只有几克重的金属碎片的存在地下探测雷达(B)能利用电磁波的差异从土壤和其他背景中发现大于10cm的物体尽管金属检测器只能简单地区分物体是否含有金属,但是地下探测雷达却具有物体地分类功能,因为它能对物体地多个属性有所响应,如尺寸,形状,物体类型及内部结构等。可以用贝叶斯推理来计算被测物体是属于哪类的后
2016-08-16 14:15:03 824
原创 三端集成稳压器
关于型号电子产品中常见到的三端稳压集成电路有: 正电压输出的78 ×× 系列 (输出电压固定)。 负电压输出的79××系列 (输出电压固定)。 XX表示输出电压, 正电压输出 CW317XX (输出电压可调) 负电压输出CW337XX(输出电压可调)选购考虑最大输出电流考虑输入端的最大输入电压 一般情况下,最大最小电
2016-08-16 13:35:46 5947
原创 电容的作用
电容的作用1.滤波利用电容对直流电表现出的阻抗极大,相当于不通。对交流电,频率越高阻抗越小的特点,把混杂在直流电里的交流成分过滤出来,所以叫“滤波”以1uF为分界(超过1uF电容大多为电解电容,有很大的电感成份,所以频率高后反而阻抗会增大),大电容通低频,小电容通高频 ,常将一个电容量较大电解电容并联了一个小电容电路实例:2.旁路电容和去耦电容2.1说明旁路电容是为本地器件提供能量的储能器件,它能
2016-08-16 13:14:08 2069
原创 使用socket和mysql编写一个简单的物联网服务器程序
1 准备工作该程序主要接收下位机发来的离床上床消息,并存入数据库,达到实时监控床位状态的目的1.1 开发环境使用了java语言,平台是eclipse,JDK版本:1.7.0_13,数据库使用mysql,需要向程序中导入mysql-connector-java-5.1.28-bin.jar的驱动包1.2 数据库建立表名:RY 设计: 1.3 协议发送在监测变化时 包头 床位 状态
2016-05-07 16:01:56 9143 3
原创 粉尘传感器ZPH01驱动
title: ZPH01驱动1 传感器说明1.1 电气特性1.2 管脚说明1.3 驱动方式1.4 数据处理 1.5 注意事项2 驱动代码2.1前言该驱动使用的是串口方式,需要将模式脚拉低,封装最后输出的是浓度,单位是ug/m3。demo是基于和小伙伴一起封装的STM32f103C8系列单片机的底层驱动,编写语言是C++,平台是keil5。2.2正文该传感器是已经封装过一次的,他会每间隔1秒通过
2016-04-02 15:26:25 7450 14
原创 多台android设备通过服务器进行通信(socket)
如果android设备连接了网络,则通过android的客服端程序能够使这几台设备间相互交流,相当于一个聊天室
2016-03-05 18:22:56 2821
原创 STM32 IAP在线升级教学
该篇文章主要讲解如何使用SMT32进行在线升级的方法和流程,并不会设计过多具体代码,之后会制作专门讲代码的视频。概述如何实现在线的固件更新,其实就是在片子中保存一段BootLoader程序和主程序(我叫他APP程序)。正常情况下程序仅仅运行APP程序,当得到命令后,程序将跳转到BootLoader程序进行新的APP程序更新,完成后跳转到APP程序运行。呃,好绕,哎无所谓,将就看吧。 BootLoa
2016-02-25 21:45:55 11366 4
原创 将java编写的socket程序运行于linux服务器上
1.使用eclipse编写一个简单的服务器程序MyserverSocket.javapackage com.serverSocket.main;//服务器程序,连接服务器后会接收到welcome,在没对他发送一组数据后,将返回OK,并且在控制台显示public class MyserverSocket { public static void main(String[] args) {
2016-02-24 19:39:23 2591 2
socket测试用jar和apk
2016-03-05
Socket输入输出服务器程序
2016-02-24
SMT32_iap的bootloader程序
2016-01-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人