简易示波器
简易示波器前言 最近在使用Webots进行机器人仿真,但是软件似乎不支持单步调试,也没有能绘制波形的调试工具。不过好在可以添加display组件,也就像是一块小屏幕,所以可以自己实现一个比较好用的示波器。
我也将代码封装到了一个.h文件中,无论是Webots中的虚拟屏幕,还是平时装在小车上的OLED、LCD,只需要修改一下绘制像素点或者线条的接口函数,修改一下屏幕尺寸,就可以轻松移植使用了。
代码地址Balance_Infantry/sim/webots/controllers/ccc/include at main · Semitia/Balance_Infantry (github.com)
中的display.h
代码中含有”wb”的为webots库函数,需修改。
效果演示
结构体介绍1234567891011121314151617181920212223242526272829303132333435/** * @brief 点结构体*/typedef struct __Piont_t { int x,y;}Point_t;/ ...
Balance_Infantry 仿真
Balance Infantry前言
Webots 仿真简单平衡小车参数确定取两个轮子的质量均为1
小车主体质量为3
支撑板质量为1
主体质心距轮子0.04m,支撑为0.016
主体加支撑距轮子中心为L=0.034m
g=9.8
令$\xi = [\theta,\dot{\theta},x,\dot{x}]^T$;且令$\theta\to 0; \dot{\theta} \to 0$,相当于在0处进行泰勒展开
则状态转移方程 $ \dot{\xi} = A\xi + Bu $
\dot{\xi} =
\begin{bmatrix}
0 & 1 & 0 & 0 \\
432.353 & 0 & 0 & 0\\
0 & 0 & 0 & 1 \\
-4.9 & 0 & 0 & 0 \\
\end{bmatrix}
\xi +
\begin{bmatrix}
0 \\
-7.353 \\
0 \\
0.25
\end{bmatrix}
u先取
Q =
\begin{bmatrix}
10 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 ...
Infantry 代码重构
Infantry-下供弹步兵前言 这次考核我尝试了将步兵代码进行重构,并完成一些基本功能。新的代码主要从面向对象的角度出发,涉及到常用硬件接口、常用算法封装、机器人各部件封装等。新的代码有很多地方参考了原来的工程代码,也十分感激历届学长学姐的工作,使我能站在巨人的肩膀上进行新工程的开发,参与此次考核。
原来的工程已经有了完备稳健的功能,也经过了长时间的实践验证,但是我觉得它可能还不是很便于继承与二次开发,这也是我想尝试重新撰写代码的原因之一。结合参与考核过程中实际体验,我觉得可能存在以下几方面的问题:
头文件引用方式不太健康,循环引用,编译效率低,容易因为文件编译顺序问题导致报错,同一个地方的错误会被编译器多次报错;
易产生依赖性,变量声明和引用的位置比较随机,代码之间耦合度过高,你中有我我中有你,错综复杂,各功能模块难以独立使用或移植;
有一些注释可能是跟代码一块复制过来的,代码修改了而注释没有修改,容易让人产生误解。
目前的新代码可实现一定的基本功能,然而其完整度还远远不够,部分新想法仍处于理论阶段,有待进一步实践验证。
仓库链接Semitia/In ...
WeChat App Development Notes
微信小程序开发日记https://zhuanlan.zhihu.com/p/183551698
WeUIindex.wxml
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950<page-meta root-font-size="system"></page-meta> <!-- 设置页面根字体大小为系统默认值 --><view class="page" data-weui-theme="{{theme}}" data-weui-mode="{{mode}}"> <!-- 设置页面的类名为page,并绑定主题和模式数据 --> <view class="page__hd"> <!-- 设置页面 ...
scattered Python scripts
在处理数据,绘图,批量处理文件时,python能大大提高工作的效率,这篇文章就记录一下在各种场景下常用的一些功能实现。
批量复制1234567891011121314151617181920# 导入os和shutil模块import osimport shutil# 定义源目录和目标目录的路径,注意要用绝对路径或相对路径source_dir = "C:/Users/xxx/source" # 源目录,假设是C盘下的source文件夹target_dir = "C:/Users/xxx/target" # 目标目录,假设是C盘下的target文件夹# 遍历源目录下的所有子文件夹和文件for root, dirs, files in os.walk(source_dir): # 对于每一个文件,获取它的完整路径 for file in files: file_path = os.path.join(root, file) # 复制或移动文件到目标目录,注意要保留原来的文件名 # 如果要复制文件,用 ...
hello,C51!
学校教学用的是汇编,正好之前也没有怎么学过,一起学一学
C51基本操作demo1计算1到5的和,并把结果存储在SUM这个地址中。
123456789101112131415 ;定义两个地址常量 INDEX EQU 20H ;索引寄存器,用于循环计数 SUM EQU 21H ;和寄存器,用于存储结果 ;定义程序起始地址 ORG 0000HSTART: ;程序开始标签 MOV INDEX, #5 ;把5赋值给索引寄存器 MOV A, #0 ;把0赋值给累加器ALOOP: ;循环开始标签 ADD A, INDEX ;把索引寄存器的值加到累加器A上 DJNZ INDEX, LOOP ;索引寄存器减1,如果不为0则跳转到循环开始标签 MOV SUM, A ;把累加器A的值赋值给和寄存器 SJMP $ ;无限循环,程序结束 END ;程序结束标签
EQU是英文单词equal的缩写,用于定义一个符号常量,不占用存储空间12。比如,COUNT EQU 100就是把100赋值给符号名COUNT,以后在程序中使用COUNT就相当于使 ...
Hello,Pegasus!
Taurus & PegasusTaurus & Pegasus AI计算机视觉基础开发套件组装指导视频
海思社区 (hisilicon.com)
官方教程
官网老是进不去,这是gitee上的pdf
训练服务器获取文档
华为开发者学堂-HarmonyOS物联网开发课程 (huawei.com)
硬件资料/HiSpark_WiFi_IoT智能家居开发套件_原理图.rar
Hi3861LV100 AT命令 使用指南.pdf
<零> Pegasus环境配置与文件架构跟着官方教程走,到了build步骤的时候出现报错
或者是这样的
这个问题教程里也有讲过:尽量将工程文件夹放在根目录下;实际上应该是:一定要将工程文件夹放在根目录下
之后就可以成功编译了
Build.gn文件BUILD.gn是一种用于描述软件构建信息的文件,它是GN(Generate Ninja)构建系统的一部分12。它的作用是:
定义要编译的源文件、头文件路径、编译方式等。
声明目标的依赖关系,如静态库、共享库、可执行文件等。
将设置放在config中,如编译器标志、预处理器定义、包含目录等。
...
camera-imu联合标定
IMU-camera联合标定
Kalibrkalibr官方教程github.com
ROS :: Message-filterwiki.ros.org
setup安装
1sudo apt-get install ros-noetic-message-filters
设置环境变量
1source /opt/ros/noetic/setup.bash
或者添加到.bashrc中
12echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrcsource ~/.bashrc
喜闻乐见的报错环节🙃
CMake Error at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package): Could not find a package configuration file provided by “message_filter” with any of the following names:
messag ...
高压线巡检机器人
设计说明书——高压线巡检机器人目录一、选题的背景和要求1.1 研究背景和意义1.2 巡检线路环境1.3 机构设计的具体要求二、整体方案的拟定及说明2.1 整体机构组成2.2 整体方案分析2.3 人员分工三、行走机构综合设计3.0 总体设计方案3.1 运动结构设计方案3.1.1 连杆机构3.1.2 高度补偿机构3.1.3 动力装置3.1.4 整体运动流程3.2 尺寸综合与应力分析3.2.1 机体尺寸与越障尺寸3.2.2 连杆机构应力优化3.3 动力分析与选型四、平衡机构具体设计方案4.1平衡机构设计要求及方案4.2齿轮齿条传动4.3 齿轮齿条传动平衡机构与行走机构配合五、夹爪机构具体设计方案5.1总体设计方案5.2夹爪机构爆炸图5.3夹爪机构应力分析六、脱线控制机构具体设计方案6.1、总体设计方案6.2、凸轮齿轮齿条机构6.3、不完全齿轮齿条机构6.4、齿轮系机构6.5、总结七、收获与感想
一、选题的背景和要求1.1 研究背景和意义电力传输过程中不可或缺的设备之一就是高压线路,其影响了电力传输系统的可靠性和安全性。传输系统中的杆塔或者电线由于长期暴露在野外或者受到环境和机械的作用会产生多 ...
Balancebot's LQR controller & Rhomberg observer
平衡小车的LQR控制器与Rhomberg观测器动力学分析
控制器设计状态空间方程令$\xi = [\theta,\dot{\theta},x,\dot{x}]^T$;且令$\theta\to 0; \dot{\theta} \to 0$,相当于在0处进行泰勒展开
化简得到
\dot{\xi} =
\begin{bmatrix}
0 & 1 & 0 & 0 \\
\frac{M+m}{Ml}g & 0 & 0 & 0 \\
0 & 0 & 0 & 1 \\
-\frac{mg}{M} & 0 & 0 & 0
\end{bmatrix}
\xi
+
\begin{bmatrix}
0 \\
-\frac{1}{Ml} \\
0 \\
\frac{1}{M}
\end{bmatrix}
u取输出水平力 $u = -K_1X_1-K_2X_2-K_3X_3-K_4X_4$
Simulink仿真取m=1kg, M=1kg, g=10m/s^2, l=1m
Q=\begin{bmatrix}
10&0&0&0 \\
0&1&0&0 \\
0&0&1&0 \\
0&0&0&1
\end{bma ...