python
文章平均质量分 54
不纯洁的锌
机械电子 汽车电子 移动机器人 https://github.com/XiaoxingChen
展开
-
Keil命令行编译工程
背景控制器的板子,有bootloader,有应用层,还有需要适配不同厂家的配置。 因此整个solution可能会由好几个project构成。参考VisualStudio的solution和project的关系。此外,还有许多编译前执行的内容,以及编译后执行的脚本。因此如果能通过命令行来调keil就很有价值。方法keil的官网上对此有介绍 keil命令行接口 归纳一下,一个...原创 2018-03-01 21:42:03 · 9754 阅读 · 1 评论 -
陀螺仪与里程计不匹配度的自动判定方法
背景移动机器人底盘两个重要的上传参数就是底盘的里程(x,y,θ)(x,y,θ)(x, y, {\theta})和陀螺仪的θθ{\theta}角,即yaw角。处于各种原因,比如陀螺仪失效、轮子打滑、底盘运动参数配置错误等问题,可能导致这两个传感器上传的yaw角会发生短时间地,或微小地不匹配的情况。为了快速定位问题发生的时刻,本文解释了一种判定两者不一致的方式。其基本原理为两个时间序列的相似性分析...原创 2018-02-11 19:10:47 · 1776 阅读 · 0 评论 -
数字示波器CAN节点标定
背景:CAN通信有错误帧,丢包,波特率不匹配等问题。通过STM32可以返回出填充错误,隐形位错误,应答错误等问题。但是面对错误无能为力。通过示波器又无法直观看出错误帧在哪里。看了广东致远电子的 CAN节点测试与标定方案.pdf 感觉非常有启发。对于CAN节点的测试,文档中和网上的资料比较相似,主要可以分为以下几点:* 位宽度容忍测试(波特率波动)* 报文压力测试(大数据量负载情原创 2018-01-16 13:27:07 · 936 阅读 · 0 评论 -
正则表达式使用笔记
使用正则表达式替换vector访问方式v.at(xxx)与v[xxx]之间的替换v.at\(.*?\)替换为v[$1]说明:$1表示第一个段域.*表示匹配任意长度的字符串,regex默认为饿汉模式,即匹配尽可能长的字符串,那么v.at(5) + v.at(16)就会将 “5) + v.at(16” 匹配成$1,从而导致误替换。那么加上“?”后原创 2017-11-15 10:47:13 · 281 阅读 · 0 评论 -
RSA加解密调试记录
趟坑记录:1. python调试环境:推荐rsa库。比较方便,直接import rsa即可。2. C++调试环境:由于项目中只用到微量的RSA运算。openSSL太过庞大。polarSSL为轻量级SSL库,被arm公司收购后已改名mbedSSL。3. 密钥:RSA分公钥和私钥。在polarSSL中私钥的详细格式为:N: public modulus,公钥模数E: p原创 2018-01-17 17:20:08 · 632 阅读 · 1 评论 -
OSError: [WinError 10022] An invalid argument was supplied - Windows 10 Python
原来跑的好好的代码,重构了一部分发现突然报错了。删减下来最小代码重现:s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)x=s.recvfrom(1024)第二行会报OSError: [WinError 10022] An invalid argument was suppliedgoogle之,解释如下:点击打开原创 2017-11-21 10:43:46 · 3904 阅读 · 0 评论 -
pyinstaller 打包包含数据的程序
前言pyinstaller 是用于将python脚本打包成可执行文件的工具.支持linux和windows等各种平台. 然而使用的时候,难免会遇到脚本直接运行正常,打包运行各种路径报错或者找不到文件的情况.这篇文章主要讨论当工程需要用到非python文件数据时,如何进行打包的问题.问题场景的例子1: 工程下有main.py和table.json. 当main.py运行时...原创 2018-03-30 23:15:04 · 5691 阅读 · 1 评论