自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菠萝菠萝哒X

(;¬_¬) 中二病晚期的二次元科技宅[V6担],“talk is cheap,show me the code”

  • 博客(184)
  • 资源 (7)
  • 收藏
  • 关注

原创 基于树莓派4B部署Bluez v5.54打造BLE Mesh Provisioner

  Bluez对于做蓝牙开发的工程师来说肯定很熟悉,即使未曾使用,也定略有耳闻。Bluez 是官方的 Linux 蓝牙协议栈。开发蓝牙mesh相关的产品时,首要的问题就是需要有一个蓝牙mesh的 Provisioner,通常我们可以使用手机等智能设备来对mesh设备进行配网。Provisioner在蓝牙Mesh中扮演者十分重要的角色,负责为新加入的设备分配unicast address,网络密钥network key,设备密钥device key,IV Index 等等这些重要的信息,从 Bluez v5.

2021-04-03 15:00:25 3511 6

原创 手把手教你使用Wireshark和nRF USB Dongle进行BLE Mesh抓包

0、序  在实际开发避免不了数据包的解析。由于之前有用过TI CC2540和其官方抓包工具smartRF packet sniffer来做BLE广播包的分析,所以在开始的时候也是使用这种组合方案来打算抓取Mesh的广播包provisioning data等数据,结果抓取失败,没有sniff出相关的广播包,所以才有了接下来的这种方案。0.1、环境Setup  需要准备的东西和安装的软件已经列举如下表所示,Type名称描述USB Donglenrf25382/nrf52840 U

2021-03-22 00:23:29 6400 4

原创 Makefile入门知识总结一---综述

前言: 首先要对《跟我一起写makefile》文章的作者陈皓致以最真切的敬意,其关于makefile学习的文章对于我的学习有着很大的帮助,同时也向开源项目的斗士们致敬。以下文章是在以《跟我一起写makefile》为参考文档学习makefile时所做的笔记,有所精简,完整的《跟我一起写makefile》在此贴上传送门:github:https://github.com/sei...

2019-10-27 20:57:10 357

原创 蓝牙5.0协议解读 via Bluetooth Core v5.0(使用smartRF packet sniffer进行抓包)

目录简介一、常见的广播包二、广播包的结束,解析连接successfully的数据包三、数据包解析(DATA CHANNEL PDU)简介 Bluetooth Core version 5.0已经发布了很久一段时间了,对于进行蓝牙设备的相关开发蓝牙协议核心规范是一份不错的攻略指导书,2822页覆盖其相关的协议、规范、数据包解读等等。接下来我们借助smart...

2019-10-06 20:12:41 8952 6

原创 基于imx6ull打造流媒体视频监控:ffmpeg + nginx + rtmp

前提,本文所使用的Linux内核已设置支持UVC设备类驱动,且基于此进行以下操作,使用韦老师所分享的Buildroot进行编译,需要首先进行对imx6ull_pro开发板的相关默认配置进行设置。首先需要在终端进行环境变量的设置。编译完成之后,会在生成output/image目录下生成相关镜像文件,其中emmc.img是我们要烧写在开发板中的添加了ffmepg和nginx软件模块的系统镜像文件。除了基本的开发板的网络环境的设置之外主要的就是Nginx的配置,在运行之前还需要对nginx的配置文件进行修改。..

2022-07-24 14:52:39 2814 3

原创 得闲咩?不如来做个水下机器人吧[持续更新中]......

OneDream系列水下机器人始于2016年,搭载三个电机,一路摄像头,双舵机云台,深度传感器,姿态传感器,照明设备。可用于水下探索平台,教育机器人之类的制作,就系一个可供自由DIY的水下机器人平台。...

2022-07-17 23:55:54 703

原创 find命令的使用及错误信息过滤

  在需要查找文件或者文件夹时,find命令总能派上用场。Linux find命令用于在指定的目录下查找文件,不仅可以按照文件名进行文件搜索,还可以根据设置的参数按照文件大小,时间等来搜索文件,并将查找的结果在终端进行显示。其基本语法如下:find [path] [-option] [-exec -ok command]  find的参数很多,常用参数如下:参数描述-name按文件名查找-size按文件大小查找-user按文件属主查找-type按

2022-05-01 23:14:07 3487

原创 使用route查看路由表,添加/删除默认路由网关

  route命令个人最近常使用的就是添加/删除默认路由,以及查看路由表了,其他高深的操作也没用用上,故记录一下这三个简单的但是又经常使用的操作。1. 查看路由表2. 添加默认网关route add default gw xxx.xx.x.xxx3. 删除默认网关route del default gw xxx.xxx.x.xxx...

