分类 折腾 下的文章


刷写FRC的无线网桥


只要跟着本文走,刷写网桥不用愁。本教程可以在 Windows 7 及以上的任意语言的系统中使用。

0x01 下载最新的工具

每个赛季的 kickoff 之前或之后都会在官方文档中释出最新赛季的 FRC Radio Configuration Utility。运行这个软件需要 Java 环境,没装过 JRE(Java Runtime Environment)的请自行下载。

官方刷写教程:http://wpilib.screenstepslive.com/s/currentCS/m/getting_started/l/144986-programming-your-radio

2018 年最新的 FRC Radio Configuration Utility:https://firstfrc.blob.core.windows.net/frc2018/Radio/FRC_Radio_Configuration_18_1_0.zip

访问速度比较慢,你可能需要一个能流畅访问国际互联网的环境。国内也有人会搬运这些软件到百度云等地方。

0x02 安装

双击安装,一路回车,这个就不需要详细讲了吧。

0x03 调整参数

如果系统是 Windows 7 可以跳过这一步

右键点击桌面上的 FRC Radio Configuration Utility,属性,并调整兼容性设置为“Windows 7”。

compatibility setting

0x04 在非英语环境使用

如果系统本身就是英语,可以跳过

下载这个 FRC Radio Configuration Utility Language Fixer.zip,然后解压。

接着右键桌面图标,然后选择“打开文件位置”。将解压出来的 ipconfig.exe 复制进去就可以了。

copy patch.png

官方并不支持非英文系统的刷写,本只 Soha 在这方面花了很大力气。想对这个了解更多,请看另一篇博客:《在非英文Windows上使用FRC Radio Configuration Utility》

0x05 准备工作

先打开控制面板的“更改适配器设置”。怎么打开不赘述了,如有疑问可以找搜索引擎。

然后禁用所有除了通过网线连接无线网桥的网卡(比如 Wi-Fi 的网卡什么的)。

disable_useless_interfaces.png

0x06 RCU,启动!

双击桌面图标启动 FRC Radio Configuration Utility,并选择合适的网卡。

select_interface.png

0x07 刷写固件

点击那个大大的“Load Firmware”来刷写固件。

Radio successfully flashed

看到这个提示说明成功。

0x08 配置基本信息

填入队号(Team Number)和无线接入点密码(WPA Key),这是到时候通过 Wi-Fi 调试 Robot 的时候的必要连接信息。

input_basic_info.png

然后点击那个大大的“Configure”。

Bridge for Team 6385 successfully programmed

看到类似这个的提示,说明成功。

0x09 测试

打开电脑的 Wi-Fi 设置,如果可以成功通过之前设置的信息(本例中是 SSID=6385,Password=Hello,FRC!)连接到路由器,那么恭喜你,成功了。

0x0a 结束

本文赶制仓促,可能有不够清楚或者错误的地方,可以联系 [email protected] 提问。

0x0b 常见问题

Error finding NPF device name for adapter: * Try disabling all other adapters (using the Control Panel)

在步骤 0x07 中出现。很多队伍使用了 KOP 中的 USB 有线网卡来刷写,或者没有禁用别的网卡,会遇到这个问题。

建议使用板载有线网卡,并确认完成了上面的步骤 0x05

Timeout waiting for radio. Make sure you have launched the .exe not the .jar. Try using a switch.

在步骤 0x07 中出现。一般应该都是通过桌面快捷方式启动的,更大的可能原因是因为这台计算机的网卡不靠谱儿。

  1. 确认使用了桌面上的快捷方式启动 FRC Radio Configuration Utility。
  2. 在电脑和无线网桥使用一个一个交换机。(提示: 一个常见的无线路由器的四个LAN口可以作为一个交换机,注意这需要提前关闭无线路由器的 DHCP 服务。)
  3. 换台电脑。

Firmware too old.

在步骤 0x08 中出现。一般是因为没有进行步骤 0x07,现有的固件太老了。

参考步骤 0x07 进行一次“Load Firmware”。


一次解包 Unity 游戏应用的经历


0x00

为了更好的学(kuang)(tian)(lao)(gong),我尝试从这个游戏入手,解包一个 Unity 应用。

0x01 万能的 unzip

下载apk,然后直接unzip了它。然后我们想要的东西都在 assets 文件夹里。

├─assets
│  ├─bin
│  │  └─Data
│  │      ├─Managed
│  │      └─Resources
│  ├─common
│  │  ├─animations
│  │  │  ├─...
│  │  ├─audios
│  │  │  ├─...
│  │  ├─effect
│  │  │  ├─...
│  │  ├─fonts
│  │  ├─materials
│  │  ├─shaders
│  │  └─textures
│  ├─i6
│  │  ├─...
│  └─lua
│      ├─data
│      │  ├─...
│      ├─lib
│      ├─logic
│      ├─module
│      └─sys
├─lib
│  ├─armeabi
│  ├─armeabi-v7a
│  └─x86
├─META-INF
└─res
    ├─anim
    ├─color
    ├─color-v11
    ├─color-v23
    ├─drawable
    ├─...

