原帖由 @micjil 于 2020-9-17 00:20 发表
PSX的引脚定义好像有问题,data, cmnd, att, clock在原理图上分别是D9, D10, D11, D12;但是代码里使用的分别是8,9,11,12。
Psx.setupPins(8, 9, 11, 12, 10);
这个方法的定义是这样的:
Psx.setupPins(byte , byte , byte , byte , byte); // (Data Pin #, CMND Pin #, ATT Pin #, CLK Pin #, Delay)
原帖由 @micjil 于 2020-9-17 00:20 发表
PSX的引脚定义好像有问题,data, cmnd, att, clock在原理图上分别是D9, D10, D11, D12;但是代码里使用的分别是8,9,11,12。
Psx.setupPins(8, 9, 11, 12, 10);
这个方法的定义是这样的:
Psx.setupPins(byte , byte , byte , byte , byte); // (Data Pin #, CMND Pin #, ATT Pin #, CLK Pin #, Delay)
原帖由 @micjil 于 2020-9-17 00:44 发表
只要编译通过就可以。最简单的方法是把项目放到Arduino的Sketchbook location下,这样就不需要手动拷贝库,Arduino会自动搜索子目录。
原帖由 @micjil 于 2020-9-17 14:43 发表
JVS I/O的物理层是基于RS485,与RS232主要区别就是RS485传输的是差分信号。jvsio这个库提供了差分信号的生成,应该是可以按照电路图直连的,不需要再做转换。主要检查下,USB端口的3,4是否连接对了,文档上特别提到了这个。
JVS文档:http://superusr.free.fr/arcade/JVS/JVST_VER3.pdf
这里有用Teensy加RS485模块,自制IO板连接Naomi的视频,视频里进Test模式的JVS Test,可以看到IO版的信息。
https://youtu.be/nQ9IQh23H0I
原帖由 @micjil 于 2020-9-17 15:01 发表
可以先进Test模式,JVS Test,检查下能否识别到信息。如果没有检测到,那估计JVS通讯这部分代码可能有问题。
原帖由 threek 于 2020-9-19 00:06 发表
posted by wap, platform: iPhone
识别不到,作者也联系不上。
他发布的帖子
https://www.arcade-projects.com/ ... troller-to-jvs-solu ...
原帖由 @micjil 于 2020-9-19 15:09 发表
作者那个帖子里使用的电路图有些不一样,github里readme里D3连接JVS Sense加了电阻和电容,但是帖子里作者弄的电路板都是直连的。可以先按照作者的这个sch重新连接电路试试,PS接线在sch里是9, 10, 11, 12,代码还是要改成一样的。
这个是作者自己弄的PCB https://github.com/nzgamer41/IONAPSXPCB/,用Eagle打开IONAPSX.sch文件确认D3是直连的。
除了软件和电路连接,可能还需要排查硬件的问题,比如Arduino的供电,可以试试USB充电头、USB充电宝或者从Naomi那边提供+5V供电,有条件可以换一块Arduino试试。
如果还是不行,可以试试 https://github.com/toyoshim/iona346,这个是连接SS手柄的,估计PSX版的作者是参考的这个。SS版的这个,D3那里用到了电阻和电容,和PS版不一样。按理说JSVIO通讯那部分是一样的,可以只连接JVSIO的那部分电路,上传SS版的这个到Arduino,看系统能不能检测到IO板。
原帖由 threek 于 2020-9-19 16:09 发表
posted by wap, platform: iPhone
SS的这个我也弄了,但是编译一直不通过,显示缺少jvsio库里面的nanoclient文件,但我有这个文件啊,路径也对的。用nano和uno都试了,都不行。
原帖由 @micjil 于 2020-9-19 17:13 发表
SS的这个git工程用了submodule,而且指定了特定的版本,需要用到git命令行clone工程,然后初始化submodule才能用。
git如果不熟悉,可以按照下面的步骤操作:
先下载git工具并安装 https://gitscm.com/download/win
然后运行Git Bash,先切换路径(比如需要下载项目到C:Workspacegit)。在bash哪里输入cd /c/Workspace/git
克隆工程 git clone https://github.com/toyoshim/iona346.git
clone完成后,进入该路径 cd iona346
然后用文本编辑软件修改下 .gitmodules文件,切换到https协议。url = git@github.com:toyoshim/jvsio.git 这一行需要修改成 url = https://github.com/toyoshim/jvsio.git
接着在bash窗口执行同步 git submodule sync
最后是初始化子模块,git会下载指定版本的子模块 git submodule update init recursive
弄完后,把这个工程目录放到sketchbook目录下,就可以编译了。我这边试过,可以成功编译。
原帖由 @micjil 于 2020-9-19 18:01 发表
在Arduino IDE的Preferences设置界面,Settings标签下面的Sketchbook location
原帖由 threek 于 2020-9-19 23:54 发表
posted by wap, platform: iPhone
我是中文版的aduino 1.8.13
选择文件-首选项- 然后里面只有 项目文件夹位置这个选项,里面的有libraries和sketch-sep16a这两个文件夹,后者好像是我最近保存的一个项目。但还是找不 ...
原帖由 @micjil 于 2020-9-19 23:58 发表
嗯,就是项目文件夹。
原帖由 @micjil 于 2020-9-19 15:09 发表
作者那个帖子里使用的电路图有些不一样,github里readme里D3连接JVS Sense加了电阻和电容,但是帖子里作者弄的电路板都是直连的。可以先按照作者的这个sch重新连接电路试试,PS接线在sch里是9, 10, 11, 12,代码还是要改成一样的。
这个是作者自己弄的PCB https://github.com/nzgamer41/IONAPSXPCB/,用Eagle打开IONAPSX.sch文件确认D3是直连的。
除了软件和电路连接,可能还需要排查硬件的问题,比如Arduino的供电,可以试试USB充电头、USB充电宝或者从Naomi那边提供+5V供电,有条件可以换一块Arduino试试。
如果还是不行,可以试试 https://github.com/toyoshim/iona346,这个是连接SS手柄的,估计PSX版的作者是参考的这个。SS版的这个,D3那里用到了电阻和电容,和PS版不一样。按理说JSVIO通讯那部分是一样的,可以只连接JVSIO的那部分电路,上传SS版的这个到Arduino,看系统能不能检测到IO板。
原帖由 threek 于 2020-9-20 01:30 发表
posted by wap, platform: iPhone
Saturn转接器制作成功了,不过他的程序里面把拳和脚弄反了,我学要改一下代码。
原帖由 @micjil 于 2020-9-27 14:16 发表
交换按键只需要调整下比特位顺序就行,原始的代码118135(加了按钮的备注)
if (line == 1) {
return ~(0x40 |
((pad & 0x0800) >> 4) | // S
((pad & 0x0010) << 1) | // up
((pad & 0x0020) >> 1) | // down
((pad & 0x0040) >> 3) | // left
((pad & 0x0080) >> 5) | // right
((pad & 0x0400) >> 9) | // A
((pad & 0x0100) >> 8)); // B
} else {
return ~(0x03 |
((pad & 0x0200) >> 2) | // C
((pad & 0x4000) >> 8) | // X
((pad & 0x2000) >> 8) | // Y
((pad & 0x1000) >> 8) | // Z
((pad & 0x0008) >> 0) | // L
((pad & 0x8000) >> 13)); // R
}
修改成
if (line == 1) {
return ~(0x40 |
((pad & 0x0800) >> 4) | // S
((pad & 0x0010) << 1) | // up
((pad & 0x0020) >> 1) | // down
((pad & 0x0040) >> 3) | // left
((pad & 0x0080) >> 5) | // right
((pad & 0x4000) >> 13) | // X
((pad & 0x2000) >> 13)); // Y
} else {
return ~(0x03 |
((pad & 0x1000) >> 5) | // Z
((pad & 0x0400) >> 4) | // A
((pad & 0x0100) >> 3) | // B
((pad & 0x0200) >> 5) | // C
((pad & 0x0008) >> 0) | // L
((pad & 0x8000) >> 13)); // R
}
欢迎光临 TGFC Lifestyle (http://tgfcer.com/) | Powered by Discuz! 6.0.0 |