树莓派模拟Switch手柄(amiibo)
·
参考文档:
https://github.com/Poohl/joycontrol
读前须知:我这篇本来是在OneNote上写好腾过来的,但是CSDN的排版系统太难搞了,编号的问题很大,及其错乱。我搞不动了,如果有2个编号的话以第二个编号为准。大家将就看吧,排版很挫但是内容亲测可用!
由于switch的手柄(joycon,switch pro)本质上是一个蓝牙手柄,所以我们可以使用蓝牙设备去模拟手柄和switch相连,可以实现很多操作例如利用代码操作switch和刷amiibo等。以下是我在树莓派3B上实操的步骤,最后成功刷出了amiibo。
- 准备树莓派,这步就不多说了,官方的系统就可以了。注意要带蓝牙的型号(3代及以后的),可以用bluetoothctl show 指令来检查。
- 下载代码:git clone https://github.com/Poohl/joycontrol.git
- 安装库:sudo apt install python3-dbus libhidapi-hidraw0 libbluetooth-dev bluez
- 安装Python库:sudo pip3 install aioconsole hid crc8
- 修改配置文件(只在第一次配对时需要):sudo nano /lib/systemd/system/bluetooth.service
-
将ExecStart的参数修改为: ExecStart=/usr/lib/bluetooth/bluetoothd -C -P sap,input,avrcp
6.重启蓝牙服务:
- sudo systemctl daemon-reload
- sudo systemctl restart bluetooth.service
- 7.到这一步就配置完成了,我们打开switch的手柄设置里面选择“更改握法/顺序”,进入等待配对状态
- 8.执行程序:
- sudo python3 run_controller_cli.py PRO_CONTROLLER
- 这里终端会打印很多东西,然后等几秒钟后switch上会显示检测到了一个pro手柄,这时候我们回车就可以进入终端交互模式,终端会显示 cmd >>。我们输入help可以看到支持的指令
- 9.到这一步之后我的程序就频繁退出,也不能很好地操作switch。我试着用官方文档的方法,修改步骤5中的配置项为:
- ExecStart=/usr/lib/bluetooth/bluetoothd -C -P input
- 后再次执行步骤6,然后再启动就可以了
- 10.配对成功后可以让程序自动获取蓝牙mac地址来连接了,以后都用这个指令启动程序:sudo python3 run_controller_cli.py PRO_CONTROLLER -r auto
- 就可以在终端中去控制switch了
-
(刷amiibo步骤)
- 7.到这一步就配置完成了,我们打开switch的手柄设置里面选择“更改握法/顺序”,进入等待配对状态
- 将amiibo的.bin文件烤入到树莓派中
- 在上文第10步的基础上,进入塞尔达,终端中输入l进入等待刷amiibo模式,林克进入等天上掉馅饼模式2333
- 在终端中输入 nfc <nfc文件路径>,就可以刷成功了!
- 以上是理想的步骤,但是输入l后终端会打印很多东西不方便我们进一步输入nfc指令,我们可以先输入3中的指令再按l也是可以的,这样的话就一进入amiibo模式就会自动刷出来东西。
最后附一张我成功刷出来的林克狼23333
更多推荐
已为社区贡献1条内容
所有评论(0)