有个文件,路径是 /assets/bin/Data/unity default resources 很容易引起注意。

// 点开我,里面还有许多内容!


在非英文Windows上使用FRC Radio Configuration Utility


刷写和配置路由器的固件一直是非英语为母语国家的FRC队伍心中的痛,因为非英语的Windows不能正常运行FRC Radio Configuration Utility。而且以前可以用ap51-flash刷写,今年却!不!行!又因为坑爹的Microsoft,只有一些比较高端的版本(比如专业版)才能随意更换Windows语言。为此大部分队伍还得专门重装一台英文的Windows的机子来刷路由。

而今天,终于不需要专门准备英文的Windows了。机智的soha倒腾出了一个在非英文Windows系统下使用FRC Radio Configuration Utility的方法。


下面的内容是最新操作。Version 2018-02-09 22:41

之前的方法比较繁琐,而且可能会引起很多不必要的麻烦(比如我已经解决了好几个因为下面那个方法刷完路由后没有还原设置导致的问题了)。加上在WPILib的官方Repo里我之前提的issue下面,有个墨西哥的dalao说这个方法在西班牙语的系统上不能起作用。经过我在法语Windows上的确认,的确在西欧语系下即使修改了非Unicode程序的设置,在命令行下照样会显示本身的系统语言。

wont_change_in_western_languages.png

作为一个强迫症,我又倒腾出了一个全新的、更简单的方法。

awesome.png

只需要下载这个FRC Radio Configuration Utility Language Fixer.zip,然后将其解压后的 ipconfig.exe 复制到FRC Radio Configuration Utility的安装文件夹(默认路径是 C:\Program Files\FRC Radio Configuration Utility 32位系统 或者 C:\Program Files (x86)\FRC Radio Configuration Utility 64位系统

然后就按照最正常的方式双击桌面上的图标,然后刷写路由就好了。不需要任何其他的操作。

下面简单提一下原理。

FRC Radio Configuration Utility 使用了 ipconfig /all 来获得所有可用于刷写固件和配置的网卡。然而如果你在非英语的Windows上执行这个命令,你会发现它出的结果往往是使用系统语言的。那么问题就出在这里:FRC Radio Configuration Utility 没法识别英语之外的内容啊!

所以我写的这段程序相当于复刻了一个英文版 ipconfig /all。 当然这个复刻版功能更简化了,因为只需要有名称和物理地址就可以了,所以我只输出了物理地址和名称,这样FRC Radio Configuration Utility就可以识别出所有网卡了。

而且更好的是,因为不像之前一样改locale,没有修改系统的默认代码页,所以不需要专门把网卡名称重命名为英文的了。中文的照样可以正常刷写。

compare_fixer_ipconfig.png

compare_fixer_ipconfig-fr.png

附上这个程序的GitHub repo地址:moesoha/frc-rcu-language-fixer

感谢6971的朋友帮忙对该程序进行了测试。


下面的方法因为比较繁琐已不再建议使用。Version 2017-08-19 12:52

(以Windows 10简体中文专业版为例)

首先保证你已经在网络设置里将接Radio的有线网卡的名称改成英文(为了后面选择网卡方便,图片只是举个例子)。

interfaces.png

然后打开设置-时间和语言-日期和时间-其他日期、时间和区域设置(Windows 10,较低的版本是控制面板-时钟、语言和区域),接着依次点开区域-管理-更改系统区域设置,在下拉框中选择英语(美国),随后重启系统。

find_non-unicode.png

重启完后,右击桌面上的FRC Radio Configuration Utility快捷方式更改属性,在兼容性选项卡下面选择兼容模式为Windows 7(如果本来就是Windows 7可以忽略)。

properties_for_RCU.png

应用保存后以管理员身份运行FRC Radio Configuration Utility就可以正常地选择网卡并且刷写啦!

RCU_result.png

刷完后别忘了把第一步中改的英语(美国)换回原来的中华人民共和国的设置,不然很多国产软件会出乱码!


来玩Arduino——做一个高考倒计时表


0x00 写在前面

为啥要写这篇文章呢?因为最近想用数码管做个高考倒计时牌,但是数码管还没买,于是先用自己有的OLED屏幕做了个桌面版的。班里一些同学看到这个逼格这么高的的玩具,也想做一个玩。于是我来写这篇文章教一下。

也是找个理由更新一下许久没更的博客……

本文写的非常简单适合小白,一些大佬请不要吐槽。

photo_2017-06-16_19-24-57.jpg

// 点开我,里面还有许多内容!


回滚到了20161010的数据库


恢复进度告知:已经近完全恢复了。

Soha之前没注意所有数据有没有都备份成功,就直接取了最新的备份文件(每天都有自动备份,但是那些soha没复制出来,和磁盘一起消失在了黑暗中),就直接删了磁盘文件,导致Soha丢了自己博客的数据库。(知乎:这次大翻车了)在各种数据恢复均没有成功的情况下,还原到了较早(2016年10月10日)的数据库。

66666.jpg

一些2016年10月10日之后文章会尽量尝试恢复。近期博客大概是不稳定的。

photo_2017-05-24_17-30-57.jpg