Chin's BBBlog 
  • 首页
  • 标签
  • 关于
  • 友链
  •     

WS2812B LED plate controlled by ESP8266

我们光遗传学常用各种波长LED来发光刺激孔板中的细胞, 但是涉及到多色光控时候电路布线就会非常复杂. 当我发现WS2812这类只需要一根数据线就可以进行大批灯珠多色光照控制时候简直就像教徒看见了福音. 但是这类使用高频数字电路进行控制的硬件使用上真是巨大的坑, 故在此记录. 我使用ESP8266(Wemos D1 / NodeMCU兼容开发板)来控制WS2812B Mini V3. 编程框架使用Arduino. 使用库Adafruit NeoPixel
GPIO  Arduino  单片机  hardware  ESP 

安卓系统的远程桌面: scrcpy

使用Linux习惯后最烦的就是使用微信和别人交流, 最近突然意识到是不是可以使用类似三星DeX或者某种安卓的远程桌面的软件, 在Linux上使用安卓手机上的微信呢? 答案就是scrcpy scrcpy的安装 以Linux Mint 21 (基于Ubuntu)为例. 需要先安装adb, 建议去官网(需翻墙)下载最新版本: https://dl.google.com/android/repository/platform-tools_r34.0.1-linux.zip, 解压后将其目录中的platform-tools/adb软连接到/usr/local/bin/adb; 也可以直接在软件源中安装adb: sudo apt update && sudo apt install adb android-tools-adb. 随后参照GitHub上的教程安装最新版本scrcpy(旧版本对最新的安卓系统可能不兼容, 也无法转发手机声音至电脑): sudo apt update sudo apt install ffmpeg libsdl2-2.0-0 adb wget \
software 

消息云同步: 安卓手机与智能手表(Wear OS / Color OS)

以前用过TicWatch2 NFC, 很喜欢其消息云同步功能, 跑步没带手机时候也能利用手表的eSIM获取手机消息. 奈何升级到Wear OS智能手表之后就再也没有这样的功能了, 于是只能自己实现消息云同步的功能. 主体思路是使用SmsForwarder截取安卓手机(安卓11 / Color OS 13)的通知, 转发给Gotify, 在手表端安装Gotify的APP即可. Gotify server配置Gotify需要自己搭建服务器并且需要公网IP来支持eSIM访问, 可以考虑买一个云服务器或者使用花生壳内网穿透. 后续配置过程以带有公网IP的Ubuntu 20.04系统为例. 使用Docker容器运行Gotify server 安装Docker: sudo apt update && sudo apt install docker-ce 拉取Gotify server的镜像: sudo p docker pull gotify/server 写入配置文件 env.list:GOTIFY_SERVER_PORT=80 # Gotify server使用端口号, 可以修
server  software 

VSCode服务器端安装与使用

今天尝试了使用Visual Studio Code的Server版本, 没有之前RStudio Server遇到的输入法Bug, 支持中文, 拓展够多(下载安装也很快), 通过拓展可以支持各种文件格式的预览与编辑(Office拓展点赞+1). 这里记录一下配置过程以及编辑Markdown使用的插件. 服务器系统: Ubuntu 20.04 内网使用VSCode server服务安装与自启动 安装阶段需要保持服务器与外网的连接. 运行下述命令安装VSCode服务端框架, 可能需要输入sudo密码 wget -O- https://aka.ms/install-vscode-server/setup.sh | sh 随后运行(注意不要使用root用户): code-server serve-local --host 0.0.0.0 --port 端口号(默认8000) 第一次运行会需要同意用户条款, 同时自动安装一些必要的组件, 随后程序会在命令行中提示VSCode的网址: http://localhost:端口号/?tkn=********-****-****-****-*****
server  software 

Ubuntu服务器链

最近实验室改造了两台服务器, 准备用作数据备份以及模型训练. 拿到手时候店老板已经预装了Ubuntu 18.04.4以及Nvidia显卡驱动. 需要做的就是将数据盘格式化并且挂载到系统中去, 设置两台服务器的网络(只有一个网口能供一台服务器连学校内网,另一台服务器与这台服务器相连), 同时设置网络代理让服务器可以访问外网. 第一台服务器(与校网直连)配置设置网络校园网配制省略, 另一台服务器与这台服务器相连, 二者之间仅需配置静态IP(校网直连服务器192.168.0.1, 另一台服务器192.168.0.2). 使用图形化界面配置比较简单, 这里主要讲一下使用netplan进行的配置. Netplan配置修改/etc/netplan/*.yaml为: network: version: 2 renderer: networkd ethernets: enp4s0: addresses: - *.*.*.*/24 gateway4: *.*.*.1 nameservers: addresses:
server  GNU/Linux 

用安卓手机/平板作为GNU/Linux电脑的第二屏幕

