自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 使用Blinker APP+NodeMCU控制多路接口

上一期介绍了如何使用语音助手控制多路接口,这一期将为大家介绍如何使用官方提供的APP控制多路接口。1、APP的下载地址,以及使用方法可以参考此处,笔者为大家找了一个讲的很详细的网页。2、关于为什么笔者一直在强调“控制多路接口”,因为官方或者其他网站并未给出此类教程,但这也是一项亟待解决的问题。笔者通过实验,验证了下述算法的可行性,值得大家借鉴。一、先列出官方提供的例程,便于大家对照比较。...

2020-02-13 14:31:08 2885 2

原创 使用Blinker+NodeMCU接入语音助手控制多路接口

-本文适合于进阶开发,初学者对于如何使用NodeNCU连接WIFI,以及Blinker APP的使用可以移步Blinker官网,网络上也不乏此类教程。但是官方给出的教程以及网上流传的资料针对做一些小实验,过于平淡,关于如何运用此套系统解决实际中“智能家居”的控制问题没有太多介绍。对于想利用“小米小爱”、“天猫精灵”、“百度小度”等语音设备控制多路开关设备,官方文档似乎并没有提出解决方案。为此我...

2020-02-12 16:52:31 4013 8

原创 全局路径规划A*算法和Dijkstra算法原理展示

全局路径规划算法原理

2022-08-31 16:12:37 517 1

原创 STM32解析航模遥控器的PPM信号

使用STM32对航模遥控器的PPM信号进行解析

2022-08-28 20:26:29 5936 11

原创 【STM32通讯系列--串口通讯】使用标准库、HAL库实现任意长度数据的收发(包含帧头、帧尾校验,配套完整开源程序)

【STM32通讯系列--串口通讯】使用标准库、HAL库实现任意长度数据的收发(包含帧头、帧尾校验,配套完整开源程序)1.上述代码已开源,开源链接:文件夹内容如下:2.不管是使用标准库还是HAL库,都需要对数据进行校验,这样才能保证数据传输的稳定性。...

2022-07-07 21:02:26 5716 8

原创 STM32 F4系列时钟树探索

一、时钟源的基本概念1.STM32 有5个时钟源:HSI、HSE、LSI、LSE、PLL。HSI(High Speed Internal)是高速内部时钟,RC振荡器,频率为16MHz,精度不高。可以直接作为系统时钟或者用作PLL时钟输入。HSE(High Speed External)是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~26MHz。LSI(Low Speed Internal)是低速内部时钟,RC振荡器,频率为32kHz,提供低功耗时钟。主要供独立

2022-01-06 11:24:47 1769

原创 STM32控制编码器电机实现【速度闭环控制】与【位置闭环控制】

一、硬件及接线说明本实验所基于的硬件分别为:STM32F103C8T6 主控板TB6612FNG 直流电机驱动模块6线正交编码器电机(带AB相)其中硬件接线为:PWMA —— PA8AIN1 —— PB14AIN2 —— PB15STBY —— 5V编码器A相 —— PA1编码器B相 —— PA0STM32定时器资源分配:定时器1(TIM1):产生PWM波,作为TB6612的输入,控制电机进行调速;定时器2(TIM2):读取编码器的波形;定时器3(TI

2022-01-05 13:08:29 29802 50

原创 【STM32探索】——通用定时器基本原理及定时器中断实验

一、定时器数量STM32F10X系列总共最多有8个定时器。二、三种STM32定时器的区别三、通用定时器功能特点描述STM32 的每个通用定时器都是完全独立的,没有互相共享的任何资源。STM3F1 的通用 TIMx (TIM2、TIM3、TIM4 和 TIM5)定时器功能包括:1)16 位向上、向下、向上/向下自动装载计数器(TIMx_CNT)。2)16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为 1~65535 之间的任意数值。3)4 个独立通道

2021-12-31 10:57:31 3537

原创 STM32库函数TIM_SetCompare()的工作机制测试