2022-03-17 18:24:31 10594 1

原创 Ubuntu虚拟机中设置NAT转发使开发板可以联网

  之前写过一篇《PC-开发板-Ubuntu虚拟机ping通三者的网络连接》讲解如何使用有线网络如何使PC、虚拟机和开发板能够相互Ping通,本文是其的升级版本,在相互能够Ping通的基础上,开发板也能够连接联网Ping某度。本文的主要操作是在ubuntu虚拟机中设置NAT转发,让NAT网络转发 PC-开发板-虚拟机桥接网络 中该网段的数据。虚拟机设置双网卡,网卡一为NAT模式,在NAT模式下,主机网卡与虚拟的NAT设备相连,虚拟的NAT设备与虚拟的DHCP服务器一起链接到虚拟交换机VMnet8中,实现虚拟

2022-03-17 18:00:31 3095 1

原创 使用spleeter分离音频文件中的伴奏和人声

  Spleeter 是 Deezer 源分离库,带有用 Python 编写并使用 TensorFlow 的预训练模型。 它使训练音乐源分离模型变得容易(假设您有一个孤立源的数据集),并提供已经训练过的最先进的模型来执行各种风格的分离。Spleeter项目官网传送门:https://research.deezer.com/projects/spleeter.htmlSpleeter源代码仓库传送门:https://github.com/deezer/spleeter/...

2022-02-27 02:03:35 2571

原创 百度飞桨笔记:树莓派4B源码编译安装Paddle-Lite

  最近在学习使用百度推出的PaddlePaddle开源的深度学习平台,在PC上测试了demo之后,打算将其在移动端也跑起来,所以选用了树莓派4B着手搭建相关开发环境。Paddle Lite是飞桨基于Paddle Mobile全新升级推出的端侧推理引擎,在多硬件、多平台以及硬件混合调度的支持上更加完备,为包括手机在内的端侧场景的AI应用提供高效轻量的推理能力,有效解决手机算力和内存限制等问题,致力于推动AI应用更广泛的落地。...

2022-01-17 13:56:18 3619 7

原创 【Python编程】三步完成如何从视频中提取音频?

  今天忽然有需要从视频中提取出音频来,外事不决问百度,在度娘上找了找得出来的结果就是使用某某音频转换器,后者是AE、PR或者是会声会影之类的操作。Ab全家桶买不起,只好想想还有没其他路子,所以就有了本篇文章。在进行相关编程前需要将相关依赖库给安装好:pip install ffmpeg moviepy  完成这项操作所需要的依赖库分别为:ffmpeg、moviepy。ffmpeg这个的话大家肯定很耳熟,在进行音视频相关的编程以及操作时是必不可跳过的一个库,在多媒体相关的开发中其更是当仁不让的扛把子。

2021-12-19 21:42:01 2656