思路在GNU/Linux电脑中产生一个虚拟显示器(Intel核显)或者使用显卡欺骗器产生虚拟显示器, 随后将该显示器的内容用x11vnc发送出去, 安卓手机/平板用VNC Viewer(无法用Google Play的话需要自行百度安装包)显示发送出来的显示器内容. 可以通过网络实现VNC连接, 也可以使用adb的反向代理功能实现VNC连接(推荐, 因为x11vnc默认没有加密). 虚拟显示器分辨率设置使用xrandr直接运行xrandr查看已有显示输出对应的分辨率与偏移量, 一般表示为AxB+C+D, 同时确定显示输出的名称(例如HDMI-0或者DP-0)和可选分辨率. 其中: A: 横向分辨率 B: 纵向分辨率 C: 显示输出左上角相对整体输出的相对横向偏移量 D: 显示输出左上角相对整体输出的相对偏移量 使用xrandr --output 显示输出名称 --mode AxB --pos CxD设置显示器的分辨率与位置, 并将这句命令加入到~/.profile中, 注意A/B/C/D的值按需修改. 使用nvidia-setting(对应Nvidia显卡)确保电脑安装了Nvidia
software  GNU/Linux 

在没有显示器的情况下设置GNU/Linux服务器默认显示输出

学校服务器的显示器被拔了, 重启后VNC远程桌面的分辨率只有320x200了. 因为VNC协议无法改变服务器显示输出, 故只能改变服务器的默认显示输出. Linux Mint的图形化系统X11的配置文件在/etc/X11/xorg.conf, 在其中加入: Section "Device" Identifier "Configured Video Device" EndSection Section "Monitor" Identifier "Configured Monitor" EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configur
GNU/Linux 

GNU/Linux系统下可用的思维导图软件(FreePlane)

其实最好用的思维导图软件还是Xmind, 它也有GNU/Linux版本而且支持良好, 无奈它太氪金了, 我就转向了FreePlane. 去https://github.com/freeplane/freeplane/releases下载freeplane_bin-***.zip, 解压后直接运行其中的freeplane.sh即可. 可以将自己配置的模板另存为到其中的resources/templates下. 回车为增加同一级节点, Tab为增加下一级节点. 可以将思维导图导出为Markdown并进一步生成各种展示. 不过我更倾向于导出为svg, 随后使用Inkscape稍稍修改, 用Sozi将其制成展示. Sozi可以将其以网页或者PPT的形式导出(一定要全屏Sozi时候导出PPT).
software  GNU/Linux 

HC-05蓝牙串口模块的配置与使用

我使用的是焊接了官方HC-D转接板的HC-05模块. HC-05采用蓝牙2.0进行通讯, 需要两个模块分别设置为主机以及从机, 同时使用相同的密码, 主机需要绑定从机的地址, 随后即可使用, 上电时主从机自动连接. 查询数据手册得知主机配置为AT+CMODE=1时会连接所有密码正确的从机, 而非仅仅连接绑定地址的从机. 可能这操作对HC-06等模块也有用. HC-05的配置(AT模式)将模块用串口转USB接到电脑上后, 按住模块上的按钮再上电(拔插电源引脚), 观察到指示LED慢闪(亮一秒暗两秒循环), 说明成功进入AT模式, 松开按钮, 否则断电重新按按钮上电. 电脑上打开串口软件(GNU/Linux推荐CuteCom, Windows推荐OSDA), 设置波特率为38400, 数据位为8, 停止位为1, 无校验位以及流控制. 配置发送字符串结尾为回车+换行(CR/LF, 或者手动在后面加入\r\n). HC-05从机模式先恢复初始状态: AT+ORGL 随后设置配对密码以及从机模式: AT+PSWD=四位数字(十六进制?) AT+ROLE=0 查询蓝牙地址: AT+ADDR?
单片机  hardware 

酒精炉燃料选择

最近买了一个牧高笛酒精炉, 却遗憾得发现常规固体酒精在其中燃烧效率并没有达到预期, 烧开一杯水泡奶茶差不多需要二十分钟, 如果烧开1 L水可能需要多次添加燃料(虽然固体酒精添加燃料也方便). 此处使手头的几种酒精燃料进行烧水实验. 个人比较建议使用脱脂棉球吸饱95%酒精作为燃料. 直接使用液体酒精燃烧的话, 一旦酒精炉倾覆或者酒精溢出将很容易点燃附近的可燃物造成火灾, 故不考虑. 此处我采用的是99%酒精棉花/75%酒精棉花/块状固体酒精(用手可以挤出酒精的那种)/酒精膏. 95%酒精会比99%酒精便宜不少, 估计效果也不会差太多. 实验记录从加一杯奶茶差不多的水并且点火开始到大部分酒精炉气孔出现火焰(火力开始)/所有酒精炉气孔火焰达到锅底(火力全开)/水被煮沸的时间(煮沸), 燃料始终是过量的. 燃料种类 燃料重量(g) 火力开始(min:s) 火力全开(min:s) 煮沸(min:s) 燃烧描述 99%酒精棉球 28.52 2:50 4:30 11:50 酒精大部烧完前不会烧到棉球, 火力全开后也可能发生爆燃导致火力进一步加大. 块状固体酒精 29.66 4:2
Camping 
1234…8

搜索

Hexo Fluid