一、TIM_SetCompare()函数的定义其中,TIM_SetCompareX()这个函数有四个,它们为:TIM_SetCompare1、TIM_SetCompare2、TIM_SetCompare3、TIM_SetCompare4,同时分别对应:CH1、CH2、CH3、CH4。/** * @brief Sets the TIMx Capture Compare1 Register value * @param TIMx: where x can be 1 to 17 except

2021-11-01 20:49:05 19156

原创 2021-10-06

$ sudo dpkg --add-architecture armhf$ sudo apt-get update$ sudo apt-get install libc6:armhf$ export OPENCR_PORT=/dev/ttyACM0$ export OPENCR_MODEL=burger$ rm -rf ./opencr_update.tar.bz2$ wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master

2021-10-06 14:26:53 117

原创 ROS开发实践(十九)——ROS服务通信服务端Server的编程实现(基于Turtlesim功能包)

一、分别运行下述指令:roscorerosrun turtlesim turtlesim_noderosrun turtlesim turtle_teleop_keyrosrun learning service turtle_command_serverrosservice call /turtle_command "{}"二、构建服务通信模型程序编写如下:/** * 该例程将执行/turtle_command服务,服务数据类型std_srvs/Trigger */ #incl

2021-08-31 21:27:58 271

原创 ROS开发实践(十八)——ROS服务通信客户端Client的编程实现(基于Turtlesim功能包)

一、分别运行下述指令:roscorerosrun turtlesim turtlesim_noderosrun turtlesim turtle_teleop_keyrosnode listrosnode info /turtlesimrosservice args /spawn二、构建服务通信模型:程序编写如下:/** * 该例程将请求/spawn服务,服务数据类型turtlesim::Spawn */#include <ros/ros.h>#include

2021-08-31 21:00:46 312

原创 ROS开发实践(十七)——ROS话题通信订阅者Subscriber的编程实现(基于Turtlesim功能包)

一、依次运行下述指令roscorerosrun turtlesim turtlesim_noderosrun turtlesim turtle_teleop_keyrosnode listrosnode info /turtlesim rosmsg show turtlesim/Pose通过运行上述命令,我们可以查看 turtlesim 节点发布/订阅了哪些话题,以及话题的消息数据类型。二、构建话题通讯模型据此,我们可以订阅数据类型为: turtlesim/Pose 的消息,程

2021-08-31 10:56:19 300 1

原创 ROS开发实践(十六)——ROS话题通信发布者Publisher的编程实现(基于Turtlesim功能包)

一、关于话题通讯的基本概念可以浏览笔者之前撰写的文章ROS开发实践(六)——ROS核心概念浅析ROS开发实践(八)——ROS话题通信探索二、构建话题通讯模型如上图所示:ROS MASTER 将管理 Turtle Velocity 和 turtlesim 这两个节点;Turtle Velocity 节点作为话题的发布者,turtlesim 节点作为话题的订阅者;话题通讯的消息数据类型为: [geometry_msgs/Twist]三、创建Turtle Velocity 节点并

2021-08-31 10:01:14 301

原创 ROS开发实践(十五)——ROS中 Turtlesim 功能包探索(含功能包入口参数讲解)

一、在学习 Turtlesim 功能包之前,我们先了解功能包的内容:1.首先, Turtlesim 功能包的地址位于:/opt/ros/melodic/lib/turtlesim ,功能包中包括如下几个文件,这些文件将在后续讲解中进行调用,请记住他们的文件名哦~【备注】通常安装好ROS桌面版之后,会附带 Turtlesim 功能包,如果没有,请读者自行安装!2.在 Turtlesim 功能包中我们可以发现有很多可爱的 turtle 图标,ROS的每一个发行版本基本都会对应一个图标。二、运行 Tu

2021-08-30 23:02:04 3801

原创 ROS开发实践(十四)——Ubuntu 中常用文本编辑器的介绍

一、常在命令行中使用的编辑器:nano[迷你编辑器]、vim[vi 的升级版]、gedit1. nano 编辑器打开一个新终端,输入:nano此时,我们输入 “Ctrl + G” 可以得到帮助指令:2. vim 编辑器我们使用vim 编辑器打开环境配置文件:vim ~/.bashrcvim 编辑器操作指令如下:普通模式中按 i 或 a 键都可以进入插入模式,按 esc 退出插入模式后,按:进入命令行模式。k 光标上移j 光标下移h 光标左移l(L) 光标右移i 在当前

2021-08-30 17:06:56 1906

原创 ROS开发实践(十三)——ROS中SLAM地图(.pgm格式)编辑软件的安装与使用