原创 【C编程】大小端模式数据转换

  在做嵌入式开发的时候经常会遇到需要进行大小端转化的情况,像平时用的硬件平台通常都是小端存储模式,但是一些Sensor通信传输或者是存储的数据是以大端模式的,这时候就需要进行数据转换了。  所谓大小端模式即是:  大端模式:MSB (Most Significant Bit) ,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。  小端模式:LSB (Least

2021-10-30 17:14:24 3092

原创 【Python编程】运行前检测并安装脚本的依赖库

  python功能十分强大得益于其丰富的第三方库,也正因为此你写好的脚本在其他平台上运行的话,就坑能因为缺少所需要的这些库而报错无法运行。如下所示:E:\project\python>python ./test.pyTraceback (most recent call last): File "./test.py", line 9, in <module> import serialModuleNotFoundError: No module named 'seria

2021-10-24 16:18:25 1007

原创 树莓派CSI摄像头的使用及OpenCV的简单测试

  拿出了之前拿来做BLE Mesh的Provisioner的树莓派4B,不知不觉已经开始吃灰了,这可还行?于是乎从某宝淘来了10几块RMB的树莓派专用的摄像头就开始捣鼓起来了,说实话不愧是10几块的东西。简要说明一下,如下所述:ItemDescription硬件平台树莓派4B摄像头500万像素CSI摄像头(OV5647)操作系统Raspbian OS安装完成示意图:1、树莓派系统配置硬件安装完毕之后,开始进行树莓派系统的配置以使用这CSI摄像头。进入

2021-09-13 00:01:58 2493

原创 【EE】案例分享-如何设计继电器电路?

  几年前做过一个东东,里面有个类似电磁锁的组件,需要控制其的开合,拿出来分享分享。说到这样的需求,第一时间想到的就是继电器,实际也是通过继电器实现的。该电磁锁的电机动作是通过通断电实现的。基本的工作方式是通电解锁、断电上锁。为了实现这一简单的功能,需要控制电路中某一线路的通断,为此引入继电器的使用。如下图所示在继电器电路中使用光耦隔离器件,达到防止因有电气连接造成干扰。当电路中OPEN端有高电平信号时,光耦电路导通,三极管部分同时导通,继电器通路,常开触点接通,继电器开启。  如上述原理图所示,引脚“

2021-08-15 18:31:39 1922

原创 【C语言】花式操作之container_of()宏的用法

  前段时间在做算法移植的时候遇到一个问题,源头直指一个名为container_of()的函数,该函数的花式写法也着实让人不禁多看几眼。该函数的定义如下:#define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); \ (type *)( (char *)__mptr - offsetof

2021-08-08 15:50:26 2019 1

原创 IAP与APP合并为一个烧写文件-STM32实测

之前写过一个小专题是基于STM32有关IAP的应用的专题,现在新增一个番外篇是关于如何将IAP与APP合并为一个烧录文件及相关实例。

2021-08-02 06:46:25 1643 2

原创 【C语言】宏定义:#define NUM (M+1)*M/2怎么运算的?

  前些天朋友问我一个问题是关于宏定义的运算的,内容大致关于如下的宏定义的:#define N 2#define M N+1#define NUM (M+1)*M/2  Q:为什么NUM不是6呢?你看N=2,M=3,那么NUM不就是(3+1)*3/2嘛。小学一年级level的算术嘛。  那么我们来实际验证一下看看NUM到底是多少?编译环境:Target: x86_64-linux-gnuGCC:gcc version 9.3.0#include "stdio.h"#defin

2021-08-02 01:30:28 4388 6

原创 【Python实战系列】串口实时接收数据并基于pyqtgraph绘图

  串口数据图形化调试助手,这乍一听起来貌似还挺阔以的样子。那究竟是啥子呢?且听慢慢道来。事情的缘由是当前在做的一个项目中,在调试Mag(地磁)相关的Sensor。获取Mag的原始数据之后,首先要做的就是判断原始数据的质量如何,及是否是我们想要的数据,不仅要看数据是否在相应状况下处于合理的范围内,且数据的变化是否符合规律,所以呢需要一个能将原始数据实时绘制成图的工具。OK,那么来列举一下需求:串口通讯:串口打印是嵌入式开发时重要的调试手段,所以此处数据也通过串口传输给上位机;实时图表:将串口输出的数据

2021-08-02 01:14:44 9960 4

原创 Python小Tips:decode和encode知多少

在实际编程中经常会碰到一些需要进行文件或者是数据流需要进行编解码的问题。在使用Python进行这类问题的编程的时候,我们通常会用到decode和encode两个方法。

2021-08-01 18:34:21 152

原创 【Python编程小贴士】UnicodeDecodeError:‘utf-8‘codec can‘t decode

  在进行Python编程的时候或多或少一遇到一些Bug或者是编程上的miss,UnicodeDecodeError: ‘utf-8’ codec can’t decode,这种Error也算挺常见的了。https://zhuanlan.zhihu.com/p/150371648?from_voters_page=true

2021-07-31 07:17:57 1832

原创 虚拟串口软件VSPD的使用

虚拟串口软件VSPD的使用。串口在嵌入式开发中有着十分重要的地位,其不单单是一种常用的通信接口,还是调试打印的一种手段。有时候在进行上位机开发的时候需要进行串口相关的功能测试,如果要使用实际的硬件设备来做调试的话假如你是单片机的话你还得再弄一个USB转Uart,假如你想用一台PC来做测试的话那还得用两个USB转Uart,想想还是挺麻烦的,这时候一个虚拟串口的存在就能解决你的燃眉之急。

2021-07-26 07:32:13 4808 6

原创 C/C++混合编程小贴士

  .c文件被.cpp文件调用时,需要在头文件中添加如下定义:#ifdef __cplusplusextern "C" {#endif#ifdef __cplusplus}#endif  否则,可能会提示undefined inference to “_interface”,未定义的引用的Error。

2021-06-30 22:15:31 298 2

转载 一文详解光电容积图 (PPG) 和心电图 (ECG) 基本工作原理

  最近在做PPG和ECG相关的Sensor的驱动和应用的开发,在找资料的时候发现一篇解析得很详细且清晰的文章,故分享。本文转载自:立锜科技电子报:ECG/PPG量测解决方案0、摘要  本应用文件介绍了心电图 (ECG) 与光电容积图 (PPG) 的基本工作原理,讨论了ECG与PPG生理信号的量测,以及提高可靠性、实现高精度电气特性的难点。一般高精准度的ECG与PPG架构都是采用模拟前端和ADC组合而成的解决方案。1、概述  心脏运作可以揭露人体许多极具价值的信息,包括其健康状态、生活方式,甚.

2021-05-16 00:31:53 28732 3

原创 浅析ICP与ISP、及IAP三种单片机烧录方式

首先来了解以下ICP、ISP、IAP是啥意思?ICP:In Circuit Programing,在电路编程;ISP:In System Programing,在系统编程;IAP:In applicaTIng Programing,在应用编程;

2021-05-15 23:46:46 1913 2

原创 YModem协议解析-基于STM32的IAP实现

  简单认识一下常用的三种协议:XModem、YModem和ZModem协议。XModem协议:是一种异步文件传输协议,这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。YModem协议:是由XModem协议演变而来的,每包数据可以达到1024字节,是一个非常高效的文件传输协议。ZModem协议:Zmodem协议是针对modem的一种错误校验协议。利用Zmodem协议,可以在modem上发送512字节的数据块。如果某个数据块发生错误,接受端会发送“否认”应答,因此,

2021-05-15 23:22:31 6271 12

原创 STM32应用IAP进行程序更新详解及实例

STM32应用IAP进行程序更新详解及实例,硬件平台:STM32F103RCT6软件平台:GCC + STM32CubeMX + STM32CubeProgramBin文件传输工具:Tera Term

2021-05-15 20:08:51 1895 2

原创 无显示器?无网线?树莓派照样可以玩!

  在我的上一篇博文《无显示器也能玩转树莓派4B之VNC_Viewer的使用》分享了在没有显示器,有根网线的情况下如何登陆树莓派,如何使用树莓派进行开发,假如说我们不单只身边没有树莓派,一时半会也找不到网线的情形下,还能继续愉快地玩耍树莓派吗?  答案是肯定的,YES,WE CAN!那么,我们就这本文来看看,在没有显示器和网线的情况下怎么玩转树莓派吧。0、准备材料树莓派4B(已装好系统)电源适配器(树莓派使用)1、WiFi网络配置  当然啦,没有了有线网络,砸门就用WiFi来解决这个问题。

2021-05-04 20:39:20 626

原创 无显示器也能玩转树莓派4B之VNC_Viewer的使用

  显示器不在身边,长期外出也不适合带着显示器这时候想搞搞树莓派怎么办,本文将分享如何使用一根网线,借助VNC_Viewer给你没有显示器的树莓派续命。0、准备材料网线1根树莓派4B(已装好系统)电源适配器(树莓派使用)1、VNC_Viewer下载安装  VNC_Viewer PC版下载传送门:https://www.realvnc.com/en/connect/download/viewer  下载好之后一键安装:2、树莓派配置   2.1、将TF卡接入PC,进入boot目录,新建

2021-05-04 18:45:56 1773 1

原创 【Mesh开发实践】树莓派使用meshctl进行mesh设备配网及onoff model的运用

  安装bluez的步骤在此不再赘述,有兴趣的可以看我之前的blog关于如何搭建bluez开发环境《基于树莓派4B部署Bluez v5.54打造BLE Mesh Provisioner》,本文主要讲述如何使用bluez里的meshctl工具。树莓派上运行的是Bluez v5.54,未配网设备也就是将来会成为Mesh节点的设备,此处该设备支持SIG Mesh的light onoff model,所以我们接下来要做的就是给设备配网,搭建基本的Mesh网络,并使用Meshctl控制Mesh 节点设备,LED的控制

2021-04-06 22:22:26 2134 2

原创 VSCode添加头文件路径解决“cannot open source file “xxxx.h“”

  在下在使用VSCode的时候遇到了以下问题#include errors detected. Please update your includePath. Squiggles are disabled for this translation unit (/home/pi/works/mqtt_demo/mqtt_client.c).C/C++(1696),虽然说我实际开发编译是通过编写Makefile实现的,对我实际开发并不造成影响,但是IDE老是那么红着,显示 ERROR ,实属不雅:  那

2021-03-26 11:48:14 20084 6

原创 【Python编程】CSV文件的读写操作

CSV文件(Comma-Separated Value,逗号分割值,有时候也称为字符分割值,因为分割值的字符也可以不是逗号),其文件以纯文本形式存储表格数据(数据和文本)。纯文本存储则表明该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件可由任意数目的记录组成,每行记录之间以回车符‘\n’进行分割。在Python中内置了CSV文件的处理模块,借助该模块我们可以很方便地进行CSV文件的读写操作。

2021-03-24 16:49:53 507

原创 【MQTT编程】Last will and Testament(LWT Payload设置)

  MQTTClient_willOptions定义客户端的MQTT “Last Will and Testament” (LWT)设置。 如果客户端意外失去与服务器的连接,服务器将代表客户端将LWT消息发布到LWT主题。 这使其他客户端(已订阅LWT主题)可以知道该客户端已断开连接。 为了为特定客户端启用LWT功能,在将客户端连接到服务器的MQTTClient_connect()调用中使用的MQTTClient_connectOptions结构中传递了指向MQTTClient_willOptions结构

2021-03-21 14:57:15 987 1

原创 【MQTT编程】消息Publish实践:Synchronous publication同步发布示例

  编程框架Using the clientApplications that use the client library typically use a similar structure:Create a client objectSet the options to connect to an MQTT serverSet up callback functions if multi-threaded (asynchronous mode) operation is being used

2021-03-21 00:11:26 445 1

原创 初识MQTT:为什么 MQTT 是最适合物联网的网络协议?

0、初始MQTT  MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种ISO标准的消息传递协议,两位工程师Andy Standford Clark和Arlen Nipper于1999年撰写了该协议的第一个版本,旨在通过不可靠的网络连接传感器。其基于TCP/IP协议,是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销

2021-03-20 23:02:38 1585 1

原创 【Websocket编程】基于libwebsockets实现客户端数据通信

0、序  基于libwebsockets所实现的客户端数据上传demo,源码来源于libwebsockets中minimal-example中的实例。本篇章仅利用client端实例进行数据通信,Server端已由其他后台的小伙子搭好服务器了。★★★仅修改以下三部分:vhd->i.port = ;vhd->i.address = " ";vhd->i.path = "/ws";1、Client端实现1.1、minimal_ws_client.c#include "min

2021-03-20 22:10:32 2323 1

原创 Websocket开发环境搭建即libwebsockets库的安装

0、序  libwebsockets是一款轻量级用来开发服务器和客户端的C库,按照官方(https://libwebsockets.org/)给出的介绍来看,它不仅支持ws,wss还同时支持http与https。1、安装libwebsockets1.1、源码获取  https://github.com/warmcat/libwebsockets1.2、工程配置1)解压 unzip libwebsockets-main.zip2)配置  打开 ./libwebsockets-master

2021-03-20 15:28:38 1670

原创 树莓派上使用网络抓包工具Wireshark on your Raspberry Pi 4B

0、序  Wireshark is the world’s foremost and widely-used network protocol analyzer. Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换,不单只能抓取网卡数据,还能抓取蓝牙广播包,BLE Mesh数据包(这个之后会有个专题讲讲)。  Wireshark具有丰富的功能

2021-03-20 14:47:43 3485

原创 【Python编程】基于serial库串口通信实战

0、序  在python中进行串口的相关应用编程,需要借助pyserial这个库。安装串口库:pip3 install pyserial如果你使用的是python2.x,那么你使用pip安装的方式如下:pip install pyserial1、编程范式1.1、初始化class UartInit(object): def __init__(self, serial, baud): self.ser = serial.Serial(serial, baudrate=baud, t

2021-03-20 00:28:28 997 1

SmartRF Packet Sniffer_BLE(蓝牙抓包工具).7z

SmartRF Packet Sniffer_BLE(蓝牙抓包工具).

2019-10-05

Tiny4412开发板电容触摸屏一线触摸tslib补丁

Tiny4412开发板电容触摸屏一线触摸tslib补丁,解压后进入目录 编译,make,将生成的.so文件移至开发板的lib目录即可

2018-09-29

contrib_xfeatures2d_vgg_20160317

用于编译安装OpenCV出现以下问题 fatal error: boostdesc_bgm.i: No such file or directory #include "boostdesc_bgm.i"

2018-09-23

contrib_xfeatures2d_boostdesc_20161012

用于编译安装OpenCV出现: fatal error: boostdesc_bgm.i: No such file or directory #include "boostdesc_bgm.i"

2018-09-23

Tiny4412开发板所使用的linux3.5版本内核

Tiny4412开发板所使用的linux3.5版本内核

2018-09-10

解决 错误使用 mcc Test checkout of feature 'Compiler' failed.

解决matlab编译可执行文件过程中的错误,(应该是破解不完全) 错误使用 mcc Test checkout of feature 'Compiler' failed.

2018-06-01

matlab实现图像的拼接

matlab实现图像的拼接,数字图像处理............................................................................................

2018-05-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除