使用示波器播放 Bad Apple!!
本视频使用的两段素材分别来自某次物理竞赛集训(拍摄于华中科技大学),以及普物实验课程(拍摄于北京大学);音频为后期加上。
为了对上音轨,视频前有一段黑屏,这是 feature 而非 bug。敬请欣赏。
本视频使用的两段素材分别来自某次物理竞赛集训(拍摄于华中科技大学),以及普物实验课程(拍摄于北京大学);音频为后期加上。
为了对上音轨,视频前有一段黑屏,这是 feature 而非 bug。敬请欣赏。
随着新 ECMAScript 标准的普及,许多曾经的 JavaScript 常见写法可以用更简单清楚的语法重构。本文做了一个简单的整理。
当想写 if...else
语句时,使用三元操作符来代替。1
2
3
4
5
6
7
8const x = 20;
let answer;
if (x > 10) {
answer = "is greater";
} else {
answer = "less than 10";
}
简写:1
const answer = x > 10 ? "greater than 10" : "less than 10";
if
语句也可以像这样嵌套:1
const answer = x > 10 ? "greater than 10" : x < 5 ? "less than 5" : "between 5 and 10";
当给一个变量赋值时,你可能想要确定值不是 null
,undefined
或空值。可以写一个多重条件的 if
语句:1
2
3if (variable1 !== null || variable1 !== undefined || variable1 !== "") {
let variable2 = variable1;
}
或者可以使用短路求值方法:1
const variable2 = variable1 || "new";
另一个例子:1
2
3
4
5
6let dbHost;
if (process.env.DB_HOST) {
dbHost = process.env.DB_HOST;
} else {
dbHost = "localhost";
}
简写:1
const dbHost = process.env.DB_HOST || "localhost";
1 | let x; |
简写方法:1
let x, y, z = 3;
AppImage 是一种在 Linux 系统中用于分发便携式软件的格式。但是,如果在初次安装 AppImage 程序后,移动了 AppImage 文件的位置,将导致其图标无法加载。解决方案是进入以下两个目录中:1
2~/.config/
~/.local/share/applications/
然后找到并删除有关的文件,例如与程序名称相关的文件夹,和 appimagekit-*.desktop
。
完成后重新启动程序并再次安装即可。
ESP8266 是一款非常小巧的物联网芯片,在烧录了 AT 固件后,可以通过串口传递指令,进行 Wi-Fi 连接和发起 HTTP 请求。
市面上有许多集成了 ESP8266 芯片的开发板,例如 ESP-01 或 ESP-01S。笔者使用的是 ESP-01,已经预先刷好了 AT 固件。
要将 ESP-01 连接到电脑上,需要准备一个 USB 转 TTL 模块,其输出接口应包括 VCC,GND,TX 和 RX。值得注意的是,ESP8266 芯片的供电电压是 3.3V,如果模块输出的 VCC 是 USB 的 5V 电压,那么不能直接接上 ESP-01,否则会造成损坏。
如果没有现成的硬件,用一块 Arduino 单片机也可以代替,因为 Arduino 单片机上是有 USB 转 UART 芯片的。向 Arduino 烧录一个空程序(即 setup
和 loop
函数都为空的程序),就可以利用单片机上的 TX 和 RX 接口与 ESP-01 进行串口通讯了。不过这时要注意供电问题,ESP-01 在连接网络时功耗会增加,直接用 Arduino Nano 的 3.3V 输出可能带不动,会导致 ESP-01 重启。
ESP-01 的引脚定义如下图所示。
使用时,将 VCC 和 CH-PD 接 3.3V 高电平,GND 接地,TX 和 RX 则连接到 USB 转 TTL 的模块(或者 Arduino 单片机)的 RX 和 TX 上。
连接好之后,ESP-01 开发板上的电源指示灯会亮起。在电脑上打开串口通讯软件,例如 Arduino IDE 自带的串口监视器。AT 固件默认的参数是:串口波特率为 115200,换行符为 NL 和 CR。
接下来,可以通过 AT+GMR
命令查看固件信息:
其它常见的 AT 命令可以参考以下文章:
ESP8266_AT Wiki
ESP8266 - AT Command Reference
ESP-01 上电自检时也会向串口打印出信息,但在一般的串口监视器中会显示为乱码。原因是 ESP-01 用的晶振是 26MHz 而非 40MHz,其串口波特率为
首先将 ESP8266 重置,然后设置为 AP + Station 模式。1
2
3AT+RST
AT+CWMODE=3
AT+CWLAP
最后一个 AT+CWLAP
命令将搜索附近的 Wi-Fi 并显示出来。
随后,使用 AT+CWJAP
命令,指定 SSID 和密码用于连接 Wi-Fi:1
AT+CWJAP="ssid","pwd"
将 ssid
和 pwd
根据情况替换。如果连接成功,将返回1
2WIFI CONNECTED
WIFI GOT IP
接下来就可以发起请求了。我们以 World Time API 为例,这个网站可以根据客户端 IP 获得时间。