草庐IT

ESP32-C3 应用 篇(实例二、通过蓝牙将传感器数据发送给手机,手机端控制 SK6812 LED)

ESP32-C3蓝牙部分我们学习了GATT,本文尝试使用蓝牙做一个简单的小应用。目录前言一、整体框架二、数据传输部分2.1添加温湿度驱动组件2.2传感器数据传输程序再次说明:ESP_GATTS_READ_EVT事件2.3功能测试2.4代码优化三、控制部分3.1添加LED驱动组件3.2控制SK6812程序3.3代码优化四、APP部分结语前言前面文章说过,蓝牙协议博主了解不是很深入,只进行一些基础的了解,示例的测试,和初学者一样,基本上蓝牙专栏系列博文都是一步一步摸索过来的,功夫不负有心人,到目前为止,多多少少对蓝牙GATT有了一定的认识。那么我们今天就要学以致用,使用ESP32-C3的蓝牙GAT

解决vue问题WebSocketClient.js?5586:16 WebSocket connection to ‘ws://x.x.x.60:8081/ws‘ failed

创建一个新的项目的时候,使用vue-cli创建。安装vue-clinpminstall-g@vue/clivue-cli文档创建好之后,运行npmrunserve,会启动一个基于express的服务器,就可以热重载代码了,不会手动刷新去查看修改后的代码,很方便。原理是在运行vue前端代码的时候,服务器还会运行一个websocketClient,与服务器通信。如果检查到代码有修改,就会刷新页面。如果websocket通信有问题是不会正常进行热重载的。因为我是直接在测试服务器上做修改,查看的。但是这里有一个问题,在服务器上,vue-cli-servece不能正常检测到公网ip,而是直接使用了局域网

解决vue问题WebSocketClient.js?5586:16 WebSocket connection to ‘ws://x.x.x.60:8081/ws‘ failed

创建一个新的项目的时候,使用vue-cli创建。安装vue-clinpminstall-g@vue/clivue-cli文档创建好之后,运行npmrunserve,会启动一个基于express的服务器,就可以热重载代码了,不会手动刷新去查看修改后的代码,很方便。原理是在运行vue前端代码的时候,服务器还会运行一个websocketClient,与服务器通信。如果检查到代码有修改,就会刷新页面。如果websocket通信有问题是不会正常进行热重载的。因为我是直接在测试服务器上做修改,查看的。但是这里有一个问题,在服务器上,vue-cli-servece不能正常检测到公网ip,而是直接使用了局域网

STM32+ws2812灯条,点灯升级版

ws2812系列灯条,是一种可寻址的RGB LED彩灯,可以自定义颜色、点灯速度等。只需要一个IO就可以控制多个灯。ws2812系列有三根线,分别为VCC、GND、信号控制线。作为优化升级版的ws2813系列,更是具有断点续传功能,比如说有个灯坏了,但是它与后面的信号线没有断,信号可以正常传到后面去。作为Arduino爱好者,这里推荐两个好用的库hastLed和Neopixel。这里想和大家分享一下stm32连接ws2812~ 用的单片机是stm32f103zet6,这部分代码换成stm32f103c8t6照样跑的通。一、添加ws2812.c和ws2812.h文件直接使用正点原子模板向HARD

STM32+ws2812灯条,点灯升级版

ws2812系列灯条,是一种可寻址的RGB LED彩灯,可以自定义颜色、点灯速度等。只需要一个IO就可以控制多个灯。ws2812系列有三根线,分别为VCC、GND、信号控制线。作为优化升级版的ws2813系列,更是具有断点续传功能,比如说有个灯坏了,但是它与后面的信号线没有断,信号可以正常传到后面去。作为Arduino爱好者,这里推荐两个好用的库hastLed和Neopixel。这里想和大家分享一下stm32连接ws2812~ 用的单片机是stm32f103zet6,这部分代码换成stm32f103c8t6照样跑的通。一、添加ws2812.c和ws2812.h文件直接使用正点原子模板向HARD

group by 、concat_ws()、 group_caoncat()的使用

group系列之前觉得这里简单不需要再进行总结了。后来发现还是需要总结巩固一下,还是有一些方法之类的之前未使用过。这里来重新整理,记录一下。groupby将表中的数据根据某个条件进行分组。比如下面这张表:如果我们按照班级进行分组那么数据将会是这样的:通过mysql执行表格数据进行校验:selectclassname,GROUP_CONCAT(id,name,courseName,scoreSEPARATOR'%')fromwinfunGROUPBYclassname;运行结果:group_concat()待会再总结。根据groupby的特性,这也是为什么通过groupby进行分组后,我们对数据

group by 、concat_ws()、 group_caoncat()的使用

group系列之前觉得这里简单不需要再进行总结了。后来发现还是需要总结巩固一下,还是有一些方法之类的之前未使用过。这里来重新整理,记录一下。groupby将表中的数据根据某个条件进行分组。比如下面这张表:如果我们按照班级进行分组那么数据将会是这样的:通过mysql执行表格数据进行校验:selectclassname,GROUP_CONCAT(id,name,courseName,scoreSEPARATOR'%')fromwinfunGROUPBYclassname;运行结果:group_concat()待会再总结。根据groupby的特性,这也是为什么通过groupby进行分组后,我们对数据

基于FPGA的RGB灯WS2812B的控制器设计

这次设计一个RGB灯的控制器,该控制器具有如下特点:每个灯的颜色可调,亮灭可控可以设置参数来修改RGB的数目 WS2812B的数据时序如下图所示:   (图片来源自网络、侵权删) 为了方便设计我把T1H和T0L的时间值设为0.8us,为了稳定将RES设置为60us。 设计的思路是,设置一个400ns的计时器,然后再设置一个计400ns次数的计时器(每计三次清零),然后1码就是前两个400us为高电平,第三个400us为低电平;0码也是同理。一、设计的代码1、单像素控制模块`timescale1ns/1ps/////////////////////////////////////////////

基于FPGA的RGB灯WS2812B的控制器设计

这次设计一个RGB灯的控制器,该控制器具有如下特点:每个灯的颜色可调,亮灭可控可以设置参数来修改RGB的数目 WS2812B的数据时序如下图所示:   (图片来源自网络、侵权删) 为了方便设计我把T1H和T0L的时间值设为0.8us,为了稳定将RES设置为60us。 设计的思路是,设置一个400ns的计时器,然后再设置一个计400ns次数的计时器(每计三次清零),然后1码就是前两个400us为高电平,第三个400us为低电平;0码也是同理。一、设计的代码1、单像素控制模块`timescale1ns/1ps/////////////////////////////////////////////

自动驾驶4WS车辆路径跟踪最优控制算法仿真

 ​​​1引言车辆智能化是汽车行业新的发展方向,其中自动驾驶是为了实现高度智能化的交通系统。对于自动驾驶车辆,为了增加其主动安全性,越来越多的车辆采用四轮转向系统,所以在转向时对规划路径进行精确跟踪与四轮的协同控制是自动驾驶领域亟待解决的新的问题。对于有四轮转向(4WS)功能的自动驾驶特种车辆和高级乘用车,传统的控制方法如预瞄-跟踪模型、前馈反馈控制等只是基于系统运动学模型,很少建立精确的车辆动力学模型,也没有考虑车辆在高速工况下的动力学非线性约束条件。即使有些控制方法考虑了车辆模型,但大多是基于轮胎小角度假设建立的,当高速工况下轮胎侧偏角较大轮胎进入非线性区域时这种控制方法就会丧失稳定性,难