一、应用背景在ROS机器人通过SLAM算法构建好场景地图之后,为了保证ROS机器人的运行效果,我们通常会对场景地图进行修改,这里所说的场景地图通常为 .pgm 格式的文件,如下图所示。二、地图的编辑与修改1....

2021-08-30 11:33:45 7114 9

原创 ROS开发实践(十二)——Ubuntu 18.04 Terminator 终端的安装与配置技巧

一、打开终端运行下述命令:sudo apt-get install terminator二、重启终端,点击鼠标右键,可以看到如下界面:三、此时,我们可以对终端进行“水平分割”或“垂直分割”等命令:四、常用快捷键:Ctrl+Shift+O Split terminals Horizontally.(上下开新窗口)Ctrl+Shift+E Split terminals Vertically.(垂直开新窗口)Ctrl+Shift+Right Move parent d

2021-08-30 10:48:56 896

原创 ROS开发实践(十一)——Ubuntu 18.04 安装和配置 Sublime Text 3

一、通过命令行安装 Sublime Text 31.安装GPGwget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -2.确保apt被设置为https源sudo apt-get install apt-transport-https3.选择稳定版本echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /e

2021-08-30 10:39:27 365

原创 STM32开发板按键单击、双击以及长按的控制策略

一、当按键按下的时刻,将向开发板输送低电平,可以得到以下控制图:二、主函数控制逻辑如下:#define KEYA_SPEED1 100 //长按的时间长度(单位10mS)#define KEYA_SPEED2 10 //双击的时间长度(单位20mS)int main (void){//主程序 u8 a=0,b,c=0; RCC_Configuration(); //系统时钟初始化 LED_Init();//LED初始化 TOUCH_KEY_Init();//按键初始化 wh

2021-08-28 17:06:00 2900

原创 ROS开发实践(十)——ROS多机通讯及网络配置讲解

一、控制背景我们设计了一台ROS机器人,其中ROS机器人上搭载 树莓派4b 控制器,我们将其设为ROS主机,主要负责激光雷达扫描、视觉信息读取、SLAM算法运行等工作;同时,我们将电脑端的虚拟机设为ROS从机,主要负责运行RVIZ、GAZEBO 以及键盘控制节点等功能。二、控制模式如下图所示,ROS主机发出WIFI信号,ROS从机连接WIFI信号,使得ROS主机和从机均位于同一局域网之下。我们采用这种控制方式可以大大节约树莓派(ROS主机)的资源,从而使运行效率更高。三、网络连接方式

2021-08-27 17:59:25 4672 2

原创 ROS开发实践(九)——launch 文件的使用方法

一、ROS 中 launch 文件的介绍launch 文件:可实现 多节点启动 和 参数配置 的xml文件二、launch 标签总览三、根标签四、嵌套五、节点节点中,各属性的作用列举:六、参数七、参数服务器八、节点分组九、重命名...

2021-08-27 16:43:14 132

原创 ROS开发实践(七)——ROS 工作空间与功能包的基本概念

一、工作空间mkdir -p ~/wheeltec/srccd ~/wheeltec/srccatkin_init_workspacecatkin_make -DCATKIN_WHITELIST_PACKAGES="package_name"catkin_make -j -l二、功能包catkin_create_pkg <package_name> [depend1] [depend2] [depend3]catkin_create_pkg new_packa

2021-08-26 15:49:22 267

原创 ROS开发实践(八)——ROS话题通信探索

一、Topic 命令行指令二、发布话题三、订阅话题四、自定义消息数据类型

2021-08-26 15:35:38 329

转载 ROS开发实践(六)——ROS核心概念浅析

一、ROS中的通信机制松耦合分布式通信二、节点与节点管理器- 节点 (Node) – 执行单元执行具体任务的进程、独立运行的可执行文件;不同节点可使用不同的编程语言,可分布式运行在不同的主机;节点在系统中的名称必须是唯一的。- 节点管理器 (ROS Master) – 控制中心为节点提供命名和注册服务;跟踪和记录话题/服务通信,辅助节点相互查找、建立连接;提供参数服务器,节点使用此服务器存储和检索运行时的参数。三、话题通信- 话题(Topic) – 异

2021-08-22 22:22:34 214

原创 ROS开发实践(五)——常用命令汇总(持续更新中......)

