Lan Tian @ Blog

RoboMaster 开发踩坑日记(2018-05-28 更新)

学校组建了一支 RoboMaster 队伍,准备参加今年的比赛。因为是新校区新学生,因此我们完全没有之前的参考资料,只能自己一个个踩坑。 以下是我们在软件开发中遇到的一些坑。 硬件版本:RoboMaster 官方开发板(信仰板) 芯片型号:STM32F427IIHx 软件系统:ChibiOS 18.2.0 信仰板 HSE 时钟频率为 12MHz 而非常见的 8MHz 最坑的是信仰板的说明书和硬件原理图上完全没有提到这事。 这个问题导致我们用 STM32CubeMX 等软件算出的时钟频率远高于额定频率,并导致了如下后果: 莫名其妙的频率设置失败(设置了在合理范围内的频率,但是板子不响应了,只能短接某个电阻 Reset) USART 时序错误(明明两端波特率一样...

大幅优化了博客主题性能

今晚修改了一下主题,删掉了好几个不必要的正则匹配,把页面加载时间(HTTP 头中的 LT-Latency)从 0.25 左右降到了 0.1 左右。

正则表达式功能虽强,但为了性能考虑,还是要谨慎使用。

NAT64 服务器搭建

NAT64 是 IPv4 向 IPv6 过渡时出现的一项技术。它通过将 IPv4 的地址映射到一个 IPv6 地址段上,来让仅支持 IPv6 的设备同样能够访问 IPv4 网络。但由于仅支持 IPv6 的设备并不多,目前它在国内的应用主要是两个方面: 对于 IPv4 收费/限速/限流量而 IPv6 免费/不限速/不限流量的教育网用户,可以使用公共 NAT64 服务来省钱。 对于 iOS 应用开发者,用于搭建测试环境以通过 App Store 的审核。 我们也可以在自己的同时拥有 IPv4 和 IPv6 连接的路由器上安装相应的软件,来搭建 NAT64 服务器。常用的软件是 Tayga 和 Jool...

树莓派 3B 折腾笔记:硬件看门狗

在计算机中,“看门狗”指的是一种硬件计时器,用于在计算机失去响应(死机)的时候重启计算机。计算机的系统上要运行一个程序不断和看门狗硬件通信。当通信中断经过一段预设的时间后,看门狗就会通过发送 RESET 信号或者切断再接通电源等方式强制重启,保证计算机上运行的服务不长时间中断。 在折腾树莓派的过程中,我也曾好几次让树莓派失去响应,结果不得不人工开关电源来重启。通过开启树莓派上的硬件看门狗功能,就可以减少这种情况的出现。 加载驱动 由于 Linux “万物皆文件”的特点,可以通过 ls 命令直接查看看门狗驱动的状态: ls /dev/watchdog 如果有这个文件,可以直接跳到下一部分。如果没有...

解决树莓派 HW CSum Failure 问题

今天登录上树莓派,习惯性 df 查看磁盘空间,发现树莓派 TF 卡上的空间所剩无几。最开始我以为我设置错误,把要挂机下载的文件下载到了 TF 卡里而不是移动硬盘里。结果排查下来,/var/log 下的日志文件居然占据了整整 18G 的空间。查看了一下日志,基本上都是类似如下的报错: Jan 25 22:51:15 lantian-rpi3 kernel: [ 22.143274] eth0: hw csum failure Jan 25 22:51:15 lantian-rpi3 kernel: [ 22.143281] CPU: 0 PID: 1075 Comm: vncagent Not tainted 4...

让 ASF 帮你在 Steam 中挂“贪玩蓝月”

最近贪玩蓝月因为其洗脑的广告而流行了起来,也出现了许多通过在 Steam 中添加自定义程序后重命名为“贪玩蓝月”,达到显示自己在玩贪玩蓝月效果的教程。不过这么做需要把那个自定义程序一直开着,有些时候还是比较麻烦的。 ASF(ArchiSteamFarm)则是一个模拟用户玩游戏,从而刷 Steam 交易卡掉落的程序。因为它能模拟用户玩游戏,自然也能模拟玩“贪玩蓝月”,在自己电脑上什么都不用设置的情况下达到如图效果: 实现这个效果,在你运行 ASF 的主机上修改 ASF 的配置即可。打开 config/[BOT 名称].json,找到下面三行并修改成对应的参数: "CustomGamePlaye...

如何在 SSLLabs 测试中冲满分

Qualys SSL Labs 是一个测试服务器 SSL 功能的网站,我们在配置服务器时经常用它作为参考。一般来说我们只参考它的评级(A+,A,B,C,D,E,F,T)等,达到 A+ 就认为服务器的配置足够优秀。不过,SSLLabs 也在评级右侧给出了分项分数,而我的主站并没有把它们全部冲到满分。如果把 SSLLabs 的各项分项分数全部达到满分,会是什么效果,有什么实际意义吗?我用一台不运行网站的 VPS 安装了 nginx 并进行了一些配置,成功刷到了全满分,如图或者这里所示: 作为对比,这是本站的评分,除看图外也可在此处看到: 本文有关 SSLLabs 评分标准全部来自于 SSLLabs 官方的评分标准文档 在本文写成之日的版本...

树莓派 3B 折腾笔记:硬件随机数发生器

随机数在计算机中有着十分重要的应用,例如常用的 SSL 加密算法就非常依赖随机数。如果随机数不够随机,就很有可能被攻击者猜到,相应的加密验证体系也就土崩瓦解。但是由于计算机说零是零、说一是一的特点,它没有办法产生真正的随机数,只能通过复杂的算法去尽可能模拟随机数。 在 Linux 系统上,由于 Linux “万物皆文件”的特点,可以从 /dev/random 读取到由 Linux 内核综合大量数据生成的随机数。但是因为 Linux 基于“安全第一”的原则综合了大量数据,随机数的产生速度很慢。用 rng-tools 软件包中的 rngtest 工具就可以看到: lantian@lantian-r...

树莓派 3B 折腾笔记:BT 下载与策略路由

这次就直接进入正题。(其实是不知道该拿什么开头) 安装 Transmission 挂 PT 作为一个可以自由连接各种传感器的小型电脑,树莓派的可玩性相当高。即使你不想在 GPIO 上接一大堆传感器(或者像我一样觉得另外的传感器暂时没什么用),你也可以利用它低功耗的特点,让它 24 小时运行,做一些不需要大量 CPU 运算,但是因为其它因素需要较长时间才能完成的任务,例如……挂机下载。 我所在的大学有一个内网的 PT(Private Tracker)站。PT 站就是一个 BT 种子的发布网站,但是它在传统 BT 的基础上增加了用户管理功能,并且通过限制客户端种类、强制要求上传率等方式,解决了传统 BT 下各类客户端吸血(只下载不上传...

树莓派 3B 折腾笔记

国庆放假期间我在某宝上买了一只树莓派 3B 和一堆传感器,准备搞一波事情。因为是国庆,所以各家店发货都有不同的延迟,导致我国庆长假后又过了好几天东西才到齐。 先上张完成体的图片: 我分了五家店买了这些东西: 树莓派 3B(含外壳、风扇、散热片、电源套装) 闪迪 32G TF卡 树莓派传感器套装(支持树莓派的 3.3V 电平,总共 16 个) 5 寸 800x480 触摸屏 DS3231 时钟模块和 GPIO 针脚标记板(后买) 树莓派本体 最先到的是树莓派 3B 本体,以及配套的外壳风扇散热片等等。然而我买的 TF 卡还没到……所以这只树莓派暂时什么都干不了。不过我还是可以把外壳风扇等等先组装起来...