一、ROS常用命令cd . . //返回上一级目录cd - //返回上一次目录cd 或者 cd ~ //返回家目录cd / //进入根目录pwd //显示出当前工作目录的绝对路径ls //列出目录的内容mkdir //创建一个目录touch //创建文件二、常用命令参考资料汇总1.Linux常用命令100条2.《学习篇》学会这18个常用ROS命令集合就能入门ROS了3.ROS常用命令集锦...

2021-08-22 17:00:33 698

原创 ROS开发实践(二)——在 Ubuntu 18.04 上安装 ROS Melodic

一、配置“软件和更新”将各选项配置如下:二、设置软件源国外源:sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'清华源:(笔者使用的是清华源)sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna

2021-08-20 19:45:15 203

原创 ROS开发实践(四)——ROS Melodic 安装过程中 sudo rosdep init 命令执行失败的解决办法

一、问题描述lee@lee-TM1801:~$ sudo rosdep initERROR: cannot download default sources list from:https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be down.二、问题分析上述问题的出现基本是因为网络连接不稳定而导致的。三、解决方法一更换网络连接或连

2021-08-12 11:21:07 238

原创 ROS开发实践(三)——在 Ubuntu18.04 上安装VMware Tools工具

一、如何在Ubuntu18.04 上安装VMware Tools工具1.单机界面左上角的“虚拟机”按钮,并点击“安装VMware Tools”按钮:2.此时虚拟机的桌面会显示一个光盘图标:3.点击光盘图标之后会进入下述界面:4.将上图中选中的压缩包复制到主目录之下,并鼠标右键“提取到此处”:5.“提取到此处”就相当于解压此压缩包,解压后的压缩包如图所示:6.进入到解压后的压缩包,会显示下述文件,此时在文件夹空白处点击鼠标右键,并点击“在终端打开”:7.输入下述命令,并敲击回车:s

2021-08-11 17:31:40 509

原创 ROS开发实践(一)——在VMware虚拟机上安装Ubuntu18.04教程

一、Ubuntu18.04镜像文件的下载(方法二下载速度较快)1.前往Ubuntu官网进行下载:https://ubuntu.com/download/desktop2.前往阿里云官方镜像站进行下载:http://mirrors.aliyun.com/ubuntu-releases/18.04/二、在VMware虚拟机上安装Ubuntu18.041.使用“Ctrl+N”命令新建虚拟机,弹出以下窗口,并勾选对应选项,点击下一步:2.我们选择稍后安装操作系统,并点击下一步:3.选择

2021-08-11 16:40:27 557

原创 使用ESP8266-NodeMCU搭建网络服务器

1. 为ESP8266搭建Arduino IDE开发环境**方法一:**通过开发板管理器安装ESP8266 SDK,具体方法【点击此处】(此方法在虽然在网站上广为流传,本人亲测并不好用,容易受到网络波动的影响)**方法二:**针对方法一,下载ESP9266 SDK时容易受到网络波动的影响,还有一种方法是删除部分文件来解决,具体方法【点击此处】(此方法本人亲测,还是不好用)**方法三:**上述两种方法可以作为了解,真正实用的方法还是:下载插件,并运行该文件即可完成Arduino IDE配置。(下方

2020-07-03 10:54:29 2231 2

原创 BiLiBiLi视频转存方法

- 第一步:下载安装包文件大小:15MB链接:https://pan.baidu.com/s/1DlBL6xji54r-qHXpFWiePw提取码:aoq2- 第二步:文件解压- 第三步:右键,管理员身份运行此文件- 第四步:插入B站视频连接- 第五步:完成下载本人亲测,好用!!!详情请关注亿航创客官方抖音账号:EhangGroup...

2020-05-18 21:31:35 773 1

原创 STM32F103C8T6驱动6线OLED(SPI通讯)

传送门:Arduino使用u8g2库函数驱动4线/6线OLED屏幕(I2C/SPI通讯)附带库函数详解 【点击进入】一、0.96寸SSD1306原理图(默认为SPI)二、OLED硬件介绍及控制方式建议直接观看【正点原子】推出的视频讲解:【点击进入】三、程序控制OLED 更新缓存,显示内容u8 OLED_GRAM[128][8]; void OLED_Refresh_Gram...

2020-04-23 15:43:13 10794 1

原创 Arduino使用u8g2库函数驱动4线/6线OLED屏幕(I2C/SPI通讯)附带库函数详解

话不多说,直接入正题:常见的OLED通常有两种样式,如下图所示,分别是4线和6线控制本人几乎浏览了网上所有关于控制OLED模块的教程,并都经过了项目实测:大力推荐u8g2这个库函数来控制,文章末尾给出了安装包,请自取(其余的库函数要么安装很费力,要么使用起来不友好,再个就是参考资料不齐全)- 不管是4线还是6线都可以用u8g2这个库函数来控制,非常方便在此,读者先熟悉两种通讯方式,这两...

2020-04-21 22:38:44 16106 10

原创 麦克纳姆轮(Mecanum Wheel)运动学分析

0.1 麦克纳姆轮底盘示意图0.2 运动学逆解概念-逆运动学是决定要达成所需要的姿势所要设置的关节可活动对象的参数的过程。一、 底盘运动的分解我们知道,刚体在平面内的运动可以分解为三个独立分量:X轴平动、Y轴平动、yaw 轴自转。如下图所示,底盘的运动也可以分解为三个量:以上三个量一般都视为四个轮子的几何中心(矩形的对角线交点)的速度:二、计算出轮子轴心位置的速度定义:那么...

2020-03-22 01:07:12 18100 4

原创 利用状态机控制按键

按键消抖:1.硬件消抖利用电容的充放电特性来对抖动过程中产生的电压毛刺进行平滑处理,从而实现消抖。但实际应用中,这种方式的效果往往不是很好,而且还增加了成本和电路复杂度,所以实际中使用的并不多。2.软件消抖当检测到按键状态变化后,先等待一个10ms左右的延时时间,让抖动消失后再进行一次按键状态检测,如果与刚才检测到的状态相同,就可以确认按键已经稳定的动作了。一、选择时钟源二、...

2020-03-18 18:23:27 2214

原创 基于PID算法的循迹小车

这一期为创客们带来基于PID算法的循迹小车制作1.标准赛道示意图:(该赛道包含了:左直角、右直角、十字路口等路况)2.灰度传感器安装示意图:(可根据实际情况调节各传感器之间的间距)3.硬件原理图:4.控制逻辑:5.程序如下:#define leftA_PIN 7#define leftB_PIN 6#define left_Pwm_PIN 5#define STBY...

2020-03-11 18:52:23 36995 16

原创 WORD如何编辑论文页码、页眉格式,实现封面、摘要、目录、正文互不干扰?

一、页码的处理1. 打开需要操作的WORD文档,光标停第二页(目录页)页首位置,在页面布局中点击分隔符插入“分节符”;小知识:分节符的作用就是将文章分成不同的“节”。插入一个分节符表示一个“节”在此结束,分节符之后将开始新的一节。如果删除了某个分节符,前后两节就会合并,并且采用后者的格式设置。2.打开“设置页码格式的下拉菜单”;3. 设置目录页码格式如下:4. 插入目录页码:!...

2020-03-09 20:53:54 3019 1

原创 MDK-ARM与STM32CubeMX软件的下载及安装

一、STM32CubeMX 的下载及安装第一步:下载应用软件1.1 软件下载地址:www.st.com/stm 32 cubemx1.2 JAVA开发环境的搭建,JAVA下载地址:www.java.com/en/download/manualjsp第二步:安装应用软件2.1 JAVA的安装2.2 STM32CubeMX的安装第三步:安装MCU固件包3.13.23.3 ...

2020-02-19 14:11:21 1921

原创 用SW绘制渐开线直齿圆柱齿轮

用Solidworks绘制齿轮可以使用SW里面提供的标准库,经过笔者实测,发现并不是很好用:)绘制齿轮大家可能仅仅是随手画一下,看着像齿轮就行了,但是如何正确规范的绘制一个渐开线圆柱齿轮,并能实现3D打印,零件成品能保证正确啮合运转呢?笔者接下来会想大家一一介绍,拿小本本记好哦~一、齿轮正确啮合的条件法面模数与法面压力角要求分别相等。对于斜齿轮,还需满足其螺旋角必须大小相等,方向相反。...

2020-02-17 00:15:26 14754 4

空空如也

空空如也

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

TA关注的人

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